Mitigación del software para Specter v2

4

Ejecuto Debian como mi SO y Guix como mi gestor de paquetes. También corro (aproximadamente) el último kernel construido usando Guix. Según specter-meltdown-checker , mi kernel tiene mitigación para v1, v2 y v3.

Sin embargo, el último GCC estable (7.3) ha implementado tres nuevos indicadores , a saber, -mindirect-branch= elección , -mfunction-return= elección y -mindirect-branch-register . ¿Es una buena idea reconstruir el mundo con todas estas banderas habilitadas? Si es así, ¿qué elección debería elegir? Hay cuatro opciones para elegir, mantener y thunk-extern claramente no son aplicables ya que la primera no es operativa y la última requiere un procesador proporcionado por el usuario. ¿Alguien puede explicar la diferencia entre thunk y thunk-inline ?

Finalmente, parece que gold de Binutils también ha introducido un nueva bandera -z retpolineplt . ¿Debería estar habilitado también?

    
pregunta Alex Vong 14.02.2018 - 19:13
fuente

1 respuesta

4

¿Debería recompilar su software con estos indicadores habilitados? En general, no.

La mayoría del software utilizado por la persona promedio no está seriamente amenazado por Specter. Es un ataque muy difícil de realizar y requiere que el atacante ya pueda ejecutar código arbitrario en su computadora. Además, la evaluación comparativa de Phoronix muestra que puede haber una impacto en el rendimiento (a veces tan alto como el 40%), y ese golpe aparece a menudo en cosas como los videojuegos que son sensibles al rendimiento pero que no manejan información secreta. Si te sientes paranoico, puedes considerar recompilar tu kernel, navegador web y administrador de contraseñas con estas banderas, pero aparte de eso, la ganancia de seguridad no vale la pena por los inconvenientes.

Si, por otro lado, está ejecutando un servicio de alojamiento compartido, o está ejecutando un sitio de valor moderado (por ejemplo, comercio electrónico) en un servicio de alojamiento compartido, debería Considere la posibilidad de recompilar su software con la mitigación de Spectre habilitada. En esta situación, el código arbitrario de usuarios desconocidos se ejecuta en su computadora todo el tiempo. Además, es posible que esté manejando información que sea lo suficientemente valiosa como para justificar el tiempo necesario para llevar a cabo un ataque de Specter.

La diferencia entre "thunk", "thunk-external" y "thunk-inline" es básicamente un compromiso entre rendimiento y tamaño: "thunk" crea una sección de thunk por archivo de entrada, "thunk-inline" crea una por rama indirecta o función de retorno, y "thunk-external" usa una sección de procesador para un programa completo. Thunk-inline es generalmente el más rápido, pero si hace que el código crezca lo suficiente como para desbordar el espacio de caché disponible, puede causar una desaceleración significativa.

    
respondido por el Mark 15.02.2018 - 00:27
fuente

Lea otras preguntas en las etiquetas