Mientras los humanos escriban software, habrá errores de codificación para que los piratas informáticos malintencionados los exploten. Un solo error puede abrir la puerta a los atacantes que eliminan archivos, copian números de tarjetas de crédito o realizan travesuras políticas.
Un nuevo programa llamado Shuffler intenta evitar tales ataques al permitir que los programas codifiquen continuamente su código mientras se ejecutan, cerrando efectivamente la ventana de oportunidad para un ataque. La técnica se describe en un estudio presentado este mes en el Simposio de USENIX sobre el funcionamientoSistemas y Diseño OSDI en Savannah, Ga.
"Shuffler hace que sea casi imposible convertir un error en un ataque funcional, defendiendo a los desarrolladores de software de sus errores", dijo el autor principal del estudio, David Williams-King, un estudiante graduado de Columbia Engineering. "Los atacantes no pueden darse cuentael diseño del programa si el código sigue cambiando "
Incluso después de la depuración repetida, el software generalmente contiene hasta 50 errores por cada 1,000 líneas de código, cada una de las cuales es una posible vía de ataque. Aunque las defensas de seguridad evolucionan constantemente, los atacantes rápidamente encuentran nuevas formas.
A principios de la década de 2000, los sistemas operativos de las computadoras adoptaron una característica de seguridad llamada aleatorización del diseño del espacio de direcciones, o ASLR. Esta técnica reorganiza la memoria cuando se inicia un programa, lo que dificulta a los hackers encontrar y reutilizar el código existente para hacerse cargo de la máquina. Perolos piratas informáticos pronto descubrieron que podían explotar errores de divulgación de memoria para obtener fragmentos de código una vez que el programa ya se estaba ejecutando.
Shuffler fue desarrollado para desviar este último estilo de ataque de reutilización de código. Lleva el enfoque de codificación de código de ASLR al extremo al aleatorizar pequeños bloques de código cada 20 a 50 milisegundos, imponiendo una fecha límite severa a los posibles atacantes. Hasta ahora, se pensó que cambiar el código en ejecución como medida de seguridad era técnicamente poco práctico porque las soluciones existentes requieren hardware o software especializado.
En la demostración anterior, los "#" representan el código en la memoria cuando se ejecuta un servidor web típico. Cuando el servidor pasa a ejecutarse con Shuffler, los '#' se mueven cada 50 milisegundos. El servidor web barajado sirve a la página web vistaal final de la demostración.
"Para cuando el servidor devuelve la información que el atacante necesita, ya no es válida; Shuffler ya ha reubicado los fragmentos de código respectivos en diferentes ubicaciones de memoria", dijo el coautor del estudio Vasileios Kemerlis, profesor de informática en la Universidad de Brown.
Diseñado para ser fácil de usar, Shuffler se ejecuta junto con el código que defiende, sin modificaciones en los compiladores de programas o el sistema operativo de la computadora. Incluso se aleatoriza para defenderse de posibles errores en su propio código.
Los investigadores dicen que Shuffler funciona más rápido y requiere menos cambios en el sistema que un software similar de aleatorización continua como TASR y Remix, desarrollado en MIT Lincoln Labs y Florida State University respectivamente.
Como una invitación a otros investigadores para tratar de romper Shuffler, Williams-King actualmente está ejecutando el software en su sitio web personal. Puede verificar que el código esté barajando y si alguien ha atacado el sitio revisando los registros del programa.
En cargas de trabajo pesadas en computación, Shuffler ralentiza los programas en un 15 por ciento en promedio, pero a escalas más grandes, un servidor web que se ejecuta en 12 núcleos de CPU, por ejemplo, la caída en el rendimiento es insignificante, dicen los investigadores.
Esta versatilidad significa que los distribuidores de software, así como las personas conscientes de la seguridad, podrían ser usuarios finales potenciales. "Es el primer sistema que está tratando de ser una defensa seria que la gente pueda usar, en este momento", dijo Williams-King.
Shuffler necesita algunas últimas mejoras antes de que se haga público. Los investigadores dicen que quieren que sea más fácil de usar en el software que aún no han probado. También quieren mejorar la capacidad de Shuffler para defenderse de las vulnerabilidades que aprovechan el servidor-se bloquea.
"Hay miles de millones de líneas de código vulnerable", dijo el autor principal del estudio, Junfeng Yang, profesor de ciencias de la computación en Columbia Engineering y miembro del Data Science Institute. "En lugar de encontrar cada error o reescribir todos los miles de millones de líneasde código en idiomas más seguros, Shuffler instantáneamente nos permite construir una defensa más fuerte ".
Fuente de la historia :
Materiales proporcionado por Escuela de Ingeniería y Ciencias Aplicadas de la Universidad de Columbia . Nota: El contenido puede ser editado por estilo y longitud.
Cite esta página :