Article de reference

Analyse de la composition logicielle

L'analyse de la composition logicielle ( ACL ) est une pratique dans les domaines des technologies de l'information et du génie logiciel pour analyser les applications logiciell...

L'analyse de la composition logicielle ( ACL ) est une pratique dans les domaines des technologies de l'information et du génie logiciel pour analyser les applications logicielles personnalisées afin de détecter les logiciels libres intégrés et de déterminer s'ils sont à jour, contiennent des failles de sécurité ou ont des exigences de licence.

Arrière-plan

Il est courant en génie logiciel de développer des logiciels à l'aide de différents composants. L'utilisation de composants logiciels permet de segmenter la complexité des éléments importants en morceaux de code plus petits et d'accroître la flexibilité en facilitant la réutilisation des composants pour répondre à de nouveaux besoins. Cette pratique s'est largement répandue depuis la fin des années 1990 avec la popularisation des logiciels libres (OSS), contribuant ainsi à accélérer le processus de développement logiciel et à réduire les délais de mise sur le marché.

Cependant, l’utilisation de logiciels libres introduit de nombreux risques pour les applications logicielles développées. Ces risques peuvent être organisés en 5 catégories :

Peu après la création de l' Open Source Initiative en février 1998, les risques associés à l'OSS ont été soulevés et les organisations ont essayé de gérer cela en utilisant des feuilles de calcul et des documents pour suivre tous les composants open source utilisés par leurs développeurs.

Pour les organisations utilisant intensivement des composants open source, il était nécessaire d'automatiser l'analyse et la gestion des risques liés à l'open source. Ceci a donné naissance à une nouvelle catégorie de logiciels : l'analyse de la composition logicielle (SCA). SCA aide les organisations à gérer ces risques. SCA s'efforce de détecter tous les composants tiers utilisés dans une application logicielle afin de réduire les risques associés aux failles de sécurité, aux exigences en matière de licences de propriété intellectuelle et à l'obsolescence des composants.

Principe de fonctionnement

Les produits SCA fonctionnent généralement comme suit :

  • Un moteur analyse le code source du logiciel et les artefacts associés utilisés pour compiler une application logicielle.
  • Le moteur identifie les composants OSS et leurs versions et stocke généralement ces informations dans une base de données, créant ainsi un catalogue des logiciels OSS utilisés dans l'application analysée.
  • Ce catalogue est ensuite comparé à des bases de données référençant les vulnérabilités de sécurité connues pour chaque composant, les exigences de licence pour son utilisation et ses versions antérieures. Pour la détection des vulnérabilités de sécurité, cette comparaison est généralement effectuée avec les vulnérabilités de sécurité connues (CVE) répertoriées dans la National Vulnerability Database (NVD). Certains produits utilisent une base de données propriétaire supplémentaire de vulnérabilités. Pour la conformité en matière de propriété intellectuelle et de légalité , les produits SCA extraient et évaluent le type de licence utilisé pour le composant OSS. Les versions des composants sont extraites de dépôts open source populaires tels que GitHub , Maven , PyPI , NuGet et bien d'autres.
  • Les systèmes SCA modernes intègrent des techniques d'analyse avancées pour améliorer la précision et réduire les faux positifs. Parmi les contributions notables figure l'analyse des méthodes vulnérables , qui détermine si les méthodes vulnérables identifiées dans les dépendances sont effectivement accessibles depuis le code de l'application. Cette approche, initiée par faux positifs et des faux négatifs dans les projets réels.
  • La curation des vulnérabilités basée sur l'apprentissage automatique automatise le processus de création et de maintenance des bases de données de vulnérabilités en prédisant la pertinence des données issues de diverses sources, telles que les systèmes de suivi des bogues, les commits et les listes de diffusion. Ces systèmes utilisent des techniques d'auto-apprentissage pour améliorer itérativement la qualité des modèles et intègrent des indicateurs de stabilité de déploiement afin d'évaluer les nouveaux modèles avant leur mise en production.
  • Les techniques de traitement automatique du langage naturel pour l'identification automatisée des vulnérabilités analysent les messages de commit et les rapports de bogues afin d'identifier les problèmes de sécurité qui n'ont peut-être pas été divulgués publiquement. Cette approche utilise des classificateurs d'apprentissage automatique entraînés sur des caractéristiques textuelles extraites des artefacts de développement pour découvrir des vulnérabilités jusqu'alors inconnues dans les bibliothèques open source.
  • Les résultats sont ensuite mis à la disposition des utilisateurs finaux sous différents formats numériques. Leur contenu et leur format dépendent du produit SCA et peuvent inclure des conseils pour évaluer et interpréter le risque, ainsi que des recommandations, notamment concernant les exigences légales des composants open source, telles que les licences copyleft fortes ou faibles . Le résultat peut également contenir une nomenclature logicielle (SBOM) détaillant tous les composants open source et leurs attributs associés utilisés dans une application logicielle

Techniques avancées

