Connexion Premium

Hackerbot-claw : un bot exploite GitHub Actions et vide le dépôt de Trivy

L’attaque des bots

Hackerbot-claw : un bot exploite GitHub Actions et vide le dépôt de Trivy

Un bot alimenté a utilisé les GitHub Actions pour compromettre des dépôts GitHub. Ironie du sort, il a piraté un scanner de sécurité (vulnérabilité, mauvaises configurations…), publié une extension VS Code malveillante et renommé le dépôt (en privé).

Le 03 mars à 14h47

Il y a maintenant plus de sept ans que GitHub propose ses « Actions » pour automatiser des tâches, dont la mise en production automatique de code. On parle souvent de CI/CD avec CI pour Continuous Integration (intégration continue) et CD pour Continuous Deployment (déploiement continu).

La semaine dernière, un bot baptisé hackerbot-claw a utilisé l’intelligence artificielle générative (Claude Opus 4.5 selon sa propre présentation) pour exploiter activement la fonctionnalité GitHub Actions afin de faire des dégâts dans des dépôts GitHub.

Du code exécuté à distance sur au moins quatre cibles

StepSecurity (entreprise spécialisée dans la sécurité de l’automatisation de la livraison de code) a publié une analyse détaillée. De même pour Stéphane Robert, ingénieur DevOps et architecte cloud chez 3DS Outscale, sur son blog en se concentrant davantage sur une des attaques, contre le scanner de vulnérabilités open source Trivy. Il dresse un portrait au vitriol : « Un bot IA autonome qui compromet un scanner de sécurité, publie une extension VS Code malveillante, et renomme le dépôt en privé — le tout en quelques heures. On est clairement entrés dans une nouvelle ère ».

Durant plusieurs jours, une campagne d’attaques automatisées (avec cinq techniques différentes) a donc été lancée via GitHub Actions, « réussissant à exécuter du code à distance dans au moins 4 cibles sur 7 » selon le billet de blog de StepSecurity. Les cibles étaient prestigieuses : microsoft/ai-discovery-agent‍, DataDog/datadog-iac-scanner‍, avelino/awesome-go, ambient-code/platform, project-akri/akri, aquasecurity/trivy et RustPython/RustPython.

Dans un des cas, le bot a pu « exfiltrer un jeton GitHub d’un dépôt populaire, avec des autorisations d’écriture ». Pour d’autres, le bot a aussi mis en place une injection de script en ajoutant une charge malveillante dans un fichier version.sh, a modifié des noms de branches pour y ajouter du code, caché des commandes shell (en Base64) dans les noms de fichiers, injecté des prompts IA, etc.

Le dépôt hackerbot-claw a été fermé dans la journée d’hier. Il précisait auparavant être « un agent autonome qui analyse les dépôts publics à la recherche de workflows CI/CD mal configurés. Je les trouve. Je les vérifie. Je laisse un mot. Je n’exfiltre pas, je ne détruis pas, je ne persiste pas », affirmait la présentation, qui voulait donc le présenter comme un chevalier blanc.

Trivy, le scanner de vulnérabilités, se fait détrousser

L’attaque la plus médiatisée est celle contre Trivy, dont le dépôt officiel (24 000 étoiles) a été vidé. « Trivy est l’un des scanners de vulnérabilités open source les plus utilisés dans l’écosystème cloud native. Il scanne les images de conteneurs, les fichiers IaC (Terraform, Kubernetes), les dépôts de code, les SBOM… C’est un outil incontournable dans toute chaîne DevSecOps sérieuse », explique Stéphane Robert sur son blog.

Hormis le dépôt vide, le site officiel est toujours en place, comme la documentation de la version 0.69 et « la page d’installation référence même la version 0.69.1 dans ses exemples ». Le problème ne concerne que GitHub a priori, mais aussi par ricochet toutes les applications s’appuyant sur ce dépôt.

L’éditeur de Trivy, Aqua Security, explique de son côté que « le dépôt a été rendu privé et renommé (en private-trivy). Un dépôt vide a été poussé à la place du dépôt public. Les versions GitHub entre 0.27.0 et 0.69.1 ont été supprimées, y compris les discussions et ressources GitHub associées pour ces versions ».

Autre problème et pas des moindres : « Un artefact malveillant a été créé pour l’extension VScode de Trivy, puis poussé vers la marketplace Open VSIX (une alternative à la marketplace officielle de VSCode). Nous avons supprimé cet artefact et révoqué le jeton utilisé pour le publier ». L’équipe n’a pas trouvé d’autres « impacts » suite à cette attaque et se concentre sur un retour à la normale de l’ensemble des services.

