stringtranslate.com

Martillo de fila

Row hammer (también escrito como rowhammer ) es un exploit de seguridad informática que aprovecha un efecto secundario no deseado y no deseado en la memoria de acceso aleatorio dinámico (DRAM) en el que las celdas de memoria interactúan eléctricamente entre sí mediante la pérdida de sus cargas, posiblemente cambiando el contenido de las filas de memoria cercanas que no fueron abordadas en el acceso a la memoria original. Esta elusión del aislamiento entre las celdas de memoria DRAM es resultado de la alta densidad de celdas en la DRAM moderna, y puede ser activada por patrones de acceso a la memoria especialmente diseñados que activan rápidamente las mismas filas de memoria numerosas veces. [1] [2] [3]

El efecto martillo de fila se ha utilizado en algunos ataques de seguridad informática de escalada de privilegios , [2] [4] [5] [6] y los ataques basados ​​en red también son teóricamente posibles. [7] [8]

Existen diferentes técnicas basadas en hardware para evitar que se produzca el efecto martillo de fila, incluido el soporte requerido en algunos procesadores y tipos de módulos de memoria DRAM . [9] [10]

Fondo

Una ilustración de alto nivel de la organización de DRAM, que incluye celdas de memoria (cuadrados azules), decodificadores de direcciones (rectángulos verdes) y amplificadores de detección (cuadrados rojos)

En la memoria RAM dinámica (DRAM), cada bit de datos almacenados ocupa una celda de memoria separada que se implementa eléctricamente con un condensador y un transistor . El estado de carga de un condensador (cargado o descargado) es lo que determina si una celda DRAM almacena "1" o "0" como valor binario . Una gran cantidad de celdas de memoria DRAM se empaquetan en circuitos integrados , junto con cierta lógica adicional que organiza las celdas para los fines de lectura, escritura y actualización de los datos. [11] [12]

Las celdas de memoria (cuadrados azules en ambas ilustraciones) se organizan a su vez en matrices y se direccionan mediante filas y columnas. Una dirección de memoria aplicada a una matriz se divide en la dirección de fila y la dirección de columna, que son procesadas por los decodificadores de direcciones de fila y columna (en ambas ilustraciones, rectángulos verdes verticales y horizontales, respectivamente). Después de que una dirección de fila selecciona la fila para una operación de lectura (la selección también se conoce como activación de fila ), los bits de todas las celdas de la fila se transfieren a los amplificadores de detección que forman el búfer de fila (cuadrados rojos en ambas ilustraciones), desde donde se selecciona el bit exacto utilizando la dirección de columna. En consecuencia, las operaciones de lectura son de naturaleza destructiva porque el diseño de la DRAM requiere que las celdas de memoria se reescriban después de que se hayan leído sus valores transfiriendo las cargas de las celdas al búfer de fila. Las operaciones de escritura decodifican las direcciones de manera similar, pero como resultado del diseño, se deben reescribir filas enteras para que se cambie el valor de un solo bit. [1] : 2–3  [11] [12] [13]

Como resultado de almacenar bits de datos mediante condensadores que tienen una tasa de descarga natural, las celdas de memoria DRAM pierden su estado con el tiempo y requieren la reescritura periódica de todas las celdas de memoria, que es un proceso conocido como refresco. [1] : 3  [11] Como otro resultado del diseño, la memoria DRAM es susceptible a cambios aleatorios en los datos almacenados, que se conocen como errores de memoria blanda y se atribuyen a los rayos cósmicos y otras causas. Existen diferentes técnicas que contrarrestan los errores de memoria blanda y mejoran la confiabilidad de la DRAM, de las cuales la memoria de código corrector de errores (ECC) y sus variantes avanzadas (como la memoria lockstep ) son las más utilizadas. [14]

Descripción general

Las activaciones rápidas de filas (filas amarillas) pueden cambiar los valores de los bits almacenados en la fila víctima (fila violeta). [15] : 2 

