Se introdujeron parches para aleatorizar las direcciones de la pila del kernel de Linux para llamadas al sistema

Kees Cook, ex administrador jefe de sistemas de kernel.org y líder del equipo de seguridad de Ubuntu, que ahora trabaja en Google para proteger Android y ChromeOS, publicó un conjunto de parches para aleatorizar las compensaciones en la pila del kernel al procesar llamadas al sistema. Los parches mejoran la seguridad del kernel al cambiar la ubicación de la pila, lo que hace que los ataques a la pila sean mucho más difíciles y menos exitosos. La implementación inicial admite procesadores ARM64 y x86/x86_64.

La idea original del parche pertenece al proyecto PaX RANDKSTACK. En 2019, Elena Reshetova, una ingeniera de Intel, intentó crear una implementación de esta idea adecuada para incluirla en el kernel principal de Linux. Posteriormente, la iniciativa la tomó Kees Cook, quien presentó una implementación adecuada a la versión principal del kernel. Está previsto que los parches se incluyan como parte de la versión 5.13. El modo estará deshabilitado de forma predeterminada. Para habilitarlo, se propone el parámetro de línea de comando del kernel “randomize_kstack_offset=on/off” y la configuración CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. La sobrecarga de habilitar el modo se estima en aproximadamente un 1 % de pérdida de rendimiento.

La esencia de la protección propuesta es elegir un desplazamiento de pila aleatorio para cada llamada al sistema, lo que dificulta determinar el diseño de la pila en la memoria, incluso después de recibir datos de dirección, ya que la siguiente llamada al sistema cambiará la dirección base de la pila. A diferencia de la implementación de PaX RANDKSTACK, en los parches propuestos para su inclusión en el kernel, la aleatorización no se realiza en la etapa inicial (cpu_current_top_of_stack), sino después de configurar la estructura pt_regs, lo que imposibilita el uso de métodos basados ​​en ptrace para determinar el desplazamiento aleatorio. durante una llamada al sistema de larga duración.

Fuente: opennet.ru

Añadir un comentario