Passer au contenu principal
Une photo du buste d'un chevalier en armure argentée, coiffé d'un heaume doté de fines fentes au niveau des yeux.
Perspectives

7 Méthodes pour protéger votre chaîne d'approvisionnement logicielle

À mesure que les pirates informatiques gagnent en sophistication et que les logiciels deviennent de plus en plus complexes, les responsables de la sécurité des systèmes d'information (RSSI) doivent renforcer leur capacité à identifier, isoler et atténuer les attaques de logiciels malveillants. L'automatisation et l'IA deviendront leurs nouveaux meilleurs alliés.

Si vous avez suivi de près l'évolution des menaces informatiques ces dernières années, vous avez sans doute remarqué un changement. Si les cybercriminels continuent de mener des attaques via des botnets et des rançongiciels automatisés, ils consacrent désormais davantage d’efforts à la « chasse au gros gibier » – en s’attaquant aux chaînes d’approvisionnement qui fournissent les logiciels utilisés par d’innombrables organisations.

Les noms de ces attaques sont désormais tristement célèbres : SolarWinds, Kaseya, NotPetya, et 2023’s MoveIT breach, pour n'en citer que quelques-unes. L'avantage de cibler la chaîne d'approvisionnement est évident : un gain plus important. Que les pirates informatiques compromettent une bibliothèque open source ou tierce via un dépôt GitHub, découvrent une faille dans un logiciel prêt à l'emploi ou recourent à l'ingénierie sociale pour s'infiltrer dans un environnement de développement, un seul exploit peut permettre de pénétrer des centaines, voire des milliers de réseaux privés et publics à travers le monde.

L'attaque SolarWinds a touché quelque 18 000 entreprises ; celle visant MoveIT, plus de 2 500 organisations (et ce chiffre ne cesse d'augmenter), affectant ainsi quelque 67 millions de personnes.

Juniper Research prévoit que d’ici 2026 , les attaques visant la chaîne d’approvisionnement logicielle coûteront près de 81 milliards de dollars à l’économie mondiale, la majeure partie de ces coûts pesant sur les secteurs de la santé, de la finance, des administrations publiques et de l’automobile.

L'objectif d'un responsable de la sécurité est d'éliminer les vulnérabilités et de réduire votre surface d'attaque. Les atteintes aux réseaux informatiques se manifestent de manière de plus en plus insidieuse (et subtile), qu’il s’agisse de l’installation de logiciels de confiance dans lesquels un pirate a intégré une porte dérobée ou de la négligence face aux menaces liées à l’ u à l’informatique fantôme. Dans ce dernier cas, une seule action imprudente de la part d'un employé, consistant à télécharger un programme d'installation non approuvé ou un logiciel gratuit, peut réduire à néant des mois, voire des années, d'efforts en matière de sécurité.

Que doit donc faire un responsable de la sécurité des systèmes d’information (RSSI) d’une entreprise de type « » ? Les pirates informatiques ciblant ces cibles à fort impact, les responsables de la sécurité des systèmes d'information (RSSI) doivent faire preuve de proactivité. Le conseil qu’on leur donne généralement est : « Faites confiance, mais vérifiez. » Mais cela suppose qu'il y ait d'abord de la confiance, et cette hypothèse pose de plus en plus de problèmes. Voici ce que je dis aux RSSI : « Zero Trust » – jusqu’à ce que vous ayez vérifié.

Une chaîne d'approvisionnement complexe confrontée à des menaces constantes

Autrefois, l'installation d'un logiciel était relativement simple : il suffisait de trouver un éditeur de confiance et de télécharger son produit. Aujourd'hui, la chaîne d'approvisionnement comprend non seulement l'entreprise auprès de laquelle vous avez acheté une licence, mais également les composants tiers qui composent le logiciel, les utilitaires que votre personnel développe et améliore en interne, ainsi que les logiciels que vous utilisez sur le cloud .

«Les RSSI doivent faire preuve de proactivité et adopter une [nouvelle] devise simple : « Zero trust » – jusqu’à ce que vous ayez vérifié. »

