Cet article est une traduction automatique de l’article original publié sur le blog Transcode.
Comment les agents de codage peuvent transformer l’expérience d’utilisation d’outils d’analyse de sécurité complexes.
J’ai exploré comment les agents de codage peuvent améliorer les logiciels existants, et aujourd’hui je suis ravi de partager Patchsmith - un projet qui vise à transformer l’expérience utilisateur d’un logiciel incroyable, bien que assez complexe : CodeQL.
CodeQL est le moteur d’analyse sémantique de code de GitHub qui alimente leur offre Advanced Security. Il est incroyablement puissant pour trouver des vulnérabilités de sécurité et des problèmes de qualité de code, mais il vient avec une courbe d’apprentissage abrupte et une charge opérationnelle significative. Patchsmith utilise des agents IA pour rendre CodeQL plus accessible et efficace.
Les défis des tests de sécurité applicative statique (SAST)
Avant de plonger dans la solution, comprenons les problèmes auxquels les organisations font face lors de l’adoption d’outils d’analyse de code statique comme CodeQL :
1. L’affinage est nécessaire
Les moteurs de scan génériques doivent être personnalisés pour votre domaine et votre codebase spécifiques. Cela signifie écrire des requêtes CodeQL personnalisées pour identifier :
- Les sources de données spécifiques de votre application (entrées utilisateur, endpoints API, requêtes base de données)
- Vos sinks (où les données sont consommées ou sorties)
- Les flux entre sources et sinks qui importent dans votre contexte
Écrire des requêtes CodeQL efficaces nécessite une connaissance approfondie à la fois du langage de requête et de l’architecture de votre codebase. C’est un processus non trivial, chronophage, qui nécessite une expertise spécialisée.
2. Les faux positifs affligent l’analyse basée sur les règles
Même les outils d’analyse statique bien réglés génèrent des faux positifs. L’analyse basée sur les règles opère au niveau du code local et manque souvent du contexte plus large nécessaire pour déterminer si une découverte est réellement exploitable.
Chaque alerte nécessite une revue manuelle attentive par les ingénieurs pour :
- Comprendre le flux de données
- Évaluer si la vulnérabilité est atteignable
- Évaluer le niveau de risque réel
- Décider de corriger, supprimer ou reporter
Ce processus de triage est chronophage et sujet à l’incohérence entre les équipes.
3. La correction prend du temps développeur
Pour chaque problème légitime identifié, les développeurs doivent :
- Comprendre la vulnérabilité et ses implications
- Rechercher les approches de remédiation appropriées
- Implémenter la correction
- Tester les changements
- Préparer une pull request
Quand vous multipliez cet effort sur des dizaines ou centaines de découvertes, cela devient un fardeau significatif pour les équipes d’ingénierie, surtout quand il s’agit de dette technique accumulée.
Comment les agents de codage adressent ces défis
C’est là que les agents IA brillent. Ils peuvent :
Générer des requêtes personnalisées en lisant et comprenant la structure de votre codebase, identifiant les patterns de sources et sinks spécifiques à votre application.
Réviser les rapports de sécurité (fichiers SARIF) pour éliminer les faux positifs en analysant les découvertes dans leur contexte plus large, évaluant l’exploitabilité, et priorisant basé sur le risque réel.
Écrire des corrections automatiquement en comprenant la vulnérabilité, recherchant les patterns de remédiation, générant les changements de code appropriés, et préparant des pull requests.
La recherche confirme cela. L’étude IRIS a démontré une amélioration substantielle des capacités de détection de CodeQL en utilisant des LLMs pour écrire des requêtes personnalisées et réviser les découvertes :

Les résultats montrent que l’analyse augmentée par LLM surpasse significativement les configurations CodeQL de base sur plusieurs types de vulnérabilités.
Présentation de Patchsmith
Patchsmith est un outil CLI qui apporte ces capacités d’agent IA à CodeQL. Il est conçu pour s’intégrer dans votre workflow de développement existant tout en réduisant dramatiquement l’expertise et l’effort requis pour tirer de la valeur de l’analyse statique.

