Skip to main content

6 bonnes pratiques d’analyse de la composition logicielle (SCA)

Écrit par
blog feature open source security

27 avril 2022

0 minutes de lecture

Les logiciels open source sont au fondement du développement d’applications modernes : ils permettent aux équipes de créer et d’innover plus rapidement. Mais cette grande flexibilité s’accompagne de défis de sécurité importants. Les dépendances open source introduisent des vulnérabilités et des risques liés aux licences susceptibles d’affecter l’ensemble de votre chaîne logistique logicielle. Les organisations qui réussissent adoptent des bonnes pratiques d’analyse de la composition logicielle (SCA) qui renforcent la sécurité tout en préservant l’efficacité des workflows des développeurs. Ce guide présente six bonnes pratiques essentielles pour tirer le meilleur parti de la SCA tout en réduisant les risques.

1. Choisissez un outil adapté aux développeurs (et montrez-leur en quoi il leur est utile)

Les développeurs sont très occupés à écrire du code. Ils doivent avoir une vision globale, concevoir efficacement et itérer rapidement. Un outil SCA qui n’est pas adapté aux développeurs ralentira leur workflow, et ils seront donc moins enclins à l’utiliser. Un outil SCA adapté aux développeurs doit être facile à configurer et à utiliser. Il doit également s’intégrer facilement aux outils et workflows de développement SDLC existants, et ce le plus tôt possible (par exemple, aux outils de gestion de versions et aux IDE). 

Une fois l’outil choisi, expliquez à vos développeurs pourquoi la SCA est importante et comment elle peut les aider. Les développeurs qui ne considèrent pas la sécurité comme une responsabilité qui leur incombe peuvent être réticents à s’en charger. Aidez-les à comprendre qu’envisager la sécurité dès le début et intégrer des contrôles de sécurité à leur workflow leur fera gagner du temps par la suite, en évitant de devoir réécrire le code pour y intégrer des correctifs de sécurité. Un code sécurisé dès le départ n’aura pas besoin d’être réécrit !

2. Comprenez vos dépendances

Les packages open source contiennent deux types de dépendances : directes et transitives. Une dépendance directe est un package que vous incluez dans votre propre projet ; une dépendance transitive (indirecte) est un package utilisé par l’une de vos dépendances directes. Vous pouvez vous représenter cela comme un arbre imbriqué : vos packages contiennent des dépendances, qui contiennent elles-mêmes des dépendances… et ainsi de suite.

Les analyses montrent que 80 % des vulnérabilités des packages open source se trouvent dans des dépendances transitives ! Cela signifie que la plupart des vulnérabilités de votre code sont présentes dans des dépendances (imbriquées) dont vous ignoriez probablement l’utilisation. Un bon outil SCA doit inspecter avec précision toutes les dépendances de votre code, et pouvoir identifier et examiner les dépendances transitives. Connaître la profondeur et la complexité des packages open source utilisés dans votre code vous permet de garantir une détection efficace des vulnérabilités à tous les niveaux. 

3. Automatisez les analyses et identifiez des correctifs applicables

Un bon outil SCA vous permet d’exécuter des analyses automatisées à intervalles réguliers. Profitez-en ! Mettez en place une surveillance proactive et continue de votre code. Les analyses automatisées fournissent des alertes exploitables qui indiquent où se trouvent les vulnérabilités et comment les corriger. Examinez attentivement les recommandations de votre outil SCA pour corriger les vulnérabilités et veillez à ce que vos développeurs aient confiance dans les correctifs proposés.

4. Intégrez la SCA à votre pipeline CI/CD

Votre outil SCA ne doit pas marquer un point d’arrêt entre le développement, les tests et la mise en production. Vous devez pouvoir intégrer des analyses SCA à votre pipeline CI/CD afin que l’identification et la correction des vulnérabilités fassent partie intégrante du processus de développement et de build logiciel. Intégrer votre outil SCA au reste de votre pipeline aide également les développeurs à adopter une culture où la sécurité du code fait partie de leur travail quotidien.

5. Tirez parti des rapports et des fonctionnalités SBoM

De nombreuses organisations, dont le gouvernement fédéral américain, exigent la fourniture d’un rapport de nomenclature logicielle (SBoM) lors de l’achat d’un logiciel. Fournir une SBoM détaillée avec votre produit montre que vous comprenez l’importance de suivre chaque composant de votre application.

Des rapports clairs sur les analyses de sécurité et les correctifs sont également très utiles. Présenter des rapports détaillés sur vos pratiques de sécurité et le nombre de vulnérabilités corrigées témoigne de votre engagement en faveur de la sécurité (et renforce votre position sur le marché).

6. Renforcez vos politiques de sécurité et améliorez la conformité aux licences

Une bonne visibilité sur les packages open source utilisés par vos développeurs vous aidera à élaborer des politiques qui définissent et font respecter les directives de sécurité de votre organisation. Les informations issues des analyses de vulnérabilités vous permettront de mettre en place des garde-fous pour guider vos développeurs dans l’utilisation sécurisée des packages open source.

S’il est important de suivre le code open source pour assurer la sécurité des applications, le suivi des licences open source est indispensable pour garantir la conformité ! Les licences définissent les conditions légales d’utilisation des packages open source. Utilisez votre outil SCA pour connaître les conditions générales des licences de vos composants open source. Lors de l’élaboration de vos politiques de sécurité, vous pouvez inclure des directives qui encouragent les développeurs à veiller à la conformité des licences dès le début du cycle de développement logiciel.

Par définition, les projets open source sont publics et visibles de tous, y compris des acteurs malveillants. Toute vulnérabilité découverte et corrigée dans ces projets est implicitement exposée aux attaquants. Plus un projet open source est populaire, plus le package est attrayant, car une attaque peut avoir un impact plus étendu. Pour reprendre l’exemple de la faille Equifax mentionnée plus haut, le package open source utilisé pour l’attaque — la bibliothèque Apache Struts de Java — est utilisé par de nombreuses applications, ce qui explique l’ampleur de l’impact de cette attaque.

Bien entendu, les organisations qui utilisent des composants open source le font « à leurs propres risques » : aucun fournisseur ne les avertira des failles et aucun contrat signé ne les déchargera de leur responsabilité. Il incombe entièrement aux utilisateurs de veiller à la sécurité de ces composants.

Solutions d’analyse de la composition logicielle de Snyk

Snyk propose des solutions SCA complètes conçues pour aider les organisations à mettre efficacement en œuvre ces bonnes pratiques. Snyk Open Source aide les développeurs à détecter et corriger les vulnérabilités dans les dépendances open source directement dans leurs workflows. Grâce à une intégration fluide aux IDE, aux systèmes de gestion de versions et aux pipelines CI/CD, Snyk permet une surveillance continue et une correction automatisée. Sa base de données de vulnérabilités robuste et ses fonctionnalités de priorisation permettent aux développeurs de traiter d’abord les problèmes les plus critiques. De plus, Snyk fournit des rapports détaillés et permet de générer des SBoM, aidant ainsi les organisations à répondre aux exigences de conformité et à démontrer leur engagement en faveur de la sécurité. En tirant parti de la solution SCA de Snyk, les organisations peuvent renforcer leur posture de sécurité, améliorer la conformité aux licences et instaurer une culture de la sécurité tout au long du cycle de développement.

Découvrez l’état de la sécurité des logiciels open source

Découvrez les tendances et les approches actuelles en matière de logiciels open source et de sécurité de la chaîne d’approvisionnement.