El aumento de la densidad de los circuitos integrados de DRAM ha dado lugar a celdas de memoria físicamente más pequeñas que contienen menos carga, lo que da como resultado márgenes de ruido operativo más bajos , mayores tasas de interacciones electromagnéticas entre celdas de memoria y una mayor posibilidad de pérdida de datos. Como resultado, se han observado errores de perturbación , causados ​​por celdas que interfieren con el funcionamiento de las demás y que se manifiestan como cambios aleatorios en los valores de los bits almacenados en las celdas de memoria afectadas. La conciencia de los errores de perturbación se remonta a principios de la década de 1970 y a Intel 1103 como el primer circuito integrado DRAM disponible comercialmente; desde entonces, los fabricantes de DRAM han empleado varias técnicas de mitigación para contrarrestar los errores de perturbación, como mejorar el aislamiento entre celdas y realizar pruebas de producción. Sin embargo, los investigadores demostraron en un análisis de 2014 que los chips SDRAM DDR3 disponibles comercialmente fabricados en 2012 y 2013 son susceptibles a errores de perturbación, al tiempo que utilizan el término martillo de fila para nombrar el efecto secundario asociado que llevó a los cambios de bits observados . [1] [3] [15]

La posibilidad de que se produzca el efecto martillo de fila en la memoria DDR3 [16] se atribuye principalmente a la alta densidad de celdas de memoria de la DDR3 y a los resultados de las interacciones asociadas entre las celdas, mientras que las activaciones rápidas de las filas de la DRAM se han determinado como la causa principal. Las activaciones frecuentes de las filas provocan fluctuaciones de voltaje en las líneas de selección de filas asociadas, que se ha observado que inducen tasas de descarga más altas que las naturales en los condensadores que pertenecen a filas de memoria cercanas (adyacentes, en la mayoría de los casos), que se denominan filas víctimas ; si las celdas de memoria afectadas no se actualizan antes de que pierdan demasiada carga, se producen errores de perturbación. Las pruebas muestran que se puede observar un error de perturbación después de realizar alrededor de 139.000 accesos posteriores a las filas de memoria (con vaciados de caché ), y que hasta una celda de memoria de cada 1.700 celdas puede ser susceptible. Esas pruebas también muestran que la tasa de errores de perturbación no se ve afectada sustancialmente por el aumento de la temperatura ambiente, mientras que depende del contenido real de la DRAM porque ciertos patrones de bits dan como resultado tasas de error de perturbación significativamente más altas. [1] [2] [15] [17]

Una variante llamada martilleo de doble cara implica activaciones dirigidas de dos filas de DRAM que rodean a una fila víctima: en la ilustración proporcionada en esta sección, esta variante activaría ambas filas amarillas con el objetivo de inducir cambios de bits en la fila violeta, que en este caso sería la fila víctima. Las pruebas muestran que este enfoque puede resultar en una tasa significativamente mayor de errores de perturbación, en comparación con la variante que activa solo una de las filas de DRAM vecinas de la fila víctima. [4] [18] : 19–20  [19]

A medida que los proveedores de DRAM han implementado mitigaciones, los patrones tuvieron que volverse más sofisticados para evitar las mitigaciones de martillo de fila. Los patrones de martillo de fila más recientes incluyen patrones no uniformes basados ​​en frecuencia. [20] Estos patrones consisten en muchos pares de agresores de doble cara donde cada uno de ellos es golpeado con una frecuencia, fase y amplitud diferentes. Al usar esto y sincronizar patrones con el comando REFRESH, es posible determinar de manera muy efectiva los "puntos ciegos" donde la mitigación ya no puede brindar protección. Basándose en esta idea, los académicos construyeron un fuzzer de martillo de fila llamado Blacksmith [21] que puede evitar las mitigaciones existentes en todos los dispositivos DDR4.

Mitigación

Existen diferentes métodos para detectar, prevenir, corregir o mitigar con mayor o menor éxito el efecto martillo de fila. Las pruebas muestran que el código de corrección de errores simple , que proporciona capacidades de corrección de errores simples y detección de errores dobles (SECDED), no puede corregir o detectar todos los errores de perturbación observados porque algunos de ellos incluyen más de dos bits invertidos por palabra de memoria . [1] : 8  [15] : 32  Además, la investigación muestra que los cambios de martillo de fila de tres bits dirigidos con precisión evitan que la memoria ECC note las modificaciones. [22] [23]

