Introducción
- El ingeniero de seguridad RyotaK de Flatt Security Inc. descubrió una vulnerabilidad de seguridad en el proceso de actualización de firmware de OpenWrt.
- OpenWrt es un firmware basado en Linux para dispositivos embebidos, especialmente popular en routers.
sysupgrade.openwrt.org
sysupgrade.openwrt.org es un servicio en línea que permite a los usuarios seleccionar los paquetes que desean para generar una nueva imagen de firmware.
- Pueden surgir problemas de seguridad en el proceso de compilar imágenes con código fuente proporcionado por el usuario.
Inyección de comandos
- El servidor
sysupgrade.openwrt.org es un proyecto de código abierto, y su código fuente está alojado en openwrt/asu.
- El servidor aísla el entorno de compilación usando contenedores, pero se descubrió una vulnerabilidad que permite ejecutar comandos arbitrarios mediante la entrada del usuario.
Colisión de SHA-256
- En el proceso de generar el hash de una solicitud, el hash SHA-256 se usaba truncado a 12 caracteres.
- Mediante una colisión de hash, era posible engañar al servidor para que devolviera artefactos de compilación incorrectos.
Fuerza bruta de SHA-256
- Se implementó un programa para hacer fuerza bruta de hashes en GPU usando OpenCL, pero el rendimiento no fue bueno.
- Se logró encontrar una colisión de 12 caracteres usando Hashcat.
Combinación de los dos ataques
- El ataque se llevó a cabo encontrando una carga de inyección de comandos con el mismo hash que una lista legítima de paquetes.
- Un atacante podía forzar a los usuarios a actualizar a un firmware malicioso.
Reporte del problema
- Después de reportar el problema al equipo de OpenWrt, el servicio fue suspendido temporalmente y corregido rápidamente.
- Se publicó un aviso para que los usuarios verificaran que sus dispositivos no hubieran sido comprometidos.
Conclusión
- Fue posible comprometer el servicio
sysupgrade.openwrt.org mediante inyección de comandos y una colisión de SHA-256.
- Se agradece la rápida respuesta del equipo de OpenWrt y que informaran a los usuarios con prontitud.
Anuncio
- Flatt Security ofrece servicios de evaluación de seguridad y pruebas de penetración, y ofrece un descuento especial para celebrar la actualización de su nueva página web.
- También ofrece una potente herramienta de evaluación de seguridad llamada Shisho Cloud.
1 comentarios
Opiniones de Hacker News
La normalización de la ejecución de código ajustado a usuarios o dispositivos específicos no tiene posibilidad de verificación, y existe la vulnerabilidad de no poder confirmar que no se haya generado una compilación con backdoor
El uso de
.joinpuede ser riesgosoEl código abierto no puede competir con el código cerrado de nivel empresarial
El término "cadena de suministro" no aparece en la publicación del blog
Las herramientas de código abierto fueron adaptadas para un propósito distinto al original
Da curiosidad cómo surgió la idea de truncar el hash
Sorprende que se necesite tanta potencia de GPU para encontrar colisiones cortas
Se nota de inmediato que la longitud del hash fue recortada a 12 caracteres de 64
Hay una pregunta sobre por qué el rendimiento de hashcat varía tanto según el orden de los argumentos
Es un gran texto sobre una lectura de código y un desarrollo de exploit muy ingeniosos