Agent IA de Triage de CVE

Introduction

Les scanners de vulnérabilités comme Nuclei sont incroyablement puissants, mais peuvent aussi être très bruyants. Recevoir des centaines de notifications chaque jour, dont beaucoup sont des faux positifs ou des risques mineurs, est le meilleur moyen de finir par toutes les ignorer. Et si on pouvait construire un agent qui travaille pour nous, en filtrant intelligemment ce bruit ?

Cet article vous montre comment créer un Agent IA de Triage de CVE en utilisant la puissance d’orchestration de N8N et la vitesse de scan de Nuclei. Cet agent scannera périodiquement vos actifs, utilisera un LLM (Grand Modèle de Langage) pour analyser les résultats, et ne vous alertera que lorsque c’est vraiment nécessaire.

Cet article suppose que vous êtes familier avec Nuclei. Si ce n’est pas le cas, nous vous invitons à lire notre guide d’introduction et cheatsheet sur Nuclei avant de continuer.

L’Architecture de l’Agent

Le principe est de créer un workflow N8N qui suit une logique de surveillance continue et de décision intelligente.

graph TD
    A[CRON : Tous les jours à 8h] --> B(N8N Workflow);
    subgraph N8N Workflow
        B --> C{Lire la liste des sites à scanner};
        C --> D(Pour chaque site...);
        D --> E[Exécuter Nuclei en ligne de commande];
        E --> F{Lire le résultat JSON};
        F --> G[Agent IA : Appel LLM pour analyse];
        G --> H{Réponse de l'IA = 'IGNORE' ?};
        H -- Non --> I[🚨 Envoyer une alerte Slack / Créer un ticket Jira];
        H -- Oui --> J[✅ Rien à signaler];
    end

Configuration du Workflow N8N

Voici comment configurer les nœuds principaux de votre workflow.

1. Le Déclencheur : Nœud CRON

C’est le point de départ. Réglez-le pour qu’il s’exécute à la fréquence de votre choix.

2. La Cible : Nœud Google Sheets / Read File

Pour cet exemple, nous allons utiliser un simple nœud “Code” qui simule la lecture d’une liste de sites. En production, vous utiliseriez un nœud “Google Sheets” ou “Read File”.

// Simule la récupération de vos actifs
const targets = [
  { url: "https://mon-site-prod.com" },
  { url: "https://api.mon-site-prod.com" }
];
return targets;

Ce nœud va créer une boucle et exécuter les étapes suivantes pour chaque site.

3. Le Scan : Nœud Execute Command

Ce nœud exécute Nuclei directement sur la machine où tourne N8N (ou dans son conteneur Docker, si N8N a été lancé avec les droits nécessaires). Assurez-vous que Nuclei est installé et accessible.

Explication :

4. L’Agent IA de Triage : Nœud HTTP Request

C’est le cerveau de notre agent. Il lit le résultat du scan et l’envoie à un LLM pour analyse.

{
  "contents": [{
    "parts": [{
      "text": "Tu es un analyste en sécurité senior chargé de trier les alertes. Voici le résultat d'un scan Nuclei au format JSON pour le site '{{$json.url}}' : {{ $json.data }}. Ce résultat indique-t-il une vulnérabilité exploitable qui nécessite une action humaine immédiate ? Ignore les erreurs de connexion ou les time-outs. Si la vulnérabilité est réelle et critique, résume le problème en une seule phrase. Sinon, si c'est un faux positif ou sans importance, réponds UNIQUEMENT par le mot 'IGNORE'."
    }]
  }]
}

5. La Décision : Nœud IF

Ce nœud simple vérifie si l’IA a jugé l’alerte pertinente.

6. L’Alerte : Nœud Slack / Jira

Connectez ce nœud à la sortie “true” du nœud IF.

Conclusion

Félicitations ! Vous avez transformé un simple scanner en un agent de surveillance intelligent. Ce workflow travaille en arrière-plan, effectue des scans ciblés, analyse les résultats avec une intelligence artificielle, et ne vous alerte que lorsqu’une action est réellement nécessaire. C’est une étape fondamentale pour passer d’une sécurité réactive et bruyante à une sécurité proactive et efficace.