Si
repasamos la definición de código malicioso, distinguimos que está orientado
principalmente a programación de última generación y a plataformas Windows en computadores
personales y en ambiente web.
Wikipedia
dice:
Malware (del inglés malicious
software), también llamado badware, código maligno, software malicioso o software
malintencionado, es un tipo de software que tiene como objetivo
infiltrarse o dañar una computadora sin el consentimiento de su
propietario. El término malware es muy utilizado por profesionales de
la informática para referirse a una variedad
de software hostil, intrusivo o molesto.1 El término virus informático suele aplicarse de forma
incorrecta para referirse a todos los tipos de malware, incluidos los virus
verdaderos.
Pensamos
que el As/400, el Iseries y toda plataforma derivada son invulnerables, lo que,
ciertamente ha contribuido a que permanezca en el mercado tecnológico. (Gracias
a Dios!)
Para
nuestro entorno tecnológico laboral del ISeries transformaremos el sentido de
código malicioso a “Código Fraudulento”. Es posible que programadores sin
escrúpulos desarrollen programas para su beneficio personal. Se ha visto casos
de informáticos que trabajan en la compañía de teléfonos o en la compañía de
suministro de energía eléctrica y colocan su número de teléfono o su número de
cuenta dentro de la base de datos con un estatus: “exento de pago” ó en el mismo código de programa en forma
“encriptada” llevan a cero el saldo de sus cuentas todos los meses.
Ø Es importante revisar si los programas tienen
Código Duro o Hard-Code en su código fuente y determinar si lo valores
introducidos en la programación corresponden a valores de campos en la base de
datos.
Hay
varios mecanismos que no son obvios pero que funcionan para cometer fraudes en
RPG –queriendo o sin querer- durante el desarrollo del programa.
Hace
algún tiempo, en una entidad bancaria, el programador generó sin darse cuenta
un lazo o bucle (Do-while) que se volvió infinito bajo ciertas condiciones de
programación y de data, al punto de inhabilitar durante un día la sucursal
bancaria que tuvo que remitir a sus clientes a otras sucursales. Este error
hizo que el job se consumiera el tiempo de CPU y acaparó la máquina para si
mismo sin dejar ejecutar nada mas.
En
este caso fue un error no intencionado que, sin embargo, dejó sin trabajo a su
programador.
Un
lazo de ejecución sin probarse en todos sus escenarios posibles y en contraste
con los valores de la data contenida en la base de datos, puede ocasionar este
caos.
Ø Revisar la condición de terminación de los lazos es
una tarea muy importante para evitar estos eventos que impactan la operatividad
el negocio.
En muchas instalaciones el
personal de auditoría se remite a la parte funcional de las aplicaciones y en
pocas oportunidades a la revisión del software ya que, generalmente no son
programadores o desarrolladores.
Existen muchos otros
mecanismos para cometer fraude basado en errores en las pruebas, en
inexperiencia del programador o en la altísima experiencia del programador.
¡ATENCION!. La
intención no es enseñarles a cometer fraude sino a aprender a detectarlos.
Queda en la ética de cada quién utilizar
los recursos y la información que llega a sus manos para el bien o para el mal.
Recordemos que, como adultos responsables debemos atenernos a las consecuencias
de nuestros actos.
Si te pareció
interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al
final del artículo. El conocimiento es valioso, compártelo.
Publicado por: Ing.
Liliana Suárez