In this article
Attaques contre la chaîne d’approvisionnement logicielle
Exemples d’attaques et moyens de les prévenir
Qu’est-ce qu’une attaque de la chaîne d’approvisionnement logicielle ?
Aujourd’hui, les chaînes d’approvisionnement logicielles reposent en grande partie sur des ressources tierces qui accélèrent et simplifient le processus de livraison des logiciels. En général, les organisations doivent intégrer ces ressources à leurs systèmes dans une certaine mesure, en accordant à ces sources externes l’accès à leur infrastructure interne afin qu’elles puissent fonctionner correctement au sein des systèmes.
Si un attaquant découvre un maillon faible dans l’une de ces sources externes, cela peut avoir des conséquences négatives sur l’ensemble du système. C’est pourquoi la sécurité de la chaîne d’approvisionnement est importante.
Types d’attaques contre la chaîne d’approvisionnement logicielle
Il existe de nombreuses menaces visant la chaîne d’approvisionnement. Voici quelques types courants :
Fournisseurs de logiciels tiers
Créateurs de sites web
Espaces de stockage de données tiers
Attaques par point d’eau
Toutes ces attaques demandent peu d’efforts et peuvent rapporter gros aux acteurs malveillants. Un attaquant n’a qu’à altérer l’un de ces sites ou fournisseurs tiers pour accéder, par défaut, à des milliers d’utilisateurs. C’est là le véritable danger de la chaîne d’approvisionnement : si le haut de la chaîne (par exemple, un fournisseur tiers ou un site web) est compromis, tout ce qui se trouve en aval est immédiatement menacé. Les attaquants s’en prennent souvent à ces utilisateurs en aval en diffusant des logiciels malveillants capables de contrôler leurs appareils à distance et de dérober des informations, ou en extrayant directement des données sensibles de leurs fichiers.
Fournisseurs de logiciels tiers
Aujourd’hui, les entreprises font souvent appel à des fournisseurs de logiciels tiers pour répondre à différents besoins, directement ou par le biais de dépendances transitives. Pour accéder aux centaines, voire aux milliers de clients qui utilisent le produit, un attaquant n’aurait qu’à compromettre ce logiciel tiers.
Créateurs de sites web
Les modèles ou les extensions d’un créateur de sites web peuvent être compromis, exposant ainsi le fonctionnement interne de ces sites à des attaques.
Espaces de stockage de données tiers
Les entreprises font souvent appel à des sociétés tierces pour traiter et stocker leurs données, qu’il s’agisse d’informations sensibles sur les clients ou de détails sur la posture de sécurité, les employés et les stratégies de l’organisation.
Attaques par point d’eau
Une attaque par point d’eau cible un site web que les utilisateurs consultent fréquemment pour effectuer des tâches impliquant des données sensibles. En général, ce type d’attaque vise des sites web publics associés à un secteur, une organisation ou un groupe de personnes particulier. Les attaquants utilisent ces sites pour diffuser des logiciels malveillants aux visiteurs, généralement en les redirigeant du site légitime vers un site frauduleux.
Exemples d’attaques contre la chaîne d’approvisionnement logicielle
Help Net Security a constaté que les attaques contre la chaîne d’approvisionnement logicielle avaient augmenté de plus de 300 % en 2021. Comme elles peuvent toucher plusieurs entreprises et clients à la fois, ces attaques font souvent la une et deviennent tristement célèbres.
Voici quelques exemples d’attaques bien connues contre la chaîne d’approvisionnement, qui ont causé des dommages considérables à des fournisseurs tiers et à leurs utilisateurs :
SolarWinds
Lors de cette attaque survenue au début de 2020, des acteurs malveillants ont intégré du code malveillant à une mise à jour de SolarWinds Orion, une plateforme de surveillance et de gestion de l’infrastructure. Les utilisateurs de SolarWinds ont ensuite installé cette mise à jour infectée sur leurs appareils, donnant aux attaquants un accès dérobé aux données sensibles de plusieurs entreprises et agences gouvernementales.
Un an plus tard, une attaque visant, début 2021, le fournisseur de sécurité de messagerie Mimecast a constitué l’une des nombreuses répercussions en aval de la compromission de SolarWinds. Mimecast utilisait la plateforme SolarWinds Orion. Lorsque les attaquants ont injecté du code infecté dans SolarWinds, Mimecast a été touché, tout comme environ 18 000 autres clients de SolarWinds.
Ce code infecté a installé automatiquement un logiciel malveillant de chaîne d’approvisionnement dans le système de Mimecast, compromettant des données sensibles telles que les certificats émis par Mimecast, les informations de connexion aux serveurs des clients, les adresses e-mail et les identifiants des utilisateurs.
Confusion de dépendances en 2021
L’année dernière, Alex Birsan, programmeur et contributeur de Medium, a découvert un nouveau type d’attaque contre la chaîne d’approvisionnement numérique, la confusion de dépendances. Il a réussi à accéder à des systèmes internes et à exfiltrer des données de grands noms du secteur comme Yelp, Tesla, Apple et Microsoft.
Alex a mené cette attaque en créant des packages npm ou yarn portant les mêmes noms que des packages internes privés. Comme ses packages aux noms identiques étaient plus récents que les packages légitimes des entreprises, le système a récupéré par défaut les packages publics malveillants. Même si Alex n’était pas un pirate informatique malveillant, sa découverte de la vulnérabilité de confusion de dépendances a démontré que les conventions de nommage des packages npm/yarn pouvaient mettre en péril d’importants systèmes internes.
CodeCov en 2021
CodeCov, un outil de couverture de code, génère des rapports lisibles par machine et les téléverse sur un serveur lorsque les développeurs exécutent des tests. Les attaquants ont exploité un script curl|bash utilisé par CodeCov pour téléverser les rapports sur son serveur. Ils ont accédé au compartiment CDN `private write, public read` qui hébergeait le serveur, puis modifié le script bash. Ce script modifié a servi à infiltrer les pipelines CI des clients et à dérober les variables d’environnement des clients de CodeCov.
4 vecteurs d’attaque contre la chaîne d’approvisionnement numérique
Comme le montrent ces récentes attaques contre la chaîne d’approvisionnement, les attaquants peuvent infiltrer la chaîne d’approvisionnement logicielle d’une entreprise par l’intermédiaire de nombreux fournisseurs ou composants tiers. La chaîne d’approvisionnement peut donc sembler constituer une surface d’attaque très vaste.
En général, cependant, les attaquants exploitent souvent quelques vecteurs d’attaque spécifiques :
Code source : les attaquants peuvent altérer directement du code propriétaire, comme dans le cas de SolarWinds. Il leur suffit d’obtenir des identifiants utilisateur disposant de privilèges élevés, d’accéder à un dépôt ou d’exploiter une vulnérabilité dans le code écrit par les développeurs et non détectée par un analyseur statique de code.
Dépendances : les entreprises peuvent utiliser de nombreuses dépendances tierces, telles que des bibliothèques d’applications, des packages de système d’exploitation et des images de base. Si l’une d’elles — directe ou transitive — est compromise, toutes les entreprises qui l’utilisent sont exposées à une vulnérabilité.
Outils de build : les pipelines CI/CD, ainsi que les autres outils de build, sont conçus pour automatiser les processus. Ils visent à faciliter les changements rapides et à exécuter les tests automatiquement, avec peu ou pas d’intervention humaine. Il peut donc être difficile pour les équipes de développement de détecter un outil de build infecté, comme lors de l’attaque CodeCov.
Déploiements : les attaques contre SolarWinds et Asus ont un point commun : toutes deux ont déployé du code malveillant lors d’une mise à jour. Pour prévenir une éventuelle attaque contre la chaîne d’approvisionnement logicielle, les entreprises doivent faire preuve de diligence raisonnable afin de garantir la sécurité de tous les déploiements, surtout si elles recourent au déploiement continu automatisé (CD).
Comment prévenir les attaques contre la chaîne d’approvisionnement logicielle
Les entreprises peuvent prévenir les attaques contre la chaîne d’approvisionnement logicielle en intégrant des mesures de sécurité à leurs processus de développement et de mise en production. La sécurité est une responsabilité partagée entre les différentes unités de l’entreprise et doit être intégrée à chaque étape du développement : c’est l’approche DevSecOps.
Analyse de la composition logicielle
L’analyse de la composition logicielle (SCA) est un excellent point de départ. La SCA offre une vue complète des dépendances de vos logiciels, pour vous permettre d’agir rapidement en cas de problème chez un fournisseur ou avec un composant tiers. Elle consiste à comprendre ce que contient votre logiciel et à savoir précisément où se trouvent les composants tiers. Snyk Open Source est un outil SCA qui s’appuie sur une veille de pointe pour sécuriser vos applications.
La création d’une nomenclature logicielle (SBOM) est essentielle à la mise en œuvre de la SCA. Les SBOM fournissent une documentation détaillée des composants inclus dans chaque application.
Tests statiques de sécurité des applications
Les tests statiques de sécurité des applications (SAST), autre pratique de sécurité essentielle, visent notamment à analyser le code source interne de votre organisation et à signaler les vulnérabilités couramment exploitées, comme les risques d’injection ou les défauts de conception généraux. Snyk Code est un outil SAST qui s’intègre directement à la plupart des IDE, analyse le code au fur et à mesure de son écriture et fournit des conseils concrets pour corriger les problèmes.
Analyse des images de conteneurs
L’analyse des images de conteneurs est essentielle pour détecter les risques dans les images des agents de build CI ou les images de base des applications. Les outils d’analyse des conteneurs, comme Snyk Container, vous aident à choisir des images de base sécurisées, à surveiller en continu les vulnérabilités des conteneurs et à corriger les vulnérabilités des dépendances open source utilisées dans les images de base et les commandes Dockerfile.
Intégrer la sécurité en amont
Enfin, donner aux développeurs les moyens de comprendre et d’utiliser les outils de sécurité permet d’intégrer la sécurité plus tôt dans le cycle de développement. La mise en place de politiques solides et d’un cycle de développement logiciel sécurisé (SDLC) est essentielle pour atténuer différents risques, notamment les attaques contre la chaîne d’approvisionnement.
Pour intégrer au mieux la sécurité aux processus de développement quotidiens, utilisez des outils tels que la SCA, la SAST et l’analyse de conteneurs à chaque étape du développement. Il est également important d’établir et d’appliquer des politiques de sécurité solides. L’un des meilleurs moyens d’y parvenir consiste à mettre en œuvre automatiquement des politiques sous forme de code (PaC), afin de définir des garde-fous pour les développeurs et de leur éviter de devoir suivre manuellement des listes de règles et de réglementations.
Comment Snyk peut sécuriser votre chaîne d’approvisionnement logicielle
La solution de sécurité de la chaîne d’approvisionnement logicielle de Snyk s’appuie sur Snyk Open Source et Snyk Container pour analyser et surveiller les dépendances et les images de base, afin de détecter les vulnérabilités existantes ou nouvelles qui affectent vos projets. Ces deux solutions reposent sur la base de données de pointe Snyk Intel Vulnerability Database, qui détecte les vulnérabilités en moyenne 47 jours plus tôt que les autres bases de données du marché. Elle détecte également les logiciels malveillants et les packages malveillants dans la chaîne d’approvisionnement. De plus, votre organisation peut utiliser Snyk Advisor pour trouver des packages fiables et des images de base de conteneurs publiques avant de les intégrer au développement.
Sécurisez votre chaîne d’approvisionnement avec Snyk
Snyk vous aide à détecter les problèmes de sécurité de votre chaîne d’approvisionnement et vous indique comment les corriger rapidement.
Consultez nos ressources pour en savoir plus sur les outils de Snyk conçus pour sécuriser votre chaîne d’approvisionnement et sur l’état de la sécurité de la chaîne d’approvisionnement.