¿Ubuntu utiliza funciones de seguridad como DEP y ALSR?

11

A menudo leo que en Windows se proporcionan características como DEP (Prevención de ejecución de datos) y ASLR (Aleatorización del diseño del espacio de direcciones). En Windows, tiene cierto control sobre cómo activar DEP para programas de 32 bits.

  • ¿Estas características están disponibles en Ubuntu?
  • ¿Hay algo que debamos hacer para activar estas funciones?
hhlp
fuente

Respuestas:

20

Si para los dos. Están activados por defecto; no necesita hacer nada para habilitarlo. La respuesta más larga sigue ...

DEP se usa por defecto en Ubuntu. Esto se realiza a través del bit NX si la CPU lo admite, o emulado a través de la segmentación de memoria si la CPU no lo admite. Para obtener más detalles, consulte el elemento de función de memoria no ejecutable .

ASLR se usa de manera predeterminada en Ubuntu en cualquier segmento de memoria que se pueda reubicar (pila, bibliotecas, montón, mmap). La única parte de un programa que no es reubicable por defecto es el área de código principal (segmento "texto"). Los programas deben compilarse especialmente como PIE (ejecutable independiente de la posición) para habilitar esto. Muchos programas sensibles ya están construidos de esta manera. Para más detalles, vea la lista

Muchas características de seguridad adicionales también están disponibles por defecto en Ubuntu. Consulte la documentación de las características de seguridad de Ubuntu para obtener la lista completa.

Kees Cook
fuente
1

El kernel de Linux, por defecto, hace uso de tecnologías similares, sin embargo, son diferentes de las versiones de Windows. Si su procesador tiene la capacidad de establecer el bit NX (CPU más modernas), entonces el núcleo lo utilizará. También hay una implementación débil en ASLR en el kernel, y se pueden instalar otras más fuertes, pero no están instaladas por defecto en Ubuntu.

Ryan Gooler
fuente
3
No puedo encontrar referencias en este momento (el artículo de Wikipedia en.wikipedia.org/wiki/ASLR no tiene los bits de comparación de entropía), pero entiendo que Windows ASLR es más débil que Linux. Y si desea un ASLR de servicio más pesado que el predeterminado de Linux, puede construir su propio núcleo, el conjunto de parches PaX, que ofrece una mayor entropía a un bajo costo de compatibilidad.
Kees Cook
Un buen artículo desglosando las diferencias cert.org/blogs/certcc/post.cfm?EntryID=191, por supuesto, eso no estaría completo con algunos debates sobre los detalles más finos: D reddit.com/r/netsec/comments/ 1xjwde / ...
Univ426
0

En términos generales y simples, necesitaría una versión PAE del núcleo para esto. Para obtener información detallada sobre este tema, consulte este resumen .

organizar
fuente
3
PAE solo es necesario para hardware NX. 64 bits ya es PAE, por lo que en 32 bits si no está ejecutando un núcleo PAE, o si su hardware carece del bit NX, Ubuntu emula la función NX utilizando la segmentación de memoria.
Kees Cook
@ Kees Cook: Gracias por la información. OP preguntó sobre el 32bit. En mi sistema (ubuntu 10.10 32bit) dmesgdice NX (Execute Disable) protection cannot be enabled: non-PAE kernel. Por otro lado, cuando ejecuté las pruebas de bazaar.launchpad.net/~ubuntu-bugcontrol/qa-regression-testing/… , nx ​​parecía aplicarse, pero no para las pruebas -piey -rie. Entonces es un poco confuso para mí.
organizar el
2
desafortunadamente, el informe dmesg de 10.10 y posteriores tiene un error en el que no dice cuándo la emulación NX está habilitada en hardware con NX pero sin un núcleo PAE: kernel.ubuntu.com/git?p=ubuntu/…
Kees Cook
1
(Esto se ha informado como un error ahora: bugs.launchpad.net/ubuntu/+source/linux/+bug/745181 )
Kees Cook el