Chiosa
ES
AI Security & Safety

Una defensa de hardware impide que los prefetchers examinen datos secretos

SecDMP: Provably Secure Data Memory-Dependent Prefetching (Extended Version) · arXiv:2610.37454

4 min
Actualizado

En palabras sencillas

Algunos procesadores tienen prefetchers dependientes de los datos de memoria (DMP): hardware que examina los datos cargados para adivinar qué debe traer a continuación. Esos datos pueden incluir secretos, aunque el programa no los use de una forma observable.

El artículo presenta SecDMP, una defensa de hardware que permite al software marcar la memoria secreta y evita que el prefetcher aprenda de ella. En simulaciones con un procesador de investigación, los autores no detectaron filtraciones en nueve programas probados y cuatro prefetchers modelados.

La investigación

Un prefetcher dependiente de los datos de memoria usa valores cargados para predecir qué traer y puede codificar datos secretos en el estado de hardware del procesador, aunque el programa no los use para producir un efecto observable. ¿Puede una defensa bloquear esa filtración sin desactivar por completo el prefetching útil?

SecDMP es una defensa de hardware que impide que los prefetchers dependientes de los datos de memoria aprendan de la memoria secreta marcada, y les permite usar datos públicos.

¿Se puede impedir que el prefetcher dependiente de los datos de memoria de un procesador exponga secretos sin desactivar sus predicciones útiles?

La desactivación selectiva deja abiertas vías indirectas cuando el prefetcher sigue activo en otros puntos; desactivarlo permanentemente elimina sus mejoras de rendimiento.

SecDMP marca la memoria secreta e impide que el prefetcher aprenda de ella. Una demostración formal muestra que, bajo los supuestos establecidos, no añade filtraciones respecto de su base.

En simulaciones de Proteus, los autores no detectaron filtraciones en nueve programas y cuatro prefetchers modelados, lo que respalda la defensa dentro del alcance de esas pruebas.

La demostración supone que los secretos están marcados correctamente dentro de una partición fija entre memoria pública y secreta. Los resultados empíricos proceden de simulaciones de modelos de DMP en el procesador de investigación Proteus; no establecen el rendimiento ni la seguridad en CPU comerciales, y el modelo de Apple omite un mecanismo de filtración mencionado cuyo funcionamiento se desconoce.

La implementación evaluada también usa regiones de memoria estáticas, por lo que separar en la práctica los datos secretos del heap y la pila sigue siendo un reto.

Qué muestran las pruebas

  • Cuándo las predicciones exponen secretos

    Los prefetchers dependientes de los datos de memoria (DMP) usan los valores cargados, además de los patrones de acceso a memoria, para predecir qué deben traer. Como sus predicciones dependen de los datos, un DMP puede codificar secretos en el estado de hardware del procesador aunque el programa no los use para producir un efecto observable. La pregunta es cómo evitar esa filtración y permitir que el prefetcher siga usando datos públicos.

  • Por qué la desactivación selectiva no basta

    Los autores clasifican las posibles filtraciones según los datos que examina un DMP: las lecturas normales del programa, los valores cercanos dentro de un bloque de caché, las lecturas transitorias causadas por la especulación y los datos cargados por prefetchers.

    La desactivación selectiva apaga el DMP alrededor del código que accede directamente a secretos, lo que aborda las filtraciones por lecturas normales. Pero el DMP sigue activo en otros puntos, donde puede examinar datos por las demás vías.

    Desactivarlo permanentemente bloquea todas esas vías, pero elimina las mejoras de rendimiento del prefetcher.

  • Una defensa basada en etiquetas de memoria

    SecDMP es una defensa de hardware que requiere que el software marque la memoria secreta.

    Impide que los DMP usen los datos marcados para actualizar su estado o iniciar operaciones de prefetching, y permite que sigan usando datos públicos. La demostración formal del artículo muestra que, bajo su partición fija entre memoria pública y secreta, SecDMP no añade filtraciones respecto de la semántica de hardware base que amplía.

  • Qué mostraron las pruebas de seguridad

    Los autores ejecutaron nueve programas de filtración contra cuatro implementaciones de DMP modeladas a partir de diseños comerciales y académicos en simulaciones de Proteus. Cada programa tenía dos versiones que solo diferían en los valores secretos; un cambio en las señales vigiladas contó como filtración. Cada programa filtró información en al menos una configuración sin defensa, mientras que los autores no detectaron filtraciones con SecDMP en los casos probados.

    La desactivación selectiva protegió solo las pruebas que usaban accesos normales del programa. ProSpeCT por sí sola no detuvo las filtraciones de DMP, mientras que al combinarla con SecDMP se evitaron las filtraciones en los casos probados de DMP y Spectre-PHT.

  • Coste medido en Proteus

    En las cargas de trabajo que combinaban funciones de trabajo y criptográficas del artículo, la sobrecarga de rendimiento media medida de SecDMP fue del 0,36 % frente a la base correspondiente equipada con DMP, como promedio entre DMP y combinaciones de cargas.

    La mayor sobrecarga reportada fue del 3,3 % para una combinación con una proporción de carga especificada. En la evaluación de hardware Proteus, el área aumentó como máximo un 0,5 % y la ruta crítica se mantuvo en 12,43 ns. Estas cifras describen los prototipos y las cargas de trabajo del artículo.

Detalles

Siguiente paperBorrar un registro puede dejar su secreto al alcance de un agente