25 jun 2012

¿Qué hacemos cuando nuestros programadores nos ponen los cuernos?

 

Buenas a todos, ya son varias las historias que he oido, algunas bastante cercanas, sobre la experiencia de empresas a las que sus empleados son infieles. El jefe de equipo, paranoico por naturaleza, no se fia mucho de sus desarrolladores, y piensa que podrían estar implementando puertas traseras en el software que desarrollan.
 
El tema es serio, ¿que intereses puede haber detrás de los desarrolladores para hacer estas modificaciones al software que no formaban parte de los requisitos iniciales del proyecto?
 
En este caso se abren una gran cantidad de caminos, empleados contratados/sobornados por empresas de la competencia para obtener información del software de nuestra empresa, empleados enfadados por sus malas condiciones laborales y/o bajos sueldos, que quieren tener un clavo al que agarrarse para realizar un posible chantaje, también puede darse la posibilidad de que se utilicen para piratear el software y distribuirlo ilegalmente por Internet y un largo etcétera.
 
Ante estos casos, no nos quedará otra que revisar el código fuente de todas las aplicaciones para asegurarnos de que no nos la han metido por donde amargan los pepinos. Es probable que los desarrolladores no nos faciliten el código fuente "maligno" para que no podamos pillarles, por lo que puede que no nos quede otra que hacer reversing, y decompilar los ejecutables finales llevados a producción para intentar averiguar que hacen.
 
Por ejemplo, para decompilar programas desarrollados en .Net yo suelo usar Remotesoft .Net Explorer. En caso de que el código no haya sido ofuscado, nos mostrará de una manera muy clara el contenido del programa.
 
 
Remotesoft .Net Explorer también permite ofuscar el código fuente y visualizar metadatos a bajo nivel.
 
Para Java podéis usar Java Decompiler.
 
Otros ofuscadores interesantes:
¿Y si no nos han abierto puertas traseras, pero han dejado a propósito una SQL Injection en un apartado de una APP? (qué también es una puerta trasera al fin y al cabo, aunque menos llamativa). Para ello contaremos con algunas herramientas automáticas que puedan analizar si un software contiene código peligroso. Por ejemplo, algunas herramientas que pueden ser útiles para analizar este tipo de vulnerabilidades son FindBugs, Lapse o PMD pero de ellas os hablaré en próximos posts.
 
Como habitualmente, podéis encontrar estas y otras herramientas en nuestro listado de herramientas de auditoría.
 
Saludos!

2 comentarios:

  1. que razon tienes, muy buen articulo, gracias por la info, saludos

    ResponderEliminar
  2. [...] la semana con el post ¿Qué hacemos cuando nuestros programadores nos ponen los cuernos?, en la que reflexionábamos sobre lo que ocurriría si nuestros programadores abren puertas [...]

    ResponderEliminar