Installation
Démarrer est simple :
pipx install "git+https://github.com/eschnou/patchsmith.git"
Capacités principales
Initialiser et analyser
# Configurer Patchsmith pour votre dépôt
psmith init
# Lancer l'analyse CodeQL
psmith analyze
Ces commandes gèrent la configuration CodeQL, la création de base de données, et l’analyse initiale - tout le boilerplate qui nécessite normalement de lire une documentation extensive.
Affiner avec des requêtes personnalisées
# Générer des requêtes personnalisées basées sur votre codebase
psmith finetune
# Se concentrer sur des préoccupations de sécurité spécifiques
psmith finetune --focus "Injection SQL dans l'authentification utilisateur"
# Cibler des langages spécifiques
psmith finetune --language java
# Contrôler le nombre de requêtes générées
psmith finetune --queries 5
La commande finetune analyse votre codebase pour comprendre sa structure, identifie les sources et sinks pertinents, et génère des requêtes CodeQL personnalisées adaptées à votre application. L’agent considère :
- L’architecture et les frameworks de votre application
- Les patterns de flux de données courants dans votre code
- Les interactions pertinentes pour la sécurité
- Les vulnérabilités spécifiques au langage
Investiguer les découvertes
# Obtenir une analyse détaillée d'une découverte spécifique
psmith investigate F-3
Au lieu de simplement vous montrer la sortie brute de CodeQL, l’agent de Patchsmith :
- Explique la vulnérabilité en langage clair
- Analyse le flux de données et le contexte
- Évalue l’exploitabilité et le risque
- Fournit des recommandations

Générer des corrections
# Générer automatiquement une correction pour une découverte
psmith fix F-3
L’agent va :
- Comprendre la cause racine
- Rechercher les patterns de remédiation appropriés
- Générer une correction de code
- La préparer comme pull request (bientôt disponible)
Impact réel
Voici à quoi cela ressemble en pratique :
Sans Patchsmith :
- L’équipe sécurité lance un scan CodeQL (nécessite une expertise CodeQL)
- Les résultats contiennent 150 découvertes
- L’équipe d’ingénierie revoit manuellement les 150 (prend des jours/semaines)
- L’équipe identifie 30 problèmes légitimes après triage
- Les développeurs passent des semaines à implémenter les corrections
Avec Patchsmith :
- Lancer
psmith analyze(pas d’expertise requise) - Lancer
psmith finetunepour ajouter des requêtes personnalisées pour votre domaine - L’agent trie les découvertes, identifiant 30 problèmes légitimes avec évaluation des risques
- Lancer
psmith fixpour générer des pull requests pour les corrections simples - Les développeurs révisent et mergent les corrections, se concentrant sur les cas complexes
Les économies de temps sont substantielles, mais plus important encore, vous obtenez de meilleurs résultats parce que l’agent IA peut considérer le contexte que l’analyse basée sur les règles manque.
La vision plus large
Patchsmith fait partie d’une tendance plus large : utiliser des agents IA pour rendre des outils puissants mais complexes accessibles à des audiences plus larges. Il existe d’innombrables outils CLI sophistiqués qui livrent une valeur énorme mais ont des courbes d’apprentissage abruptes :
- Outils de sécurité (comme CodeQL)
- Outils d’infrastructure (Terraform, Kubernetes)
- Outils de base de données (migrations, optimisation de requêtes)
- Outils de build et déploiement
Chacun de ceux-ci pourrait bénéficier d’une “intégration agentique” - les envelopper avec des agents IA qui :
- Simplifient la configuration et le setup
- Génèrent des personnalisations spécifiques au domaine
- Interprètent les résultats en contexte
- Automatisent la remédiation de routine
C’est ce que j’appelle “l’IA augmentée par les outils” - utiliser l’IA non pas pour remplacer les outils, mais pour les rendre dramatiquement plus efficaces et accessibles.
Impliquez-vous
Patchsmith est open source et j’aimerais avoir vos retours :
- Essayez-le : github.com/eschnou/patchsmith
- Signalez des problèmes : Partagez des bugs ou demandes de fonctionnalités sur GitHub
- Rejoignez la communauté : Connectez-vous sur Discord ou Bluesky
- Partagez vos cas d’usage : Je suis particulièrement intéressé par les scénarios réels et les opportunités d’amélioration
Que vous traitiez des découvertes de sécurité dans votre codebase ou que vous soyez simplement curieux de savoir comment les agents IA peuvent améliorer les outils existants, j’aimerais avoir de vos nouvelles.
L’analyse statique n’a pas à être aussi difficile. Améliorons-la ensemble.