Triage IA tenant compte du code
Associez les signalements des chercheurs à votre propre base de code — dans votre CI, avec votre modèle et sans accès réseau — afin de préparer le triage avant l'intervention d'un ingénieur. Les résultats restent consultatifs ; Kit n'agit jamais automatiquement.
Cette traduction est peut-être obsolète. La version anglaise a été mise à jour depuis la dernière traduction de cette page. Voir en anglais →
Pourquoi c’est important
La présélection IA répond rapidement à une première question : ce rapport mérite-t-il l’attention d’une personne ? Le triage IA tenant compte du code traite la suivante : puisqu’il la mérite, effectuons le travail préparatoire. Il reproduit le bug, évalue son exploitabilité, repère le code touché et suggère un CVSS ainsi qu’une correction.
La distinction essentielle pour un responsable AppSec est simple : l’agent vous appartient, pas à Kit. Il s’exécute dans votre CI GitLab, sur votre base de code et avec votre modèle. DeepSeek est proposé par défaut, mais tout point de terminaison compatible avec Anthropic convient : vLLM local, Ollama, OpenRouter ou Anthropic. Kit ne voit jamais le code source et n’exécute jamais le modèle. Nous fournissons le flux de travail — réception, détection des doublons, paiements, SLA, audit et échanges avec les chercheurs — ainsi qu’un contrat stable auquel raccorder l’agent.
L’ensemble est conçu pour qu’une injection de prompt dissimulée dans un rapport envoyé par un attaquant ne puisse ni exfiltrer votre code ni contacter Internet. L’agent s’exécute sans accès réseau et la frontière est appliquée hors de l’agent. Consultez Fonctionnement de l’isolation réseau pour comprendre le modèle de sécurité.
Important
Le triage reste strictement consultatif. L’évaluation renvoyée est affichée comme une entrée non fiable. Kit ne modifie jamais seul le statut, la criticité ou la prime d’un rapport. Une personne examine chaque suggestion et choisit de l’appliquer.
Fonctionnement de la boucle
Lorsqu’un chercheur envoie un rapport, Kit déclenche un pipeline dans votre copie du dépôt d’exemple. Votre runner CI effectue le reste, puis publie le résultat dans le rapport.
| Étape | Lieu | Déroulement |
|---|---|---|
| 1. Rapport soumis | Kit | Un chercheur envoie un rapport VDP. Kit crée une exécution de triage pending. |
| 2. Pipeline déclenché | Kit → GitLab | Kit appelle l’API de déclenchement du pipeline GitLab sur votre copie du dépôt. L’identifiant du rapport, votre URL MCP limitée et un jeton de courte durée sont transmis comme variables CI. |
| 3. Agent exécuté | Votre CI GitLab | Un runner extrait le code, lit le rapport avec le jeton MCP limité, analyse la base de code et produit un résultat de triage, sans accès réseau, hormis le point de terminaison du modèle et l’hôte MCP de Kit. |
| 4. Résultat renvoyé | Votre agent → Kit | L’agent valide la sortie par rapport au schéma, puis la publie avec le même jeton limité. Le volet de triage du rapport s’actualise en direct. |
L’aller-retour prend généralement de 2 à 5 minutes. Ce délai vient de l’isolation réseau, pas d’une panne. La page du rapport affiche l’état en direct pendant le travail de la CI.
Résultat produit par l’agent
Le résultat est une évaluation structurée qui prépare le travail d’un ingénieur. Kit l’affiche dans un volet Code-Aware Triage (Triage tenant compte du code), sous la carte de présélection IA dans l’onglet Details :
- Reproduction — oui, non ou partielle, avec le raisonnement de l’agent.
- Exploitabilité — appréciation en langage clair de la facilité d’exploitation.
- Criticité et vecteur CVSS suggérés — placés à côté de l’auto-évaluation du chercheur pour rendre l’écart visible (« Chercheur : Critique · Votre agent : Élevée »).
-
Emplacements touchés —
path:line → function(), avec des liens profonds vers le blob correspondant dans le dépôt GitLab. - Détection des doublons — rapprochée du contrôle de Kit fondé sur les embeddings ; si les deux concordent, une seule bannière résume le résultat.
- Correction suggérée — une description et, si l’agent le peut, un diff balisé dans une section repliée avec copie dans le presse-papiers. Jamais appliqué automatiquement.
Le bouton [Use agent's CVSS →] préremplit le formulaire d’évaluation, mais une personne doit encore l’envoyer.
Danger
Tout ce volet a été produit par votre agent à partir d’un rapport soumis par un attaquant. Traitez les chemins de fichiers et les correctifs comme des pistes à vérifier, pas comme des faits. Kit affiche le contenu comme du texte non fiable et neutralise tout balisage avant le rendu.
Le dépôt d’exemple
Nous publions un dépôt d’exemple minimal conçu pour être copié :
gitlab.com/startupkit/vdp-ai-triage-example
Il comprend :
- un fichier
.gitlab-ci.ymlqui reçoit les variables, exécute l’agent sans accès réseau et renvoie le triage ; - un mode simulé /
--dry-runpour valider le pipeline sur un rapport de test avant de fournir une clé de modèle ou de connecter Kit ; - un rapport de test comportant un canari d’injection qui tente d’appeler un hôte externe avec curl, afin de prouver que la frontière sortante le bloque.
États affichés
| État | Signification |
|---|---|
| Pending / Running | La CI a reçu le déclenchement et travaille. Le volet affiche un squelette et l’état en direct. |
| Completed | Le résultat de triage est arrivé et s’affiche. |
| Failed | Le pipeline a échoué ou la sortie n’est pas valide. Le volet indique une erreur exploitable avec des liens vers le pipeline et un nouveau déclenchement. |
| Timed out | L’agent n’a pas répondu avant le délai, fixé à 15 minutes par défaut. Le même traitement d’erreur s’applique. |
Un échec ou un dépassement n’empêche jamais de traiter le rapport. Le triage étant consultatif, le rapport reste dans la file exactement comme en l’absence d’agent.
Checklist
- Lisez Fonctionnement de l’isolation réseau avant toute connexion
-
Copiez
vdp-ai-triage-exampleet exécutez le pipeline en--dry-runsur le rapport d’exemple, sans connexion Kit ni clé de modèle - Configurez le point de terminaison du modèle, DeepSeek par défaut, puis relancez un vrai triage
- Suivez Configurer l’agent de triage isolé pour le connecter à Kit
-
Adaptez
agent/prompts/triage.mdà votre environnement technique avec Personnaliser le prompt et le modèle de triage