Présentation
La sécurité de la chaîne d’approvisionnement des logiciels réunit les meilleures pratiques en matière de gestion des risques et de cybersécurité pour renforcer la protection contre les vulnérabilités potentielles. La chaîne d’approvisionnement des logiciels englobe l’ensemble des éléments et des acteurs qui interviennent au niveau du code au cours du cycle de développement logiciel, du développement de l’application au pipeline CI/CD, en passant par le déploiement.
La chaîne d’approvisionnement regroupe des réseaux d’informations sur les logiciels, comme les composants (infrastructure, matériel, systèmes d’exploitation, services cloud, etc.), les programmeurs et les sources, notamment les registres, les référentiels GitHub, les codes bases ou d’autres projets Open Source. Elle comprend également toutes les vulnérabilités qui peuvent nuire à la sécurité des logiciels : c’est là que la sécurité de la chaîne d’approvisionnement des logiciels intervient.
L’importance de la sécurité de la chaîne d’approvisionnement des logiciels
Aujourd’hui, la plupart des logiciels sont créés à partir d’une combinaison d’artéfacts logiciels contenant des logiciels Open Source. Ces artéfacts logiciels sont cependant exposés à des vulnérabilités, et les développeurs ne peuvent pas contrôler totalement le code source rédigé par un tiers ou les modifications qui sont apportées aux artéfacts logiciels au fil du temps. De plus, les logiciels qui ne bénéficient pas de correctifs sont plus sujets aux problèmes de sécurité. Puisque les logiciels sont indispensables aux activités des entreprises au quotidien, la sécurité de la chaîne d’approvisionnement doit faire partie des priorités.
L’éditeur de logiciels SolarWinds a été victime d’une violation en 2020, lorsque des pirates ont exécuté un code malveillant par le biais de son logiciel de surveillance et de gestion informatique Orion, une plateforme qu’utilisent de grandes entreprises et des agences gouvernementales. En s’attaquant à la chaîne d’approvisionnement, les pirates ont réussi à infiltrer non seulement SolarWinds mais aussi ses clients. Autre exemple : Log4j, un logiciel Open Source couramment utilisé mais particulièrement vulnérable, a exposé un grand nombre d’utilisateurs et d’entreprises à des fuites de données et à des attaques. En 2021, le président des États-Unis a souligné toute l’importance des chaînes d’approvisionnement et de la sécurité des logiciels en publiant deux décrets : un sur les chaînes d’approvisionnement et un sur la cybersécurité.
Les risques de sécurité qui pèsent sur la chaîne d’approvisionnement des logiciels
Tout maillon de la chaîne d’approvisionnement des logiciels potentiellement vulnérable représente un risque pour chacun des artéfacts logiciels qui en dépendent. Il offre aux pirates la possibilité d’introduire un logiciel malveillant, une porte dérobée ou tout autre code malveillant visant à compromettre des composants et leurs chaînes d’approvisionnement correspondantes. En constante augmentation, les attaques dirigées contre la chaîne d’approvisionnement des logiciels, généralement menées dans un but lucratif ou politique, peuvent avoir d’énormes conséquences tant sur le plan numérique que physique. Il existe quatre principales catégories de risques :
- Vulnérabilités : failles dans le code du logiciel qui pourraient être exploitées et aboutir à une violation. Appliquez des correctifs et mettez à jour vos artéfacts logiciels pour atténuer ce risque.
- Octroi de licences : risque de nature juridique qui pourrait vous obliger à rendre tout artéfact logiciel concerné Open Source et à annuler les droits de propriété. Consultez des experts juridiques dans ce domaine.
- Dépendances vis-à-vis de tiers : toute dépendance vis-à-vis d’une entreprise extérieure dans le cadre de la chaîne d’approvisionnement des logiciels, dont il est difficile de connaître l’existence. Analysez tous les codes tiers et discutez avec vos fournisseurs de la manière dont ils vous protègent.
- Processus et politiques : indispensables pour éviter les problèmes de sécurité. Établissez des politiques pour vos développeurs et des processus (ou playbooks) de manière à pouvoir réagir en cas de vulnérabilité.
Les principaux vecteurs d’attaque sont le piratage des mises à jour, l’affaiblissement de la signature du code et la compromission du code Open Source.
Les vulnérabilités de la chaîne d’approvisionnement nécessitent le recours au DevSecOps
Le modèle DevSecOps est une approche de la culture, de l’automatisation et de la conception des logiciels qui intègre la sécurité en tant que responsabilité partagée tout au long du cycle de vie informatique. L’approche DevSecOps implique de réfléchir à la sécurité des applications et de l’infrastructure dès le départ, et d’automatiser certaines passerelles de sécurité afin d’éviter tout ralentissement des workflows DevOps. Pour atteindre ces objectifs, il faut commencer par sélectionner les outils capables d’assurer l’intégration continue de la sécurité, par exemple avec un environnement de développement intégré commun qui offre des fonctions de sécurité.
En savoir plus > DevOps et DevSecOps, quelle différence ?
Atténuation des menaces visant la chaîne d’approvisionnement des logiciels
La sécurité de la chaîne d’approvisionnement des logiciels est primordiale pour votre entreprise, vos clients et toute structure qui s’appuie sur des contributions Open Source. Aucune entreprise ne souhaite faire l’objet d’une violation ni être responsable d’un événement similaire au sein d’une autre entreprise. Il est essentiel de mettre en place des défenses pour votre chaîne d’approvisionnement des logiciels.
Voici quelques meilleures pratiques que devraient suivre les équipes de sécurité :
- Adoptez le principe du moindre privilège pour accorder l’accès aux ressources de la chaîne d’approvisionnement (par exemple, les outils de développement, les référentiels de code source et autres systèmes logiciels), activez l’authentification à plusieurs facteurs et utilisez des mots de passe forts.
- Organisez régulièrement des formations sur la sécurité pour tout le personnel.
- Renforcez la sécurité de tous vos appareils connectés et de vos données sensibles.
- Renseignez-vous sur vos fournisseurs et sur les tiers avec qui vous traitez, en commençant par les plus importants d’entre eux. Réalisez des évaluations des risques pour connaître la posture de chaque fournisseur en matière de cybersécurité ainsi que les politiques publiques relatives aux vulnérabilités.
- Analysez et corrigez régulièrement les systèmes vulnérables.
Il existe également des pratiques de codage sécurisé pour les développeurs, notamment l’utilisation de fichiers de verrouillage et d’autres initiatives axées sur la sécurité :
- Validation des sommes de contrôle
- Intégration des dépendances des fournisseurs dans le contrôle source
- Publication et consommation de la nomenclature logicielle
- Adoption de niveaux de chaîne logicielle pour les artéfacts logiciels, qui comprennent :
- la possibilité de signer numériquement vos artéfacts logiciels pour en authentifier la provenance ;
- la mise à profit de l’automatisation pour vos processus et politiques.
- Analyse des logiciels à l’aide d’outils de test de sécurité automatisés, notamment les outils SCA, SAST et DAST