In this article
Comment sécuriser vos workflows GitHub Actions avec Snyk pour renforcer la sécurité JavaScript
Si vous gérez vos dépôts de code source sur GitHub, vous utilisez probablement aussi GitHub Actions pour vos workflows CI/CD : une excellente occasion de sécuriser vos applications JavaScript.
Les workflows GitHub Actions les plus courants chez les développeurs consistent à créer et à tester les artefacts logiciels. Il peut s’agir d’une application frontend qui nécessite la transpilation et la compilation des types TypeScript, ou d’une application backend avec des workflows d’intégration continue, par exemple pour exécuter des tests unitaires et des tests d’intégration.
Vous pouvez aussi utiliser des workflows GitHub Actions pratiques, par exemple pour vérifier le formatage de vos fichiers Markdown ou repérer les liens rompus dans votre README.
Et si vous ajoutiez des tests de sécurité ? Mieux vaut détecter les problèmes tôt et les corriger plutôt que de les découvrir trop tard, après une fuite de données ou un autre incident de sécurité.
Ajouter la sécurité Snyk aux workflows GitHub Actions
Snyk met à votre disposition un workflow GitHub Actions Snyk personnalisé et préconfiguré, que vous pouvez ajouter à votre CI. Vous n’avez ainsi pas à gérer directement les analyses de vulnérabilités avec la CLI Snyk. Le dépôt de code de cette GitHub Action se trouve sur GitHub, à l’adresse snyk/actions.
Obtenir votre jeton Snyk
Pour commencer, nous devons obtenir votre jeton Snyk afin de l’ajouter à la GitHub Action. Consultez la documentation Snyk GitHub Actions pour savoir comment obtenir votre jeton Snyk. Une fois le jeton obtenu, ajoutez-le aux secrets du dépôt Actions depuis les paramètres GitHub :

Remarque : si vos workflows CI gèrent plusieurs environnements, il est plus sûr de définir le jeton Snyk comme secret pour chaque environnement plutôt qu’au niveau du dépôt.
Configurer le workflow Snyk GitHub Action
Ensuite, créez un fichier .github/workflows/security.yml contenant le workflow de base pour l’analyse de sécurité Snyk :
name: Security
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}Lancer l’analyse de sécurité Snyk
Une fois le fichier de workflow security.yml ajouté, celui-ci s’exécutera lors d’un événement qui valide et pousse des mises à jour vers la branche main, ou lors d’événements de pull request. Il analysera alors le code open source pour détecter les vulnérabilités des packages tiers :

Mission accomplie !
Aucune vulnérabilité de sécurité n’a été détectée dans mon petit projet CLI.
Cette analyse ne recherche que les vulnérabilités open source, car elle exécute par défaut la commande snyk test. Vérifions également la présence de problèmes de sécurité dans le code, au cas où j’en aurais ajouté par inadvertance.
Ajouter une analyse de sécurité du code SAST avec Snyk
Snyk peut également analyser votre code source pour y détecter des vulnérabilités. Si vous avez écrit du code non sécurisé par erreur ou n’avez pas respecté les bonnes pratiques de codage sécurisé, Snyk détectera le flux de code de la source à la destination et vous indiquera comment le corriger si vous utilisez l’extension Snyk pour IDE.
Ajoutons l’analyse de sécurité du code à notre workflow GitHub Actions en complétant la déclaration du job existant comme suit :
code-security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
command: code test Vous remarquerez que nous avons spécifiquement ajouté le paramètre supplémentaire command: code test à la GitHub Action Snyk.
Comment corriger les vulnérabilités de sécurité du code ?
Snyk peut détecter des problèmes de sécurité dans votre code ou vos dépendances. Voyons comment les corriger.
Les journaux de la GitHub Action ci-dessous montrent que l’action Snyk a détecté une vulnérabilité d’injection de commande dans mon projet. Snyk fournit les informations suivantes :
Le chemin du fichier et le numéro de ligne permettent de repérer un chemin d’exécution non sécurisé. La capture d’écran du workflow de sécurité ci-dessous indique le fichier src/bin/cli.ts, ligne 8.
Description de la vulnérabilité de sécurité détectée. Les résultats ci-dessous font état d’une vulnérabilité d’injection de commande, provoquée par le passage d’un argument de ligne de commande au module principal de Nthe ode.js child_process.

Si vous installez l’extension Snyk pour IDE, comme je l’ai fait dans VS Code, vous bénéficierez des avantages suivants :
Un rapport plus détaillé sur la façon dont le problème de sécurité du code se propage dans votre application
Détectez les problèmes de sécurité plus tôt, pendant que vous codez, sans attendre l’exécution du workflow CI
Recevez des conseils de sécurité pour corriger le problème. Dans certains cas, DCAI Fix de Snyk propose également des corrections automatiques grâce au moteur d’IA de Snyk.

Ce projet JavaScript est une application en ligne de commande Node.js qui reçoit la commande de l’utilisateur et l’exécute. Le lancement de commandes système est le cas d’usage principal de cette CLI Node.js : il s’agit donc d’un risque acceptable, et non d’une vulnérabilité de sécurité.
Pour éviter que Snyk ne le signale comme un problème de sécurité, nous allons ajouter un commentaire au-dessus de la ligne de code vulnérable (la ligne 8, précédemment signalée par Snyk) afin de demander à Snyk d’ignorer ce problème :
8: // file deepcode ignore IndirectCommandInjection: <accepted user input for the CLI is part of how this program works>
9: const result = await runCommandAndNotify(commandToRun)La suite de la sécurité applicative pour la CI
Pour approfondir le sujet après cet article, je vous recommande les lectures suivantes :
Si votre équipe développe en Java, je vous recommande de partager avec elle l’article suivant : Créer un pipeline CI/CD sécurisé avec GitHub Actions pour votre application Java
Si vous gérez des packages npm et les publiez sur le registre npm, je vous recommande l’article suivant : Publier des packages npm en toute sécurité avec GitHub Actions.
Comment ignorer des problèmes Snyk lorsque certains sont des faux positifs ou que vous souhaitez accepter le risque ?
Participez à Fetch the Flag 2026 !
Mettez vos compétences en sécurité à l’épreuve lors de notre événement Capture the Flag, les 12 et 13 février, de midi à midi (heure de l’Est).