Una falla lógica entre el sistema de sugerencia de paquetes de ‘comando no encontrado’ de Ubuntu y el repositorio de paquetes instantáneos podría permitir a los atacantes promocionar paquetes de Linux maliciosos entre usuarios desprevenidos.
El problema surge de la capacidad de la utilidad para sugerir paquetes instantáneos para la instalación cuando faltan sin un mecanismo de validación para garantizar que los paquetes sean auténticos y seguros.
La laguna jurídica fue descubierta por investigadores de Aqua Nautilus que descubrieron que aproximadamente el 26% de los comandos de los paquetes Advanced Package Tool (APT) corren el riesgo de ser suplantados por paquetes snap maliciosos, lo que presenta un riesgo significativo en la cadena de suministro para Linux y el Subsistema de Windows para Linux (WSL). usuarios.
Cabe señalar que si bien el informe de Aqua Nautilus se centra en Ubuntu, el problema tiene implicaciones más amplias que se extienden más allá de la popular distribución de Linux.
Por ejemplo, cualquier bifurcación de Ubuntu o distribución de Linux que utilice la utilidad “comando no encontrado” de forma predeterminada, junto con el sistema de paquetes Snap, también son vulnerables.
Falta de Controles en Todos los Pasos
La utilidad ‘comando no encontrado’ es un script de Python que sugiere paquetes para instalar para permitirle ejecutar un programa específico que no está instalado actualmente.
Por ejemplo, si desea ejecutar mojo, pero el programa no está instalado, el script de comando no encontrado recomendará paquetes para instalar para que pueda usar el comando.
Sin embargo, su seguridad presupone que se ha realizado la debida diligencia en los niveles inferiores de la cadena de suministro para garantizar que los paquetes que sugiere la empresa de servicios públicos sean seguros de instalar.
El mecanismo de sugerencias de la utilidad se basa en una base de datos interna para paquetes APT y una base de datos actualizada periódicamente desde Snap Store para paquetes Snap, lo que permite correlacionar comandos con paquetes.
Como explica Aqua Nautilus, es relativamente fácil para los atacantes publicar instantáneas maliciosas en Snap Store, dada la falta de procesos de revisión estrictos en comparación con los paquetes APT.
Los paquetes Snap se pueden publicar como “estrictos” o “clásicos”, el primero limita el software a un entorno aislado y el segundo proporciona acceso sin restricciones, al igual que los paquetes APT.
Los atacantes pueden correr el riesgo de publicar sus aplicaciones malas como “clásicas”. Sin embargo, estos requieren una revisión manual antes de ser aprobados, y las posibilidades de superar esas revisiones si la funcionalidad maliciosa se oculta adecuadamente son altas.
Los investigadores dicen que incluso las instantáneas “estrictas” son extremadamente riesgosas, ya que pueden abusar de la opción de usar “interfaces” para una interacción extensa con recursos externos o el servidor de visualización del sistema host, especialmente cuando se usa X11 , lo que potencialmente permite escuchar otras aplicaciones y realizar registros de teclas.
Además, los analistas de Aqua destacan el riesgo de abusar de la función de actualización automática de los paquetes instantáneos para ofrecer exploits “nuevos” en un sistema comprometido que apunta a fallas recién descubiertas.
Un ejemplo pertinente de este riesgo son los fallos del kernel de Linux. Dado que los paquetes snap comparten el mismo núcleo del sistema que todo el software que se ejecuta en el sistema, potencialmente pueden explotar una falla para escapar del entorno limitado.
Riesgos de Okupación Tipográfica y Suplantación de Identidad
Todo lo anterior sienta las bases para una situación de riesgo siempre que los atacantes encuentren una manera de promocionar sus paquetes a través de la utilidad “comando no encontrado”, pero como explican los analistas, también hay un margen cómodo para eso.
El primer truco, y el más sencillo, consiste en asociar comandos que contienen errores tipográficos (por ejemplo, ‘ifconfigg’ en lugar de ‘ifconfig’) con paquetes instantáneos maliciosos, lo que hace que la utilidad ‘comando no encontrado’ sugiera la instalación de malware al usuario. quien es poco probable que se dé cuenta de su error tipográfico en ese momento.
El segundo método implica que los atacantes identifiquen y registren nombres instantáneos no reclamados que los usuarios podrían esperar que existan, a menudo porque corresponden a comandos o alias conocidos.
“Si un desarrollador desea que su snap ejecute un comando que se desvía del
“Dicha solicitud inicia un proceso de revisión manual en el que se vota el alias solicitado para garantizar que se alinea con la solicitud”.
Sin embargo, si los desarrolladores no registran un complemento real con este alias, un actor de amenazas puede cargar sus propios paquetes con ese nombre, que luego será sugerido por la herramienta de comando no encontrado.
Este enfoque explota una laguna en el sistema de nombres y alias de las instantáneas, lo que permite la suplantación de software legítimo sin la necesidad de solicitudes de alias, aprovechando nombres no reservados pero predecibles.
El tercer método de ataque implica registrar paquetes snap maliciosos para paquetes APT legítimos para que la utilidad ‘comando no encontrado’ sugiera ambos.
Aqua Nautilus dice que el 26% de los comandos se pueden explotar de esta manera, ya que muchos editores de software legítimos no han reclamado el alias del paquete instantáneo correspondiente para su proyecto, lo que permite a los atacantes el margen de explotación.
Los analistas de seguridad afirman que actualmente se desconoce el volumen de explotación de los problemas mencionados anteriormente, pero han salido a la luz al menos dos casos.
Algunas medidas que se pueden tomar para mitigar los riesgos incluyen que los usuarios verifiquen la autenticidad de los paquetes que están a punto de instalar, que los desarrolladores de Snap que tengan un alias registren nombres similares a sus aplicaciones y que los mantenedores de paquetes APT registren el nombre de Snap asociado para sus aplicaciones.