De nouvelles vulnérabilités dans la chaîne logicielle (telles que celles observées dans Apache Struts, OpenSSL, cURL et d'autres utilitaires et bibliothèques partagés) apparaissent avec une régularité inquiétante. Lorsque des acteurs malveillants intègrent ces codes compromis dans des logiciels connus, ils exploitent non seulement une vulnérabilité, mais aussi la confiance qui lie le fournisseur et le client quant au fait que le logiciel est « sûr ». Si un acteur malveillant parvient à s'introduire dans la technologie utilisée par une entreprise de logiciels pour certifier l'authenticité d'un code, ce code malveillant se propage alors à l'insu de tous, sans que personne ne se rende compte qu'il a été corrompu.

Pour aggraver encore la situation, les pirates informatiques peuvent également dérober des certificats de signature ou des identifiants de développeur, puis utiliser ces identités privilégiées pour s'assurer que leurs actions malveillantes échappent à vos systèmes de détection de sécurité.

Heureusement, grâce à des outils adaptés, à une préparation minutieuse, à l'automatisation et à une approche « zéro confiance jusqu'à vérification » en matière d'architecture réseau, les responsables de la sécurité peuvent apprendre à identifier et à neutraliser rapidement ces menaces. Nous vous suggérons de suivre ces sept étapes :

1. Commencez par dresser un inventaire de votre réseau

Comme le dit le proverbe : « On ne peut pas protéger ce qu’on ne voit pas. » Vous devez disposer des outils, des processus et d'un personnel qualifié qui vous permettent d'avoir une visibilité complète sur l'ensemble des appareils et des logiciels présents au sein de votre organisation. Un système d' , de gestion automatisée des terminaux ou de protection peut vous aider à protéger votre surface d'attaque, à condition qu'il soit déployé sur l'ensemble de vos terminaux.

L'automatisation peut également vous aider à protéger votre chaîne logistique logicielle. Si l'on s'en tient uniquement aux chiffres, les problèmes, les points d'accès et les défis auxquels sont confrontées les différentes organisations sont bien plus nombreux que le nombre de professionnels de la cybersécurité qu'elles emploient. Dans son rapport « : Cost of a Data Breach 2023 » ( : Les bases du coût d'une fuite de données), IBM souligne que « les entreprises ayant eu recours [à l'IA et à l'automatisation] ont mis, en moyenne, 108 jours de moins pour identifier et contenir la fuite » et ont économisé en moyenne 1,76 millions de dollars en coûts liés à la fuite de données.

L'IA sera également un allié dans ce combat. Bien qu’il s’agisse encore d’une technologie émergente, il existe un potentiel prometteur dans la manière dont l’IA – que j’appelle souvent « intelligence augmentée » – aidera les équipes de sécurité à effectuer un triage plus rapide et avec une plus grande précision globale.

