Panique ! à la distro : Une étude sur la prévention des logiciels malveillants dans les distributions Linux
TL;DR - D'après les entretiens, la plupart des distributions Linux n'analysent pas leurs dépôts de manière proactive pour détecter les logiciels malveillants. Un nouvel ensemble de données de référence sur les paquets Linux malveillants révèle que l'une des raisons est que les outils de détection des logiciels malveillants dans les paquets Linux génèrent le plus souvent des faux positifs.
Les attaques contre les utilisateurs de dépôts de logiciels libres sont de plus en plus préoccupantes. Ces attaques visent généralement les utilisateurs de dépôts spécifiques à un langage de programmation, comme le Python Package Index ou npm. Si ces attaques sont importantes, il n'en reste pas moins que ces référentiels sont sans doute "non sécurisés". Toute personne disposant d'une adresse électronique peut télécharger du code dans ces référentiels. C'est un libre accès pour tous, de par sa conception.
Mais après la révélation de la porte dérobée XZ Utils, l'inquiétude s'est transformée en crise de panique. Il s'agissait d'une attaque contre un projet qui était intégré dans de nombreuses distributions Linux, des dépôts de logiciels qui sont "curatés" avec soin. N'importe qui ne peut pas télécharger du code dans ces dépôts. Il est donc troublant que l'un des responsables ait pu glisser un code malveillant dans le projet en amont lui-même. En outre, l'attaque de XZ Utils, si elle était passée inaperçue plus longtemps, aurait fourni à l'attaquant, selon un observateur, un "passe-partout" pour l'internet. XZ Utils n'était donc pas une simple attaque de plus contre la chaîne d'approvisionnement en logiciels libres.
Cette attaque nous a donc amenés à poser deux questions de recherche : (1) Quelles mesures les responsables des distributions Linux ont-ils mises en œuvre ou envisagé de mettre en œuvre pour contrer les logiciels malveillants ? (2) Quelle est l'efficacité des outils actuels de détection des logiciels malveillants pour identifier les paquets Linux malveillants ?
Pour répondre à ces questions, nous avons interrogé les responsables de plusieurs grandes distributions Linux et créé un ensemble de données de référence sur les logiciels malveillants dans les paquets Linux. Voici ce que nous avons découvert :
Constatation n° 1 : Selon les entretiens, les responsables des distributions se sont jusqu'à présent surtout concentrés sur des constructions reproductibles. Nos entretiens ont permis d'identifier que Wolfi OS est une exception dans son utilisation de la recherche active de logiciels malveillants.
Résultat #2 : En utilisant un nouvel ensemble de données de référence, nous avons évalué les performances de six détecteurs de paquets linux malveillants open-source. L'évaluation a révélé que les performances des scanners de logiciels malveillants open-source existants sont décevantes. La plupart des outils étudiés excellent dans la production de faux positifs. Ceux qui évitent des taux élevés de faux positifs le font souvent au détriment d'un taux satisfaisant de vrais positifs.
Nos résultats, qui peuvent être consultés sur arXiv, visent à stimuler le débat sur le rôle de l'analyse active des logiciels malveillants dans les dépôts des distributions Linux et à fournir un ensemble de données permettant d'évaluer les outils existants et nouveaux de détection des paquets linux malveillants.
Que font les distributeurs Linux pour prévenir les logiciels malveillants ?
Nous avons interrogé sept membres de cinq distributions Linux différentes : Alpine, Arch, Debian, Ubuntu et Wolfi. Deux personnes interrogées étaient associées à Debian et deux à Arch. Quatre de ces cinq distributions existent depuis longtemps et sont largement utilisées. Wolfi, la distribution relativement récente de Chainguard, est la seule exception.
Non. | Distro | Années d'expérience |
|---|---|---|
1 | Alpin | 20 |
2 | Arche | 8 |
3 | Arche | 7 |
4 | Debian | 20 |
5 | Debian | 25 |
6 | Ubuntu | 2 |
7 | Wolfi | 2 |
Voici ce que nous avons trouvé :
Intérêt pour les constructions reproductibles et la signature
Les responsables ont généralement mentionné deux types d'activités préexistantes de lutte contre les logiciels malveillants. Tout d'abord, plusieurs responsables ont mentionné le projet Reproducible Builds et leurs propres efforts, ou ceux de leurs collègues, pour augmenter le nombre de paquets reproductibles dans chaque distribution. Deuxièmement, les responsables ont aussi généralement mentionné des approches "cryptographiques" consistant à s'assurer que les paquets ont été signés, bien que les participants aient également fait remarquer que la signature des paquets n'est qu'un moyen de défense partiel pour contrer un attaquant désireux d'insérer des logiciels malveillants.
Les responsables de la maintenance n'ont pas envisagé sérieusement l'utilisation d'outils d'analyse des logiciels malveillants.
Avant l'attaque de XZ Utils, les responsables de la maintenance n'avaient pas envisagé sérieusement l'utilisation d'outils d'analyse des logiciels malveillants. En outre, même après l'attaque de XZ Utils, l'idée suscite un scepticisme général, principalement en raison du coût perçu de l'utilisation de scanners de qualité commerciale et de la question de savoir qui assumerait la responsabilité des frais généraux liés à l'examen des alertes. Même les mainteneurs qui expriment une certaine ouverture à l'égard d'une telle approche ne savent pas exactement par où commencer.
Wolfi est la seule distribution à effectuer une analyse proactive des logiciels malveillants.
Seule une distribution Linux, Wolfi de Chainguard, a adopté l'analyse proactive des programmes malveillants. L'équipe de sécurité associée à Wolfi a développé et publié un outil open-source appelé malcontent qui est déployé en production au sein de Wolfi. Malcontent est utilisé pour générer des alertes à chaque nouvelle mise à jour de Wolfi. La différence entre les alertes de chaque version du paquet est analysée ; les nouvelles alertes élevées ou critiques sont signalées pour examen, ce qui bloque les mises à jour du paquet jusqu'à ce que l'alerte soit jugée bénigne.
Quelles sont les performances des scanners de logiciels malveillants pour les paquets Linux existants ?
L'équipe de recherche a créé six ensembles de données distincts de logiciels malveillants afin d'évaluer six outils de détection de logiciels malveillants sous Linux. Le tableau 2 énumère les six outils de détection de paquets Linux malveillants à source ouverte qui ont été évalués. Les outils à code source fermé ont été exclus de cette analyse.
Outil de détection de logiciels malveillants | Source ouverte | Détection de logiciels malveillants | Prise en charge multilingue | Règles de détection disponibles | Capacité d'analyse |
|---|---|---|---|---|---|
Bandit4mal | ✔ | ✔ | ✔ | ||
Malcontent | ✔ | ✔ | ✔ | ✔ | ✔ |
Oss-Detect-Backdoor (ODB) | ✔ | ✔ | ✔ | ✔ | |
Packj | ✔ | ✔ | ✔ | ✔ | |
VirusTotal | ✔ | ✔ | |||
capslock | ✔ | ✔ |
Pour constituer un ensemble de données complet, nous avons sélectionné un ensemble d'exemples bénins provenant de l'écosystème Wolfi OS. L'analyse suppose que chaque paquet déjà présent dans Wolfi est bénin. Au total, 1 866 projets Wolfi ont été sélectionnés, couvrant les langages de programmation Python, JavaScript, Ruby et C. Voir l'article arXiv pour des détails méthodologiques approfondis.
Nom de l'ensemble de données | Type | Description | # Échantillons |
|---|---|---|---|
Ensemble de données n° 1 | Source tarballs | Échantillons historiques de codes source ouverts malveillants | 30 |
Ensemble de données n° 2 | APK | Exemples historiques de binaires Linux malveillants | 30 |
Ensemble de données n° 3 | Source tarballs | Exemples synthétiques de codes source ouverts malveillants | 30 |
Ensemble de données n° 4 | APK | Exemples synthétiques de binaires Linux ouverts | 30 |
Ensemble de données n° 5 | APK | Exemple synthétique de code source Linux malveillant transformé en APK | 10 |
Dataset #6 | APK | Exemples synthétiques au fil du temps Golang Malware | 10 |
Wolfi Upstream | Source tarballs | Upstream repositories of Wolfi APKs | 1866 |
Wolfi APKs | APK | Wolfi APKs | 1652 |
En utilisant ce nouvel ensemble de données de référence, l'évaluation a permis de constater que les performances des systèmes existants étaient inférieures à celles des systèmes existants, ce qui a eu pour effet de réduire les risques de piratage, l'évaluation a montré que les performances des scanners de logiciels malveillants open source existants étaient décevantes. Plus précisément, ces scanners produisent souvent un nombre important de faux positifs et ne détectent généralement pas les logiciels malveillants. La figure 1 présente des courbes "ROC" détaillées pour différents outils dans différents ensembles de données.