Una solución menos eficaz es introducir una actualización de memoria más frecuente, con intervalos de actualización más cortos que los 64 ms habituales, [a] pero esta técnica da como resultado un mayor consumo de energía y una mayor sobrecarga de procesamiento; algunos proveedores proporcionan actualizaciones de firmware que implementan este tipo de mitigación. [24] Una de las medidas de prevención más complejas realiza una identificación basada en contadores de filas de memoria a las que se accede con frecuencia y actualiza de forma proactiva sus filas vecinas; otro método emite actualizaciones aleatorias poco frecuentes adicionales de las filas de memoria vecinas a las filas a las que se accede, independientemente de su frecuencia de acceso. La investigación muestra que estas dos medidas de prevención causan impactos insignificantes en el rendimiento. [1] : 10–11  [25]

Desde el lanzamiento de la microarquitectura Ivy Bridge , los procesadores Intel Xeon admiten la denominada actualización de fila pseudoobjetivo (pTRR) que se puede utilizar en combinación con módulos de memoria dual en línea DDR3 compatibles con pTRR (DIMM) para mitigar el efecto martillo de fila al actualizar automáticamente las posibles filas víctimas, sin impacto negativo en el rendimiento o el consumo de energía. Cuando se utilizan con DIMM que no son compatibles con pTRR, estos procesadores Xeon recurren de forma predeterminada a la realización de actualizaciones de DRAM al doble de la frecuencia habitual, lo que da como resultado una latencia de acceso a la memoria ligeramente mayor y puede reducir el ancho de banda de la memoria hasta en un 2-4%. [9]

El estándar de memoria móvil LPDDR4 publicado por JEDEC [26] incluye soporte de hardware opcional para el llamado refresco de fila objetivo (TRR) que evita el efecto martillo de fila sin afectar negativamente el rendimiento o el consumo de energía. [10] [27] [28] Además, algunos fabricantes implementan TRR en sus productos DDR4 , [29] [30] aunque no es parte del estándar de memoria DDR4 publicado por JEDEC. [31] Internamente, TRR identifica posibles filas víctimas, contando el número de activaciones de fila y comparándolo con valores de recuento de activación máxima (MAC) y ventana de activación máxima (t MAW ) específicos del chip predefinidos , y actualiza estas filas para evitar cambios de bits. El valor MAC es el número total máximo de activaciones de fila que se pueden encontrar en una fila DRAM particular dentro de un intervalo de tiempo que es igual o más corto que la cantidad de tiempo t MAW antes de que sus filas vecinas se identifiquen como filas víctimas; TRR también puede marcar una fila como una fila víctima si la suma de activaciones de fila para sus dos filas vecinas alcanza el límite MAC dentro de la ventana de tiempo t MAW . [26] [32] La investigación mostró que las mitigaciones de TRR implementadas en UDIMM DDR4 y chips LPDDR4X de dispositivos producidos entre 2019 y 2020 no son efectivas para proteger contra Rowhammer. [20]

Debido a su necesidad de una gran cantidad de activaciones de filas de DRAM realizadas rápidamente, los exploits de martillo de fila emiten una gran cantidad de accesos a memoria no almacenada en caché que causan errores de caché , que se pueden detectar monitoreando la tasa de errores de caché en busca de picos inusuales utilizando contadores de rendimiento de hardware . [4] [33]

La versión 5.0 del software de diagnóstico de memoria MemTest86 , lanzada el 3 de diciembre de 2013, agregó una prueba de martillo de fila que verifica si la RAM de la computadora es susceptible a errores de perturbación, pero solo funciona si la computadora arranca UEFI ; sin UEFI, arranca una versión anterior sin prueba de martillo. [34]

Trascendencia

