Qu'est-ce que Attaque par la chaîne d'approvisionnement ?

Attaque qui, au lieu de viser directement l'organisation cible, s'en prend aux points faibles du flux d'approvisionnement dont elle dépend (sa chaîne d'approvisionnement), comme les logiciels, les composants ou les sous-traitants, pour y pénétrer indirectement. Parmi les exemples figurent l'insertion de code malveillant dans des mises à jour légitimes, le détournement de paquets open source ou la publication de paquets malveillants aux noms similaires, et l'intrusion par l'intermédiaire de prestataires informatiques. Dans l'incident SolarWinds, découvert en 2020, les dommages se sont étendus à de nombreuses organisations par des mises à jour légitimes et signées. Pour le matériel, les chevaux de Troie matériels ajoutés pendant la fabrication relèvent aussi de ce type de menace.

Nom japonais: サプライチェーン攻撃

« Attaque par la chaîne d'approvisionnement » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Cyberattaques et défense en pratique.

Domaine: Cyberattaques et défense en pratique

S'entraîner : questions sur Attaque par la chaîne d'approvisionnement

Une entreprise utilise une bibliothèque à usage interne nommée acme-utils, placée dans son dépôt de paquets interne (registre privé). Un attaquant a enregistré dans un dépôt de paquets public un paquet du même nom, acme-utils, avec un numéro de version plus élevé, et il s'est avéré que, selon les paramètres de build, l'environnement de build interne pouvait récupérer le paquet de l'attaquant. Quelle contre-mesure à cette « confusion de dépendances » (dependency confusion) est la plus appropriée ?

  1. AGarder petits les numéros de version des bibliothèques à usage interne pour les distinguer facilement des paquets du dépôt public
  2. BPlacer les paquets à usage interne dans un espace de noms géré par l'organisation, configurer cet espace de noms pour qu'il ne soit récupéré que depuis le dépôt interne, et figer les versions et les valeurs de hachage avec un fichier de verrouillage
  3. CLes paquets des dépôts publics sont contrôlés et fiables ; il n'est donc pas nécessaire de configurer le dépôt depuis lequel on les récupère
Afficher la réponse et l'explication

Réponse : B. Placer les paquets à usage interne dans un espace de noms géré par l'organisation, configurer cet espace de noms pour qu'il ne soit récupéré que depuis le dépôt interne, et figer les versions et les valeurs de hachage avec un fichier de verrouillage

La confusion de dépendances est une forme d'attaque par la chaîne d'approvisionnement logicielle. Certains gestionnaires de paquets consultent plusieurs dépôts et, selon leurs paramètres, choisissent le numéro de version le plus élevé quand un même nom existe ; les attaquants en abusent pour faire récupérer un paquet malveillant portant le même nom qu'un paquet interne. La contre-mesure consiste à utiliser pour les paquets internes un espace de noms (scope) géré par l'organisation, à ne lier cet espace de noms qu'au dépôt interne et à indiquer explicitement depuis quel dépôt chaque paquet est récupéré. En outre, figer les versions et les valeurs de hachage des dépendances avec un fichier de verrouillage empêche qu'elles soient remplacées à l'insu de tous par autre chose. Enregistrer le premier l'espace de noms de l'organisation dans le dépôt public aide aussi à empêcher l'usurpation.

Dans l'incident SolarWinds, découvert en décembre 2020, des attaquants se sont introduits dans l'environnement de build d'un logiciel d'administration informatique et du code malveillant a été inséré dans des mises à jour légitimes. Ces mises à jour ont été distribuées avec la signature de code légitime du développeur. Quel est l'enseignement le plus approprié de cet incident ?

  1. ALes mises à jour dotées d'une signature de code valide ne contiennent jamais de code malveillant ; il suffit donc que les utilisateurs vérifient la signature
  2. BLes mises à jour sont dangereuses ; il ne faut donc jamais mettre à jour un logiciel, y compris pour les correctifs de sécurité
  3. CUne signature de code montre seulement qui a signé et si le code a été modifié après la signature ; les développeurs doivent donc protéger l'environnement de build, et les utilisateurs surveiller aussi le comportement des logiciels de confiance
Afficher la réponse et l'explication

Réponse : C. Une signature de code montre seulement qui a signé et si le code a été modifié après la signature ; les développeurs doivent donc protéger l'environnement de build, et les utilisateurs surveiller aussi le comportement des logiciels de confiance

La signature de code confirme qui a signé et que le contenu n'a pas été modifié après la signature ; elle ne peut pas reconnaître du code malveillant inséré avant la signature. Dans l'incident SolarWinds, exemple type d'attaque par la chaîne d'approvisionnement logicielle, du code malveillant a été ajouté pendant le build, si bien qu'il est parvenu à de nombreuses organisations sous forme de mises à jour légitimes et signées. Dans la porte dérobée de xz-utils, découverte en mars 2024, une personne qui avait passé longtemps à gagner la confiance en tant que développeur a elle aussi glissé du code malveillant dans les fichiers distribués. Il est important que les développeurs isolent et protègent l'environnement de build et enregistrent et vérifient la provenance, du code source jusqu'au build, et que les utilisateurs surveillent même les logiciels de confiance pour détecter les communications et comportements suspects avec l'EDR et des outils similaires.

« Attaque par la chaîne d'approvisionnement » dans les explications

Questions mentionnant « Attaque par la chaîne d'approvisionnement » (2)

  1. Une entreprise utilise une bibliothèque à usage interne nommée acme-utils, placée dans son dépôt de paquets interne (registre privé). Un attaquant a enregistré dans un dépôt de paquets public un paquet du même nom, acme-utils, avec un numéro de version plus élevé, et il s'est avéré que, selon les paramètres de build, l'environnement de build interne pouvait récupérer le paquet de l'attaquant. Quelle contre-mesure à cette « confusion de dépendances » (dependency confusion) est la plus appropriée ?
  2. Dans l'incident SolarWinds, découvert en décembre 2020, des attaquants se sont introduits dans l'environnement de build d'un logiciel d'administration informatique et du code malveillant a été inséré dans des mises à jour légitimes. Ces mises à jour ont été distribuées avec la signature de code légitime du développeur. Quel est l'enseignement le plus approprié de cet incident ?

Termes associés

EDR (endpoint detection and response) Centre des opérations de sécurité Cyber Kill Chain Indicateur de compromission (IoC) Investigation numérique (forensique) MITRE ATT&CK Mouvement latéral (lateral movement) Réponse aux incidents SBOM (nomenclature logicielle) SIEM (gestion des informations et des événements de sécurité)

Retour au glossaire