L'importance des SBOM précises dans la sécurité des logiciels
Examiner comment la précision des SBOM affecte la détection des vulnérabilités des logiciels.
Giacomo Benedetti, Serena Cofano, Alessandro Brighente, Mauro Conti
― 8 min lire
Table des matières
La sécurité de la chaîne d'approvisionnement logicielle est un gros souci pour les utilisateurs et les développeurs. Des événements récents ont montré à quel point les effets peuvent être graves quand un logiciel est compromis. Un problème clé, c'est l'utilisation de composants Open-source, sur lesquels de nombreuses applis modernes s'appuient. Pour aider avec ça, le Software Bill of Materials (SBOM) a été introduit pour rendre les composants logiciels plus clairs et plus faciles à vérifier.
Même si les SBOMs sont utiles, ils ont leurs propres problèmes. Les outils qui génèrent des SBOMs font souvent des erreurs en identifiant les parties du logiciel et leurs connexions. Ça peut mener à des informations incomplètes ou fausses sur la chaîne d'approvisionnement logicielle.
Ça soulève une question cruciale : comment ces lacunes affectent-elles la capacité des outils de sécurité à détecter des Vulnérabilités ? Cet article examine l'efficacité des outils de génération de SBOM et propose une nouvelle solution visant à améliorer l'identification des composants logiciels et des Dépendances.
Le besoin de SBOM
Il y a plein de raisons d'utiliser un SBOM. D'abord, ça aide les développeurs et les entreprises à voir exactement quels composants sont dans leur logiciel. Ça veut dire qu'ils peuvent rapidement repérer des vulnérabilités ou des problèmes connus. En plus, avoir un SBOM clair permet une meilleure gestion des licences logicielles et des contrôles de conformité, ce qui facilite la détection et la résolution de problèmes de sécurité.
Les SBOMs sont créés par des outils automatisés qui suivent différents formats, les plus courants étant Software Package Data Exchange (SPDX), CycloneDX et Software Identification (SWID). Ces outils collectent des données sur les composants logiciels pour dresser un tableau complet du logiciel utilisé.
Cependant, les outils qui créent les SBOMs ne fonctionnent souvent pas bien. Beaucoup font des erreurs en identifiant les composants, ce qui mène à des SBOMs inexactes ou incomplètes. Ça peut empêcher un scan de vulnérabilités efficace quand on utilise des outils de sécurité.
Défis actuels
La dépendance au code open-source ajoute une couche de risque supplémentaire. Une étude récente a montré qu'une grande majorité des logiciels utilise des composants open-source, ce qui signifie que les faiblesses de ces composants peuvent affecter de nombreuses applications. Les attaquants peuvent exploiter des vulnérabilités dans une seule bibliothèque, impactant de nombreux programmes.
Pour améliorer la sécurité, des politiques récentes ont encouragé l'utilisation de SBOMs pour accroître la transparence dans les logiciels. Selon la Cybersecurity and Infrastructure Security Agency (CISA), un SBOM est un enregistrement formel des composants logiciels et de leurs relations. En utilisant des SBOMs, les développeurs peuvent augmenter la transparence de leur logiciel.
Malgré leur promesse, les SBOMs peuvent souvent être trompeurs. Les outils utilisés pour produire ces documents échouent fréquemment à identifier correctement les noms, versions et dépendances des composants logiciels. Des problèmes comme le parsing incorrect et la collecte de données incomplètes mènent à des SBOMs inexactes qui peuvent cacher des vulnérabilités clés.
Évaluation des SBOMs
Cet article se penche de plus près sur la performance des outils de génération de SBOM existants. On voulait savoir à quel point ces outils fonctionnent pour identifier les vulnérabilités. Pour cela, on a analysé cinq générateurs de SBOM populaires et fourni leurs résultats à des outils de scan de vulnérabilités.
L'objectif était de voir si la précision du SBOM affectait la capacité à trouver des vulnérabilités connues. On propose également une nouvelle solution qui améliore la manière dont les SBOMs sont générés, en se concentrant particulièrement sur les projets Python-le langage de programmation le plus utilisé en 2024.
La solution proposée
Notre nouvelle approche s'appuie sur le gestionnaire de paquets pip existant en Python. En améliorant les fonctionnalités de pip, on peut créer un SBOM plus précis directement à partir du gestionnaire de paquets. Cette solution vise à résoudre les problèmes courants rencontrés dans les méthodes de génération de SBOM actuelles, comme l'identification incorrecte des composants et des dépendances.
En générant un SBOM pendant le processus d'installation des paquets, on peut s'assurer que tous les éléments nécessaires sont pris en compte. De cette façon, les outils de sécurité peuvent avoir une vue plus claire des éléments utilisés dans le logiciel et ainsi identifier les vulnérabilités plus efficacement.
Gestion des dépendances en Python
Dans le développement Python, gérer les dépendances est crucial. La plupart des projets Python s'appuient sur un fichier de configuration comme setup.py ou pyproject.toml pour lister les composants logiciels nécessaires. Pendant l'installation, ces composants sont collectés, et toutes les dépendances doivent être installées en conséquence.
Cependant, le suivi des dépendances peut être délicat. Parfois, des bibliothèques dépendent d'autres bibliothèques, ce qui entraîne des dépendances transitives qui ne sont pas forcément listées explicitement. Ça peut rendre difficile pour les développeurs de voir le tableau complet de ce qui est dans leur logiciel.
Les outils SBOM existants ne gèrent pas efficacement cette résolution de dépendances. Ils ratent souvent des dépendances critiques ou marquent des bibliothèques qui ne sont pas réellement incluses. Ça peut mener à des SBOMs qui offrent une vue inexacte du logiciel, compliquant ainsi les évaluations de vulnérabilités.
Scan de vulnérabilités avec SBOM
Un scanner de vulnérabilités cherche des problèmes de sécurité connus dans le logiciel. Quand on utilise un SBOM, les scanners peuvent rapidement vérifier les vulnérabilités sans avoir besoin d'analyser l'ensemble du code. Les scanners populaires actuels, comme Grype ou ShiftLeftScan, se basent sur les informations fournies par les SBOMs pour mettre en avant les vulnérabilités dans les composants logiciels.
Bien que l'utilisation des SBOMs accélère le processus de scan, la dépendance à des SBOMs précis est cruciale. Si le SBOM est défaillant, les résultats du scan peuvent également être trompeurs. Si des dépendances importantes manquent ou sont mal identifiées, un scanner peut passer à côté de vulnérabilités graves.
Configuration expérimentale
Pour évaluer l'impact des outils de génération de SBOM sur le scan de vulnérabilités, on a rassemblé une variété de projets Python. On a testé cinq outils de génération de SBOM notables et comparé leurs résultats avec les vulnérabilités trouvées dans les échantillons.
Pour chaque projet, on a généré des SBOMs et ensuite utilisé un scanner de vulnérabilités pour trouver des vulnérabilités à partir des données générées. Ce processus nous a permis de mesurer avec précision comment chaque outil représentait le logiciel et son efficacité à identifier les vulnérabilités.
Résultats et découvertes
Nos découvertes révèlent que la façon dont les SBOMs sont générés impacte effectivement les résultats des scans de vulnérabilités. Les outils que nous avons analysés montrent des inexactitudes significatives, entraînant de nombreuses vulnérabilités manquées. Le meilleur outil n'a identifié qu'environ 40% des vulnérabilités connues.
On a aussi constaté que la majorité des faux positifs-lorsque des non-problèmes sont signalés comme des vulnérabilités-étaient liés à des SBOMs qui listeraient des dépendances pas réellement incluses dans le logiciel. C'était un facteur majeur causant confusion et travail supplémentaire pour les développeurs.
À l'inverse, notre nouvelle solution basée sur pip a montré une bien meilleure performance pour identifier les vulnérabilités. En créant des SBOMs directement à partir du gestionnaire de paquets pendant l'installation, on a atteint des niveaux de précision beaucoup plus élevés. Notre solution a conduit à une augmentation des taux de précision et de rappel pour les scans de vulnérabilités.
Conclusion
En conclusion, la précision des outils de génération de SBOM joue un rôle vital dans la sécurité logicielle. Les outils actuels échouent souvent à fournir des représentations précises des dépendances logicielles, menant à des vulnérabilités manquées et à des faux positifs inutiles.
En améliorant les systèmes de gestion de paquets existants comme pip, on peut créer un SBOM plus efficace qui inclut non seulement tous les composants nécessaires mais représente aussi fidèlement leurs relations. Ce changement peut considérablement améliorer les évaluations de vulnérabilités, permettant aux développeurs d'avoir plus confiance dans la sécurité de leur logiciel.
Alors que les logiciels s'appuient de plus en plus sur des composants tiers, le besoin de SBOMs précis ne fera que croître. En mettant en œuvre de meilleures méthodes de génération, on peut favoriser une chaîne d'approvisionnement logicielle plus sécurisée qui bénéficie à la fois aux développeurs et aux utilisateurs.
Titre: The Impact of SBOM Generators on Vulnerability Assessment in Python: A Comparison and a Novel Approach
Résumé: The Software Supply Chain (SSC) security is a critical concern for both users and developers. Recent incidents, like the SolarWinds Orion compromise, proved the widespread impact resulting from the distribution of compromised software. The reliance on open-source components, which constitute a significant portion of modern software, further exacerbates this risk. To enhance SSC security, the Software Bill of Materials (SBOM) has been promoted as a tool to increase transparency and verifiability in software composition. However, despite its promise, SBOMs are not without limitations. Current SBOM generation tools often suffer from inaccuracies in identifying components and dependencies, leading to the creation of erroneous or incomplete representations of the SSC. Despite existing studies exposing these limitations, their impact on the vulnerability detection capabilities of security tools is still unknown. In this paper, we perform the first security analysis on the vulnerability detection capabilities of tools receiving SBOMs as input. We comprehensively evaluate SBOM generation tools by providing their outputs to vulnerability identification software. Based on our results, we identify the root causes of these tools' ineffectiveness and propose PIP-sbom, a novel pip-inspired solution that addresses their shortcomings. PIP-sbom provides improved accuracy in component identification and dependency resolution. Compared to best-performing state-of-the-art tools, PIP-sbom increases the average precision and recall by 60%, and reduces by ten times the number of false positives.
Auteurs: Giacomo Benedetti, Serena Cofano, Alessandro Brighente, Mauro Conti
Dernière mise à jour: 2024-09-10 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2409.06390
Source PDF: https://arxiv.org/pdf/2409.06390
Licence: https://creativecommons.org/licenses/by-sa/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.