¿Por qué es débil ASLR de Linux?

4

Wikipedia dice que el kernel de Linux tiene una forma débil de ASLR de forma predeterminada y solo se agregan los parches PaX o Exec Shield completar ASLR.

¿Cuál es la debilidad del ASLR predeterminado en el kernel de Linux? ¿Se ha corregido / mejorado en versiones recientes? Si no es así, ¿hay alguna razón por la que el núcleo principal opte por no proporcionar una implementación completa?

    
pregunta Chandru 07.09.2016 - 05:40
fuente

1 respuesta

1

El artículo de Wikipedia continúa:

  

Esto coloca la base de pila en un área de 8 MB de ancho que contiene 524,288   Posibles posiciones; y la base mmap en un área de 1 MB de ancho que contiene   256 posiciones posibles.

Este último es demasiado pequeño para ser efectivo, y un atacante solo necesita sondear 256 direcciones en un segmento para encontrar el puntero de dirección mmap() .

Lo que el artículo no menciona es el uso limitado de ASLR en Linux. Tradicionalmente, el kernel 2.6 solo usaba ASLR para procesos (de red) en áreas de memoria específicas (cuando se compilaba PIE) mientras se cargaba el VDSO en una dirección fija. Tal medida solo es efectiva si todas las direcciones son aleatorias. Los núcleos más nuevos tienen mejor soporte para la asignación aleatoria de direcciones. Tenga en cuenta que varias versiones de Windows hicieron exactamente lo mismo.

    
respondido por el Yorick de Wid 07.09.2016 - 09:52
fuente

Lea otras preguntas en las etiquetas