
Découverte de vulnérabilités pilotée par IA et validation en direct
Un atelier en terminal pour la découverte de vulnérabilités assistée par IA et la validation en direct.

La plupart des outils de « sécurité IA » s’arrêtent au signalement de code qui semble vulnérable. RedAI va plus loin : après que les agents scanneurs produisent des résultats candidats, des agents validateurs travaillent dans un environnement en direct — une instance en cours d’exécution de la cible, ainsi que tous les outils dont ils ont besoin pour interagir avec elle — et tentent de prouver ou d’infirmer chaque résultat avant qu’il n’apparaisse dans le rapport. Ils naviguent dans l’interface utilisateur, interrogent des points d’accès, écrivent des scripts de preuve de concept, hébergent des serveurs d’appoint et enregistrent les preuves.
L’environnement est un plugin. RedAI en livre deux — un navigateur Chrome réel et un simulateur iOS — et vous pouvez écrire le vôtre (une VM Linux, un émulateur Android, un cluster Kubernetes, un simulateur de dispositif embarqué) en implémentant une petite interface.
À la fin d’une exécution, vous obtenez un rapport détaillé (Markdown, HTML et JSON) avec des résultats classés par sévérité, des étapes de reproduction pour chaque résultat, le verdict du validateur (confirmé, infirmé ou impossible à tester) et les preuves réelles collectées par les agents — scripts de preuve de concept, transcriptions HTTP, journaux et captures d’écran — de sorte que chaque résultat confirmé est accompagné d’une preuve, pas seulement d’une affirmation. Voir examples/webapp/example-report.md ou examples/iosapp/example-report.md pour des exemples réels.
Utilisation autorisée uniquement. Utilisez RedAI uniquement sur des logiciels et des environnements que vous possédez ou pour lesquels vous êtes autorisé à effectuer une évaluation. Les résultats des agents peuvent être incomplets ou erronés — examinez les résultats et les preuves avant d’agir en conséquence.
Le dépôt contient deux applications de démonstration intentionnellement vulnérables pour vous permettre de voir RedAI de bout en bout sans le pointer sur votre propre code : examples/webapp pour l’environnement Browser et examples/iosapp pour l’environnement iOS Simulator.
# 1. installer RedAI
bun install -g @kpolley/redai
# 2. lancer la cible de démonstration dans un terminal
cd examples/webapp && bun run dev # http://localhost:3000
# 3. lancer RedAI dans un autre terminal
redai
Dans RedAI, créez un environnement Browser pointé vers http://localhost:3000, connectez-vous une fois avec exampleuser / examplepassword, marquez-le comme prêt, puis lancez une analyse sur examples/webapp. Regardez les validateurs piloter Chrome pour confirmer les résultats réels.
Le rapport complet d’une analyse réelle de cette application se trouve dans examples/webapp/example-report.md — GitHub l’affiche en ligne pour que vous puissiez voir ce que RedAI produit sans l’exécuter.
Depuis npm :
bun install -g @kpolley/redai
redai
Ou depuis un dépôt local :
git clone https://github.com/kpolley/redai.git
cd redai
bun install
bun run redai
RedAI lit .env dans le répertoire de travail lorsque des identifiants sont nécessaires ; les variables d’environnement shell existantes ont priorité.
Une seule clé de scanneur est requise — définissez celle qui correspond au scanneur que vous prévoyez d’utiliser.
# Claude (choisir un)
ANTHROPIC_API_KEY=...
# ou Codex
OPENAI_API_KEY=...
## Analysez votre propre code
Une analyse nécessite deux choses : **un répertoire source** et **un environnement de validation prêt** — la cible en direct avec laquelle les agents validateurs interagiront (l’un des environnements fournis ou un que vous avez ajouté).
1. Dans RedAI, créez un environnement correspondant à votre cible et terminez sa configuration — connectez-vous, naviguez jusqu’à l’état initial approprié, installez l’application, tout ce que l’environnement exige. Marquez-le comme `ready`.
2. Créez une analyse, choisissez votre répertoire source et l’environnement prêt, sélectionnez un agent scanneur (Claude Code ou Codex), et lancez-la.
Les agents scanneurs trient et examinent le code source ; les agents validateurs prennent les résultats qui semblent confirmés et les testent dans l’environnement en direct. Le rapport est écrit dans `~/.redai/runs/<runId>/report.md` (et `.html`) lorsque l’analyse se termine.
Voir [`src/tui/README.md`](https://github.com/kpolley/redai/blob/HEAD/src/tui/README.md) pour les raccourcis clavier.
## Comment fonctionne la validation en direct
Chaque analyse passe par trois phases :
1. **Découverte.** RedAI modélise les menaces du projet, priorise les fichiers selon leur pertinence probable pour la sécurité, les divise en unités d’analyse limitées, et exécute des agents scanneurs sur chaque unité pour produire des résultats candidats.
2. **Validation.** Pour chaque résultat candidat, un agent validateur planifie un test, puis pilote l’environnement préparé pour l’exécuter — en cliquant dans l’interface utilisateur, en envoyant des requêtes, en écrivant des scripts de preuve de concept, en capturant des captures d’écran et des journaux. Chaque résultat se termine par `confirmed`, `unable-to-test` ou `disproved`.
3. **Rapport.** Les résultats confirmés, les preuves et les artefacts sont écrits dans `~/.redai/runs/<runId>/`.
Pour le pipeline complet en neuf étapes (pré-vérification, modélisation des menaces, priorisation des fichiers, unités d’analyse, analyse unitaire, agrégation des résultats, plan de validation, exécution de la validation, rapport), voir [`src/pipeline/README.md`](https://github.com/kpolley/redai/blob/HEAD/src/pipeline/README.md).
## Environnements de validation
Un environnement de validation est tout ce dont un agent validateur a besoin pour interagir avec une instance en cours d’exécution de la cible. RedAI traite les environnements comme des plugins : chacun implémente la petite interface dans [`src/validators/validator-plugin.ts`](https://github.com/kpolley/redai/blob/HEAD/src/validators/validator-plugin.ts), gère son propre démarrage/arrêt, et expose les outils dont l’agent doit disposer à l’intérieur.
Les nouvelles analyses ne peuvent utiliser que les environnements marqués `ready`. Une fois l’analyse démarrée, les validateurs font tout ce que le plan demande — piloter l’interface utilisateur, exécuter des commandes shell, écrire des scripts de preuve de concept, héberger des serveurs d’appoint, collecter des journaux, enregistrer des captures d’écran. Tout cela aboutit dans `~/.redai/runs/<runId>/artifacts/`.

Deux environnements sont fournis en tant qu’implémentations de référence :
- **Browser** — une instance Chrome réelle pilotée via [`agent-browser`](https://github.com/vercel-labs/agent-browser). Voir [`src/validators/web-agent-browser/README.md`](https://github.com/kpolley/redai/blob/HEAD/src/validators/web-agent-browser/README.md).
- **iOS Simulator** — un simulateur modèle par analyse piloté via `xcrun simctl`. Voir [`src/validators/ios-simulator/README.md`](https://github.com/kpolley/redai/blob/HEAD/src/validators/ios-simulator/README.md).
Vous souhaitez valider contre une VM Linux, un émulateur Android, un cluster de staging distant ou quelque chose de plus exotique ? Ajoutez un plugin — même interface que les deux fournis.
## Données et artefacts
RedAI écrit l’état local sous `~/.redai/` (remplaçable avec `REDAI_HOME`). Ces fichiers peuvent contenir des invites dérivées du code source, des transcriptions d’agents, des rapports, des preuves, des identifiants, des profils de navigateur et des métadonnées de simulateur.
Pour la structure des répertoires, voir [`src/pipeline/README.md`](https://github.com/kpolley/redai/blob/HEAD/src/pipeline/README.md#where-results-are-stored).
## Contribuer
Les commandes, l’organisation du code et les conventions du projet se trouvent dans [`AGENTS.md`](https://github.com/kpolley/redai/blob/HEAD/AGENTS.md). Pour les détails internes du pipeline, voir [`src/pipeline/README.md`](https://github.com/kpolley/redai/blob/HEAD/src/pipeline/README.md) ; pour ajouter un nouvel environnement de validation, voir [`src/validators/validator-plugin.ts`](https://github.com/kpolley/redai/blob/HEAD/src/validators/validator-plugin.ts).
## Licence
MIT — voir [LICENSE](https://github.com/kpolley/redai/blob/HEAD/LICENSE).
| Périmètre | Prérequis |
|---|
| Cœur | Bun ≥ 1.2, un répertoire source lisible |
| Scanneur (choisir un) | Claude : ANTHROPIC_API_KEY, CLAUDE_CODE_USE_BEDROCK ou CLAUDE_CODE_USE_VERTEX — ou — Codex : OPENAI_API_KEY ou CODEX_API_KEY |
| Validateur navigateur | Chrome, agent-browser, .agents/skills/agent-browser dans l’espace de travail cible |
| Validateur iOS | macOS, outils en ligne de commande Xcode, xcrun simctl, une application compatible simulateur (ou un bundle ID installé), .agents/skills/ios-simulator-skill dans l’espace de travail cible |