Vendredi 29 mars 2024, Andres Freund, ingénieur chez Microsoft, a identifié la présence d’une porte dérobée (backdoor) sur le logiciel XZ Utils. Cette porte dérobée a été publiée par la National Vulnerability Database le même jour, sous la référence CVE-2024-3094. Le code malveillant a été détecté par hasard, lors d’une série de mesures lancées sur un serveur qui disposait d’une version infectée : Andres a alors observé un pic de charge processeur sur la bibliothèque liblzma, utilisée par XZ Utils.
XZ Utils, anciennement nommé LZMA Utils, est un outil de compression dont les performances sont en général supérieures à GZIP ou BZip2. XZ est très utilisé par les distributions Linux.
XZ Utils est constitué de xz, outil de compression et décompression, et de liblzma, bibliothèque pouvant être chargée par d’autres outils pour travailler avec le format lzma.
La CVE référencée CVE-2024-3094 est une vulnérabilité critique, qui permet à un attaquant d’exécuter des commandes à distance sur une machine affectée.
Cette vulnérabilité est une porte dérobée, c’est-à-dire qu’il s’agit d’un morceau de code malveillant introduit dans le code de XZ Utils, par des développeurs souhaitant réaliser une attaque informatique. Ce type de vulnérabilité entre dans la famille des attaques sur la chaîne de développement (ou supply chain), dans le mesure où la CVE-2024-3094 a été insérée dans le code du projet XZ Utils via les processus de développement en Open Source.
Autrement dit, la CVE-2024-3094 est liée à une insertion volontaire de code malveillant, de la part d’attaquants, dans le projet XZ Utils.
Fort heureusement, la vulnérabilité a été détectée rapidement, avant que le code malveillant n’entre en production dans la plupart des distributions Linux.
Cette CVE est critique, avec un score de 10/10 d’après Red Hat.
La CVE-2024-3094 repose sur le fait que Debian, SUSE, Fedora, et Kali Linux, font appel aux notifications systemd lors la gestion des connexions SSH entrantes, et que systemd utilise liblzma.
Toute tentative de connexion sur le service SSH d’un serveur vulnérable est alors légèrement plus lente (environ 500ms), en raison de l’exécution du code de la porte dérobée.
D’après Filippo Valsorda, connu pour ses travaux sur la faille Heartbleed :
La capacité du code malveillant à se désactiver en cas d’attaque infructueuse rend difficile la détection de cette vulnérabilité par des scans réseaux, ainsi que son utilisation par des attaquants quelconques.
L’exploitation de la CVE-2024-3094 nécessite de préparer un certificat OpenSSH malveillant, avec des propriétés cryptographiques spécifiques.
En l’état des informations dont nous disposons, il semble que seule l’équipe derrière l’insertion de la porte dérobée dans le code de XZ Utils ne puisse effectivement exploiter cette vulnérabilité.
L’attaque s’est déroulée sur plusieurs années, par le compte GitHub JiaT75 (Jia Tan). Thomas Roccia, ingénieur chez Microsoft, a produit un excellent schéma sur le sujet.
Le code malveillant à l’origine de la CVE-2024-3094 a été détecté avant d’entrer en production sur la plupart des grandes distributions Linux du marché.
En conséquence, les branches de développement comme Debian SID ou Alpine Linux Edge sont les principales versions impactées.
Les systèmes vulnérables sont :
Les distributions non mentionnées dans cette liste ne sont, d’après les informations publiquement disponibles, pas impactées par cette vulnérabilité.
Cyberwatch recommande d’appliquer dans les plus brefs délais les correctifs de sécurité mis à disposition par votre distribution.
De plus, Cyberwatch recommande de vérifier les journaux SSHD pour contrôler toutes les connexions entrantes, voire les journaux systèmes pour contrôler le chargement de la bibliothèque liblzma lors d’une connexion SSH entrante.
Pour les systèmes affectés, le mieux est de partir du principe que le système a été compromis, et de le réinstaller totalement le cas échéant.
Notons également que les distributions de développement comme Fedora Rawhide ou Debian SID ne sont pas recommandées pour les environnements habituels de production.
Vérifiez si vous utilisez l’une des versions de XZ Utils mentionnées plus haut dans cet article.
Les utilisateurs de Cyberwatch Vulnerability Manager peuvent d’ores et déjà détecter cette vulnérabilité depuis le 29 mars 2024. N’hésitez pas à contacter notre équipe pour toute demande d’information.
31/03/2024 à 14h39 GMT+2 : version initiale