Des chercheurs de l'entreprise Aqua Security ont mis en évidence la possibilité d'attaques contre les utilisateurs de la distribution Ubuntu, en utilisant les particularités de l'implémentation du gestionnaire « command-not-found », qui fournit une suggestion lors de la tentative de lancement d'un programme absent du système. Le problème est que lors de l'évaluation des commandes à exécuter qui ne sont pas présentes sur le système, « command-not-found » utilise pour choisir ses recommandations non seulement les paquets des dépôts officiels, mais également les paquets snap provenant du répertoire snapcraft.io.
Lors de la formulation d'une recommandation basée sur le contenu du répertoire snapcraft.io, le gestionnaire « command-not-found » ne prend pas en compte le statut des paquets et inclut des paquets ajoutés au répertoire par des utilisateurs non vérifiés. Ainsi, un attaquant peut publier sur snapcraft.io un paquet contenant un contenu malveillant caché, et portant un nom se chevauchant avec des paquets DEB existants, de programmes initialement absents du dépôt ou d'applications fictives dont les noms reflètent des fautes de frappe typiques que les utilisateurs font en saisissant des noms d'outils populaires.
Par exemple, des paquets « tracert » et « tcpdamp » peuvent être publiés dans l'espoir que l'utilisateur fasse une erreur en saisissant les noms des utilitaires « traceroute » et « tcpdump », et que « command-not-found » recommande d'installer les paquets malveillants publiés sur snapcraft.io par l'attaquant. L'utilisateur peut ne pas voir la supercherie et penser que le système recommande uniquement des paquets vérifiés. L'attaquant peut également publier sur snapcraft.io un paquet dont le nom se chevauche avec des paquets deb existants, et dans ce cas, « command-not-found » émettra deux recommandations pour l'installation de deb et snap, et l'utilisateur pourrait choisir snap, le considérant comme plus sécurisé ou tenté par une version plus récente.

Les applications au format snap, pour lesquelles snapcraft.io autorise une révision automatique, ne peuvent s'exécuter que dans un environnement isolé (les paquets snap sans isolation ne sont publiés que après révision manuelle). Il peut suffire à un attaquant d'exécuter dans un environnement isolé avec accès au réseau, par exemple pour miner des cryptomonnaies, réaliser des attaques DDoS ou envoyer des spams.
Un attaquant peut également utiliser des méthodes dans les paquets malveillants pour contourner l'isolation, telles que l'exploitation de vulnérabilités non corrigées dans le noyau et les mécanismes d'isolation, l'utilisation des interfaces snap pour accéder à des ressources externes (pour l'enregistrement caché de l'audio et de la vidéo), ou la capture des saisies au clavier lors de l'utilisation du protocole X11 (pour créer des keyloggers fonctionnant dans un environnement sandbox).
Source : opennet.ru
