ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Comment les équipes d'ingénierie intègrent Snyk DeepCode AI dans les pipelines CI pour automatiser l'analyse des vulnérabilités des PR

365Finds Editorial
11 430 articles Wiki répertoriés

Utilisez 365 Wiki avec votre IA

Copiez le prompt ci-dessous, collez-le dans l’IA que vous utilisez déjà, puis posez directement votre question.

Télécharger le Skill complet

Commencez par essayer le prompt. Si vous utilisez souvent 365 Wiki, installez le Skill 365Wiki complet pour ne plus avoir à le coller. Sans IA habituelle, les versions web de Gemini ou Microsoft Copilot conviennent aussi.

L'intégration de Snyk DeepCode AI dans les pipelines d'intégration continue (CI) permet aux équipes d'ingénierie logicielle de détecter et de corriger automatiquement les vulnérabilités de tests statiques de sécurité des applications (SAST) avant que le code n'atteigne la production. En intégrant des contrôles de sécurité automatisés directement dans le cycle de vie des pull requests (PR), les organisations peuvent déplacer la sécurité vers la gauche (shift left) sans dégrader la vélocité des développeurs. Selon l'infrastructure de l'équipe et les exigences de gouvernance, les équipes d'ingénierie mettent en œuvre ce flux de travail soit via des intégrations natives par webhook avec la gestion de code source (SCM), soit en intégrant directement l'interface en ligne de commande (CLI) de Snyk dans des orchestrateurs de pipeline tels que GitHub Actions, GitLab CI/CD, Azure Pipelines et Jenkins.

Comprendre Snyk DeepCode AI dans le flux de travail CI

Snyk Code, propulsé par DeepCode AI, diffère considérablement des moteurs SAST traditionnels et lourds qui nécessitent de longues compilations et des heures d'indexation de l'ensemble de la base de code. DeepCode AI utilise une approche hybride combinant l'IA symbolique (programmation logique et analyse formelle de propagation de teinte conçues par des chercheurs en sécurité) et l'IA générative (grands modèles linguistiques formés spécifiquement sur des modèles de code sécurisé et la correction de vulnérabilités).

Cette architecture hybride offre deux avantages critiques dans les environnements d'intégration continue :

  1. Vitesses d'analyse en quasi temps réel : Les analyses se terminent souvent en quelques secondes ou en quelques minutes, ce qui rend possible l'exécution d'analyses synchrones à chaque commit de PR sans créer de files d'attente bloquantes.
  2. Analyse différentielle des vulnérabilités : Dans les flux de travail de PR, le moteur évalue les écarts de code (diffs) par rapport à la branche de base. Cela permet d'isoler les failles de sécurité nouvellement introduites et d'éviter que les développeurs ne soient bloqués par une dette technique héritée déjà présente dans la branche de référence.

Architecture d'intégration : SCM natif vs CLI de pipeline

Les équipes d'ingénierie choisissent généralement entre deux approches architecturales pour automatiser l'analyse des vulnérabilités des PR, ou les combinent pour une défense en profondeur :

ArchitectureMécanisme de mise en œuvreIdéal pourCapacités clés
Intégration SCM nativeSnyk GitHub App, intégration GitLab ou intégration Bitbucket Cloud configurée via l'interface web de SnykRétroaction rapide pour les développeurs, aucune configuration de pipeline de buildVérifications automatisées de statut de PR, commentaires de revue de code en ligne, suggestions de correction DeepCode AI en un clic
Exécuteur de pipeline CI/CDCLI Snyk (snyk code test) invoquée au sein des exécuteurs de flux de travail (par exemple, GitHub Actions, GitLab Runners)Contrôle personnalisé de build, rapports de conformité, exportations de tableaux de bord SARIFContrôle granulaire par code de sortie, orchestration de pipeline multi-étapes, téléversement de tableaux de bord de sécurité SARIF

1. Vérifications natives de PR dans le SCM

Les intégrations natives connectent directement Snyk à l'hébergeur du dépôt (comme GitHub, GitLab ou Bitbucket). Lorsqu'un développeur ouvre ou met à jour une pull request, le SCM envoie un webhook à Snyk, déclenchant une analyse immédiate en arrière-plan.

2. Automatisation des pipelines CI/CD via la CLI Snyk

Pour les organisations nécessitant une gouvernance stricte, des exécuteurs en environnement isolé ou des rapports CI unifiés, l'exécution de la CLI Snyk au sein des jobs de pipeline offre un contrôle total sur les conditions d'exécution, les critères d'échec et les artefacts de rapport.

Mise en œuvre étape par étape dans les pipelines CI

Voici un guide de bout en bout pour configurer Snyk DeepCode AI dans un pipeline d'intégration continue à l'aide de GitHub Actions et de la CLI Snyk.

Étape 1 : Gestion sécurisée des jetons

