Temps de lecture : 4 min
L'analyse de composition logicielle SCA (Software Composition Analysis)est un terme relativement nouveau dans l’industrie qui désigne l’ensemble des outils permettant de dresser l’inventaire des Open Source utilisés dans une application. Malgré son nom trompeur suggérant l'accès à tous les sources du code (propriétaire, commercial tiers et open source), l'analyse SCA se focalise sur la gestion des librairies du domaine Open Source exclusivement.
Les outils SCA sont nés de l’augmentation de l'utilisation des logiciels Open Source dans tous les secteurs, notamment dans le domaine des systèmes embarqués. Cette explosion de l’Open Source a rendu très difficile leur suivi par les méthodes manuelles traditionnelles telles que des feuilles de calcul et il est devenu nécessaire d'automatiser le processus de gestion Open Source.
Les outils SCA se présentent sous différentes formes, offrant des capacités allant du simple suivi du simple inventaire au suivi des licences et des vulnérabilités.
Qu’est-ce que l’analyse SCA ?
D'abord et avant tout, les outils SCA réalisent l'inventaire de tous les composants Open Source utilisés dans vos produits logiciels, y compris toutes les dépendances directes et transitives. Cet inventaire est essentiel car c'est la base pour une gestion efficace et correcte des Open Source, car comment garantir la conformité ou la sécurité d’un élément dont on ne connait pas l’existence ?
Une fois l’inventaire établi, l’analyseur SCA va récupérer les informations de chaque composant comme les licences auxquelles ils sont assujettis ainsi que les vulnérabilités et le défauts connus. Les analyseurs avancés tels que la solution WhiteSource permettent en complément de contrôler et d’appliquer automatiquement les politiques d’acceptance des Open Source définies dans l’entreprise. Ils sont également capables d'automatiser l'ensemble du processus de sélection, d'approbation et de suivi open source, faisant gagner un temps précieux aux développeurs tout en augmentant considérablement la qualité globale des logiciels. Certains analyseurs comme WhiteSource, sont même capables d'émettre des alertes sur des vulnérabilités d'un composant alors qu'il n’est pas encore intégré dans le projet mais simplement sélectionné pour téléchargement. Ils peuvent également guider les développeurs automatiquement vers des versions n’ayant pas ces défauts réduisant fortement les efforts de correction.
Une fois l’inventaire établi, l’analyseur SCA va récupérer les informations de chaque composant comme les licences auxquelles ils sont assujettis ainsi que les vulnérabilités et le défauts connus. Les analyseurs avancés tels que la solution WhiteSource permettent en complément de contrôler et d’appliquer automatiquement les politiques d’acceptance des Open Source définies dans l’entreprise. Ils sont également capables d'automatiser l'ensemble du processus de sélection, d'approbation et de suivi open source, faisant gagner un temps précieux aux développeurs tout en augmentant considérablement la qualité globale des logiciels. Certains analyseurs comme WhiteSource, sont même capables d'émettre des alertes sur des vulnérabilités d'un composant alors qu'il n’est pas encore intégré dans le projet mais simplement sélectionné pour téléchargement. Ils peuvent également guider les développeurs automatiquement vers des versions n’ayant pas ces défauts réduisant fortement les efforts de correction.
Pourquoi l’analyse SCA est-elle incontournable ?
Devenu la pierre angulaire dans bon nombre d’applications logicielles, et ce quel que soit le secteur d’activité, cette forte dépendance à l'égard de l'Open Source oblige les utilisateurs, d’une part à s'assurer que ces composants répondent aux normes de sécurité et, d’autre part, à respecter les licences de ces composants et de vérifier qu’elles ne sont pas en opposition aux politiques internes de l’entreprise ou de ses clients.
Les notions de sécurité et de vulnérabilité sont cruciales pour les Open Source et sont prônées par des organismes tel que l’OWASP. Il faut comprendre que dans le monde Open Sources, les bugs et les vulnérabilités une fois détectées sont rendues publiques dans les bases de données communautaires et dans les systèmes de suivi d’erreurs. Si ces bases de données sont des sources d’information précieuses pour les concepteurs, elle le sont aussi pour les pirates pour préparer leurs attaques. Et plus une librairie Open Source a du succès et est déployée mondialement, plus il est lucratif pour les pirates de la compromettre.
C'est là que les outils SCA entrent en jeu, en fournissant une sécurité essentielle pour les logiciels intégrant des composants Open Source. En identifiant ces composants, les outils SCA tel que WhiteSource mettent en évidence toutes les vulnérabilités connues.
Les notions de sécurité et de vulnérabilité sont cruciales pour les Open Source et sont prônées par des organismes tel que l’OWASP. Il faut comprendre que dans le monde Open Sources, les bugs et les vulnérabilités une fois détectées sont rendues publiques dans les bases de données communautaires et dans les systèmes de suivi d’erreurs. Si ces bases de données sont des sources d’information précieuses pour les concepteurs, elle le sont aussi pour les pirates pour préparer leurs attaques. Et plus une librairie Open Source a du succès et est déployée mondialement, plus il est lucratif pour les pirates de la compromettre.
C'est là que les outils SCA entrent en jeu, en fournissant une sécurité essentielle pour les logiciels intégrant des composants Open Source. En identifiant ces composants, les outils SCA tel que WhiteSource mettent en évidence toutes les vulnérabilités connues.
L’évolution des analyseurs SCA
L’analyse SCA est une technique connue depuis 2002. La 1ière génération d’outils identifiait les Open Source dans le code utilisateur par comparaison avec le code connu des Open Source. Toutefois, cela engendrait beaucoup de faux positifs (code utilisateur similaire a un code Open Source) que les utilisateurs devaient éliminer par revue manuelle.
Depuis 2011 une seconde génération d’outils, impulsée par WhiteSource, est apparue appelée Gestion continue des composant Open Source. Permettant de s’intégrer facilement dans des cycles type Agile, cette nouvelle génération permet une détection en temps réel des vulnérabilités ou des problèmes de licence, en se greffant sur les outils de développement de l’entreprise tels que les référentiels de stockage, les systèmes de génération du code ou les systèmes d’intégration continue. Cela a permis de détecter les problèmes au plus tôt dans le cycle et ainsi de réduire les couts de remédiation.
En 2018, WhiteSource à a introduit une 3ième génération, en amenant la fonction « Effective Usage Analysis ». Cette fonction permet de déterminer si une vulnérabilité connue d’un composant Open Source utilisée impacte directement (en d’autres termes est réellement active ou non) l’application. Cela permet de hiérarchiser les vulnérabilités et leurs impacts pour permettre de se focaliser sur les problèmes cruciaux.
Depuis 2011 une seconde génération d’outils, impulsée par WhiteSource, est apparue appelée Gestion continue des composant Open Source. Permettant de s’intégrer facilement dans des cycles type Agile, cette nouvelle génération permet une détection en temps réel des vulnérabilités ou des problèmes de licence, en se greffant sur les outils de développement de l’entreprise tels que les référentiels de stockage, les systèmes de génération du code ou les systèmes d’intégration continue. Cela a permis de détecter les problèmes au plus tôt dans le cycle et ainsi de réduire les couts de remédiation.
En 2018, WhiteSource à a introduit une 3ième génération, en amenant la fonction « Effective Usage Analysis ». Cette fonction permet de déterminer si une vulnérabilité connue d’un composant Open Source utilisée impacte directement (en d’autres termes est réellement active ou non) l’application. Cela permet de hiérarchiser les vulnérabilités et leurs impacts pour permettre de se focaliser sur les problèmes cruciaux.
Les exigences de base d’un outil SCA
Selon le Forrester SCA Wave 2019, il est conseillé pour sélectionner un outil SCA de rechercher une solution qui au-delà de dresser l’inventaire (i) conseille les développeurs sur la façon de corriger les vulnérabilités (ii) permet de créer et d’appliquer des politiques cohérentes sur les Open Source dans toute l'organisation (iii) crée des rapports de haut niveau pour les responsables en charge de la sécurité dans l'entreprise.
A cela on peut rajouter d’avoir une couverture de langage de programmation la plus étendue possible, de ne pas utiliser que les bases de données type NVD (National Vulnerability Database) comme référentiel mais aussi scanner les sites de dépôts (tels que GutHub) pour rechercher les vulnérabilités connues, ou encore, être compatibles avec la majorité des outils et processus de développement actuels sur l’ensemble du cycle : du développement jusqu’à la production.
A cela on peut rajouter d’avoir une couverture de langage de programmation la plus étendue possible, de ne pas utiliser que les bases de données type NVD (National Vulnerability Database) comme référentiel mais aussi scanner les sites de dépôts (tels que GutHub) pour rechercher les vulnérabilités connues, ou encore, être compatibles avec la majorité des outils et processus de développement actuels sur l’ensemble du cycle : du développement jusqu’à la production.