Los “easter eggs” y la seguridad

easter-eggs.jpgLos “easter egs” virtuales o digitales eran una práctica muy común hace algunos años. Los “easter eggs” eran pequeños programas ocultos introducidos en los programas legítimos con el simple propósito, muchas veces, de demostrar que era posible agregar este tipo de funcionalidad; en algunos casos esos programas ocultos tenían funcionalidad cómica, como bromas y sin un real propósito asociado a la funcionalidad del programa que los contenía.

En particular los primeros que recuerdo incluían entre otros: cambiar el ícono de Netscape 0.9  de la clásica N a un dragon de Mozilla, hasta el día de hoy escriban about:mozilla en cualquier ventana de Firefox; otro de los más comentados en Windows 95 –o 98 no recuerdo bien– era en el protector de pantalla cuando elegías la posibilidad de escribir un texto y escribías Volcano, el protector desplegaba la lista de volcanes de USA; los más elaborados fueron incluidos en las versiones de Office 97 donde incluso uno de los programas incluía una versión del Flight Simulator.

Más allá de discutir la usabilidad o utilidad de este tipo de programas, probablemente pensados en una era más ingenua de la computación; si tenemos que clasificarlos hoy día podríamos fácilmente clasificarlos como Software no deseado, incluso en algún caso como un Caballo de Troya ya que son programas ocultos con funcionalidad distinta a la que declara tener el programa principal.

Aparte de la clasificación que podamos darle a estos programas, desde el punto de vista de la confiabilidad del programa que lo contiene un punto relevante es que estos segmentos de código adicional, aumentan la superficie de ataque y, por ende, aumentan el riesgo al que está sometido el programa. Por lo tanto, la práctica de incluir “easter eggs” compromete la seguridad general del programa. Yendo más allá, qué pasa con las vulnerabilidades contenidas en un “easter egg”? dado que es una funcionalidad no documentada, cómo seguir un proceso de seguridad adecuado de los mismos? Simplemente, no se puede hacer.

Las aproximaciones para reducir la superficie de ataque tienen varios frentes, como por ejemplo, los asistentes de configuración de seguridad (SCW) incluidos en los sistemas operativos. Un enfoque más metodológicos son las guías de hardening que dan instrucciones claras de que configuraciones seguir en determinados escenarios.Pueden encontrar muchas de ellas en TechNet.

Siendo pragmático, incluir “easter eggs” o más aún utilizar programas que los contengan debiera aumentar el riesgo total al que se ve expuesto una compañía. De hecho, debiera ser incluido como una componente en el análisis de riesgo. Independiente de los divertidos que puedan parecer es una mala práctica de desarrollo de software.

Pero, y qué pasa con los programas Microsoft? Más arriba hice mención a varios easter eggs  contenidos en Office y Windows; incluidos en una época donde los requerimientos de seguridad no eran tan estrictos como hoy. Desde el año 2002, Microsoft tienen la iniciativa de Trustworthy Computing o Computación Confiable, se compone de cuatro pilares fundamentales: seguridad, privacidad, confiabilidad y buenas prácticas de negocios. Claramente, los easter eggs no caen dentro de esta clasificación y no cumplen varios de los principios en ellos declarados.

Qué debe hacer alguien que quiere tener software seguro? La respuesta no es simple, pero una aproximación es usar un proceso de desarrollo de software que incluya la seguridad en todo el ciclo de vida del software. Justamente eso es lo que hace SDL: Security Development Lifecycle, que en cada etpa del desarrollo incluye pasos de seguridad.

La figura muestra el ciclo en sí, dividido por fases y los pasos de seguriad en cada una de ellas: 

Security Development Lifecycle

Este ciclo, la metodología, documentación y herramientas están disponibles para ser usados como práctica de desarrollo seguro en el sitio de MSDN: https://msdn.microsoft.com/en-us/security/cc448177.aspx 

Con estas prácticas y el trabajo constante en seguridad, la cantidad de riesgos asociados al software irán disminuyendo, así como los easter eggs.

Comentarios y consultas bienvenidos.

Saludos, Christian.-

Technorati: Microsoft,Seguridad,Seguridad de Software,linacre,Security Development Lifecycle,SDL,TWC,Computacion Confiable,Easter Egg

del.icio.us: Microsoft,Seguridad,Seguridad de Software,linacre,Security Development Lifecycle,SDL,TWC,Computacion Confiable,Easter Egg