La seguridad siempre ha sido una prioridad máxima, especialmente en sistemas operativos ampliamente utilizados como Ubuntu. Recientemente, se ha descubierto una vulnerabilidad preocupante que podría poner en peligro a millones de usuarios. El aparentemente inofensivo mecanismo de "Command Not Found" en Ubuntu, una herramienta diseñada para ayudar a los usuarios a instalar programas que intentan ejecutar pero no están instalados, se ha revelado como un potencial vector de ataque para la difusión de malware.
Entendiendo el "Command Not Found"
Para comenzar, es esencial entender qué es el "Command Not Found". En Ubuntu, cuando intentas ejecutar un comando que no está instalado en tu sistema, la herramienta "Command Not Found" sugiere automáticamente el paquete que debes instalar para obtener el comando deseado. Por ejemplo, si intentas usar "vim" y no está instalado, recibirás una sugerencia para instalarlo mediante un comando específico.
Te podrá interesar: Falla glibc en Linux da acceso root a atacantes
La Vulnerabilidad Descubierta
Una vulnerabilidad entre el sistema de sugerencias de paquetes "Command Not Found" de Ubuntu y su repositorio de snaps podría exponer a los usuarios a malware Linux. Esta brecha se debe a que la utilidad sugiere la instalación de snaps sin verificar su autenticidad o seguridad.
Investigadores revelaron que cerca del 26% de los comandos en el repositorio de paquetes Advanced Package Tool (APT) podrían ser falsificados por snaps maliciosos. Esto representa un riesgo considerable para la seguridad en la cadena de suministro de Linux y los usuarios del Subsistema de Windows para Linux (WSL).
El informe, aunque enfocado en Ubuntu, subraya un problema con ramificaciones más allá de esta distribución. Cualquier versión derivada de Ubuntu o distribución Linux que emplee la utilidad "Command Not Found" y snaps por defecto también se encuentra en riesgo.
Insuficiencia de medidas de seguridad en todas las etapas
Existe una preocupación significativa por la falta de medidas de seguridad en diversas etapas del proceso. La utilidad "Command Not Found", un script de Python, sugiere paquetes para instalar y habilitar la ejecución de programas específicos no presentes en el sistema.
Tomemos, por ejemplo, el intento de ejecutar "mojo" sin tenerlo instalado; este script sugerirá paquetes para su instalación y uso posterior. No obstante, se asume implícitamente que se han efectuado verificaciones de seguridad adecuadas en etapas previas de la cadena de suministro para los paquetes recomendados.
Recomendación para instalar el paquete (Aqua Nautilus)
El sistema de sugerencias se apoya en una base de datos interna para paquetes APT y otra actualizada regularmente desde Snap Store para paquetes Snap, estableciendo correlaciones entre comandos y paquetes disponibles.
Sin embargo, se ha identificado que es relativamente sencillo para actores malintencionados publicar snaps perjudiciales en la Snap Store, principalmente debido a la ausencia de rigurosos procedimientos de revisión, especialmente en comparación con los paquetes APT.
Los snaps pueden publicarse como "estrictos", limitando el software a un entorno aislado, o "clásicos", ofreciendo acceso completo similar a los paquetes APT. Los hackers podrían intentar publicar aplicaciones dañinas como "clásicas". Aunque estos requieren una revisión manual antes de su aprobación, las probabilidades de pasar dichas revisiones son elevadas si la funcionalidad maliciosa se camufla efectivamente.
Se ha señalado que incluso los snaps "estrictos" presentan grandes riesgos, ya que pueden abusar de las "interfaces" para interactuar ampliamente con recursos externos o con el servidor de visualización del sistema host, especialmente bajo X11, lo que podría permitirles espiar otras aplicaciones y realizar keylogging.
Además, se resalta el peligro de explotar la función de actualización automática de los snaps para introducir explotaciones "nuevas" en sistemas ya comprometidos, dirigidas a vulnerabilidades recién descubiertas.
Un caso relevante de este riesgo son las vulnerabilidades del kernel de Linux. Dado que los snaps comparten el mismo kernel que todo el software en el sistema, podrían aprovechar estas vulnerabilidades para salir de su entorno restringido.
Conoce más sobre: Prevención de Keylogging: Una Amenaza Silenciosa
Riesgos de errores tipográficos y suplantación de identidad
Estas circunstancias crean un entorno propicio para que los atacantes promuevan sus paquetes maliciosos a través de la utilidad "Command Not Found". Existe un margen significativo para explotar esta situación, como se detalla a continuación.
Una estrategia simple implica vincular comandos con errores ortográficos (por ejemplo, 'ifconfigg' en lugar de 'ifconfig') a paquetes snap malintencionados. De esta manera, la utilidad "Command Not Found" podría sugerir la instalación de malware al usuario, quien posiblemente no note el error tipográfico.
Otro método consiste en que los atacantes registren nombres de snaps aún disponibles que los usuarios podrían esperar que existan, especialmente si se asocian con comandos o alias conocidos.
"Para que un snap ejecute un comando que no sigue el formato <nombre_del_snap>.<nombre_de_la_aplicación> y sea simplemente <nombre_del_snap>, es necesario solicitar un alias", señalan los investigadores.
Esta solicitud desencadena una revisión manual donde se vota por el alias propuesto para asegurar su congruencia con la solicitud. Sin embargo, si los desarrolladores no aseguran un snap real con este alias, un agente malicioso puede subir sus propios paquetes bajo ese nombre, los cuales serán sugeridos por la herramienta de comando no encontrado.
Este método aprovecha una brecha en el sistema de nombres y alias de los snaps, permitiendo la suplantación de software legítimo sin necesidad de solicitar alias, simplemente usando nombres no reservados pero predecibles.
Un tercer enfoque implica registrar snaps maliciosos bajo nombres de paquetes APT legítimos, haciendo que la utilidad "Command Not Found" sugiera ambos.
Se menciona que el 26% de los comandos pueden ser objeto de este tipo de explotación, dado que muchos editores de software legítimo aún no han asegurado el alias de snap correspondiente para su proyecto, dejando un margen para la explotación.
Aunque el alcance real de la explotación de estas vulnerabilidades aún no se conoce completamente, se han documentado al menos dos instancias específicas.
Entre las medidas de mitigación recomendadas, se sugiere que los usuarios verifiquen la autenticidad de los paquetes que están a punto de instalar, que los desarrolladores de snaps aseguren nombres similares para sus aplicaciones y que los responsables de paquetes APT registren los nombres de snap asociados a sus comandos.
Conoce más sobre: Seguridad en Desarrollo de Software: Compromiso Obligatorio
Conclusión
La reciente revelación de cómo la herramienta "Command Not Found" en Ubuntu puede ser explotada para difundir malware sirve como un recordatorio crítico de la importancia de la seguridad informática. Esta vulnerabilidad destaca la necesidad de un enfoque proactivo hacia la seguridad, donde la prevención, la educación y la actualización constante juegan roles fundamentales en la protección contra amenazas.
Al seguir las recomendaciones de seguridad y mantenerse alerta a las prácticas sospechosas, los usuarios pueden ayudar a salvaguardar sus sistemas contra este tipo de ataques y contribuir a un ecosistema digital más seguro para todos.