211service.com
Puntos débiles en software reforzado
Durante la última década, Microsoft, el objetivo elegido por muchos atacantes en línea, ha reforzado su sistema operativo, adoptando tecnologías diseñadas para dificultar que los atacantes encuentren y exploten vulnerabilidades. Apple y muchos otros fabricantes de software han seguido su ejemplo, introduciendo medidas de seguridad adicionales similares en sus sistemas operativos.
Sin embargo, la semana pasada, durante el concurso Pwn2Own en CanSecWest , una conferencia de seguridad en Vancouver, Canadá, investigadores de seguridad demostraron que los fabricantes de software deben hacer más para proteger sus programas. Utilizando vulnerabilidades previamente desconocidas, los investigadores pudieron comprometer los navegadores Safari de Apple, Internet Explorer 8 de Microsoft y Firefox de Mozilla eludiendo las últimas tecnologías de seguridad instaladas en el sistema operativo subyacente.
Estas cosas dificultan las cosas; realmente lo hacen, dice Charles Miller, analista principal de Evaluadores de seguridad independientes y el investigador que eludió la seguridad del navegador Safari de Apple y el sistema operativo Mac OS X Snow Leopard subyacente. Pero, pase lo que pase, un atacante decidido puede encontrar la manera de entrar.
Los resultados del concurso Pwn2Own subrayan una obviedad en materia de seguridad: los defensores deben tener la razón todo el tiempo, pero los atacantes solo deben tener razón una vez. Las hazañas son realmente creativas; por eso son complicados, Aaron Portnoy, líder del equipo de investigación de seguridad de Punto de inflexión , la empresa de seguridad que patrocina el concurso Pwn2Own.
A partir de su Trustworthy Computing Initiative en 2002, Microsoft comenzó a implementar una serie de tecnologías de seguridad en Windows. En primer lugar, la empresa protegió la pila, el espacio de memoria lógica que utilizan los programas para almacenar datos temporalmente. Una tecnología llamada bandera / GS (después del conmutador de software utilizado en el compilador de la empresa) evitaba que los atacantes enviaran su propio código a la pila. Pero en 2003, David Litchfield, un investigador independiente, demostró una forma de evitar la protección. Microsoft reaccionó implementando dos tecnologías más: SafeSEH para abordar el ataque utilizando controladores de excepciones estructuradas (SEH) y la distribución aleatoria del diseño del espacio de direcciones (ASLR), para hacer que vulnerabilidades similares sean más difíciles de explotar en el futuro. Sin embargo, los investigadores han encontrado formas de evitar ambas protecciones.
Más recientemente, Microsoft presentó otra tecnología, la protección de ejecución de datos (DEP), que evita ataques que sobrescriben la memoria con código y luego intentan ejecutar ese código. Pero a principios de este año, un investigador independiente, Dion Blazakis, mostró un ataque, conocido como pulverización JIT, que utiliza vulnerabilidades en otros programas, sobre todo Adobe Flash y Sun's Java, para eludir esas protecciones.
Estas técnicas de explotación son un producto candente en este momento, dice Portnoy. Si tiene una forma de eludir la seguridad (del sistema operativo), entonces está un paso por encima de la mayoría de las personas aquí.
Apple tampoco ha sido inmune. La compañía ha seguido lanzando más tecnologías de seguridad en su propio sistema operativo, y Snow Leopard incluye tanto ASLR como DEP, según Miller.
Microsoft reconoce que siempre existirán errores de software y dice que el objetivo es hacer que la explotación de tales vulnerabilidades sea menos dañina. Hoy en día, otras medidas, incluidas más protecciones de pila, ASLR y DEP, dificultan la búsqueda y explotación de vulnerabilidades.
Si esas técnicas no existieran, vería muchas más vulnerabilidades de las que estamos viendo ahora, dice HD Moore, director de seguridad de Rapid7 y el director de la Proyecto Metasploit , que empaqueta técnicas de explotación en un marco fácil de usar para investigadores de seguridad.
La investigación sobre protecciones adicionales está en curso y uno de los candidatos principales es el sandboxing, una técnica en la que se ejecuta código que no es de confianza en áreas protegidas de memoria y espacio de procesamiento y no se permite que afecte a otras partes de la computadora o dispositivo. El lenguaje de programación Java y el entorno de tiempo de ejecución hicieron que los sandboxes fueran populares, pero solo recientemente los programas han estado usando sandbox de manera más extensa. Los fabricantes de navegadores están buscando ejecutar su código en una caja de arena, y Chrome de Google, que sobrevivió al concurso Pwn2Own sin ser pirateado, ejecuta el código en una caja de arena.
Moore dice que las cajas de arena tienen sus limitaciones. Los sandboxes son realmente buenos para proteger contra una vulnerabilidad en una aplicación que se convierte en un exploit del sistema operativo, dice, pero solo es útil si los datos que está tratando de proteger no son accesibles. En muchos casos, el programa puede necesitar acceso a datos confidenciales o del sistema, y luego el sandboxing ya no ayuda, dice.
Al final, los fabricantes de software han hecho que sus programas sean más difíciles de explotar, dice Miller. Si bien encontró casi 20 vulnerabilidades en software popular, como los programas creados por Adobe, Apple y Microsoft, menos de un puñado podrían explotarse en un sistema actualizado, dice. Es una compensación, admite Miller. Cada vez que agrega una de estas (protecciones), ralentiza el sistema o dificulta el desarrollo. El objetivo es hacer que el software sea difícil de explotar, y lo han logrado.