Los chips DRAM están muy apretados. La investigación ha demostrado que los bits vecinos se pueden voltear al azar.
- ¿Cuál es la probabilidad de que el error se active al azar en un chip DRAM de nivel de servidor con ECC (el documento CMU-Intel cita, por ejemplo, el número 9.4x10 ^ -14 para un chip desconocido por un fallo en un año)?
- ¿Cómo sé si el error se soluciona antes de comprar memoria?
- ¿Qué debo hacer para contrarrestar los intentos maliciosos de escalar privilegios, por ejemplo, por inquilinos o usuarios sin privilegios, por ejemplo, en CentOS 7?
Referencias
Respuestas:
El documento CMU-Intel que citó muestra (en la página 5) que la tasa de error depende en gran medida del número de pieza / fecha de fabricación del módulo DRAM y varía en un factor de 10-1000. También hay algunos indicios de que el problema es mucho menos pronunciado en los chips fabricados recientemente (2014).
El número '9.4x10 ^ -14' que citó se usó en el contexto de un mecanismo de mitigación teórico propuesto llamado "PARA" (que podría ser similar a un mecanismo de mitigación pTRR existente (pseudo Target Row Refresh)) y es irrelevante para su pregunta, porque PARA no tiene nada que ver con ECC.
Un segundo papel CMU-Intel (página 10) menciona los efectos de diferentes algoritmos ECC en la reducción de errores (factor 10 ^ 2 a 10 ^ 5, posiblemente mucho más con pruebas de memoria sofisticadas y "bandas de protección").
ECC efectivamente convierte el exploit Row Hammer en un ataque DOS. El ECC corregirá los errores de 1 bit, y tan pronto como se detecte un error de 2 bits no corregible, el sistema se detendrá (suponiendo un ECC SECDED).
Una solución es comprar hardware que admita pTRR o TRR. Vea la publicación de blog actual de Cisco sobre Row Hammer . Al menos algunos fabricantes parecen tener uno de estos mecanismos de mitigación integrados en sus módulos DRAM, pero lo mantienen profundamente oculto en sus especificaciones. Para responder a su pregunta: pregúntele al vendedor.
Las velocidades de actualización más rápidas (32 ms en lugar de 64 ms) y los intervalos agresivos de Patrol Scrub también ayudan, pero tendrían un impacto en el rendimiento. Pero no conozco ningún hardware de servidor que realmente permita ajustar estos parámetros.
Supongo que no hay mucho que pueda hacer en el lado del sistema operativo, excepto terminar procesos sospechosos con un uso constante de CPU alta y fallas en la memoria caché.
fuente
La situación todavía parece poco clara, por lo que no creo que sus preguntas puedan responderse directamente, pero aquí hay información relativamente reciente como respuesta parcial. Para noticias, siga el debate de martillo de fila lista de correo de .
No estoy seguro de que actualmente sea posible con información pública evitar comprar RAM vulnerable, ni predecir fácilmente las tasas de falla en el hardware existente. Los fabricantes no han sido abiertos con información sobre cómo se ven afectados sus productos. Es posible probar la memoria ya comprada usando herramientas de software, pero debe tener en cuenta que ejecutar esas herramientas durante períodos significativos (horas) puede degradar permanentemente la RAM y causar fallas en la ejecución del software.
Según los informes, "compañías de memoria sin nombre" han intentado pagar un soborno a cambio de que Passmark Software no haya lanzado una prueba de martillo en su herramienta Memtest86.
Se ha informado que el hardware Intel Skylake es más vulnerable, no menos , al martillo de remo debido a la incorporación de una nueva
clflushopt
instrucción. Esto ya ha sido explotado en rowhammer.jsDaniel Gruss responde algunas preguntas aquí sobre mitigación a diciembre de 2015 (coautor del artículo rowhammer.js ) en esta charla :
Como contramedida, puede ser posible detectar ataques de martillo en fila en progreso, pero no sé si eso se haya hecho.
fuente