Análisis de costo-beneficio de ASLR

3

Quiero evaluar si vale la pena agregar ASLR a un sistema operativo propietario. Este sistema operativo ejecuta múltiples aplicaciones que no confían entre sí e intercambia datos a través de la red, por lo que se aplican las amenazas que mitiga ASLR. Dados los recursos infinitos, agregaría ALSR.

Pero los recursos son finitos. Tal vez obtendríamos una mayor seguridad al dedicar tiempo a otras actividades, como pruebas más intensivas, análisis estático más preciso, mejoras generales de diseño, etc.

Podemos observar nuestro sistema operativo y evaluar el costo de ASLR (diseño inicial, evitando filtraciones de direcciones, por ejemplo, sincronización, mayor dificultad de depuración, ...). ¿Cómo podemos evaluar los beneficios?

ASLR no evita las vulnerabilidades, solo dificulta las explotaciones. Tiendo a pensar que la vulnerabilidad menos explotable es la que no existe y los atacantes siempre encontrarán una manera, pero esto es solo un sentimiento, no tengo datos. ¿Es común que ASLR haga imposible la explotación? ¿Cómo podemos cuantificar los beneficios de ASLR?

    
pregunta Gilles 29.09.2016 - 23:01
fuente

3 respuestas

2

Una forma de obtener algunos datos sobre esto es sopesar la tasa de éxito / fracaso de ASLR para este sistema operativo en particular implementándolo en un entorno de prueba y luego ejecutando ataques contra la versión no ASLR y la versión ASLR. Por supuesto, esto sería muy parcial, ya que solo está siendo probado por una entidad específica en lugar de una comunidad. Sin embargo, lograrás una idea aproximada de cuán efectivo es el ASLR, de qué tan exacto sea ese número depende de qué tan sofisticados sean los ataques.

Ninguna medida de protección logrará bloquear todos los ataques. Dado el tiempo, los recursos y la persistencia, un atacante eventualmente tendrá éxito. ASLR establece un nivel más alto en cuanto a las habilidades necesarias para asumir el control total de un sistema operativo, pero no lo hace imposible.

Considere Defensa en Profundidad como un punto de discusión para ASLR, los diseños de seguridad sólidos utilizan varias defensas antes de que un usuario externo llegue a una aplicación. Está ahí para proteger el sistema operativo si alguien era lo suficientemente inteligente como para sortear las defensas internas. ¿Qué pasa si el individuo es solo un gatito de script que tuvo suerte al ingresar a la red, pero no tiene idea de cómo funciona el ASLR? Ataque frustrado, o al menos reducido en gran medida su impacto. ¿Y si el atacante fuera un profesional? El uso de ASLR ciertamente no hace que su objetivo sea más fácil para ellos, pueden seguir insistiendo o simplemente cansarse y obtener lo que puedan obtener.

Por supuesto, dado que este sistema operativo es propietario, ciertamente no se vería bien en el (los) desarrollador (es) si alguien lo pusiera en peligro, luego se revela que no se implementó ninguna medida de protección en el núcleo del sistema operativo. . Esto es casi como un banco que usa cerraduras residenciales en una bóveda de dinero.

    
respondido por el LampShade 30.09.2016 - 00:41
fuente
2

Pruebe las aplicaciones que está ejecutando en este sistema operativo personalizado en busca de vulnerabilidades de entrada, especialmente los desbordamientos de búfer y los desbordamientos de pila. Si encuentra alguno, es una señal de que la defensa en profundidad es una estrategia más necesaria de lo que se dio cuenta.

No tienes que crear ningún código de shell ni llevar a cabo los ataques hasta su finalización. Solo tiene que ser suficiente para convencer a los otros ingenieros de que puede inyectar valores arbitrarios en el puntero de instrucción. Ahí es cuando los beneficios de ASLR realmente se activan.

    
respondido por el John Deters 30.09.2016 - 04:27
fuente
1

ASLR es un buen método conocido para dificultar ciertas explotaciones. Si desea lograr una funcionalidad similar, buscar alternativas sería una tarea costosa. Ya sabe que ASLR es bueno, mientras que el resultado de su investigación no es una solución garantizada. Eso no me suena muy emocionante. Puede consultar este artículo de seguridad de Microsoft cuando ASLR muestra su valor: enlace .

Los beneficios de costo de ASLR también dependen del nivel de control que tenga sobre qué aplicaciones se ejecutan en su sistema operativo.

  • ¿Puede controlar la calidad de las aplicaciones que se ejecutan en su sistema operativo? Si es así, entonces sería importante centrarse en las pruebas, el análisis estático, etc. De lo contrario, realmente no le da muchos beneficios adicionales.
  • ASLR es útil para un conjunto muy específico de vulnerabilidades. Es probable que un atacante se centre en estos solo si la máquina que ejecuta su sistema operativo es un sistema muy crítico. Para sistemas no críticos, puede concentrarse en encontrar soluciones alternativas.
respondido por el Limit 18.10.2016 - 06:24
fuente

Lea otras preguntas en las etiquetas