Un seul jeton GitHub a ouvert la porte à la chaîne d'approvisionnement du logiciel

Publié 5 min de lectura 7 lecture

Un seul jeton GitHub a échoué dans la rotation et a ouvert la porte. C'est la conclusion centrale de l'incident dans Grafana Labs suite à la récente vague de paquets malveillants publiés dans npm qui ont affecté la chaîne d'approvisionnement de l'écosystème développeur. Selon l'enquête publique de la société, un module robuste d'un paquet engagé pour TanStack exécuté dans ses pipelines exfiltré secrets et a permis aux attaquants d'accéder à des dépôts privés quand un jeton n'a pas été révoqué à temps.

L'incident montre cruellement que la surface d'attaque n'est pas seulement en production mais dans les outils que nous utilisons pour construire et publier des logiciels : intégration continue et gestionnaires de paquets. Lorsqu'un flux d'IC consomme une dépendance malveillante, cette dépendance fonctionne avec les privilèges du coureur et peut filtrer ce qu'il trouve dans l'environnement, y compris des jetons qui permettent des mouvements latéraux vers d'autres actifs de l'organisation.

Un seul jeton GitHub a ouvert la porte à la chaîne d'approvisionnement du logiciel
Image générée avec IA.

Les conséquences confirmées par Grafana combinent le vol de code et l'exfiltration d'informations opérationnelles, mais, pour l'instant, il n'y a aucune preuve d'engagement de données client dans la production. L'entreprise affirme qu'elle n'a pas payé de sauvetage, que le dépôt de code n'a pas été modifié et que les informations téléchargées comprenaient des noms professionnels et des courriels utilisés dans les relations d'affaires; toutefois, l'événement réduit la confiance dans la chaîne d'approvisionnement et oblige à revoir les contrôles CI / CD.

Ce cas répète une tendance récente dans les attaques de la chaîne d'approvisionnement : l'engagement de paquets open source (dans ce cas les paquets associés à TanStack), l'exécution dans des environnements de développement ou d'IC et l'exfiltration des identifiants qui pointent vers l'infrastructure interne. L'atténuation exige des mesures techniques immédiates et des changements organisationnels dans la façon dont les logiciels et leurs secrets sont gérés.

Pour le matériel technique et les agents de sécurité, les mesures urgentes sont claires : alterner et limiter la portée de tous les jetons et titres de compétence utilisés par les pipelines, vérifier scientifiquement quels dépôts et artefacts ont été consultés ou téléchargés, et ajouter des contrôles afin qu'un seul secret commis ne permette pas les mouvements vers d'autres ressources essentielles. La documentation de GitHub sur le durcissement des actions et les bonnes pratiques pour les secrets est un bon point de départ pour la mise en œuvre d'atténuations concrètes: https: / / docs.github.com / fr / actions / guides de sécurité / actions de sécurité-durcissement-pour-github et https: / / docs.github.com / fr / actions / guides de sécurité / using-encrypted-secrets-in-workflows.

Au-delà de la réponse réactive, les organisations devraient intégrer des contrôles qui réduisent la probabilité et l'impact de ce type d'intrusions : réduire au minimum la portée des jetons, utiliser des références rapides et de courte durée, l'accès des coureurs de segment (p. ex., les coureurs auto-organisés isolés par projet), restreindre l'utilisation des jetons dans les workflows qui ne l'exigent pas et appliquer des politiques d'approbation pour les unités externes de l'IC.

Dans la couche de dépendances et de développement, il est essentiel d'appliquer une défense approfondie: définir les versions et les hachages des paquets (vérificateurs de verrouillage ou d'intégrité du paquet), utiliser la numérisation automatique des unités avec alertes précoces, utiliser des politiques de blocage pour les paquets inconnus ou les nouveaux auteurs et envisager des mesures de vérification de la chaîne d'approvisionnement telles que les signatures de paquets et SLSA. Il permet également de tenir à jour un inventaire (SBOM) qui facilite l'identification des pipelines consommés dans chaque bâtiment.

Du point de vue de la détection, il convient de mettre en œuvre la télémétrie pour l'exfiltration des coureurs et les alertes sur les comportements anormaux dans GitHub (téléchargements massifs de dépôts, création de fourches ou de clones répétés par des acteurs non réguliers). Les examens réguliers des permis dans les organisations GitHub et la mise en oeuvre de politiques d'accès fondées sur le rôle sont des mesures qui réduisent la zone exploitable par un jeton engagé.

Un seul jeton GitHub a ouvert la porte à la chaîne d'approvisionnement du logiciel
Image générée avec IA.

Pour la communauté open source il y a aussi une leçon collective: les projets et les responsables devraient éduquer les utilisateurs sur les risques de dépendance, collaborer avec les dossiers pour obtenir des réponses plus rapides lorsque des paquets malveillants apparaissent et soutenir les initiatives de sécurité qui leur permettent de vetor les paquets suspects avant qu'ils n'atteignent des pipelines massivement automatisés.

Grafana a publié ses mises à jour et l'état de la recherche sur son blog, où elle détaille les mesures prises et la portée connue à ce jour: https: / / grafana.com / blog / grafana-labs-security-updatate-latest-on-tanstack-npm-Supply-chain-ransomware-incident /. Ceux qui gèrent des plates-formes et des pipelines devraient examiner ces rapports afin d'extraire des indicateurs d'engagement et de vérifier si leur environnement partageait des vecteurs semblables.

En bref, l'incident est un appel à renforcer le contrôle sur les secrets de l'IC, à traiter la chaîne d'approvisionnement comme une priorité stratégique et à appliquer des solutions combinées: de meilleures politiques d'accès, une défense approfondie sur les dépendances et une détection proactive afin qu'un seul jeton perdu ne soit plus une porte arrière aux actifs critiques.

Couverture

Autres

Plus de nouvelles sur le même sujet.