Depuis le début des années 2010, les chercheurs ont développé plusieurs techniques avancées pour améliorer la précision et l'efficacité des outils SCA :

Analyse des méthodes vulnérables

L'analyse des méthodes vulnérables permet de déterminer si une vulnérabilité dans une bibliothèque tierce représente un risque réel pour une application. Plutôt que de simplement détecter la présence de bibliothèques vulnérables, cette technique analyse si les méthodes vulnérables spécifiques au sein de ces bibliothèques sont accessibles depuis les chemins d'exécution de l'application. Cette méthode a été inventée et implémentée pour la première fois chez SourceClear sous la direction d' Apprentissage automatique pour les bases de données de vulnérabilités

Les bases de données de vulnérabilités traditionnelles reposent sur une curation manuelle par des chercheurs en sécurité, une tâche fastidieuse qui peut entraîner l'omission de vulnérabilités pertinentes. Les approches d'apprentissage automatique automatisent ce processus en entraînant des modèles à prédire si les données provenant de diverses sources (telles que les rapports de bogues, les commits et les listes de diffusion) sont liées à des vulnérabilités. Ces systèmes mettent en œuvre des pipelines complets, de la collecte des données à la prédiction en passant par l'entraînement des modèles, avec des mécanismes d'amélioration itératifs qui génèrent de meilleurs modèles à mesure que de nouvelles données sont disponibles.

Analyse statique de la compatibilité des bibliothèques

Alors que les outils SCA recommandent de plus en plus souvent des mises à jour de bibliothèques pour corriger les vulnérabilités, garantir la compatibilité devient essentiel. Les techniques d'analyse statique avancées peuvent détecter automatiquement les incompatibilités d'API qui seraient introduites par les mises à niveau de bibliothèques, permettant ainsi une correction automatisée des vulnérabilités sans perturber les fonctionnalités existantes. Ces analyses légères sont conçues pour s'intégrer aux pipelines d'intégration continue et de déploiement continu .

Usage

Étant donné que l'analyse de la connectivité logicielle (SCA) a un impact sur différentes fonctions au sein des organisations, différentes équipes peuvent utiliser les données en fonction de la taille et de la structure de l'entreprise. Le département informatique utilise souvent la SCA pour la mise en œuvre et l'exploitation de la technologie avec les parties prenantes communes, notamment le directeur des systèmes d'information (DSI), le directeur technique (CTO) et l'architecte d'entreprise (AE). Les données relatives à la sécurité et aux licences sont souvent utilisées par des fonctions telles que le responsable de la sécurité des systèmes d'information (RSSI) pour la gestion des risques de sécurité, et le responsable de la conformité en matière de propriété intellectuelle pour la gestion des risques liés à la propriété intellectuelle.

Selon les capacités du produit SCA, il peut être implémenté directement dans l' environnement de développement intégré (IDE) d'un développeur qui utilise et intègre des composants OSS, ou il peut être implémenté comme une étape dédiée du processus de contrôle de la qualité du logiciel .

Les produits SCA, et en particulier leur capacité à générer une SBOM, sont requis dans certains pays comme les États-Unis pour garantir la sécurité des logiciels livrés à l'une de leurs agences par un fournisseur.

Un autre cas d'utilisation courant de l'analyse de la conformité logicielle (ACL) concerne la vérification préalable technologique . Avant une opération de fusion-acquisition (F&A), les cabinets de conseil examinent les risques associés aux logiciels de l'entreprise cible.

Points forts

L'automatisation des produits SCA constitue leur principal atout. Les développeurs n'ont pas à effectuer de travail manuel supplémentaire lors de l'utilisation et de l'intégration de composants open source. Cette automatisation s'applique également aux références indirectes à d'autres composants open source dans le code et les artefacts.

Les implémentations modernes de l'analyse de vulnérabilités logicielles (SCA) ont considérablement amélioré la précision grâce à des techniques d'analyse avancées. L'analyse des méthodes vulnérables réduit les faux positifs en déterminant l'accessibilité réelle des chemins de code vulnérables, tandis que les approches d'apprentissage automatique pour la curation des vulnérabilités contribuent à maintenir des bases de données de vulnérabilités plus complètes et à jour. Ces avancées permettent de pallier de nombreuses limitations traditionnelles des approches basées uniquement sur les métadonnées.

Faiblesses

À l'inverse, certaines faiblesses importantes des produits SCA actuels peuvent inclure :

  • Déploiement complexe et exigeant en main-d’œuvre qui peut prendre des mois pour être pleinement opérationnel
  • Chaque produit utilise sa propre base de données propriétaire de composants OSS qui peut varier considérablement en termes de taille et de couverture
  • Limiter les données de vulnérabilité aux seuls rapports sur les vulnérabilités officiellement signalées dans le NVD (ce qui peut se produire des mois après la découverte initiale de la vulnérabilité)
  • Absence de conseils automatisés sur les actions à entreprendre sur la base des rapports et des données SCA
  • Absence de directives sur les exigences légales des licences OSS détectées

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index