Retour au blog
Veille sécurité

Attaque supply chain sur Trivy : analyse technique et vérification d'impact sur Scanyze

Olivier Lange2026-03-24

Le 19 mars 2026, le scanner de vulnérabilités open source Trivy (Aqua Security) — utilisé par plus de 100 millions de pipelines à travers le monde — a été compromis dans une attaque supply chain multi-vecteurs. Le groupe d'acteurs TeamPCP a exploité des credentials résiduels d'un incident antérieur pour injecter un infostealer dans les releases officielles et les GitHub Actions du projet.

Scanyze utilise Trivy comme moteur SCA (Software Composition Analysis) dans son pipeline de scan de code. Nous avons immédiatement procédé à une vérification complète de notre exposition. Verdict : Scanyze n'est pas impacté par cette attaque.

Cet article détaille l'anatomie technique de l'attaque, les trois vecteurs d'exposition vérifiés dans notre codebase, et les mesures de durcissement déjà en place.


Anatomie de l'attaque

Chronologie

Date (UTC)Événement
~27 février 2026Un bot autonome (hackerbot-claw) exploite une misconfiguration `pull_request_target` pour exfiltrer un PAT
1er mars 2026Aqua Security divulgue l'incident et procède à une rotation de credentials — rotation non-atomique
19 mars ~17:43TeamPCP force-push 76/77 tags dans `trivy-action` et remplace les 7 tags de `setup-trivy`
19 mars ~18:22Publication de trivy v0.69.4 malicieux via le compte `aqua-bot` compromis
19 mars ~20:38Aqua Security identifie et contient l'attaque
22 marsImages Docker Hub malicieuses v0.69.5 et v0.69.6 publiées — l'attaque continue
23 marsDéfacement de 44 repositories Aqua Security supplémentaires

Vecteurs d'attaque

L'attaque a touché simultanément trois surfaces :

  • GitHub Actions (trivy-action) — 76 tags sur 77 redirigés vers des commits contenant un credential stealer chiffré dans `entrypoint.sh`. Le malware s'exécutait avant le scan légitime, rendant la compromission invisible dans les logs CI/CD.
  • Binaires et images Docker — La release v0.69.4 contenait le scanner légitime et un module d'exfiltration ciblant les variables d'environnement, credentials cloud, clés SSH, tokens API et wallets crypto. Données chiffrées puis envoyées vers `scan.aquasecurtiy[.]org` (typosquatting).
  • setup-trivy Action — Les 7 tags remplacés par des commits usurpant l'identité d'un contributeur légitime.

Indicateurs de compromission

Les commits malicieux présentaient plusieurs anomalies forensiques :

  • Timestamps revendiqués de 2021-2022 mais commit parent daté de mars 2026 — impossibilité temporelle
  • Les commits originaux étaient signés GPG ; les remplacements ne l'étaient pas
  • Chaque commit malicieux ne modifiait que `entrypoint.sh`, contrairement aux originaux
  • L'attaquant a possiblement utilisé les GitHub Immutable Releases pour verrouiller l'état malicieux

Vérification d'impact sur Scanyze

Scanyze intègre Trivy comme outil SCA dans son pipeline de scan de code. Nous avons audité les trois surfaces d'exposition :

1. GitHub Actions CI/CD — Non impacté ✅

Notre workflow CI utilise `trivy-action` pinné par SHA de commit complet, et non par tag de version. Le SHA correspond à la version v0.35.0, seul tag non compromis (77e sur 77). Les pins SHA sont immuables et n'ont pas été affectés.

2. Binaire Trivy dans le Dockerfile — Non impacté ✅

Le conteneur codeworker télécharge le binaire Trivy avec une version hardcodée (v0.69.2). Cette version n'a jamais été compromise. L'attaque ciblait exclusivement v0.69.4 et ultérieurement v0.69.5/v0.69.6.

3. Wrapper Go (trivy_sca.go) — Non impacté ✅

Le code Go de Scanyze est un wrapper CLI qui appelle le binaire installé dans le conteneur. Aucune dépendance Go directe vers les modules compromis.

Vérifications IOC complémentaires

  • Aucun repository `tpcp-docs` dans l'organisation GitHub SecuAAS
  • Aucun workflow exécuté pendant la fenêtre d'exposition (17:00–23:13 UTC, 19 mars)
  • `setup-trivy` n'est utilisé dans aucun de nos workflows

Pourquoi nous n'étions pas vulnérables

Les pratiques de durcissement suivantes, déjà en place avant l'incident, nous ont protégés :

  • Pin SHA sur toutes les GitHub Actions — Chaque Action tierce est référencée par son SHA complet de commit, jamais par tag de version. C'est la recommandation n°1 d'Aqua Security dans leur post-mortem.
  • Versions explicites pour les binaires — Le Dockerfile utilise un `ARG` versionné pour chaque outil (Trivy, Gitleaks, TruffleHog, Hadolint), garantissant reproductibilité et isolation.
  • Pas de tag `latest` — Nous ne référençons jamais `:latest` dans nos images. L'attaque du 22 mars ciblait spécifiquement ce tag sur Docker Hub.
  • Veille sécurité active — L'équipe SecuAAS surveille en continu les advisories des outils intégrés. L'incident a été détecté et analysé dans les heures suivant la divulgation.

Point de vigilance : bases de données suspendues

Aqua Security a suspendu les mises à jour de ses bases de vulnérabilités (`trivy-db`, `trivy-java-db`, `vuln-list`) pendant la remédiation. Les scans Trivy fonctionnent actuellement avec une base potentiellement obsolète.

Pour les utilisateurs de Scanyze, l'impact est limité : la plateforme agrège plusieurs sources de données et les scans EASM ne dépendent pas de la DB Trivy.


Leçons pour la communauté

  • L'émergence d'attaquants autonomes — Le vecteur initial était un bot IA autonome capable d'identifier des misconfigurations, crafter des PRs crédibles, et exfiltrer des secrets — le tout sans intervention humaine.
  • La supply chain comme vecteur privilégié — Compromettre un outil de sécurité utilisé par des millions de pipelines donne un accès direct aux secrets les plus sensibles. L'ironie ultime : l'outil censé protéger devient le vecteur d'attaque.
  • La rotation de credentials doit être atomique — L'échec de la rotation initiale est la cause directe de la deuxième vague. Toute réponse à incident doit traiter la rotation comme une opération critique et indivisible.

Recommandations

Si vous utilisez Trivy dans vos pipelines CI/CD :

  • Vérifiez immédiatement si vos workflows ont exécuté `trivy-action` ou `setup-trivy` entre 17:00 et 23:13 UTC le 19 mars 2026
  • Pinnez par SHA toutes vos GitHub Actions tierces — c'est non-négociable
  • Auditez la présence d'un repository `tpcp-docs` dans votre organisation GitHub
  • Vérifiez vos logs réseau pour les connexions vers `scan.aquasecurtiy[.]org` et `45.148.10.212`
  • Ne mettez pas à jour Trivy tant qu'Aqua Security n'a pas confirmé la fin de la remédiation
Scanyze est une plateforme EASM et d'analyse de sécurité développée par SecuAAS. Pour toute question, contactez-nous à securite@secuaas.com.

Prêt à sécuriser votre entreprise ?

Commencez à scanner votre surface d'attaque externe en quelques minutes — sans carte de crédit.