Offensif · 2026 · En cours

AgentStrike — Red teaming d'agents IA

Outil CLI de red-teaming pour agents et applications IA : modules d'attaque YAML déclaratifs mappés OWASP LLM Top 10 2025, OWASP Agentic (ASI) 2026, NIST AI RMF et MITRE ATLAS, intégrable en CI/CD avec export SARIF.

Résumé

AgentStrike teste des cibles conversationnelles (chatbots, agents outillés, pipelines RAG) contre des attaques réelles : injection de prompt directe et indirecte, jailbreak mono- et multi-tour, extraction de system prompt, usage excessif d'outils, fuite de données inter-utilisateurs et désinformation via contenu récupéré. Chaque module est un fichier YAML validé par schéma, mappé — uniquement quand le mécanisme testé correspond authentiquement à la définition officielle — sur jusqu'à quatre référentiels. L'audit de serveurs MCP tiers pour tool-poisoning n'est proposé par aucun concurrent open-source connu (Garak, PyRIT, Promptfoo, DeepTeam).

  • Python 3.11+
  • Typer
  • Rich
  • Pydantic v2
  • httpx
  • Jinja2
  • SARIF 2.1.0
  • MCP SDK
  • Pytest
  • GitHub Actions

Résultats mesurés

187 tests · 97 %

10 modules d'attaque mappés sur 4 référentiels, ruff/mypy stricts

Année
2026
Statut
En cours
Périmètre
Offensif

Fonctionnalités

  • 01🧩 Modules d'attaque 100 % déclaratifs en YAML, validés par schéma Pydantic v2
  • 02🗺️ Mapping multi-référentiel : OWASP LLM Top 10 2025, OWASP Agentic Top 10 2026 (ASI), NIST AI RMF (profil GenAI), MITRE ATLAS
  • 03🔌 Adaptateurs de cible : REST générique templaté Jinja2 et adaptateur factice sans réseau pour démo/CI
  • 04🔍 4 détecteurs heuristiques (keyword_match, canary_leak, absence_of_refusal, tool_call_match) aux limites documentées honnêtement
  • 05⚖️ Juge LLM optionnel qui n'écrase jamais le verdict heuristique
  • 06🤖 Attaquant LLM adaptatif de style PAIR/TAP, borné par `--adaptive-max-turns`
  • 07🛡️ Audit de serveurs MCP tiers (`mcp-audit`) pour détecter le tool-poisoning
  • 08🚦 Intégration CI/CD : `--fail-on` par sévérité, rapports console/JSON/HTML/SARIF pour l'onglet Security de GitHub

Détails techniques

  • Moteur découplé de la CLI, utilisable comme bibliothèque (`run_scan`, `judge_findings`, `run_adaptive_attacks`)
  • Adaptateurs de cible définis par Protocol structurel, réponses en dataclass gelée
  • Deux environnements Jinja2 distincts : autoescape activé pour le rapport HTML, désactivé pour la construction des corps JSON
  • Enums de référentiel documentés avec la date de vérification contre la source officielle
  • 187 tests Pytest (97 % de couverture), ruff et mypy strict propres, build hatchling et `twine check` validés

Autres projets