Está disponible Kasper, un escáner de problemas con la ejecución especulativa de código en el núcleo de Linux

Un grupo de investigadores de la Universidad Libre de Ámsterdam ha publicado la herramienta Kasper, diseñada para identificar en el núcleo de Linux fragmentos de código que pueden ser utilizados para explotar vulnerabilidades del tipo Spectre, provocadas por la ejecución especulativa de código por parte del procesador. Los códigos fuente de la herramienta se distribuyen bajo la licencia Apache 2.0.

Recordemos que para llevar a cabo ataques como Spectre v1, que permiten determinar el contenido de la memoria, es necesario que exista en el código privilegiado una secuencia específica de instrucciones (gadgets) que conduzcan a la ejecución especulativa de instrucciones. Con el fin de optimizar, el procesador comienza a ejecutar estos gadgets en modo especulativo, luego determina que la predicción de bifurcación fue incorrecta y revierte las operaciones a su estado original, pero los datos procesados durante la ejecución especulativa quedan en caché y en búferes microarquitectónicos, y son accesibles para su extracción mediante varios métodos de determinación de datos residuales a través de canales secundarios.

Las herramientas previamente disponibles para escanear gadgets de la vulnerabilidad Spectre, basadas en la búsqueda de plantillas típicas, mostraron un nivel muy alto de falsos positivos, dejando pasar muchos gadgets reales (los experimentos mostraron que el 99% de los gadgets detectados por tales herramientas no podían ser utilizados en ataques, y el 33% de los gadgets funcionales que podrían llevar a un ataque no fueron detectados).

Para mejorar la calidad en la identificación de gadgets problemáticos, Kasper modela las vulnerabilidades que un atacante puede explotar en cada paso de la ejecución de ataques del tipo Spectre: se modelan problemas que permiten controlar datos (por ejemplo, la inserción de datos del atacante en estructuras microarquitectónicas para influir en la posterior ejecución especulativa mediante ataques del tipo LVI), acceder a información confidencial (por ejemplo, al salir de los límites de un búfer o al usar memoria después de haber sido liberada) y organizar filtraciones de información confidencial (por ejemplo, analizando el estado de la caché del procesador o utilizando el método MDS).

Está disponible Kasper, un escáner de problemas con la ejecución especulativa de código en el núcleo de Linux

Al probar, el núcleo se conecta con las bibliotecas de tiempo de ejecución de Kasper y las verificaciones que operan a nivel de LLVM. Durante el proceso de verificación, se emula la ejecución especulativa del código, implementada a través del mecanismo de checkpoint-restore, que ejecuta específicamente la rama de código incorrectamente predicha, para luego revertir al estado original antes de la bifurcación. Kasper también intenta modelar diversas vulnerabilidades de software y hardware, analiza el impacto de los efectos arquitectónicos y microarquitectónicos, y lleva a cabo pruebas de fuzzing sobre las posibles acciones de un atacante. Para analizar los flujos de ejecución, se utiliza el puerto DataFlowSanitizer para el núcleo de Linux, y para las pruebas de fuzzing, se utiliza una versión modificada del paquete syzkaller.

Está disponible Kasper, un escáner de problemas con la ejecución especulativa de código en el núcleo de Linux

Durante el escaneo del núcleo de Linux con Kasper, se identificaron 1379 gadgets anteriormente desconocidos, que potencialmente podrían causar filtraciones de datos durante la ejecución especulativa de instrucciones. Se observa que solo una parte de ellos podría representar problemas reales, pero para demostrar que existe un peligro real y no solo teórico, se desarrolló un prototipo funcional de exploit para uno de los fragmentos problemáticos de código, lo que resulta en una fuga de información de la memoria del núcleo.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster