Home >> Blog >> Comment se protéger d’une “Supply Chain Attack” ?

Comment se protéger d’une “Supply Chain Attack” ?

12 avril 2023

By Yann Albou.

Broken Chain

Qu’est-ce qu’une Supply Chain Attack, comment se protéger au mieux et quelles sont les solutions techniques pour notre CI/CD dans une démarche DevSecOps. Dans cette série d’articles nous présenterons les concepts et aborderons les aspects proches du développement, la partie continuous integration et continuous delivery, ainsi que les aspects opérationnels.

Comprenez et identifiez la notion de supply chain attack

Historiquement notre sécurité était principalement centrée sur une défense périmétrique avec comme représentation la muraille d’un château. Tout comme un château fort est construit pour résister aux assauts extérieurs, une entreprise met en place des mesures de sécurité pour protéger son réseau informatique des cyberattaques.

Aujourd’hui les vecteurs d’attaques se multiplient et pas forcément sur les éléments les plus visibles.

Les attaquants peuvent contourner cette muraille en utilisant une attaque de type supply chain. Ils vont alors chercher à s’introduire dans le réseau en exploitant des vulnérabilités dans les logiciels ou les équipements fournis par des fournisseurs tiers. Tout comme les assaillants du château fort cherchent à trouver une faille dans la muraille pour s’introduire, les attaquants cherchent à exploiter une vulnérabilité dans une partie de la chaîne d’approvisionnement pour pénétrer dans le réseau de l’entreprise.

Ainsi, pour assurer une sécurité optimale, l’entreprise doit non seulement renforcer sa propre muraille, mais également surveiller et sécuriser l’ensemble de sa chaîne d’approvisionnement, en s’assurant que ses fournisseurs respectent les mêmes normes de sécurité et de confidentialité que l’entreprise elle-même.

Broken Chain
Nous sommes passés d’une sécurité périmétrique à une sécurité dite « zero trust » : La sécurité s’applique sur l’ensemble de l’IT, pas juste le réseau mais aussi l’identité, la data, l’infra, les applications, … et la chaîne d’approvisionnement !

Une « supply chain attack » est une cyberattaque qui cherche à nuire à une organisation en ciblant les éléments les moins sécurisés de la chaîne d’approvisionnement.

Quels sont les impacts d’une attaque sur la chaine d’approvisionnement ?

Les impacts sur la chaine d’approvisionnement sont de diverses natures :

  • Violations de données et divulgation de données
  • Installation de logiciels malveillants
  • Perte financière
  • Dysfonctionnement des applications
  • Consommation de ressources

Exemples d’attaque de supply chain

Voici un certains nombres d’exemples plus ou moins recent de ce type d’attaque:

Broken Chain

L’exemple de Log4J est intéressant : Cette vulnérabilité appelée Log4shell (CVE-2021-44228) est de type "zero-day" impliquant l’exécution de code arbitraire. Elle a affecté des milliers d’organisations et continu à le faire car 1 an après cette vulnérabilité, 30% des downloads concernaient encore des versions affectées par ce problème!

Le cas NPM avec les libs ‘colors’ & ‘faker’ est aussi très intéressant car c’est le développeur qui a introduit volontairement des bugs et ainsi impacté des milliers d’applications. Ce cas est complexe à juger car il s’aggit de l’éternelle question de l’open source et de sa maintenabilité, mais doit soulever des questions sur la manière d’utiliser nos dépendances.

Au travers de ces quelques exemples, qui se multiplient, nous constatons qu’il est de plus en plus important, voir vital, de protéger sa software factory et la manière dont on délivre nos applications.

La cible devient maintenant : Tout fournisseur qui s’appuie sur des tiers pour fabriquer un produit est vulnérable aux supply chain attacks

Comment se protéger efficacement contre ce type d’attaque et qu’elles sont les bonnes pratiques liées au DevSecOps ?

La question est donc de savoir comment se protéger au maximum contre ce type d’attaque et qu’elles sont les bonnes pratiques liées au DevSecOps.

Dans cette série d’articles nous allons présenter quelques-unes de ces bonne pratiques en se focalisant sur la sécurité dans la Software Factory mais nous ne couvrirons pas :

  • La sécurité de manière générale : VM’s, workstations, Virus, …
  • La sécurité au sens code applicatif (Threat modeling…)
  • Ce ne sera pas spécifique à un produit

Ce sera un ensemble de recommandations, non exhaustives, basées sur notre retour d’expérience

Recommandations basées sur notre retour d’expérience

Broken Chain

La plupart d’entre vous connaissent déjà ce qu’est une CI/CD (Continuous Intregration / Continuous Delivery) et les principes d’automatisation, de testabilité, de qualité, de reproductibilité du build et du déploiement, … Le but de cette série d’articles n’est pas de décrire ces principes.
Par contre, nous allons zoomer sur plusieurs points de cette chaîne en apportant des recommandations spécifiques liées à la sécurité, en commençant par :

  • Les aspects plus en amont, c’est à dire plus proches du développement
  • Puis les aspects de continuous integration et continuous delivery
  • Et enfin s’attaquer aux aspects opérationnels

Afin de faciliter la mise en application de nos recommandations, nous avons adopté une signalétique :

Broken Chain

Comment protéger votre CI/CD d’une « Supply chain attack » ?

Elle va permettre d’indiquer :

  • Domain : le champ d’application de la recommandation, 
  • Type : la forme de la recommandation, entre l’adoption d’un outil, ou l’adoption d’une bonne pratique, ou un changement au niveau de l’organisation
  • Mitigation : le type de mitigation du risque: va-t-on le détecter plus systématiquement, ou bien réduire sa possibilité de se réaliser, ou bien si inévitable minimiser l’impact et les conséquences
  • Effort : l’effort indicatif pour la mettre en œuvre, volontairement vague car dépend de plusieurs critères de maturités

Avec Fabrice Vergnenègre nous avons présenté ce sujet sur un format de 45m au DevOps-D Day Marseille dont voici la vidéo :

DevOps-D Day Marseille

Approfondir le sujet

Dans les prochains articles nous aborderons les différentes solutions pour se prémunir au maximum de ce type d’attaque.
En particulier nous aborderons les thèmes suivants :

  • Publier sa SBOM
  • Mettre à jour régulièrement ses dépendances !
  • Assurer l’immutabilité des containers
  • Réduire la surface d’attaque des containers
  • Eliminer les secrets dans les containers & repos
  • Système de scanning régulier
  • S’assurer de l’intégrité des composants
  • Isoler les registries & promouvoir les images
  • Mettre en place GitOps
  • Politique d’admission Kubernetes
  • Mettre en place une RBAC forte
  • Solution d’observabilité des risques
  • Fortifier la Software Factory
  • Conclusion et évolutions de la Supply Chain

Cela ne constitue pas une liste exhaustive de bonnes pratiques car elles sont en perpétuelles évolutions et des nouvelles menaces émergent régulièrement.
Mais l’ensemble de ces thèmes améliorent la sécurité de votre Software Factory pour s’inscrire dans une démarche DevSecOps où les équipes de développements, Opérationnelles et de Sécurités collaborent efficacement pour rendre simple, transparent, sécurisé et rapide l’ensemble des actions autour de la chaîne d’approvisionnement du logiciel.

Laisser un commentaire

  Edit this page