[À lire également : Voici votre guide complet sur la cybersécurité et l'IA : avantages, risques et bénéfices]

Grâce à l'utilisation de technologies de pointe, vous pouvez réduire non seulement la charge de travail liée à la réponse aux attaques, mais aussi l'épuisement professionnel qui en découle – ainsi que les erreurs humaines associées à la « fatigue des alertes » ().

2. Tirez parti des SBOM

L'une des caractéristiques des logiciels modernes qui les rend si facilement exploitables est qu'ils ne sont plus écrits à partir de zéro. Les développeurs récupèrent des extraits de code provenant de bibliothèques de code en ligne tierces, et chaque extrait représente une vulnérabilité potentielle. Il ne suffit donc plus de savoir quels logiciels sont installés sur votre système ; vous devez désormais répertorier chacune des bibliothèques ou de chacun des modules qui ont servi à la compilation du logiciel que vous souhaitez installer.

«» Tenir à jour un inventaire précis de tous les composants de l’ensemble des logiciels présents sur votre réseau serait déjà suffisamment difficile si cet inventaire était statique. Ce n'est pas le cas. »

Ce type de liste, appelée « nomenclature logicielle (SBOM) » ( ), permet de suivre les vulnérabilités présentes dans les fichiers, bibliothèques et composants tiers. C'est utile – et cela dépasse de loin les capacités de l'être humain à créer manuellement.

Dans l'idéal, les fournisseurs et les éditeurs de logiciels assumeront pleinement leur rôle de source unique de référence pour leurs logiciels et incluront des SBOM pour leurs applications logicielles. Il existe également des outils qui automatisent la création de ces listes. Le gouvernement fédéral est également intervenu : le décret n° 2021 du président Biden, intitulé « » ( ) et portant sur l’amélioration de la cybersécurité nationale, impose aux fournisseurs qui fournissent des logiciels au gouvernement fédéral d’inclure une liste des composants logiciels (SBOM) pour chaque élément de leurs produits.

[À lire également : Le plan d'action du gouvernement américain pour renforcer les chaînes d'approvisionnement]

Tenir un inventaire précis de tous les composants de l'ensemble des logiciels présents sur votre réseau serait déjà suffisamment difficile si cet inventaire était statique. Ce n'est pas le cas : si des développeurs de logiciels téléchargent du code source ouvert et en changent le nom ou le modifient légèrement, ce code peut apparaître différemment dans leur logiciel par rapport à celui d'une autre personne. Ou bien, si un dépôt de code GitHub est sécurisé le mardi, mais qu'un pirate effectue ensuite un « commit » malveillant ou une modification du code le mercredi, votre réseau redevient vulnérable dès que quelqu'un réimporte ce dépôt.

3. Mettre en place un environnement de test logiciel

Si vous développez des logiciels, vous devez mettre en place un niveau de protection supplémentaire en créant un dépôt privé contenant tout le code que vous avez développé. Ce code doit faire l'objet d'un audit et être sécurisé ; il ne faut en aucun cas l'extraire directement des sources en amont d'origine sans qu'il ait fait l'objet d'un contrôle de sécurité. Une fois qu'un référentiel sécurisé est en place, vous pouvez télécharger un logiciel et l'examiner ligne par ligne en toute confidentialité, avec la certitude que personne en dehors de votre organisation ne pourra y apporter de modifications.

Si, par exemple, vous souhaitez utiliser la bibliothèque logicielle OpenSSL, vous pouvez télécharger le code source et l'intégrer à votre environnement de développement privé, où vous pourrez appliquer des correctifs et effectuer des mises à jour à mesure que de nouvelles versions seront disponibles. L'avantage de cette approche est qu'elle vous permet de porter le code et de gérer les revues de tout nouveau code qui y est ajouté. Ce référentiel vous permet de tester le logiciel et de vous assurer qu'il ne causera aucun problème dans votre environnement, avant de le déployer.

4. Mettre en place un plan de gestion des vulnérabilités

Même dans un environnement de test, il est probable que certaines attaques aboutissent. Vous devez donc élaborer un plan de gestion des vulnérabilités et vous poser les questions suivantes :

  • Suis-je prêt à agir si quelque chose passe entre les mailles du filet ? Qui sera chargé de la gestion de la situation ?
  • Disposons-nous des politiques et procédures nécessaires pour définir la manière dont nous gérons la gestion des correctifs lorsqu'une vulnérabilité critique est détectée ?
  • En quoi consiste notre plan de gestion des risques liés aux tiers : si une bibliothèque tierce présente une vulnérabilité critique, comment identifierons-nous les applications qui utilisent cette bibliothèque, et comment mettrons-nous hors ligne les services critiques afin d'appliquer le correctif ?

[À lire également : La sécurité de la chaîne d'approvisionnement est un véritable défi – à quoi devrait-elle donc ressembler ?]

  • Pouvons-nous neutraliser cette attaque sans que cela ait d'impact significatif sur nos opérations essentielles à l'activité ?
  • Avez-vous mis en place des politiques de communication efficaces à l'intention des parties prenantes internes et externes dans le cadre de vos plans d'intervention d'urgence ?

5. Renforcez l'efficacité de vos politiques en matière d'application

Après tant d'attaques, les responsables de la sécurité des systèmes d'information (RSSI) sont conscients de l'importance de la « » (sensibilisation) des employés afin d'éviter qu'ils ne téléchargent quoi que ce soit à partir de sites suspects ou, par exemple, qu'ils laissent leurs enfants installer Minecraft sur un appareil professionnel. Et les salariés se montrent de plus en plus prudents vis-à-vis des appareils de l'Internet des objets (IoT), tels que les caméras, les imprimantes et les téléphones VoIP (qui utilisent une connexion Internet et la technologie « Voice over Internet Protocol » pour passer des appels).

«Vous devez disposer à la fois d’une politique écrite relative à l’utilisation acceptable des logiciels et d’un moyen technique de la faire respecter. » Ce n'est pas une tâche aisée, mais elle peut être simplifiée… grâce à l'automatisation. »

Mais les contrôles techniques, qui empêchent d'emblée toute intrusion indésirable, constituent un élément essentiel de toute stratégie de défense. C'est une chose de demander aux employés de ne pas brancher de clés USB non fiables ou d'installer des logiciels non fiables sur leur ordinateur portable ; c'en est une autre de rendre cela techniquement impossible.

C'est à ce niveau que de nombreuses entreprises rencontrent des difficultés. Ne serait-ce que pour des raisons de conformité réglementaire, vous devez disposer à la fois d'une politique écrite relative à l'utilisation acceptable des logiciels et d'un moyen technique de la faire respecter. Ce n'est pas une tâche aisée, mais elle peut être simplifiée, une fois encore, grâce à l'automatisation. Vérifier régulièrement vos « politiques écrites » et vous assurer que vous avez mis en place les mesures techniques nécessaires pour les compléter constitue une stratégie exceptionnelle pour renforcer la sécurité de votre organisation.

[Lire aussi : Pourquoi les employés enfreignent les politiques de cybersécurité]

6. Réaliser une évaluation approfondie des capacités

Lorsqu'ils élaborent des plans pour se préparer à l'inévitable crise de la chaîne d'approvisionnement, les RSSI auraient tout intérêt à répondre aux questions posées dans ce graphique :

Un schéma en forme de pyramide répertoriant les questions à se poser concernant les besoins essentiels en matière de cybersécurité, en commençant par l'inventaire à la base, puis en remontant vers le haut en passant par la télémétrie, la détection, le triage, les menaces, les comportements, la recherche active, le suivi et l'intervention.

Élaboré par Matt Swann, expert en sécurité chez Microsoft ( ), ce graphique représente la « hiérarchie des besoins » en matière d'intervention en cas d'incident. Ce modèle s'inspire de la hiérarchie des besoins d'Abraham Maslow, psychologue américain, qui répertorie les besoins humains en commençant par les plus fondamentaux. La version de Swann décrit les capacités que les organisations doivent mettre en place pour protéger leurs actifs commerciaux. Ce processus commence lui aussi par l'étape la plus élémentaire – un inventaire des actifs – et chaque niveau constitue un prérequis pour la capacité supérieure.

Les responsables de la sécurité pourraient devoir mener des discussions internes délicates pour déterminer où se situe leur organisation dans cette pyramide en termes de maturité. Certaines entreprises peuvent se retrouver bloquées aux niveaux les plus bas, ne sachant pas si elles sont en mesure d'identifier et de garantir une visibilité sur l'ensemble des actifs qu'elles protègent. Si vous ne parvenez pas à identifier et localiser l'ensemble de vos actifs, toutes les mesures que vous prendrez à partir de ce niveau risquent de ne couvrir qu'une partie de votre surface d'attaque totale et de nuire gravement à l'efficacité de votre équipe.

Vos spécialistes de la détection des menaces d' , , seront nettement plus efficaces lorsqu'ils opéreront dans un environnement doté de capacités de télémétrie et de visibilité solides.

7. Entretenir l'écosystème des relations

Au cours de mon mandat en tant que directeur de la recherche en sécurité des terminaux chez Tanium (propriétaire de cette publication), j'ai vu des clients tenter de sécuriser leur chaîne logistique logicielle à l'aide d'une grande variété d'approches, allant des outils développés en interne aux solutions prêtes à l'emploi. Le problème est que, si elles ne sont pas menées avec prudence, les tentatives visant à identifier, isoler et neutraliser du code défectueux peuvent ralentir, voire, pire encore, mettre hors service l'ensemble d'un système.

Une stratégie plus efficace consiste à entretenir les relations entre toutes les parties prenantes, tant au sein de votre organisation que dans votre réseau de fournisseurs et votre chaîne d'approvisionnement. Les responsables de la sécurité des systèmes d'information (RSSI) sont plus efficaces lorsqu'ils comprennent comment leurs collaborateurs utilisent les technologies, comment les fournisseurs assurent la sécurité de leurs logiciels, et comment les pouvoirs publics et les autres partenaires du secteur peuvent contribuer à soutenir ces efforts.

Votre chaîne d'approvisionnement logicielle est composée de nombreux maillons. C'est donc la meilleure solution pour le protéger.

Le tableau « Hiérarchie des besoins en matière d'intervention en cas d'incident » de Matt Swann, fourni par , avec l'autorisation de.