Bienvenidos a Iseries Venezuela

Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.

The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.

Friday, June 22, 2012

Códigos Maliciosos en RPG.
















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




No comments: