Accueil › Guides › Agent Security

Étude de cas · Sécurité augmentée

Un agent qui surveille
les agents qui codent


Trouver des alertes est facile. Construire un système qui sait lesquelles comptent, garde les accès sous contrôle et prépare une correction vérifiable est beaucoup plus intéressant.

Par Hugo Lahutte··Mis à jour le 7 septembre·~14 min de lecture

1. Le circuit complet

Un seul agent qui peut lire, modifier et publier serait confortable — et dangereux. Le système est donc découpé en deux plans de confiance. Agent Security observe. Agent Security Fix répare. Aucun des deux ne décide seul de la production.

Architecture d’Agent Security : GitHub isolés, passerelle à jetons courts, scanner en lecture seule, correcteur borné et portes de validation avant la production
Le scanner peut regarder largement. Le correcteur n’agit que dans un périmètre précis. Les contrôles gardent la dernière décision.

Version très simple : le vigile peut regarder partout, mais il n’a pas les clés. Le réparateur reçoit une clé temporaire pour une seule porte. Il propose son intervention, plusieurs contrôles la vérifient, puis la porte de production s’ouvre — ou reste fermée.

2. La passerelle : un accès précis, jamais un passe-partout

Chaque organisation GitHub possède sa propre installation. Au moment du scan, la passerelle crée un jeton court, limité aux dépôts visibles et aux permissions nécessaires. Un propriétaire inconnu, un dépôt hors périmètre ou une réponse incohérente bloque l’opération.

CapacitéAgent SecuritySecurity Fix
Lire le code et les ActionsOuiCiblé
Créer une brancheNonAutorisé par recette
Ouvrir une PRNonBrouillon ou PR contrôlée
Écrire directement sur mainJamaisJamais
Ignorer un scanner rougeJamaisJamais
01Installations isolées

HL Works et tech-cobra ne partagent pas un identifiant universel.

02Jetons temporaires

Créés au besoin, masqués et non conservés dans les rapports.

03Refus par défaut

Ce qui n’est pas explicitement autorisé ne passe pas.

04Secrets minimisés

Ni valeur brute ni dépôt complet ne part dans les prompts.

3. Ce qui tourne automatiquement

La profondeur varie avec le risque. Inutile de refaire le contrôle le plus coûteux chaque nuit ; inutile aussi d’attendre trois mois pour découvrir un secret commité hier.

À chaque changement sensibleContrôle ciblé

Authentification, permissions, secret, paiement, base, CI ou déploiement.

Chaque semaineAudit light

Secrets, dépendances et nouvelles vulnérabilités connues.

Chaque moisAudit deep

Analyse statique complète, conteneurs, IaC et configuration.

Chaque trimestreRevue adversariale

Menaces, supply chain, architecture et surfaces exposées.

4. Dans HL‑OS : voir, comprendre, déclencher

HL‑OS est le cockpit humain du système. Il ne remplace pas les scanners : il transforme leurs preuves en une lecture exploitable, avec un score global, les dépôts, les risques, les corrections disponibles et l’historique.

Reconstitution du cockpit HL‑OS Sécurité avec indicateurs, liste des dépôts et assistant Jarvis
Reconstitution de la vue HL‑OS. Les nombres et alertes internes sont volontairement masqués sur cette page publique. L’alimentation du cockpit est actuellement à reconnecter.
1Collecter

Lire les rapports privés sans afficher la valeur d’un secret.

2Décider

Séparer finding confirmé, faux positif, panne d’outil et correction disponible.

3Déclencher

Lancer un plan et suivre agents, PR, tests et revérification.

4Tracer

Conserver modèles, commit, refus, résultats et passage en production.

5. Une correction n’est pas une promesse : c’est une preuve

Le correcteur ne peut pas simplement répondre « c’est réglé ». Le finding d’origine est attaché à un commit précis. Après le changement, le même scanner doit être rejoué, puis les tests propres au projet.

Boucle de preuve : reproduire l’alerte, limiter le correctif, rejouer le scanner, valider par les tests ou revenir en arrière
À chaque étape, le système conserve le commit, le finding et le résultat. Un doute reboucle ; il ne disparaît pas du rapport.

6. Claude propose. ChatGPT vérifie. Kimi essaie de casser.

Les noms ci-dessous sont un exemple : les modèles restent configurables via OpenRouter. L’idée importante est d’utiliser des familles différentes, avec des rôles séparés, pour éviter qu’un agent valide simplement sa propre intuition.

À DATE

La contre-analyse multi-modèles est disponible comme avis consultatif sur les audits manuels activés. Elle ne pilote pas encore automatiquement chaque fix jusqu’à la production.

CIBLE

Tout correctif éligible traverse obligatoirement cette chaîne. Une objection reboucle vers le correcteur ; l’accord ouvre seulement la porte aux tests.

Contre-vérification multi-agents : Claude propose, ChatGPT relit, Kimi attaque le correctif et un contrôleur décide selon les preuves
OpenRouter distribue les rôles et le paquet commun. Il ne remplace ni les scanners ni la règle finale de passage.

Pourquoi ne pas seulement faire Claude → ChatGPT → Kimi en conversation libre ? Parce qu’une première erreur contaminerait les suivantes. Le contrôleur redonne à chacun la preuve originale et collecte un verdict structuré. Ils peuvent voir le diff, mais doivent refaire leur propre raisonnement.

7. Sous le capot

Les quatre scanners

GitleaksSecrets dans le code et l’historique Git.
TrivyVulnérabilités, conteneurs, IaC et configuration.
OSV‑ScannerFailles connues des dépendances open source.
SemgrepAnalyse statique et motifs de code dangereux.

La règle de passage

L’IA explique, corrèle et propose. Elle ne peut ni effacer une alerte technique ni transformer une panne de scanner en résultat propre.

PASS = consensus_agents
∧ scanner_origine_vert
∧ CI_cible_verte
∧ diff_dans_allowlist
∧ politique_risque_autorisee

Mémoire et traçabilité

Chaque finding reçoit une empreinte stable sans secret, sa date d’apparition, sa dernière observation et son état : nouveau, récurrent, résolu ou rouvert. Les décisions et exceptions restent séparées dans un registre versionné ; accepter temporairement un risque ne supprime pas techniquement l’alerte.

Confidentialité des requêtes IA

Les audits programmés n’envoient rien aux modèles par défaut. Lorsqu’une analyse OpenRouter est explicitement activée, seules les métadonnées nécessaires sont transmises : jamais le dépôt complet, la valeur d’un secret ou le match brut. Les réponses sont demandées en JSON strict avec le modèle concret, son rôle, sa confiance et les findings cités.

8. Ce qui existe et ce qui reste à brancher

OPÉRATIONNELAudit multi-dépôts

Lecture seule, scanners, score, mémoire et enrôlement contrôlé.

OPÉRATIONNELPasserelles GitHub Apps

Installations distinctes pour HL Works et tech-cobra.

À RECONNECTERCockpit HL‑OS

L’interface existe ; sa liaison aux rapports privés doit être rétablie.

PARTIELRecettes de correction

Cas bornés disponibles ; toutes les familles de findings ne sont pas encore actionnables.

MANUEL À DATEConsensus OpenRouter

Avis multi-modèles disponible sur demande, pas encore obligatoire sur chaque fix.

CIBLE« Va jusqu’au bout »

Suivre la PR, les checks, fusionner et déployer seul uniquement sur risque faible autorisé.

PEUT ALLER SEUL

Dépendance patch ou mineure, lint, configuration simple, petite modification réversible, diff strictement borné.

ARRÊT HUMAIN

Secret à faire tourner, authentification, autorisation, paiement, permission, infrastructure, migration, suppression ou mise à jour majeure.

Le code du projet

Échangeons

Tu construis avec des agents ?

Je documente comment les rendre plus autonomes sans leur donner un pouvoir aveugle.