Otro día, otro potencial problema de seguridad de Linux. Esta vez, se trata de una vulnerabilidad crítica en shim, el vínculo clave entre Linux y el firmware de su computadora durante el arranque. Si no se repara, un atacante de red podría evitar el arranque seguro y tomar el control de su sistema.
Lo primero es lo primero: el shim en cuestión no es parte de Linux per se. Es el puente entre el arranque seguro de la interfaz de firmware extensible unificada (UEFI) de los servidores y PC modernos y Linux. Dejando a un lado los aspectos técnicos, debes usarlo para iniciar Linux, por lo que es un gran problema.
Shim existe porque Secure Boot, un estándar de seguridad informática para reemplazar el firmware BIOS de las computadoras más antiguas, no funcionaba con la mayoría de las distribuciones de Linux cuando se introdujo en 2012. Secure Boot usaba, y todavía usa, una base de datos de claves segura compatible con Windows. sin una manera fácil para que las distribuciones de Linux lo introduzcan. Matthew Garrett, un conocido desarrollador de seguridad y Linux, creó una solución. Este fue el shim, un cargador de arranque firmado que puede agregar claves a su propia base de datos.
Avance rápido una docena de años: Bill Demirkapi del Centro de respuesta de seguridad de Microsoft encontró un agujero de seguridad — CVE-2023-40547 — un desbordamiento de búfer clásico. Con un desbordamiento del búfer, un atacante puede ingresar a un sistema y potencialmente instalar el malware de su elección.
Específicamente, la parte vulnerable del código shim es la que se ocupa de los sistemas que utilizan HTTP para arrancar desde un servidor central en una red. Como vives y trabajas en el siglo XXI y nunca arrancarías desde un servidor que ejecute HTTP inseguro, no tienes nada de qué preocuparte, ¿verdad? Equivocado.
en Twitter. Puerta de Hierro explicado: «Un error común que he visto es que esto sólo te afecta si usas el arranque HTTP. Si eso fuera cierto, no sería un error crítico».
En resumen, esta vulnerabilidad requiere un conjunto específico de condiciones para ser explotable. Un atacante necesitaría la capacidad de ordenar al sistema que arranque desde una fuente HTTP, lo que podría implicar comprometer un servidor o ejecutar un ataque de intermediario. Luego, para explotarlo, el atacante tendría que superar varios obstáculos, como obtener acceso físico al dispositivo o control administrativo; No está fuera de lo posible, especialmente si el atacante ya ha traspasado el perímetro de la red.
Entonces, ¿qué tan malo es realmente? Como dijo Garrett Ars Técnica.
En teoría, esto no debería darle a un atacante la capacidad de comprometer el firmware en sí, pero en realidad, les da ejecución de código antes de ExitBootServices (la transferencia entre el firmware que aún ejecuta el hardware y el sistema operativo se hace cargo), y eso significa una superficie de ataque mucho mayor contra el firmware; la suposición habitual es que solo se ejecuta código confiable antes de ExitBootServices. Creo que esto todavía se llamaría kit de arranque: es capaz de modificar el gestor de arranque y el kernel del sistema operativo antes de la ejecución. Pero no sería completamente persistente (si limpias el disco, desaparecerá).
El Base de datos nacional de vulnerabilidad (NVD)que piensa que es horrible, primero asignado la vulnerabilidad obtuvo una calificación cercana a la máxima en el Sistema de puntuación de vulnerabilidad común (CVSS) de 9,8.
También: Seguridad en Linux: ¿Qué es sudo y por qué es tan importante?
sombrero rojo, que mantiene la cuña, adopta una visión más sensata. La potencia de Linux ofrece CVE-2023-40547 una puntuación de 8,3 – Eso sigue siendo malo, pero no terrible.
¿Por qué una puntuación tan alta si es difícil de lograr? Shim se encuentra prácticamente en todas las distribuciones de Linux y lo ha estado durante más de una década. Son muchos objetivos potenciales.
Para solucionarlo, querrás parchear cuñas en todos sus sistemas Linux. O, si nunca inicia desde una red, puede simplemente desactivar la opción de inicio de red. Eso también funcionaría.