Automatisez la découverte de vulnérabilités dans GitHub Actions avec Zizmor

Dans le monde du CI/CD (Intégration et Déploiement Continus), GitHub Actions est devenu un standard. Cependant, une mauvaise configuration dans vos fichiers YAML peut ouvrir la porte à des attaques critiques comme l’injection de commandes ou le vol de secrets. Aujourd’hui, nous allons voir comment automatiser l’audit de ces workflows avec Zizmor.

Qu’est-ce qu’un Workflow GitHub Actions ?

Un workflow est un processus automatisé défini par un fichier YAML dans votre dépôt. Il permet de builder, tester ou déployer votre code. S’il est mal sécurisé, un attaquant peut manipuler ces processus pour exécuter du code malveillant sur vos serveurs (runners).

Les risques courants

Il existe plusieurs vecteurs d’attaque sur GitHub Actions que Zizmor permet de détecter :

  • Repo-jacking : Prise de contrôle via des dépendances renommées.
  • Pwn-request : Exploitation de déclencheurs comme pull_request_target.
  • Unpinned Actions : Utilisation d’actions sans hash de commit (permettant l’injection de code malveillant si l’action tierce est compromise).
  • Injection de template : Utilisation directe de variables utilisateur ${{ github.event... }} dans des scripts shell.

Présentation de Zizmor

Zizmor est un outil d’analyse statique (linter) écrit en Rust, conçu spécifiquement pour auditer la sécurité des workflows GitHub Actions. Il analyse vos fichiers YAML et identifie les configurations à risque avant qu’elles ne soient poussées en production.

Comment installer et utiliser Zizmor

  1. Installation : Zizmor est disponible sur plusieurs plateformes. Vous pouvez l’installer via pip ou télécharger la version compilée directement depuis le dépôt GitHub officiel.
pip install zizmor
  1. Configuration de l’API GitHub : Pour scanner des dépôts distants, vous aurez besoin d’un Token d’Accès Personnel (PAT) GitHub. Cela permet à l’outil d’accéder aux fichiers de configuration via l’API.
  2. Lancer un scan : Il suffit de pointer l’outil vers votre dépôt local ou un dépôt distant ds
Bashzizmor.

3.L’outil renverra alors un diagnostic détaillé des vulnérabilités trouvées, souvent avec des recommandations pour les corriger.

Automatisation via GitHub Actions

Le véritable avantage de Zizmor est de l’intégrer directement dans votre pipeline de sécurité. Vous pouvez configurer un workflow qui scanne vos propres fichiers de configuration à chaque nouvelle Pull Request.

Exemple de workflow sécurisé :

  • Utiliser des variables d’environnement pour manipuler les données utilisateur.
  • Restreindre les permissions du GITHUB_TOKEN au strict nécessaire (lecture seule par défaut).
  • Vérifier systématiquement que toutes les actions tierces sont « pinnées » par un hash SHA.

Conclusion

Détecter manuellement toutes les failles de configuration dans des workflows complexes est une tâche ardue. Zizmor simplifie ce processus en automatisant l’audit statique. C’est un outil indispensable pour tout ingénieur DevOps ou chercheur en vulnérabilités souhaitant sécuriser la chaîne de production logicielle.


L’avis de l’équipe Zerone Cyber : La sécurité de la supply chain (chaîne d’approvisionnement) est un enjeu majeur. Ne laissez pas un simple fichier YAML devenir le maillon faible de votre infrastructure. L’automatisation avec des outils comme Zizmor est la clé d’une défense proactive.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *