Introducíronse parches para aleatorizar os enderezos da pila do núcleo de Linux para as chamadas do sistema

Kees Cook, antigo administrador de sistemas xefe de kernel.org e líder do equipo de seguranza de Ubuntu, que agora traballa en Google para protexer Android e ChromeOS, publicou un conxunto de parches para aleatorizar as compensacións na pila do núcleo ao procesar as chamadas do sistema. Os parches melloran a seguridade do núcleo cambiando a colocación da pila, facendo que os ataques á pila sexan moito máis difíciles e menos exitosos. A implementación inicial admite procesadores ARM64 e x86/x86_64.

A idea orixinal do parche pertence ao proxecto PaX RANKSTACK. En 2019, Elena Reshetova, enxeñeira de Intel, intentou crear unha implementación desta idea adecuada para a súa inclusión no núcleo principal de Linux. Posteriormente, a iniciativa foi asumida por Kees Cook, que presentou unha implementación adecuada para a versión principal do núcleo. Está previsto que os parches se inclúan como parte da versión 5.13. O modo estará desactivado por defecto. Para activalo, proponse o parámetro da liña de comandos do núcleo "randomize_kstack_offset=on/off" e a configuración CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT. Estímase que a sobrecarga de activar o modo é de aproximadamente un 1 % de perda de rendemento.

A esencia da protección proposta é escoller unha compensación de pila aleatoria para cada chamada do sistema, o que dificulta a determinación da disposición da pila na memoria, mesmo despois de recibir datos de enderezos, xa que a seguinte chamada do sistema cambiará o enderezo base da pila. A diferenza da implementación de PaX RANDKSTACK, nos parches propostos para a súa inclusión no núcleo, a aleatorización realízase non na fase inicial (cpu_current_top_of_stack), senón despois de establecer a estrutura pt_regs, o que imposibilita o uso de métodos baseados en ptrace para determinar a compensación aleatoria. durante unha chamada ao sistema de longa duración.

Fonte: opennet.ru

Engadir un comentario