La société de sécurité du micrologiciel Binarly a publié un scanner en ligne gratuit pour détecter les exécutables Linux affectés par l’attaque de la chaîne d’approvisionnement XZ Utils, suivi sous le numéro CVE-2024-3094.
CVE-2024-3094 est un compromis de la chaîne d’approvisionnement dans XZ Utils, un ensemble d’outils et de bibliothèques de compression de données utilisés dans de nombreuses distributions Linux majeures.
À la fin du mois dernier, l’ingénieur Microsoft Andres Freud a découvert la porte dérobée dans la dernière version du package XZ Utils en enquêtant sur des connexions SSH inhabituellement lentes sur Debian Sid, une version continue de la distribution Linux.
La porte dérobée a été introduite par un contributeur pseudonyme à la version 5.6.0 de XZ, qui est restée présente dans la version 5.6.1. Cependant, seules quelques distributions et versions Linux suivant une approche de mise à niveau » de pointe » ont été impactées, la plupart utilisant une version antérieure et sécurisée de la bibliothèque.
Suite à la découverte de la porte dérobée, un effort de détection et de correction a été lancé, CISA proposant de rétrograder l’écurie XZ Utils 5.4.6 et de rechercher et signaler toute activité malveillante.
Le scanneur XZ
Binarly dit que l’approche adoptée jusqu’à présent dans les efforts d’atténuation des menaces repose sur de simples vérifications telles que la correspondance des chaînes d’octets, la liste de blocage des hachages de fichiers et les règles YARA, ce qui pourrait conduire à des faux positifs.
Cette approche peut déclencher une fatigue d’alerte importante et n’aide pas à détecter des portes dérobées similaires sur d’autres projets.
Pour résoudre ce problème, Binarly a développé un scanner dédié qui fonctionnerait pour la bibliothèque particulière et tout fichier portant la même porte dérobée.
« Un cadre d’implantation complet aussi complexe et conçu par des professionnels n’est pas développé pour une opération ponctuelle. Il pourrait déjà être déployé ailleurs ou partiellement réutilisé dans d’autres opérations. C’est exactement pourquoi nous avons commencé à nous concentrer sur une détection plus générique de cette porte dérobée complexe. »- Binaire
La méthode de détection de Binarly utilise l’analyse statique des binaires pour identifier la falsification des transitions dans la fonction indirecte GNU (IFUNC).
Plus précisément, le scanner examine les transitions marquées comme suspectes lors de l’implantation de résolveurs IFUNC malveillants. L’attribut IFUNC du compilateur GCC permet aux développeurs de créer plusieurs versions de la même fonction qui sont ensuite sélectionnées au moment de l’exécution en fonction de divers critères, tels que le type de processeur.
« L’une des techniques de base utilisées par la porte dérobée XZ pour obtenir le contrôle initial lors de l’exécution est l’attribut GNU Indirect Function (ifunc) du compilateur GCC pour résoudre les appels de fonction indirects au moment de l’exécution », explique Binarly.
« Le code de porte dérobée implanté intercepte ou accroche initialement l’exécution.
« Il modifie les appels ifunc pour remplacer une vérification « is_arch_extension_supported » qui devrait simplement invoquer « cpuid » pour insérer un appel à « _get_cpuid » qui est exporté par le fichier objet de charge utile (c’est-à-dire liblzma_la-crc64-fast.o) et qui appelle _get_cpuid () mal formé qui est implanté dans le code illustré dans la figure ci-dessous. »
La porte dérobée exploite ce mécanisme en modifiant les appels IFUNC pour intercepter ou accrocher l’exécution, entraînant l’insertion de code malveillant.
Binary scanner augmente la détection en recherchant divers points de la chaîne d’approvisionnement au-delà du simple projet XZ Utils, et les résultats sont beaucoup plus fiables.
« Cette détection est basée sur une analyse comportementale et peut détecter automatiquement toutes les variantes si une porte dérobée similaire est implantée ailleurs », a déclaré Alex Matrosov, chercheur principal en sécurité et PDG de Binarly, à Breachtrace.
« Même après la recompilation ou les modifications de code, nous le détecterons », a ajouté Matrosov à Breachtrace.
Le scanner de porte dérobée est disponible en ligne sur xz.échec, où les gens peuvent télécharger leurs fichiers binaires pour des vérifications gratuites illimitées.