Introduction

XZ Utils est un ensemble d’utilitaires de compression open source permettant de compresser et de décompresser des fichiers à l’aide de l’algorithme LZMA, connu pour son taux de compression élevé sans perte. XZ Utils est connu pour compresser les archives tar (tarballs), les packages logiciel, les images du noyau et les images initramfs (initial ram file system). Il est privilégié pour réduire considérablement la taille des fichiers tout en préservant l’intégrité des données. Cet utilitaire est si largement utilisé qu’il est généralement préinstallé sur la plupart des systèmes Linux et macOS, le rendant ainsi facilement disponible pour les utilisateurs sans étapes d’installation supplémentaires.

Swachchhanda Shrawan Poudel
Swachchhanda Shrawan Poudel

Security Research

Contexte

Andres Freund, ingénieur Microsoft et développeur PostgreSQL, vaquait à ses occupations comme d’habitude, lorsqu'il a remarqué un certain décalage dans sa connexion SSH. Après investigation, il a observé que les processus sshd utilisaient une quantité inhabituellement élevée de CPU. Ce constat l'a incité à scruter de plus près sshd, et il a découvert qu'un temps CPU excessif était utilisé par liblzma. Une investigation plus approfondie a permis de découvrir une backdoor dans xz/liblzma. Il a ensuite envoyé ses conclusions par email à oss-security vendredi 29 mars 2024.

La communauté de la cybersécurité a très rapidement réagi lorsque cette backdoor a été découverte dans les versions les plus récentes, 5.6.0 et 5.6.1, de XZ Utils. Cet incident a été identifié comme une attaque de la supply chain, où un compte GitHub, géré par Jia Tan (également connu sous le nom de Jia Cheong Tan ou JiaT75), avait diffusé des packages malveillants et réussi à les fusionner dans la bibliothèque open source xz/liblzma. Suite à cette révélation, le numéro CVE-2024-3094 a été attribué à cette backdoor, avec un score CVSS de 10, indiquant la gravité de cette vulnérabilité qui peut effectivement permettre une exécution de code à distance.

Le compte GitHub a été créé en 2021 et a contribué au projet XZ il y a près de deux ans maintenant. Il a progressivement construit sa crédibilité au sein de la communauté jusqu'à ce qu'on lui confie des responsabilités en matière de maintenance. Selon Hackernews, grâce à une ingénierie sociale astucieuse supplémentaire, on soupçonne que des comptes sockpuppet tels que Jigar Kumar et Dennis Ens ont été utilisés pour soumettre des demandes de fonctionnalités et signaler divers problèmes dans le logiciel. Cette stratégie visait à obliger le responsable initial du projet Tukaani, Lasse Collin, à nommer un nouveau co-responsable du référentiel. En 2023, Jia Tan a implémenté une série de modifications dans XZ Utils, qui ont finalement été intégrées dans la version 5.6.0 en février 2024. Inconnues de la communauté, ces modifications cachaient en réalité une backdoor sophistiquée. Pendant le processus build, le système build xz a inclus la backdoor dans la bibliothèque liblzma. Cette dernière a été diffusée via le binaire des packages RPM ou DEB pour l'architecture x86-64. Essentiellement, le code malveillant était intégré dans la bibliothèque de compression XZ elle-même.

Thomas Roccia a partagé un graphique sur le cas XZ via la plateforme X, proposant une introduction, un résumé de l'activité GitHub concernant plus spécifiquement l'activité des utilisateurs JiaT75 sur le dépôt xz et des détails sur la backdoor, illustrés ci-dessous.

Le cas XZ (Reference)

Quelles distributions sont affectées ?

Diverses distributions Linux et MacOS sont sensibles à cette vulnérabilité si les conditions suivantes s'appliquent à votre système :

  • Vous utilisez une distribution qui s'appuie sur glibc (pour IFUNC).
  • Vous disposez des versions 5.6.0 ou 5.6.1 de xz ou liblzma installées (xz-utils inclut la bibliothèque liblzma), ce qui est généralement le cas des utilisateurs qui mettent régulièrement à jour leurs distributions en mode rolling-release (publication continue).

La certitude concernant la vulnérabilité ne s'étendait actuellement qu'à la combinaison de systemd et d'OpenSSH corrigé. Le statut reste confidentiel au sein de la communauté, avec une incertitude quant à l'impact de la vulnérabilité sur d'autres configurations.

Selon Brjann Brekkan de Microsoft, plusieurs distributions Linux, dont Fedora, Debian, openSUSE et Kali Linux, ont été affectées par une backdoor découverte dans la bibliothèque XZ Utils. Des mises à jour et des avis sont émis à mesure que la situation évolue. Nous prévoyons d’ailleurs de fournir de plus amples informations sur les distributions supplémentaires concernées ainsi que des mises à jour.

Détection avec Logpoint Converged SIEM

Logpoint Converged SIEM est une plateforme de sécurité complète comprenant des capacités SIEM, SOAR et une solution de sécurité des systèmes endpoint. L'agent natif et léger de Logpoint, AgentX, est conçu pour collecter les logs et la télémétrie des endpoints pour les transmettre ensuite au SIEM. En tirant parti des capacités SOAR, AgentX mène des investigations automatisées en temps réel et des mesures correctives contre les menaces.
L'une des fonctionnalités les plus remarquables offertes par AgentX est Osquery. Si vous utilisez déjà AgentX, vous avez de la chance, car vous pouvez tirer parti de la solution Converged SIEM de Logpoint avec AgentX et Osquery afin d’identifier les systèmes potentiellement vulnérables à CVE-2024-3094 sur votre réseau. Nous avons généré un playbook adapté à ce cas particulier. Grâce à la puissance conjuguée d'AgentX et d'Osquery, ce playbook recherchera les systèmes endpoint Linux susceptibles d'être sensibles à cette vulnérabilité.

Le flux d'exécution de ce playbook commence par l'obtention d'une liste d'agents Linux inscrits dans un AgentX Manager. Par la suite, il interroge chaque machine Linux pour déterminer la version installée de xz/liblzma sur chaque système via OSquery. La version est considérée comme potentiellement vulnérable si elle est identifiée avec le numéro de version 5.6.0 ou 5.6.1. A l’inverse, si la version ne correspond pas, elle n’est probablement pas concernée. Toutes ces informations sont ensuite collectées dans Logpoint, permettant la visualisation via Logpoint Case Management, comme illustré dans cette capture d'écran du cas généré après l'exécution réussie du playbook.

Dans le cas affiché, tous les résultats ont été récupérés et sont accessibles en sélectionnant le bouton « Afficher les données Json (Show Json data) ». Ensuite, une fenêtre flottante contenant les résultats vous sera présentée.

Dans ce cas, nous n’avions qu’un seul agent inscrit dans AgentX. Ainsi, seuls deux résultats pour les packages liblzma5 et xz-utils sont affichés. Leur version s'est également avérée être 5.2.4 (antérieure à 5.6.0), donc non vulnérable, indiquée par la clé « statut », comme observé dans la capture d'écran ci-dessus. Nous revérifions ces informations dans l'agent Linux pour être sûrs de la version de la bibliothèque xz/liblzma.

Pour une expérience visuelle améliorée, la « requête » des détails de l'événement peut être copiée du « Cas » en question vers « Logpoint Search UI ».

« Search UI » offre une vue plus concise et une visibilité améliorée, ce qui est particulièrement avantageux dans les scénarios comportant de nombreux résultats de requête.

De plus, même sans AgentX et Logpoint, la détection de la vulnérabilité CVE-2024-3094 est réalisable via Osquery. La requête SQL fournie par @jamesspi peut être utilisée à cet effet. Cependant, une exécution locale est requise sur chaque machine Linux.

Alternativement, vous pouvez également utiliser cette requête partagée par Bitdefender .

Détection d’exploitation possible

Supposons que Sysmon pour Linux soit installé sur votre ordinateur et que vous collectiez ces logs dans Logpoint, vous pouvez alors utiliser cette règle Sigma pour détecter d'éventuels indicateurs d'exploitation de CVE-2024-3094.

Recommandations

  • Exécutez le playbook « XZ CVE-2024-3094 Network Scan » au niveau de votre entreprise pour détecter les appareils potentiellement vulnérables.
  • Rétrogradez XZ Utils vers une version non compromise telle que « 5.4.6 Stable » une fois que tous les périphériques vulnérables auront été localisés.
  • Si vous utilisez une distribution affectée, procédez comme suit :
    • Fedora 40 : mettez à jour avec la dernière version (5.4.x).
    • Fedora 41 et Rawhide : arrêtez immédiatement de l'utiliser.
    • Debian : mettez à jour avec la dernière version (5.6.1 + really 5.4.5-1).
    • Alpine Edge : mettez à jour avec la dernière version (5.6.1-r2).
    • Kali : mettez à jour avec la dernière version (5.6.1 + really 5.4.5-1).
    • OpenSUSE Tumbleweed : mettez à jour avec la dernière version (en passant de la version 5.6.1.à la version 5.4).
    • Arch Linux : mettez à jour avec la dernière version (5.6.1-2).
  • Supposons qu'une activité post-compromission soit suspectée, telle que la création de nouveaux utilisateurs malgré la mise à niveau de la version XZ. Dans ce cas, la compromission pourrait être plus vaste et plus sophistiquée qu’on ne le pensait initialement. Dans un tel scénario, il est crucial de prendre des mesures globales pour traiter efficacement la situation.
  • Si une version compromise a été téléchargée, il est essentiel de réinitialiser les mots de passe de tous les comptes concernés.
  • Il est essentiel de se tenir au courant des développements en cours liés à la vulnérabilité de la supply chain XZ puisque de nouvelles mises à jour et informations sont publiées régulièrement. Rester informé est essentiel pour garantir qu’aucune information ou avis important ne soit négligé.
  • Ne manquez aucune information importante grâce à nos rapports Emerging Threats Protection, publiés chaque mois par Logpoint. L'examen de ces rapports et l'application des analyses fournies dans votre plateforme Converged SIEM vous permettront d’être toujours à jour et d'améliorer votre sécurité contre les menaces émergentes.