
Émulation d'adversaire open-source pour agents d'IA et serveurs MCP.
Émulation adverse open-source pour agents IA, applications LLM et serveurs MCP.
Testez votre IA comme un véritable attaquant le ferait — depuis votre CLI, votre IDE, ou une extension de navigateur que n'importe qui dans votre équipe peut utiliser.
Site web · Documentation · GitHub · Extension navigateur · Discord
OPFOR est l'abréviation de Opposition Force — un terme militaire désignant l'unité qui joue l'ennemi lors des entraînements, afin que le reste de l'armée apprenne ce que sont de véritables attaques avant qu'elles n'arrivent. Nous avons nommé l'outil d'après cette idée : pour mieux défendre les agents IA, il faut d'abord les attaquer.
Nous avons livré 130 produits pour 90 startups au cours des dix dernières années. Ces 18 derniers mois, presque chacun d'entre eux contenait un agent IA — et chaque équipe s'est heurtée au même mur en matière de tests.
C'est pourquoi nous avons construit OPFOR. D'abord pour nous-mêmes. Maintenant en open source.
Apache 2.0. Construit depuis l'Inde.
npm install -g @keyvaluesystems/agent-opfor-cli
export OPENAI_API_KEY=your-key # ou GEMINI_API_KEY, ANTHROPIC_API_KEY, etc.
En une étape — lance l'assistant de configuration et démarre immédiatement l'analyse :
opfor run
En deux étapes — enregistrez une configuration réutilisable ou à intégrer dans votre CI :
opfor setup # l'assistant enregistre une config dans .opfor/configs/
opfor run --config .opfor/configs/<file> # exécutez à tout moment avec la config sauvegardée
https://github.com/user-attachments/assets/a6a3cff2-2cf9-4486-944e-ac0163e7ea04
Opfor effectue un red-teaming sur l'ensemble de la surface d'attaque d'un agent IA — invites, outils, serveurs MCP, mémoire et raisonnement multi-tour. Il génère des attaques ciblées pour les OWASP LLM Top 10, OWASP Agentic AI Top 10, OWASP MCP Top 10, OWASP API Security et les suites de biais de l'EU AI Act, les envoie à votre cible et juge chaque réponse avec un LLM.
La plupart des outils de red-teaming dans ce domaine excellent sur un point — une bibliothèque de sondes, un évaluateur développeur, un framework programmatique. Opfor couvre plus de terrain en un seul outil :
Différentes personnes dans votre équipe ont besoin de points d'entrée différents. Opfor en propose cinq.
Les cinq partagent les mêmes évaluateurs, modèles d'attaque et logique de jugement.
→ Référence CLI · Configuration de l'extension navigateur · Configuration MCP · Configuration des compétences · Référence SDK · Gestion des sessions
Lorsque vous exécutez une analyse, opfor :
Chaque exécution atterrit dans son propre sous-dossier sous .opfor/reports/run-report-<compactTs>-<slug>-<shortId>/ contenant <slug>-report.html et <slug>-report.json. Les exécutions autonomes opfor hunt utilisent la même structure sous hunt-report-<compactTs>-<slug>-<shortId>/.
Opfor est livré avec des suites organisées qui correspondent aux normes de l'industrie. Choisissez une suite ou exécutez des évaluateurs individuels.
→ Référence complète des évaluateurs et correspondance OWASP
Branchez opfor à votre pile d'observabilité et le juge LLM voit non seulement la réponse finale — mais aussi chaque appel d'outil, récupération et étape de raisonnement intermédiaire. Prêt à l'emploi, opfor s'intègre avec Langfuse et Netra.
"telemetry": {
"provider": "langfuse",
"langfuse": { "baseUrl": "https://cloud.langfuse.com" }
}
Cela permet de détecter ce que les tests entrée/sortie manquent — des données personnelles qui fuient dans un appel d'outil mais n'atteignent jamais l'utilisateur, des escalades de portée dans MCP qui ne modifient pas le texte de réponse, des agents qui récupèrent des données non autorisées mais affichent une réponse propre.
→ Guide des tests conscients des traces
opfor hunt ignore complètement le fichier de configuration. Donnez-lui un endpoint et un objectif, et un système multi-agents — commandant, opérateurs, éclaireur — exécute une campagne d'attaque adaptative de son propre chef : reconnaissance, stratégie, sondage multi-tour, rapport. Contrairement à opfor run, les agents s'exécutent uniquement sur Claude (via une clé API Claude, claude setup-token, ou votre session locale claude login) — votre cible peut être n'importe quoi.
opfor hunt \
--endpoint "https://your-agent.com/v1/chat" \
--objective "Trouver des jailbreaks, des fuites d'invite système et des contournements de sécurité."
Ajoutez --ui pour voir l'arbre d'attaque se dérouler dans un tableau de bord en direct.
L'extension navigateur est la voie sans code d'opfor. Installez-la depuis le Chrome Web Store, ouvrez n'importe quelle interface de chat, cliquez sur l'icône opfor, choisissez une suite, et regardez-la s'exécuter.
https://github.com/user-attachments/assets/80c2692f-b18b-4899-99df-e7eb8d50b02a
Elle détecte automatiquement l'interface de chat, envoie des invites d'attaque comme si vous les tapiez, surveille les réponses et télécharge un rapport HTML une fois terminé. Pas de CLI, pas de configuration de cible, pas de YAML.
C'est la voie pour la moitié de chaque équipe produit qui n'ouvre pas de terminal.
→ Installer depuis le Chrome Web Store · Guide de configuration
Le SDK est la voie programmatique d'opfor. Installez @keyvaluesystems/agent-opfor-sdk, appelez run ou hunt, et obtenez des résultats structurés — pas de CLI, pas de fichiers de configuration, pas de sous-processus.
import { Opfor } from "@keyvaluesystems/agent-opfor-sdk";
const opfor = new Opfor({ apiKey: process.env.ANTHROPIC_API_KEY });
const results = await opfor.run({
target: { url: "https://api.example.com/chat" },
suite: "owasp-llm-top10",
});
Utilisez-le dans CI, dans des suites de tests, ou partout où vous avez besoin de red-teaming sans quitter TypeScript.
| Exemple | Description |
|---|---|
| vanilla-chat | Chatbot de support client basique — testez les vulnérabilités au niveau LLM |
Veuillez lire CONTRIBUTING.md pour les détails sur notre code de conduite et le processus de soumission des pull requests.
Construit par l'équipe de KeyValue Software Systems. Contactez [email protected] pour toutes demandes.
Utilisez opfor uniquement sur des systèmes que vous possédez ou que vous êtes autorisé à tester. Pour signaler une vulnérabilité dans opfor lui-même, consultez SECURITY.md — n'ouvrez pas de ticket public.
Opfor est sous licence Apache 2.0 — voir le fichier LICENSE pour plus de détails.
Construit avec ❤️ par KeyValue
| Mode | Comment | Idéal pour |
|---|
| 🖥️ CLI | opfor setup → opfor run | Ingénieurs, CI/CD, workflows centrés sur le terminal |
| 🌐 Extension navigateur | Installez l'extension, cliquez sur l'icône sur n'importe quelle interface de chat | Chefs de produit, designers, QA, analystes de sécurité — tous ceux qui ne peuvent pas ou ne veulent pas coder |
| 🤖 Serveur MCP | Enregistrez opfor dans Cursor ou Claude Desktop, puis demandez dans le chat | Agents de codage IA qui testent vos autres agents |
| ⚡ Compétences | /opfor-setup · /opfor-run · /opfor-mcp-setup · /opfor-mcp-run | Développeurs qui souhaitent des tests en une commande dans leur IDE |
| 📦 SDK | npm install @keyvaluesystems/agent-opfor-sdk, puis appelez run / hunt depuis votre code | Red-teaming programmatique et workflows personnalisés |
| ID de la suite | Norme | Objectif |
|---|
owasp-llm-top10 | OWASP LLM Top 10 (2025) | Injection d'invites, jailbreaks, divulgation sensible, fuite d'invite système |
owasp-agentic-ai | OWASP Agentic AI Top 10 | Agence excessive, mauvaise utilisation des outils, détournement d'objectif de l'agent, empoisonnement de la mémoire |
owasp-mcp-top10 | OWASP MCP Top 10 (2025) | Exposition de secrets, escalade de portée, injection de description d'outil, SSRF |
owasp-api | OWASP API Security Top 10 | BOLA, BFLA, injection SQL |
eu-ai-act-bias | EU AI Act — Biais | Âge, genre, race, handicap |
| customer-support | Agent avec appels d'outils et PostgreSQL — testez BOLA, BFLA, RBAC, données personnelles |
| vulnerable-server | Exemple de serveur MCP avec vulnérabilités intentionnelles |
| Fournisseur | Variable d'environnement | Modèle par défaut |
|---|
| Groq | GROQ_API_KEY | llama-3.3-70b-versatile |
| OpenAI | OPENAI_API_KEY | gpt-4o-mini |
| Anthropic | ANTHROPIC_API_KEY | claude-3-5-haiku-20241022 |
GOOGLE_GENERATIVE_AI_API_KEY | gemini-2.0-flash | |
| Compatible OpenAI | OPFOR_API_KEY + baseURL | LiteLLM, OpenRouter, Azure, Ollama |