La protección de memoria , como forma de evitar que los procesos accedan a memoria que no ha sido asignada a cada uno de ellos, es uno de los conceptos detrás de la mayoría de los sistemas operativos modernos . Al utilizar la protección de memoria en combinación con otros mecanismos relacionados con la seguridad como los anillos de protección , es posible lograr la separación de privilegios entre procesos, en la que los programas y los sistemas informáticos en general se dividen en partes limitadas a los privilegios específicos que requieren para realizar una tarea en particular. El uso de la separación de privilegios también puede reducir el alcance del daño potencial causado por ataques a la seguridad informática al restringir sus efectos a partes específicas del sistema. [35] [36]

Los errores de perturbación (explicados en la sección anterior) derrotan de manera efectiva varias capas de protección de memoria al " cortocircuitarlas " a un nivel de hardware muy bajo, creando prácticamente un tipo de vector de ataque único que permite a los procesos alterar el contenido de partes arbitrarias de la memoria principal manipulando directamente el hardware de memoria subyacente. [2] [4] [18] [37] En comparación, los vectores de ataque "convencionales", como los desbordamientos de búfer, tienen como objetivo eludir los mecanismos de protección a nivel de software, explotando varios errores de programación para lograr alteraciones de contenidos de la memoria principal que de otro modo serían inaccesibles. [38]

Hazañas

La investigación inicial sobre el efecto martillo en fila, publicada en junio de 2014, describió la naturaleza de los errores de perturbación e indicó el potencial para construir un ataque, pero no proporcionó ningún ejemplo de un exploit de seguridad funcional. [1] Un artículo de investigación posterior de octubre de 2014 no insinuó la existencia de ningún problema relacionado con la seguridad que surja del efecto martillo en fila. [16]

El 9 de marzo de 2015, el Proyecto Zero de Google reveló dos exploits de escalada de privilegios de trabajo basados ​​en el efecto martillo de fila, estableciendo su naturaleza explotable en la arquitectura x86-64 . Uno de los exploits revelados apunta al mecanismo de Google Native Client (NaCl) para ejecutar un subconjunto limitado de instrucciones de máquina x86-64 dentro de un sandbox , [18] : 27  explotando el efecto martillo de fila para escapar del sandbox y obtener la capacidad de emitir llamadas al sistema directamente. Esta vulnerabilidad de NaCl , rastreada como CVE - 2015-0565, se ha mitigado modificando NaCl para que no permita la ejecución de la instrucción de máquina ( vaciado de línea de caché [39] ), que anteriormente se creía que era necesaria para construir un ataque de martillo de fila efectivo. [2] [4] [37]clflush

El segundo exploit revelado por Project Zero se ejecuta como un proceso Linux sin privilegios en la arquitectura x86-64, explotando el efecto row hammer para obtener acceso sin restricciones a toda la memoria física instalada en una computadora. Al combinar los errores de perturbación con la pulverización de memoria , este exploit es capaz de alterar las entradas de la tabla de páginas [18] : 35  utilizadas por el sistema de memoria virtual para mapear direcciones virtuales a direcciones físicas , lo que da como resultado que el exploit obtenga acceso sin restricciones a la memoria. [18] : 34, 36–57  Debido a su naturaleza y la incapacidad de la arquitectura x86-64 para realizar clflushuna instrucción de máquina privilegiada, este exploit difícilmente puede mitigarse en computadoras que no usan hardware con mecanismos de prevención de row hammer integrados. Al probar la viabilidad de los exploits, Project Zero descubrió que aproximadamente la mitad de las 29 computadoras portátiles probadas experimentaron errores de perturbación, y algunos de ellos ocurrieron en computadoras portátiles vulnerables en menos de cinco minutos de ejecución de código que induce row hammer; Las computadoras portátiles probadas se fabricaron entre 2010 y 2014 y utilizaron memoria DDR3 no ECC. [2] [4] [37]