Avant d'invoquer les commandes Snyk dans les pipelines automatisés, configurez un jeton d'authentification :

  1. Générez un jeton de compte de service Snyk ou utilisez un jeton d'API d'organisation depuis la console Snyk.
  2. Stockez le jeton en tant que secret chiffré de dépôt ou d'organisation nommé SNYK_TOKEN chez votre fournisseur CI (par exemple, GitHub Secrets, GitLab CI/CD Variables).

Étape 2 : Configurer le fichier de flux de travail du pipeline

Ajoutez un job dédié à l'analyse de sécurité dans votre configuration CI. L'exemple suivant montre un flux de travail GitHub Actions déclenché lors de pull requests ciblant la branche main :

name: Snyk DeepCode AI Pull Request Scan

on:
  pull_request:
    branches: [ main, develop ]

jobs:
  security-scan:
    name: Snyk Code SAST Analysis
    runs-on: ubuntu-latest
    permissions:
      contents: read
      security-events: write

    steps:
      - name: Check out repository
        uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install Snyk CLI
        run: npm install -g snyk

      - name: Authenticate Snyk CLI
        run: snyk auth ${{ secrets.SNYK_TOKEN }}

      - name: Run Snyk DeepCode AI Scan
        continue-on-error: true
        run: >
          snyk code test
          --severity-threshold=high
          --sarif-file-output=snyk-code.sarif
        env:
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

      - name: Upload SARIF to GitHub Code Scanning
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: snyk-code.sarif

Étape 3 : Exporter et afficher les résultats SARIF

En passant l'indicateur --sarif-file-output=snyk-code.sarif à snyk code test, la CLI génère les résultats au format d'échange de résultats d'analyse statique (SARIF).

Le téléversement de ce fichier vers GitHub Code Scanning via github/codeql-action/upload-sarif (ou vers les tableaux de bord de sécurité de GitLab via des convertisseurs de format JUnit/gl-sast) offre des avantages opérationnels majeurs :

Configuration des politiques de contrôle (gating) et des seuils

Un piège courant dans l'automatisation de la sécurité en CI consiste à submerger et bloquer les développeurs avec un nombre excessif de résultats de faible gravité. Les équipes doivent établir des politiques d'application progressive :

Contrôle par seuil de gravité

Utilisez l'indicateur --severity-threshold pour restreindre les échecs d'analyse aux niveaux de risque actionnables :

# Block only on High and Critical vulnerabilities
snyk code test --severity-threshold=high

# Fail build immediately if Critical flaws exist
snyk code test --severity-threshold=critical

Lorsque des vulnérabilités atteignant ou dépassant le seuil sont détectées, snyk code test se termine avec le code de sortie 1, ce qui entraîne l'échec du job CI et empêche la fusion de la PR si la protection de branche est activée.

Filtrage du code hors production avec .dcignore

Pour éviter que les simulations de test, les exemples de documentation et les artefacts de build tiers ne génèrent de fausses alertes, créez un fichier .dcignore à la racine du dépôt :

# Exclude test fixtures and mock data
tests/fixtures/
**/*.spec.ts
**/*.test.js

# Exclude generated build outputs and documentation
dist/
docs/examples/

Le moteur DeepCode AI respecte à la fois .gitignore et .dcignore, garantissant que seul le code source de l'application destiné à la production est analysé.

Remédiation assistée par l'IA : Snyk DeepCode AI Fix

Détecter les vulnérabilités ne représente que la moitié de l'objectif ; les résoudre rapidement est ce qui permet aux équipes d'obtenir un retour sur investissement (ROI). Snyk DeepCode AI inclut des fonctionnalités de correction automatisée conçues pour les flux de travail de PR :

Bonnes pratiques pour le déploiement en entreprise

  1. Commencer en mode surveillance : Déployez snyk code test avec continue-on-error: true pendant les deux premiers sprints. Cela permet aux équipes d'évaluer les résultats d'analyse initiaux et d'établir une base de référence propre sans perturber la livraison du sprint.
  2. Déplacer vers la gauche dans les IDE des développeurs : Complétez l'analyse des PR en CI avec le Snyk Language Server ou des plugins d'IDE (VS Code, IntelliJ). Résoudre les problèmes dans l'éditeur avant de créer une PR réduit l'encombrement des files d'attente CI et évite les échecs de build publics.
  3. Combiner SAST et SCA : Associez Snyk Code (snyk code test) à Snyk Open Source (snyk test) dans le même pipeline pour vous assurer que le code propriétaire et les dépendances tierces sont évalués selon une politique de sécurité unifiée.
  4. Mettre à jour régulièrement les versions de la CLI : Assurez-vous que les pipelines CI utilisent des versions récentes de la CLI (v1.1297+ ou actions officielles de runners) afin que les règles d'ignorance et les politiques de sécurité définies dans l'interface web de Snyk se synchronisent précisément avec les exécutions CI.