¿Cómo puedo proteger la computadora de mi casa / oficina contra el martillo de hileras?

4

La línea de martillo parece afectar menos a la memoria de ECC, pero ECC aún no es inmune . He oído hablar de mitigaciones de software como ANVIL, pero parece que ser 100% a prueba de golpes de martillo cualquiera.

¿Qué software o hardware puede protegerme de manera confiable contra ataques de martillo?

He encontrado un indicio, de que ciertos tipos de memoria DDR4 tienen protecciones integradas que funcionan de manera confiable contra la inversión de bits y, por lo tanto, deberían proteger contra el martillo de hileras. Pero no estoy completamente seguro de entenderlo, ni de cuán confiable debe ser esta protección. ¿Sería esta una forma confiable de protección? Una cotización :

  

Además de comprar un sistema rápido basado en Intel Skylake, también adquirimos cuatro Crucial Ballistix Sport 2400 MHz, dos Crucial Ballistix Elite 2666 MHZ, dos Geil Super Luce 2400 MHz, dos G.Skill Ripjaws 4 3200 MHz y dos Micron módulos de memoria DDR4 de 2133 MHz con marca para realizar pruebas ... De los doce módulos de memoria que probamos, ocho mostraron cambios de bits durante nuestro experimento de 4 horas. Y de estos ocho fallos, todos los módulos de memoria que fallaron en la configuración predeterminada estaban en el silicio DDR4 fabricado por Micron. Los módulos de la marca Geil contenían SK Hynix y los módulos G.Skill contenían el silicio Samsung.

Editar : en la otra pregunta, se menciona que Micron ha incorporado protecciones especiales en sus chips DDR4. Pero creo que Samsung y SK Hynix también lo han hecho y, aparentemente (ver más arriba), las protecciones de Micron no fueron suficientes.

    
pregunta Cerberus 16.04.2016 - 16:20
fuente

1 respuesta

3

La única mitigación de hardware confiable que no implica degradar a una placa base con DDR2 es usar memoria que admita TRR (actualización de la fila de destino), que es opcional para LPDDR4 (no es lo mismo que DDR4). Desafortunadamente, muchos módulos DDR4 no admiten TRR y, a menudo, no hay una manera fácil de saber si es compatible sin profundizando . También hay pTRR (Pseudo-TRR) para DDR3 que algunos procesadores Ivy Bridge tener. Requiere el uso de módulos DIMM compatibles con pTRR. No sé cuán efectivo o confiable es esto, ya que hay poca información disponible sobre su implementación o especificaciones disponibles en línea. Aparte de eso, hay algunas técnicas para reducir la susceptibilidad:

  • Use ECC y pánico en MCE : aunque ECC no mitiga completamente el ataque, si configura la computadora para que entre en pánico ante cualquier violación (llamada Excepciones de verificación de la máquina , o MCE), puede recorrer un largo camino. Un atacante tendrá más dificultades para explotar con éxito el sistema si el primer error detectado hace que el sistema se detenga. Las altas tasas de fregado mejoran la detección.

  • Aumentar las tasas de actualización * : de forma predeterminada, la memoria se actualiza en intervalos de 64 ms. Algunos BIOS le permiten especificar el intervalo de actualización. Reducirlo a 32 ms hace que sea más difícil explotar a Rowhammer, a expensas del rendimiento y el uso de energía. Reducirlo aún más ayuda, pero con un impacto aún mayor en el rendimiento. Algunos proveedores de BIOS que afirman tener una configuración de mitigación del martillo de fila (opcional o habilitada de forma predeterminada) simplemente reducen el intervalo de actualización a 32 ms.

  • Reducir la velocidad del reloj * : reducir la velocidad de reloj máxima de cada núcleo hace que sea más difícil acceder a las filas de memoria a una alta velocidad, como acceso a la memoria Está naturalmente limitado por la velocidad del reloj. Esta mitigación solo funciona para la memoria que es marginalmente vulnerable y a un precio elevado (rendimiento significativamente reducido). También puede deshabilitar Hyper Threading u otras formas de SMT y cambiar a usar un solo núcleo, lo que nuevamente produce un impacto significativo en el rendimiento .

  • Use la memoria con un MAC alto : el recuento máximo de activación, o MAC, es una medida para DRAM que cuenta cuántas filas se pueden acceder dentro de un único intervalo de actualización antes de que se produzca la inestabilidad. Un MAC más alto es mejor, y un MAC ilimitado es ideal. Los módulos con un MAC ilimitado, en teoría, no son vulnerables a rowhammer. Deberá buscar en las hojas de datos para averiguar el MAC de ese modelo en particular, o para obtener los datos a través de SPD . También sería necesario probar los módulos para asegurarse de que estén seguros, ya que el valor MAC informado no siempre es exacto.

  • Agregue direcciones vulnerables a e820 : una característica especial de las CPU x86 es e820 , que contiene una lista de direcciones de memoria física que la CPU ocultará y se negará a asignar a la memoria virtual. Combine esto con el hecho de que rowhammer generalmente afecta a las mismas filas una y otra vez (es decir, hay filas susceptibles y hay filas insensibles en cualquier módulo dado), tiene sentido encontrar estas direcciones vulnerables y ponerlas en una lista negra. Este es el enfoque adoptado por B-CATT .

  • Partición física de la memoria : si puede particionar su memoria de forma tal que los procesos de diferentes niveles de seguridad nunca se asignen a filas adyacentes, puede aislar la corrupción basada en el martillo de fila. Esto puede ser útil al asignar memoria para máquinas virtuales o al segmentar la memoria, por lo que hay una división entre las regiones de memoria física del usuario y del núcleo (no solo el núcleo "superior").

Muchas preguntas y discusiones relacionadas con rowhammer están presentes en rowhammer-Discuss .

* Por sí solas, estas mitigaciones pueden hacer muy poco y solo reducir ligeramente la velocidad de bitflips en muchas circunstancias.

    
respondido por el forest 23.11.2018 - 04:13
fuente

Lea otras preguntas en las etiquetas