La figure 1 montre que parmi les outils de détection de logiciels malveillants, VirusTotal s'est avéré l'outil le plus fiable, avec une grande précision dans la détection des fichiers malveillants et bénins. Bandit4Mal a fait preuve d'une grande sensibilité, mais a eu de nombreux faux positifs. Malcontent a fait preuve d'une précision moyenne, mais d'une précision moindre, et a souvent étiqueté à tort des fichiers bénins comme étant malveillants. ODB et Packj étaient sensibles mais doivent être optimisés pour réduire les erreurs.
Conclusions
La prévention des logiciels malveillants est une préoccupation de plus en plus importante pour les distributions Linux et leurs mainteneurs. Les entretiens que nous avons menés nous ont permis de constater que la plupart des distributions Linux, à l'exception de Wolfi, n'effectuent pas de recherche active de logiciels malveillants. De plus, en construisant un ensemble de données de référence sur les logiciels malveillants des paquets Linux et en les analysant avec des scanners de logiciels malveillants existants, nous avons constaté que ces outils affichent des taux élevés de faux positifs et peinent à identifier avec précision les logiciels malveillants. Par conséquent, il est peu probable que ces outils soient largement adoptés par d'autres distributions Linux et qu'ils frustrent les responsables qui tentent de les utiliser, si aucune amélioration n'est apportée.
Nous espérons que la prochaine fois que la personne ou le groupe (ou même la machine) à l'origine de l'attaque XZ Utils tentera d'ouvrir une porte dérobée sur un projet open-source populaire, ces outils, leurs versions améliorées ou des outils entièrement nouveaux détecteront l'attaque si rapidement qu'elle deviendra un non-événement et n'attirera pas l'attention des médias. Espérons-le.
Si vous souhaitez en savoir plus sur nos résultats ou sur les orientations futures proposées, veuillez consulter notre article sur arXiv.
Share this article
Articles connexes
- research
Engineers Want to Build, Not Maintain: Key Findings From Our 2026 Engineering Reality Report
Dustin Kirkland, SVP of Engineering
- research
The Hidden Costs of CVEs — And the Value You’re Leaving on the Table
Ed Sawma, VP of Product Marketing
- research
Mitigating malware in the python ecosystem with Chainguard Libraries
Aaditya Jain, Senior Product Marketing Manager
- research
Why AI developers are grumpy about containers
John Speed Meyers, Head of Chainguard Labs, and Dan Fernandez, Staff Product Manager
- research
FuzzSlice: Separating real CVEs from fakes through fuzzing
Aniruddhan Murali, Chainguard Labs Research Intern
- research
ChainGPT: Exploring open source projects with LLM agents
Paul Gibert, Chainguard Researcher