Nouvelles Du Monde

Chaînes d’approvisionnement en logiciels menacées : la menace d’usurpation de compte

Chaînes d’approvisionnement en logiciels menacées : la menace d’usurpation de compte
Image : Adobe

Comme l’a récemment exposé Cisco Talos, attaques de la chaîne d’approvisionnement logicielle ont gagné en popularité parmi toutes sortes de cybercriminels. Autrefois exclusivement utilisées par les acteurs de la menace de cyberespionnage, ces attaques sont désormais également devenues attrayantes pour tout type de cybercriminel, qui voit dans cette menace un moyen de compromettre des centaines ou des milliers d’ordinateurs en une seule opération.

Cela explique pourquoi la menace d’attaque de la chaîne d’approvisionnement logicielle a plus que triplé en 2021 par rapport à 2020, rapportent les chercheurs.

Que sont les attaques de la chaîne d’approvisionnement logicielle ?

Une attaque de la chaîne d’approvisionnement logicielle consiste à cibler des référentiels de logiciels ou des emplacements de téléchargement, afin de propager des logiciels malveillants à la place ou en plus de logiciels légitimes. Les attaquants peuvent utiliser plusieurs moyens pour compromettre une chaîne d’approvisionnement logicielle.

Une façon serait de trouver des vulnérabilités pour compromettre le stockage des logiciels téléchargeables, en particulier lorsqu’ils sont stockés sur un site Web tiers. Pourtant, cela pourrait ne pas réussir dans les référentiels de code stockant des logiciels.

Une autre méthode consiste à attaquer les comptes des développeurs et à y accéder ou à accéder à un compte de mainteneur de logiciel ou de site Web. Une fois l’accès compromis, l’attaquant peut alors publier des mises à jour malveillantes du logiciel, affectant chaque utilisateur et entreprise qui téléchargerait la nouvelle mise à jour et l’installerait.

Cela peut être particulièrement désastreux dans le cas d’une bibliothèque compromise et modifiée, qui pourrait être utilisée par des centaines de logiciels différents dans le monde entier. Cela peut arriver sur les packages logiciels réels ainsi que sur les anciens packages qui poussent soudainement de nouvelles mises à jour après des années d’inactivité.

Lire aussi  Boris Cruyssaert de Sensoa : "On ne fait pas le sexe pour faire de la prévention" - Listen Select

VOIR : Violation de mot de passe : pourquoi la culture pop et les mots de passe ne font pas bon ménage (PDF gratuit) (TechRepublic)

La plupart des développeurs visent à gagner en efficacité et utilisent donc beaucoup de code tiers, généralement des bibliothèques, pour éviter d’avoir à redévelopper quelque chose qui est déjà fait et librement disponible. Pourtant, les logiciels de ces tiers ne sont presque jamais examinés par les développeurs et sont entièrement fiables.

Risques de prise de contrôle de compte dans les référentiels de code actuels

Les chercheurs de Talos ont analysé les référentiels de code les plus fréquemment utilisés, avec un œil attentif sur la difficulté pour un attaquant de compromettre avec succès un compte de développeur. Les chercheurs ont également travaillé avec ces référentiels pour résoudre les problèmes majeurs lorsqu’ils sont trouvés.

MNP

NPM, ou Node Package Manager, est un référentiel de code spécifique au langage de programmation JavaScript qui fournit plus de deux millions de packages. Ces packages contiennent des métadonnées telles qu’une description, un lien vers le fichier d’archive du package et une liste des responsables du package, y compris le nom d’utilisateur et l’adresse e-mail du développeur (Figure A).

Figure A

métadonnées du package NPM
Image : Cisco Talos. Les métadonnées d’un package NPM affichent le surnom et l’adresse e-mail du développeur.

Le référentiel NPM a récemment fait l’objet d’un audit indépendant et il semble qu’il ne soit pas sujet aux attaques contre les adresses e-mail des développeurs. Les comptes de développeur expirés n’ont pas pu être récupérés, avec des mesures de sécurité spécifiques prises par NPM.

APIPy

Python Package Index stocke près de 400 000 projets différents écrits dans le langage de programmation Python. Les adresses e-mail des développeurs ne sont pas exposées publiquement par défaut sur ce référentiel. Pourtant, de nombreux développeurs activent cette fonctionnalité, car ils ont besoin ou souhaitent interagir avec d’autres personnes exécutant leur code pour diverses raisons, telles que des commentaires sur les fonctionnalités, des suggestions d’amélioration et des rapports de bogues.