En julio de 2015, un grupo de investigadores de seguridad publicó un artículo que describe una forma independiente de la arquitectura y del conjunto de instruccionesclflush para explotar el efecto Row Hammer. En lugar de depender de la instrucción para realizar vaciados de caché, este enfoque logra accesos a memoria no almacenada en caché al provocar una tasa muy alta de desalojo de caché utilizando patrones de acceso a memoria cuidadosamente seleccionados. Aunque las políticas de reemplazo de caché difieren entre procesadores, este enfoque supera las diferencias arquitectónicas al emplear un algoritmo de estrategia de desalojo de caché adaptativo . [18] : 64–68  La prueba de concepto para este enfoque se proporciona tanto como una implementación de código nativo como una implementación de JavaScript puro que se ejecuta en Firefox  39. La implementación de JavaScript, llamada Rowhammer.js , [40] utiliza grandes matrices tipificadas y se basa en su asignación interna utilizando páginas grandes ; como resultado, demuestra una explotación de muy alto nivel de una vulnerabilidad de muy bajo nivel. [41] [42] [43] [44]

En octubre de 2016, los investigadores publicaron DRAMMER, una aplicación para Android que utiliza el método Row Hammer, junto con otros métodos, para obtener acceso a la raíz de forma fiable en varios teléfonos inteligentes populares. [45] La vulnerabilidad fue reconocida como CVE - 2016-6728 [46] y Google publicó una mitigación en el plazo de un mes. Sin embargo, debido a la naturaleza general de las posibles implementaciones del ataque, es difícil implementar de forma fiable un parche de software eficaz. A junio de 2018, la mayoría de las propuestas de parches realizadas por la academia y la industria eran poco prácticas de implementar o insuficientes para detener todos los ataques. Como mitigación, los investigadores propusieron una defensa ligera que evita los ataques basados ​​en el acceso directo a memoria (DMA) aislando los búferes de DMA con filas de protección. [47] [48]

En mayo de 2021, un equipo de investigación de Google anunció un nuevo exploit, Half-Double, que aprovecha el empeoramiento de la física de algunos de los chips DRAM más nuevos. [49]

En marzo de 2024, un grupo de investigadores de ETH Zürich anunció ZenHammer, un exploit rowhammer para chips AMD Zen , y también anunció el primer uso de rowhammer para explotar DDR5 SDRAM . [50] [51]

En junio de 2024, un grupo de investigadores de la ETH de Zúrich anunció RISC-H, un exploit Rowhammer para chips RISC-V . Este es el primer estudio Rowhammer sobre RISC-V. [52]

Véase también

Notas

  1. ^ Las investigaciones muestran que la tasa de errores de perturbación en una selección de módulos de memoria DDR3 se acerca a cero cuando el intervalo de actualización de la memoria se vuelve aproximadamente siete veces más corto que el valor predeterminado de 64 ms. [15] : 17, 26 