Depuis, une nouvelle version 0.69.2 a été mise en ligne, la seule « considérée comme propre » par Stéphane Robert. « Si vous avez installé Trivy entre le 21 et le 28 février – vérifiez l’intégrité de votre binaire. En cas de doute, supprimez et réinstallez la v0.69.2 », ajoute-t-il.

Attaques CI/CD : « Vous ne pourrez plus dire “je ne savais pas” »

Pour StepSecurity, cette attaque de « Hackerbot-Claw démontre que les attaques CI/CD ne sont plus simplement théoriques. Des bots autonomes recherchent et exploitent activement les erreurs de configuration des flux de travail en production ».

Stéphane Robert lance lui aussi un avertissement sur LinkedIn : « Alors messieurs les RSSI, mesdames les responsables sécurité : l’attaque sur Trivy n’est pas un cas isolé. C’est un rappel. Vos pipelines sont une surface d’attaque. Ils ont des permissions d’écriture sur vos repos, accèdent à des secrets, et s’exécutent à chaque push. Vous ne pourrez plus dire “je ne savais pas” ».

Commentaires (13)

votre avatar
Désolé mais je n'arrive pas à tout comprendre.

C'est quoi un "bot alimenté" ? (j'ai cherché sur Google avant mais ca me sort des réponses sur les chatbot, aucun rapport je suppose)

"un bot baptisé hackerbot-claw a utilisé l’intelligence artificielle générative"

  • Un bot non-IA a décidé tout seul d'utiliser l'IA? (peu probable, mais c'est ce que je comprends)

  • Un bot déjà programmer pour utiliser une IA a décidé tout seul d'utiliser cette IA pour attaquer au lieu de juste remonter les problèmes?

  • Un humain a programmé le bot pour qu'il demande à une IA comment attaquer des depots github et a effectivement attaqué?

votre avatar
Un humain a programmé un bot qui, selon ses découvertes, s'appuie sur l'IA pour l'aider à aller plus loin.
votre avatar
L'article est effectivement incompréhensible !
votre avatar
Je pense que c'est juste une phrase pour dire "openclaw" sans le citer?
votre avatar
Il n'y a aucune raison de ne pas le citer si c'est le cas.
@SébastienGavois pour préciser, stp.
votre avatar
Quid de la responsabilité de l'humain qui a mis en place ce bot de CI ?
Est-ce que des plaintes peuvent être déposées contre lui ? Est-ce que c'est le cas ?
votre avatar
À mon avis c'est la même responsabilité qu'un hacker faisant lui-même les choses. Perso c'est surtout la responsabilité d'openclaw que j'aimerais questionner, s'il est avéré que c'est ce qui était utilisé.
votre avatar
pull_request_target + checkout = danger, dans les github actions.
(Il y a des protections possibles, comme le fait de restreindre le déclenchement de ces workflows via des labels, mais ça reste sensible et sujet aux erreurs)
Mieux vaut s'en débarrasser.
votre avatar
Je ne vais pas parler pour tout le monde mais depuis que des collègues s'appuient sur l'IA pour générer leur CI, des conditions de déclenchement via génération d'un tag, un label ou un simple "when" sont de moins en moins visible...
votre avatar
Pourtant c'est la base de pas publier une version à chaque push non ?
votre avatar
Heureusement mais quand tu dois publier et que tu ne mets même pas de conditions pour certains enchaînement, il y a un problème.

Ils ne font que se reposer sur leur vibe coding. Heureusement qu'on vise toujours nos preprod lors des déploiements.
votre avatar
C'est à dire, pas de condition ? J'avoue, je fais pas tant que ça de github action, je fais tout à la main (j'ai pas confiance) au niveau du passage des TU et je test à la main (ou en automatique selon mon projet), et je push un tags quand je suis sûre. La build et la publication se fait uniquement sur les tags.
Mais après vu que ce sont des projets perso dont je contrôle le process de A à Z (incluant forcément la QA) c'est plus simple de rétropédaler s'il y a un soucis.
votre avatar
Quand tu déploie, sans github action on est sur gitlab, tu peux conditionner les lancements dans ton pipe selon une failure, un tag ou un label.

Hackerbot-claw : un bot exploite GitHub Actions et vide le dépôt de Trivy

  • Du code exécuté à distance sur au moins quatre cibles

  • Trivy, le scanner de vulnérabilités, se fait détrousser

  • Attaques CI/CD : « Vous ne pourrez plus dire “je ne savais pas” »