Lire aussi  Voici comment l'OSA (apnée obstructive du sommeil) non traitée peut entraîner des crises cardiaques | Santé

L’authentification multifacteur n’est pas activée par défaut pour la plus grande partie du référentiel. Il n’est obligatoire que pour les “projets critiques”, qui représentent le top 1 % des projets PyPI, en fonction du nombre de téléchargements. PyPI a distribué 4 000 clés de sécurité matérielles pour MFA pour ces projets critiques.

La prise de contrôle de compte chez PyPI a déjà eu lieu, mais les modifications apportées récemment par les administrateurs semblent faire évoluer la sécurité des comptes dans la bonne direction, selon les chercheurs de Talos.

RPC

Plus de 200 000 modules de langage de programmation Perl sont stockés sur le Comprehensive Perl Archive Network. Les développeurs de modules ont leur propre page d’accueil répertoriant leurs contributions et leur adresse e-mail (Figure B).

Figure B

Page d'accueil du RCPA
Image : Cisco Talos. Une page d’accueil CPAN révèle l’adresse e-mail des développeurs.

Il est possible sur ce référentiel d’accéder aux adresses e-mail abandonnées des développeurs, dans le cas où ils ont utilisé un domaine qui n’existe plus. Un attaquant peut enregistrer le domaine et configurer un e-mail pour celui-ci et demander une réinitialisation du mot de passe.

Talos a contacté le CPAN et lui a fourni une liste de comptes vulnérables, que le CPAN a désactivés.

NuGet

NuGet est un référentiel de logiciels .NET, avec plus de 317 000 packages. Les développeurs ont leurs adresses e-mail masquées par défaut sur la plateforme. Au lieu de cela, NuGet propose un formulaire sur le site Web pour contacter les développeurs sans divulguer leur adresse e-mail. Une option permettant aux développeurs d’ajouter leur identifiant Twitter est fournie mais ne peut pas être considérée comme un moyen direct d’essayer de compromettre un développeur.

RubyGems

Les développeurs Ruby peuvent utiliser le référentiel RubyGems, composé d’environ 172 000 packages (également appelés gems). Les adresses e-mail des développeurs sont masquées par défaut. Pourtant, certaines gems contiennent un fichier mainteneur, qui indique une adresse e-mail de contact pour le développeur. Cependant, ce n’est pas cohérent d’une gemme à l’autre.

Lire aussi  iOS 16 obtient un nouvel indicateur de batterie, mais uniquement pour ces iPhones

RubyGems a récemment annoncé l’application de la MFA pour les comptes des meilleurs développeurs afin de lutter contre les prises de contrôle de compte.

Que faire contre cette menace ?

Pour commencer, les comptes des développeurs et des mainteneurs doivent être protégés contre la prise de contrôle de compte. Cela pourrait être fait en faisant en sorte que tous les référentiels de code poussent MFA et rendent obligatoire l’accès au code. Plusieurs référentiels ont déjà appliqué cette politique, mais principalement pour leurs meilleurs développeurs.

Deuxièmement, les référentiels de code ne doivent pas révéler les adresses e-mail des développeurs ou des mainteneurs. Fournir un formulaire pour joindre les développeurs est une méthode plus sûre.

Les clés de signature de code doivent également être déployées, pour garantir que le nom de domaine expiré d’un développeur ne puisse pas être utilisé par un attaquant, car il ne serait pas propriétaire de la clé de signature de code.

Au niveau des consommateurs, les organisations doivent soigneusement analyser les logiciels qu’elles utilisent et segmenter un groupe de systèmes exécutant des logiciels particuliers à partir du reste du réseau interne. Bien que cela ait aussi des limites.

Idéalement, les nouvelles mises à jour de n’importe quel logiciel doivent être examinées avant le déploiement en examinant les différences de code entre l’ancien et le nouveau code. Bien qu’idéale, cette technique utiliserait certainement une grande quantité de ressources au sein de l’entreprise.

Divulgation : Je travaille pour Trend Micro, mais les opinions exprimées dans cet article sont les miennes.

Facebook
Twitter
LinkedIn
Pinterest

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

ADVERTISEMENT