En la conferencia 38C3 se presentó el marco FlippyRAM, diseñado para comprobar la existencia de vulnerabilidades que permitan llevar a cabo ataques de la clase Rowhammer para alterar el contenido de la memoria RAM. El código de la herramienta está escrito en C++ y se distribuye bajo la licencia MIT. Para facilitar las pruebas, se ha creado un live-distrubutivo listo (1 GB) que permite realizar la verificación al arrancar desde un USB, así como una imagen de contenedor para Docker.
El objetivo del proyecto es involucrar a los usuarios en la investigación, que intenta recopilar estadísticas sobre cuán prevalentes son las vulnerabilidades de la clase Rowhammer en sistemas de uso cotidiano. Los datos de los resultados de las pruebas pueden ser enviados tanto desde el distribuitivo cargado como añadidos manualmente en el sitio de la investigación.
El método de ataque Rowhammer fue propuesto hace 10 años, y desde entonces ha habido un juego de 'gato y ratón' entre los investigadores de seguridad y los fabricantes de hardware: los fabricantes de chips de memoria intentaban bloquear la vulnerabilidad mientras que los investigadores encontraban nuevas maneras de eludirla. Aparte de los chips DDR3 en sistemas Intel x86, se han identificado métodos de ataque en chips DDR4 y DDR5, sistemas con procesadores AMD y ARM, variantes para eludir la corrección de errores ECC, y formas de realizar ataques a través de la red y mediante la ejecución de código JavaScript en el navegador.
El ataque RowHammer permite distorsionar el contenido de bits individuales de la memoria DRAM mediante una lectura cíclica de datos de celdas de memoria adyacentes. Dado que la memoria DRAM representa un arreglo bidimensional de celdas, cada una compuesta por un condensador y un transistor, realizar lecturas continuas de la misma área de memoria provoca fluctuaciones de voltaje y anomalías que ocasionan una pequeña pérdida de carga en las celdas adyacentes. Si la intensidad de lectura es alta, la celda adyacente puede perder una cantidad suficientemente grande de carga y el siguiente ciclo de regeneración no logra restaurar su estado original, lo que resulta en un cambio en el valor de datos almacenado en la celda. Para protegerse contra RowHammer, los fabricantes de chips han añadido un mecanismo TRR (Target Row Refresh), que bloquea la distorsión de celdas en casos particulares, pero no protege contra todas las posibles variantes de ataque.
Fuente: opennet.ru
