Les agents IA peuvent écrire du code, exécuter des tests, inspecter les dépendances et ouvrir des demandes d'extraction. Mais lorsqu’ils rencontrent un package vulnérable, leur raisonnement en matière de sécurité se résume souvent à une recherche sur le Web, à un score API opaque ou à tout ce dont le modèle se souvient de la formation.
Le problème ne réside pas simplement dans l’absence de données de vulnérabilité. Il s'agit du contrat entre l'agent et son harnais, la couche d'automatisation qui fournit les outils, exécute les commandes et interprète les résultats. Si « aucune correspondance » devient silencieusement « sûre », si des renseignements obsolètes semblent actuels ou si une panne de réseau ressemble à un résultat vide de sens, l'agent peut produire une réponse sûre sans preuves dignes de confiance.
J'ai conçu VulnGraph autour d'un principe différent : transformer les informations sur les vulnérabilités en constante évolution en une primitive locale déterministe.données-vulngraphcompile les sources de sécurité en amont en instantanés vérifiés et adressés par contenu.vulngraph-cliinstalle ces instantanés et vérifie les CVE, les versions de packages ou l'intégralité des fichiers de verrouillage hors ligne.
Le résultat est un outil de sécurité conçu à la fois pour les humains et les machines : un instantané et une cible acceptés produisent le même verdict ; chaque verdict comporte des preuves dactylographiées ; les données obsolètes échouent explicitement ; etinconnun’est jamais présenté à tort comme étant propre.
Cet article explique les décisions de conception derrière ce contrat et montre comment intégrer VulnGraph dans les workflows d'agent et d'exploitation.
Supposons qu'un agent examine une mise à jour de dépendance. Il doit répondre à une question apparemment simple : cette version peut-elle être expédiée en toute sécurité ? Une réponse utile dépend de distinctions faciles à effacer pour un harnais.
| Ce qui s'est passé | Un harnais imprudent conclut | Ce que le contrat doit préserver |
|---|---|---|
| Le package existe et la version est en dehors de toutes les plages concernées | Aucune vulnérabilité trouvée | non affecté |
| Le package est absent de l'ensemble de données | Aucune vulnérabilité trouvée | inconnu |
| L'instantané local est trop ancien | Le dernier résultat est probablement bon | Un échec de fraîcheur |
| L'outil ne peut pas ouvrir ou vérifier ses données | Résultat vide | Une erreur opérationnelle ou d’intégrité |
Ce ne sont pas des étiquettes cosmétiques. Ils conduisent à différentes actions de l'agent : poursuivre, enquêter, actualiser les données ou arrêter le workflow. Une fois qu'un harnais les aplatit en booléen, le modèle ne peut pas récupérer la signification manquante grâce à de meilleures invites.
Voici la distinction en pratique. Une comman...
[Courte citation de 8% de l'article original]