Referencias

  1. ^ abcdefghi Yoongu Kim; Ross Daly; Jeremie Kim; Chris Fallin; Ji Hye Lee; Donghyuk Lee; Chris Wilkerson; Konrad Lai; Onur Mutlu (24 de junio de 2014). "Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors" (PDF) . ece.cmu.edu . IEEE . Consultado el 10 de marzo de 2015 .
  2. ^ abcdef Goodin, Dan (10 de marzo de 2015). «Un ataque de última generación otorga estatus de superusuario al explotar una debilidad de la memoria DRAM». Ars Technica . Consultado el 10 de marzo de 2015 .
  3. ^ ab Ducklin, Paul (12 de marzo de 2015). «'Row hammering' – how to exploit a computer by overworking its memory» ('Martillar filas': cómo explotar una computadora sobrecargando su memoria). Sophos . Consultado el 14 de marzo de 2015 .
  4. ^ abcdefg Seaborn, Mark; Dullien, Thomas (9 de marzo de 2015). "Explotación del error Rowhammer de la DRAM para obtener privilegios de kernel". googleprojectzero.blogspot.com . Consultado el 10 de marzo de 2015 .
  5. ^ "El uso de bitflips de Rowhammer para rootear teléfonos Android ya es una práctica habitual". Ars Technica . Consultado el 25 de octubre de 2016 .
  6. ^ Swati Khandelwal (3 de mayo de 2018). «GLitch: el nuevo ataque «Rowhammer» puede secuestrar teléfonos Android de forma remota». The Hacker News . Consultado el 21 de mayo de 2018 .
  7. ^ Mohit Kumar (10 de mayo de 2018). "Nuevo ataque de Rowhammer puede secuestrar computadoras de forma remota a través de la red". The Hacker News . Consultado el 21 de mayo de 2018 .
  8. ^ Swati Khandelwal (16 de mayo de 2018). "Nethammer: cómo explotar un error de DRAM Rowhammer mediante solicitudes de red". The Hacker News . Consultado el 21 de mayo de 2018 .
  9. ^ por Marcin Kaczmarski (agosto de 2014). "Reflexiones sobre la optimización del rendimiento de la familia de productos Intel Xeon E5-2600 v2: directrices para la selección de componentes" (PDF) . Intel . pág. 13. Archivado desde el original (PDF) el 18 de abril de 2024 . Consultado el 11 de marzo de 2015 .
  10. ^ ab Greenberg, Marc (15 de octubre de 2014). "Reliability, Availability, and Serviceability (RAS) for DDR DRAM interfaces" (PDF) . memcon.com . págs. 2, 7, 10, 20, 27. Archivado desde el original (PDF) el 5 de julio de 2016 . Consultado el 11 de marzo de 2015 .
  11. ^ abc "Conferencia 12: Fundamentos de DRAM" (PDF) . utah.edu . 17 de febrero de 2011. págs. 2–7 . Consultado el 10 de marzo de 2015 .
  12. ^ ab "Understanding DRAM Operation" (PDF) . IBM . Diciembre de 1996. Archivado desde el original (PDF) el 29 de agosto de 2017 . Consultado el 10 de marzo de 2015 .
  13. ^ David August (23 de noviembre de 2004). «Lecture 20: Memory Technology» (PDF) . cs.princeton.edu . págs. 3–5. Archivado desde el original (PDF) el 19 de mayo de 2005 . Consultado el 10 de marzo de 2015 .
  14. ^ Bianca Schroeder ; Eduardo Pinheiro; Wolf-Dietrich Weber (25 de junio de 2009). "Errores de DRAM en la naturaleza: un estudio de campo a gran escala" (PDF) . cs.toronto.edu . ACM . Consultado el 10 de marzo de 2015 .
  15. ^ abcde Yoongu Kim; Ross Daly; Jeremie Kim; Chris Fallin; Ji Hye Lee; Donghyuk Lee; Chris Wilkerson; Konrad Lai; Onur Mutlu (24 de junio de 2014). "Flipping Bits in Memory Without Accessing Them: DRAM Disturbance Errors" (PDF) . ece.cmu.edu . Consultado el 10 de marzo de 2015 .
  16. ^ ab Kyungbae Park; Sanghyeon Baeg; ShiJie Wen; Richard Wong (octubre de 2014). "Martilleo de precarga activa en una falla inducida por fila en memorias SDRAM DDR3 con tecnología de 3 nm". Martilleo de precarga activa en una falla inducida por fila en memorias SDRAM DDR3 con tecnología de 3 nm . IEEE . págs. 82–85. doi :10.1109/IIRW.2014.7049516. ISBN 978-1-4799-7308-8.S2CID14464953  .​
  17. ^ Yoongu Kim; Ross Daly; Jeremie Kim; Chris Fallin; Ji Hye Lee; Donghyuk Lee; Chris Wilkerson; Konrad Lai; Onur Mutlu (30 de julio de 2015). "RowHammer: Análisis de confiabilidad e implicaciones de seguridad" (PDF) . ece.cmu.edu . Consultado el 7 de agosto de 2015 .
  18. ^ abcdefg Mark Seaborn; Thomas Dullien (6 de agosto de 2015). "Cómo explotar el error Rowhammer de la DRAM para obtener privilegios de kernel: cómo provocar y explotar errores de un solo bit" (PDF) . Black Hat . Consultado el 7 de agosto de 2015 .
  19. ^ Andy Greenberg (10 de marzo de 2015). "Googlers' Epic Hack Exploits How Memory Leaks Electricity" (El hack épico de los empleados de Google aprovecha cómo la memoria pierde electricidad). Wired . Consultado el 17 de marzo de 2015 .
  20. ^ ab Jattke, Patrick; van der Veen, Victor; Frigo, Pietro; Gunter, Stijn; Razavi, Kaveh (25 de mayo de 2022). "Blacksmith: Scalable Rowhammering in the Frequency Domain" (PDF) . comsec.ethz.ch . IEEE . Consultado el 9 de noviembre de 2022 .
  21. ^ Blacksmith Rowhammer Fuzzer, 2 de noviembre de 2022 , consultado el 9 de noviembre de 2022
  22. ^ Cojocar, Lucian; Razavi, Kaveh; Giuffrida, Cristiano; Bos, Herbert (2019). "Explotación de códigos correctores: sobre la eficacia de la memoria ECC contra ataques Rowhammer" (PDF) . Simposio IEEE sobre seguridad y privacidad de 2019 (SP) . Simposio sobre seguridad y privacidad. IEEE. págs. 55–71. doi : 10.1109/sp.2019.00089 . ISBN. 978-1-5386-6660-9. Consultado el 30 de mayo de 2022 .
  23. ^ VUsec, Systems and Network Security Group (11 de noviembre de 2018). "ECCploit: después de todo, la memoria ECC es vulnerable a los ataques Rowhammer". Universidad Libre de Ámsterdam . Consultado el 30 de mayo de 2022 .
  24. ^ "Escalada de privilegios de Row Hammer (aviso de seguridad de Lenovo LEN-2015-009)". Lenovo . 5 de agosto de 2015 . Consultado el 6 de agosto de 2015 .
  25. ^ Dae-Hyun Kim; Prashant J. Nair; Moinuddin K. Qureshi (9 de octubre de 2014). "Soporte arquitectónico para mitigar el martilleo de filas en memorias DRAM" (PDF) . ece.gatech.edu . IEEE . Archivado desde el original (PDF) el 11 de marzo de 2015 . Consultado el 11 de marzo de 2015 .
  26. ^ ab "Norma JEDEC JESD209-4A: Low Power Double Data Rate (LPDDR4)" (PDF) . JEDEC . Noviembre de 2015. págs. 222–223 . Consultado el 10 de enero de 2016 .
  27. ^ Kishore Kasamsetty (22 de octubre de 2014). "DRAM scaling challenges and solutions in LPDDR4 context" (PDF) . memcon.com . p. 11. Archivado desde el original (PDF) el 3 de junio de 2016 . Consultado el 10 de enero de 2016 .
  28. ^ Omar Santos (9 de marzo de 2015). "Mitigaciones disponibles para la vulnerabilidad Row Hammer en DRAM". cisco.com . Consultado el 11 de marzo de 2015 .
  29. ^ Marc Greenber (9 de marzo de 2015). "Row Hammering: qué es y cómo los hackers podrían usarlo para acceder a su sistema". synopsys.com . Consultado el 10 de enero de 2016 .
  30. ^ Jung-Bae Lee (7 de noviembre de 2014). "Green Memory Solution (Samsung Investors Forum 2014)" (PDF) . teletogether.com . Samsung Electronics . p. 15 . Consultado el 10 de enero de 2016 .
  31. ^ "Estándar JEDEC JESD79-4A: DDR4 SDRAM" (PDF) . JEDEC . Noviembre de 2013 . Consultado el 10 de enero de 2016 .
  32. ^ "Hoja de datos: características de la SDRAM DDR4 de 4 Gb ×4, ×8 y ×16" (PDF) . Micron Technology . 20 de noviembre de 2015. págs. 48, 131. Archivado desde el original (PDF) el 10 de febrero de 2018 . Consultado el 10 de enero de 2016 .
  33. ^ Nishad Herath; Anders Fogh (6 de agosto de 2015). "Estos no son los contadores de rendimiento de CPU de tu abuelo: contadores de rendimiento de hardware de CPU para seguridad" (PDF) . Black Hat . págs. 29, 38–68 . Consultado el 9 de enero de 2016 .
  34. ^ "PassMark MemTest86 – Historial de versiones". memtest86.com . 13 de febrero de 2015 . Consultado el 11 de marzo de 2015 .
  35. ^ Pehr Söderman (2011). «Memory Protection» (PDF) . csc.kth.se . Archivado desde el original (PDF) el 2 de abril de 2015 . Consultado el 11 de marzo de 2015 .
  36. ^ Niels Provos; Markus Friedl; Peter Honeyman (10 de agosto de 2003). "Prevención de la escalada de privilegios" (PDF) . niels.xtdnet.nl . Consultado el 11 de marzo de 2015 .
  37. ^ abc Liam Tung (10 de marzo de 2015). «Google afirma que la falla de la memoria DRAM «Rowhammer» podría ser generalizada». ZDNet . Consultado el 11 de marzo de 2015 .
  38. ^ Murat Balaban (6 de junio de 2009). "Buffer Overflows Demystified" (TXT) . enderunix.org . Consultado el 11 de marzo de 2015 .
  39. ^ "CLFLUSH: Flush Cache Line (x86 Instruction Set Reference)" (CLFLUSH: línea de vaciado de caché (referencia del conjunto de instrucciones x86)). renejeschke.de . 3 de marzo de 2013. Archivado desde el original el 3 de diciembre de 2017. Consultado el 6 de agosto de 2015 .
  40. ^ Daniel Gruss; Clémentine Maurice (27 de julio de 2015). «IAIK/rowhammerjs: rowhammerjs/rowhammer.js at master». github.com . Consultado el 29 de julio de 2015 .
  41. ^ Daniel Gruss; Clementine Maurice; Stefan Mengard (24 de julio de 2015). "Rowhammer.js: un ataque de falla inducido por software remoto en JavaScript". arXiv : 1507.06955 [cs.CR].
  42. ^ David Auerbach (28 de julio de 2015). "Explotación de seguridad de Rowhammer: por qué un nuevo ataque de seguridad es verdaderamente aterrador". slate.com . Consultado el 29 de julio de 2015 .
  43. ^ Alix Jean-Pharuns (30 de julio de 2015). "Rowhammer.js es el hack más ingenioso que he visto jamás". Motherboard.
  44. ^ Dan Goodin (4 de agosto de 2015). "Exploit de 'Bitflipping' de DRAM para atacar PC: basta con añadir JavaScript". Ars Technica.
  45. ^ VUSec (octubre de 2016). "DRAMMER: FLIP FENG SHUI SE VUELVE MÓVIL" . Consultado el 21 de enero de 2017 .
  46. ^ Base de datos nacional de vulnerabilidades (NVD) del NIST. "Detalles de CVE-2016-6728".
  47. ^ Victor van der Veen; Martina Lindorfer; Yanick Fratantonio; Harikrishnan Padmanabha Pillai; Giovanni Vigna; Christopher Kruegel; Herbert Bos; Kaveh Razavi (2018), "GuardION: mitigación práctica de ataques Rowhammer basados ​​en DMA en ARM", Detección de intrusiones y malware, y evaluación de vulnerabilidades , Springer International Publishing, págs. 92-113, doi :10.1007/978-3-319-93411-2_5, hdl : 1871.1/112a5465-aeb5-40fd-98ff-6f3b7c976676 , ISBN 9783319934105
  48. ^ "RAMPAGE AND GUARDION - Las vulnerabilidades en los teléfonos modernos permiten el acceso no autorizado" . Consultado el 30 de junio de 2018 .
  49. ^ "Presentación de Half-Double: nueva técnica de martilleo para el error Rowhammer de la DRAM". Google. 25 de mayo de 2021. Consultado el 2 de diciembre de 2021 .
  50. ^ Toulas, Bill. "Nuevo ataque de memoria ZenHammer afecta a las CPU AMD Zen". BleepingComputer . Consultado el 26 de marzo de 2024 .
  51. ^ "ZenHammer: Rowhammer ataca a plataformas basadas en Zen de AMD". Computer Security Group . Consultado el 26 de marzo de 2024 .
  52. ^ "Rowhammer Bit Flips en una CPU RISC-V de gama alta (ETH Zurich)". semiengineering . 13 de junio de 2024 . Consultado el 15 de junio de 2024 .

Enlaces externos