By Yann Albou.
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.
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.
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.
Les impacts sur la chaine d’approvisionnement sont de diverses natures :
Voici un certains nombres d’exemples plus ou moins recent de ce type d’attaque:
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
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 :
Ce sera un ensemble de recommandations, non exhaustives, basées sur notre retour d’expérience
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 :
Afin de faciliter la mise en application de nos recommandations, nous avons adopté une signalétique :
Elle va permettre d’indiquer :
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 :
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 :
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.