Naviguer dans les menaces de la chaîne d'approvisionnement Open-Source : Protéger votre écosystème logiciel
Dans le monde des affaires actuel, les entreprises sont déterminées à créer des logiciels plus rapidement que jamais. Les développeurs sont soumis à une pression énorme pour livrer rapidement des produits aux clients. Pour accélérer ce processus, les développeurs s'appuient souvent sur des "blocs de construction" préfabriqués - des composants open-source. Cela signifie que les logiciels modernes sont souvent assemblés à partir de pièces existantes plutôt que d'être entièrement construits à partir de la base. Les entreprises mélangent souvent divers composants open-source pour créer un produit unique, en le personnalisant avec leur propre code si nécessaire, et c'est ainsi qu'elles terminent le travail.
Selon Forresterl'utilisation de l'open source dans le développement de logiciels a considérablement augmenté, passant de 36 % en 2016 à 78 % en 2021. Et sa popularité ne cesse de croître. Si l'utilisation de ces solutions prêtes à l'emploi rend le processus plus efficace, elle s'accompagne également de vulnérabilités potentielles. Si des adversaires parviennent à compromettre ces bibliothèques intégrées, ils pourraient potentiellement contrôler l'ensemble du processus de livraison de logiciels, mettant ainsi en péril l'ensemble du projet. C'est ce qu'on appelle une menace pour la chaîne d'approvisionnement.
Parlons de l'ampleur du problème et des moyens de le rendre plus sûr.
Pourquoi les pirates informatiques s'en prennent-ils à l'Open Source ?
Les projets de logiciels libres sont généralement créés par des groupes de personnes qui aiment vraiment ce qu'elles font - des développeurs qui travaillent ensemble sur un projet qui leur tient à cœur. Les logiciels libres sont souvent distribués gratuitement et peuvent être utilisés sur différents types de systèmes. Les entreprises ont la liberté de les utiliser et de les adapter à leurs produits. Étant donné que ces projets impliquent un grand nombre de personnes travaillant ensemble, il arrive que des personnes mal intentionnées les utilisent à des fins malveillantes.
Les dépôts de projets open-source invitent fréquemment les développeurs à ajouter des mises à jour et de nouvelles fonctionnalités, ce qui signifie que n'importe quel utilisateur, y compris les acteurs malveillants, peut introduire son propre code dans la plateforme. De nombreuses communautés relâchent les contrôles sur les nouveaux membres une fois que la confiance est établie. Par conséquent, un attaquant peut d'abord contribuer de manière constructive, puis introduire furtivement un code malveillant sans se faire remarquer.
Les pirates recourent souvent à des menaces de source ouverte pour la chaîne d'approvisionnement parce que c'est plus facile que de s'attaquer directement à des cibles particulières, comme les serveurs des banques, et d'essayer de contourner leur sécurité. Pour pénétrer dans le système informatique d'une banque, un pirate peut exploiter une vulnérabilité dans une bibliothèque open-source utilisée par la banque. Cela lui permet de se faufiler par une "porte dérobée" sans trop de problèmes. Si la banque identifie rapidement l'attaque et prend des mesures, celle-ci peut encore toucher d'autres entreprises utilisant la même bibliothèque, ce qui peut conduire à une attaque à grande échelle de la chaîne d'approvisionnement.
Menaces sur la chaîne d'approvisionnement en logiciels
Les attaques contre la sécurité de la chaîne d'approvisionnement des logiciels font des vagues dans l'écosystème des logiciels libres, attirent de plus en plus l'attention et provoquent des perturbations plus importantes. Les chercheurs de la société Synopsys, spécialisée dans la sécurité des applications ont enquêté et ont trouvé au moins une vulnérabilité connue dans 84 % des bases de code. Selon le 9e rapport annuel de Sonatype rapport annuel de Sonatype sur l'état de la chaîne d'approvisionnement en logicielsSonatype a multiplié par trois le nombre de paquets de logiciels libres malveillants par rapport au rapport de l'année précédente.
Tout cela montre que la chaîne d'approvisionnement des logiciels est devenue l'un des vecteurs de croissance les plus rapides pour l'exécution de codes malveillants par les acteurs de la menace. Examinons rapidement quelques outils qui peuvent contribuer à assurer la sécurité des logiciels pendant leur fabrication.
Outils d'analyse de la composition des logiciels (SCA)
Les outils SCA, qui utilisent un fichier d'assemblage d'application, analysent automatiquement la base de code (y compris les artefacts associés), génèrent une liste de bibliothèques et de composants tiers utilisés dans le logiciel et recherchent les vulnérabilités. Ces scanners peuvent également vérifier la conformité des éléments open-source avec les exigences en matière de licence.
Essentiellement, ces outils vérifient s'il existe une version plus récente d'un logiciel et s'il y a des problèmes connus qui ont été rendus publics.
Nomenclature des logiciels (SBOM)
SBOM est une liste d'éléments open-source et d'autres éléments tiers utilisés dans la base de code du logiciel. Il contient des informations techniques sur tous les composants et leurs relations mutuelles. Le SBOM peut également inclure de brèves informations sur le nom du composant, sa version, sa licence, ses vulnérabilités, ses dépendances transitives, etc.
Les programmes SBOM vous aident à identifier et à atténuer les vulnérabilités en assurant le suivi des composants du code, en gérant les licences logicielles et en améliorant le cycle de vie du développement logiciel (SDLC). La première étape de la création d'un programme consiste à mettre en œuvre des outils SCA et d'autres analyseurs qui peuvent être intégrés de manière transparente dans le pipeline CI/CD.
Cadre des niveaux de la chaîne d'approvisionnement pour les artefacts logiciels (SLSA)
Ce cadre a été lancé par Google en collaboration avec l'Open Source Security Foundation (OpenSSF). SLSA contient une liste de normes et de lignes directrices visant à protéger contre les accès non autorisés et à garantir l'intégrité des artefacts logiciels dans les chaînes d'approvisionnement. SLSA montre clairement quelles parties de la chaîne d'approvisionnement sont susceptibles de présenter des vulnérabilités.
Source : https://slsa.dev/spec/v1.0/threats-overview
Avant d'utiliser une dépendance, nous devons nous assurer qu'elle provient d'une source fiable. Pour être considérée comme fiable, une source doit confirmer que sa bibliothèque répond à toutes les exigences énoncées et ne contient aucune charge utile susceptible de nuire à ceux qui l'utilisent. Idéalement, nous devrions disposer d'une "provenance", c'est-à-dire d'informations supplémentaires sur l'origine d'un artefact, qui peuvent être utilisées pour retracer depuis le tout début qui, où, quand et comment quelque chose a été créé.
Pour suivre ce principe, SLSA introduit 4 niveaux de sécurité : du premier niveau, qui implique une absence totale de garanties, au quatrième niveau, qui offre le plus haut degré de confiance.
Niveau | Description |
0 | Aucune garantie |
1 | Documentation du processus de construction |
2 | Résistance à l'effraction du service de construction |
3 | Résistance accrue à des menaces spécifiques |
4 | Des niveaux de confiance très élevés |
Chaque niveau contient des exigences relatives à la source du code (Source), au processus d'assemblage (Build), ainsi que des informations supplémentaires sur l'origine des artefacts (Provenance).
Référentiel de confiance de composants open-source vérifiés
Le fait de disposer d'un référentiel fiable pour les composants open-source, qui sont constamment mis à jour, testés et contrôlés contre les vulnérabilités, peut réduire de manière significative la charge de travail des développeurs. En veillant à ce que les bonnes versions des bibliothèques soient toujours disponibles, il est possible d'atténuer les risques liés aux dépendances.
C'est ce que propose la solution SecureChain pour Java de TuxCare. Le processus processus de vérification de SecureChain vous permet d'utiliser les meilleures et les plus sûres des bibliothèques couramment utilisées pour vos applications. Cela réduit le temps consacré aux mises à jour manuelles et le risque d'intégrer une bibliothèque présentant des vulnérabilités potentielles.
SecureChain vous permet d'avoir l'esprit tranquille en sachant que votre chaîne d'approvisionnement en logiciels est sécurisée, ce qui vous permet de vous concentrer davantage sur la création et l'amélioration de vos applications.
Une porte d'entrée pour les attaquants, mais pas une impasse
L'open source peut être une porte d'entrée pour les attaquants afin de compromettre de nombreuses entreprises. Toutes les organisations ne sont pas en mesure de repérer rapidement les menaces qui pèsent sur la chaîne d'approvisionnement des logiciels libres. Les attaquants dissimulent leurs actions et utilisent des techniques délicates, comme l'exploitation des faiblesses dans les paramètres de gestion des paquets ou le piratage des référentiels. Toutefois, ces menaces ne devraient pas nous inciter à éviter complètement l'open source. Au contraire, elles poussent les entreprises à choisir les composants open source avec plus de soin et à améliorer leurs mesures de sécurité.