miércoles, 8 de diciembre de 2010

¿Te fías de tu equipo de desarrollo de software?

Buenas a todos, el otro día oía, no recuerdo donde, la experiencia de un jefe de proyectos con su equipo de desarrollo. El jefe de equipo, comentaba que no se fiaba mucho de sus desarrolladores, y pensaba que podrían estar implementando puertas traseras en el software que desarrollaban.

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, mi recomendación es que se analice el código fuente de todas las aplicaciones. Probablemente los desarrolladores no nos facilitarán el código fuente "maligno" para que no podamos pillarles, por lo que no nos quedará 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 se puede usar Java Decompiler.

Al hilo de los ofuscadores, aunque nuestra labor en este post sea la contraria, comentaros otro ofuscador de código fuente para .Net, Eazfuscator, es muy sencillo de utilizar y efectivo.


Otros ofuscadores interesantes:

Se que muchos se estarán preguntando si existen herramientas automáticas que puedan analizar si un software contiene código peligroso, pero a menos que contenga en su código fuente una parte de algún código que sean capaces de reconocer antivirus y similares, porque haya sido previamente estudiado y recogido en una base de datos (basados en firma), esto será casi imposible. Lo que si es posible utilizar, aunque no abundan mucho, son herramientas que midan la seguridad de nuestros desarrollos software, en busca de posibles vulnerabilidades por Buffer Overflow, inyecciones de código SQL, etc. 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.

Saludos!

No hay comentarios: