Retour aux mises à jour
New releaseAug 7, 2026

attackgen v0.15.0

AttackGen est un outil de test de réponse aux incidents en cybersécurité qui exploite la puissance des grands modèles de langage et du cadre complet MITRE ATT&CK. L'outil génère des scénarios de réponse aux incidents adaptés, en fonction des groupes d'acteurs de menace sélectionnés par l'utilisateur et des informations de votre organisation.

Partager

AttackGen

AttackGen est un outil de test de réponse aux incidents en cybersécurité qui exploite la puissance des grands modèles de langage et des frameworks complets MITRE ATT&CK et ATLAS. L'outil génère des scénarios de réponse aux incidents personnalisés en fonction des groupes d'acteurs de menace sélectionnés par l'utilisateur, des études de cas d'attaques IA et des informations de votre organisation.

Table des matières

Mettre une étoile au dépôt

Si vous trouvez AttackGen utile, pensez à mettre une étoile au dépôt sur GitHub. Cela aide davantage de personnes à découvrir l'outil. Votre soutien est grandement apprécié ! ⭐

Fonctionnalités

  • Génère des scénarios de réponse aux incidents uniques basés sur des groupes d'acteurs de menace choisis ou des études de cas ATLAS.
  • Vous permet de préciser la taille et le secteur d'activité de votre organisation pour un scénario sur mesure.
  • Prend en charge les frameworks MITRE ATT&CK Enterprise, ICS (systèmes de contrôle industriels) et ATLAS (Adversarial Threat Landscape for AI Systems).
  • Affiche une liste détaillée des techniques utilisées par le groupe d'acteurs de menace ou l'étude de cas sélectionné.
  • Créez des scénarios personnalisés à partir d'une sélection de techniques ATT&CK ou ATLAS.
  • Utilisez des modèles de scénarios pour générer rapidement des scénarios personnalisés basés sur des types courants d'incidents cyber, y compris des schémas d'attaque spécifiques à l'IA/ML.
  • Générez des scénarios de menace interne liée à l'IA — des exercices de réponse aux incidents dans lesquels un agent d'IA de pointe déployé au sein de votre organisation se comporte comme une menace interne, sur la base du modèle de menace de Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents. Les scénarios sont façonnés par l'archétype de déploiement de l'agent (niveau d'autonomie), la catégorie de menace, les menaces STRIDE et une graine de scénario en texte libre facultative.
  • AttackGen Assistant — une interface de discussion pour mettre à jour les scénarios générés et/ou poser des questions à leur sujet.
  • Recueille les retours des utilisateurs sur la qualité des scénarios générés.
  • Scénarios téléchargeables au format Markdown.
  • Utilisez l'API OpenAI, l'API Anthropic (modèles Claude), l'API Google AI, l'API Mistral, l'API Groq ou tout point de terminaison personnalisé compatible OpenAI (Ollama, LM Studio, Azure OpenAI, OpenRouter, etc.) pour générer des scénarios de réponse aux incidents. Tous les fournisseurs sont acheminés via LiteLLM derrière un seul wrapper interne, de sorte que l'ajout d'un nouveau modèle est une modification d'une seule ligne.
  • Disponible sous forme d'image de conteneur Docker pour un déploiement facile.
  • Intégration facultative avec LangSmith pour un débogage, des tests et une surveillance puissants des performances des modèles.
  • Gestion sécurisée des identifiants à l'aide du fichier .env pour les clés API et les secrets.

AttackGen Screenshot

Versions

v0.15

Quoi de neuf ?Pourquoi est-ce utile ?
Préréglage d'évasion d'environnement d'évaluation et graine de scénario- Répéter un incident spécifique : Un nouveau modèle de menace interne liée à l'IA répète le scénario d'un agent d'évaluation accédant à des systèmes réels depuis un environnement supposé isolé — imposant le confinement, la rotation des identifiants, la notification des tiers et la préservation des preuves. Il couvre les divulgations de juillet 2026 concernant des agents d'évaluation s'échappant de leurs sandbox, où la frontière d'isolation était supposée plutôt que réellement appliquée.

- Les modèles atteignent désormais le prompt : Les modèles de démarrage rapide ne pré-remplissaient auparavant que les widgets de la page et n'influençaient jamais le scénario généré. Ils portent désormais un brief narratif et les required_decisions que les questions de discussion doivent imposer, tous deux intégrés au prompt — de sorte qu'un modèle produit un tabletop minuté et utilisable plutôt qu'un fourre-tout de questions. Cela les divise en deux classes : les six modèles archetype d'origine ne définissent que les décisions, de sorte que le modèle invente le postulat et qu'en relancer un produit un exercice inédit pour le même profil de menace ; les modèles incident définissent également un brief, fixant ainsi la situation.

- Graine de scénario en texte libre : Une zone de graine facultative sur la page Menace interne liée à l'IA oriente le récit de n'importe quel scénario. La sélection d'un modèle la pré-remplit et vous pouvez la modifier ou écrire la vôtre de zéro.

- Taxonomie étendue à 27 menaces / 6 catégories : Ajoute une sixième catégorie de menaces (Confinement et impact sur les tiers) et quatre menaces STRIDE que l'exercice active — S5 rejeu d'identifiants de workload réutilisables, R4 suppression de la télémétrie côté agent, I5 compromission de tiers et d'acteurs en aval, et E5 défaillance de l'assurance de la frontière de confinement. AttackGen étend désormais le modèle de menace publié plutôt que de le refléter.

- Modèles utilisables via MCP : get_ai_insider_prompt et generate_ai_insider_scenario acceptent template= et scenario_seed=, et list_ai_insider_options renvoie chaque modèle avec les sélections et le brief qu'il applique — de sorte qu'un client peut choisir un préréglage en connaissance de cause et passer un appel avec simplement un modèle, un secteur d'activité et une taille d'entreprise. Auparavant, les noms des modèles étaient listés, mais aucun outil n'en acceptait un.
Compétence attackgen-tabletop : parcours menace interne liée à l'IA- Un deuxième parcours d'exercice : La compétence d'agent construit désormais un tabletop à partir du modèle de menace interne liée à l'IA, ainsi qu'à partir d'une kill chain MITRE. Choisissez un modèle de démarrage rapide (ou un archétype de déploiement et des catégories de menaces) et elle transforme la charge utile de get_ai_insider_prompt en MSEL.

- Même forme, colonne vertébrale différente : L'exercice conserve les mêmes six sections, mais le tableau de kill chain devient un profil d'agent et un périmètre de menaces STRIDE, le tableau de bord de détection est évalué par rapport à la posture de détection de l'archétype de déploiement — de sorte que les lignes qui ne déclencheraient pas deviennent la conclusion — et les décisions requises du modèle deviennent des questions de discussion obligatoires.

- Parcours choisi pour vous : La description de la compétence se déclenche désormais sur les formulations liées à un agent renégat, de sorte qu'une demande de « tabletop sur la menace interne liée à l'IA » atteint le bon parcours. Un acteur externe doté de techniques accélérées par l'IA reste sur le parcours MITRE.

- Réponse, pas exploitation : Les deux parcours sont explicitement limités à la répétition des décisions qu'une équipe de réponse doit prendre — aucun code d'exploitation, charge utile ou vulnérabilité réelle non corrigée — et le parcours IA attribue le comportement de l'agent à la configuration, aux accès et à l'objectif plutôt qu'à un motif humain.
Correctif : les prompts MCP de menace interne liée à l'IA omettaient les capacités de l'agent- Même modèle, même prompt : Le bloc de capacités de l'agent de pointe — les lignes fondées sur des benchmarks qui rendent un scénario de menace interne liée à l'IA crédible — était omis de chaque appel get_ai_insider_prompt / generate_ai_insider_scenario qui ne nommait pas capabilities explicitement. Aucun modèle ne les fournit, de sorte que l'argument retombait à vide et que le prompt substituait une ligne générique du type « supposez un agent de codage de pointe capable », tandis que la page 3 envoyait les quatre pour le même modèle.

- Les valeurs par défaut correspondent désormais à l'application : Omettre capabilities applique l'ensemble complet, comme le fait le sélecteur multiple de la page. Passer [] les laisse toujours non spécifiées, de sorte que le retrait délibéré reste inchangé.
Correctif : génération de scénarios avec Anthropic Claude 4.7+- Tous les modèles Claude fonctionnent à nouveau : Claude 4.7 et versions ultérieures rejettent toute temperature d'échantillonnage, renvoyant BadRequestError: 'temperature' is deprecated for this model. Quatre des cinq modèles Anthropic répertoriés — Fable 5, Opus 4.8, Sonnet 5 et Opus 4.7 — ne pouvaient générer de scénario sur aucune page ; seul Haiku 4.5 fonctionnait.

- Contrôlé par modèle, pas par fournisseur : La règle de température était auparavant acheminée depuis le fournisseur, ce qui ne permet pas de représenter un fournisseur dont les modèles divergent. ModelInfo.supports_temperature marque désormais les modèles qui la rejettent, de sorte que Haiku 4.5 conserve sa température configurée tandis que ses homologues l'omettent. OpenAI reste une règle au niveau du fournisseur (chaque modèle de chat actuel est un modèle de raisonnement), et les modèles non enregistrés — points de terminaison locaux Ollama / LM Studio — reçoivent toujours une température.

v0.14

Quoi de neuf ?Pourquoi est-ce utile ?
Serveur MCP pour clients agentiques- Génération de scénarios sous forme d'outils : Un nouveau serveur FastMCP (mcp_server.py, SDK mcp officiel) expose AttackGen aux clients agentiques via stdio, de sorte qu'un assistant comme Claude Code ou Claude Desktop peut récupérer les données MITRE et générer des scénarios sans l'interface Streamlit.

- Deux niveaux : Les outils de données (list_threat_groups, list_case_studies, get_kill_chain, get_detection_report, get_navigator_layer, list_ai_insider_options, get_ai_insider_prompt) n'effectuent aucun appel LLM et ne nécessitent aucune clé API — ils renvoient des données MITRE structurées et, le cas échéant, un prompt prêt à exécuter, de sorte qu'ils peuvent être hébergés en toute sécurité sur HTTP. Les outils de génération (generate_threat_group_scenario, generate_custom_scenario, generate_ai_insider_scenario) nécessitent une configuration avec votre propre clé et renvoient du Markdown finalisé — conservez-les sur la stdio locale.

- Implémentation partagée : Le serveur réutilise les mêmes constructeurs headless core/prompts.py et chargeurs core/attack_data.py que les pages Streamlit utilisent, de sorte que les scénarios correspondent à l'application plutôt que de diverger. Lancez-le avec python -m mcp_server ou le script console attackgen-mcp.
Compétence d'agent attackgen-tabletop- Tabletops prêts pour l'animateur : Une nouvelle compétence d'agent s'appuie sur les outils de données MCP pour transformer un groupe de menace ou une étude de cas MITRE ATT&CK/ATLAS en un tabletop / MSEL complet de réponse aux incidents — récit du scénario, kill chain mappée par phases, injections horodatées, questions de discussion NIST SP 800-61 et tableau de bord de couverture de détection.

- S'exécute sur le modèle de l'appelant : La compétence fournit le savoir-faire de l'exercice tandis que le serveur MCP fournit les données, de sorte qu'elle s'exécute sur le modèle propre du client sans clé API supplémentaire.

- Deux formats de sortie : Fourni en Markdown (par défaut) ou en rapport HTML autonome et adapté à l'impression.
L'assistant affine la sortie Détection & réponse- Édition en équipe violette : L'assistant AttackGen peut désormais affiner le récit Détection & réponse, pas seulement le scénario. Lorsqu'un scénario est généré avec l'option 🟣 Purple-team narrative (pages Groupe de menace / Scénario personnalisé), un sélecteur Editing: apparaît sur la page de l'assistant afin que la discussion puisse cibler soit le scénario, soit le parcours du défenseur — auparavant, l'assistant ne disposait que du texte du scénario.

- Mode d'édition combiné : Une troisième cible Scénario + Détection & réponse affine les deux ensemble, de sorte qu'un changement transversal — un secteur d'activité, un acteur de menace, une technique ou une chronologie différente — est appliqué de façon cohérente au scénario de l'attaquant et au récit du défenseur plutôt que d'être effectué deux fois et de diverger.

- Faits déterministes intacts : Seul le récit LLM est une cible d'affinage ; la jointure de détection STIX locale n'est jamais éditée par le LLM. Chaque mode d'édition conserve son propre historique de discussion, et le passage combiné est étiqueté purple_team_narrative dans LangSmith.
Registre de modèles simplifié- Une chose en moins par modèle : Le kwarg max_completion_tokens et la règle de température des modèles de raisonnement sont désormais acheminés depuis le fournisseur plutôt que via un indicateur par modèle uses_max_completion_tokens — chaque modèle de chat OpenAI actuel les utilise, de sorte que l'indicateur dupliquait un fait que la clé du fournisseur capturait déjà. L'ajout d'un nouveau modèle OpenAI reste une modification d'une seule entrée dans MODELS, sans indicateur supplémentaire à retenir.

- Aucun changement de comportement : Une simplification purement interne — le wrapper construit des kwargs LiteLLM identiques pour chaque modèle actuel.

v0.13.1

Quoi de neuf ?Pourquoi est-ce utile ?
Correctif : génération de scénarios avec OpenAI GPT-5.x- Gestion correcte des modèles de raisonnement : Les modèles de raisonnement GPT-5.x d'OpenAI rejettent toute temperature d'échantillonnage autre que leur valeur par défaut, de sorte que chaque génération GPT-5.x échouait avec BadRequestError: 'temperature' does not support 0.7 with this model. AttackGen n'envoie plus de température personnalisée à ces modèles, tandis que les autres fournisseurs conservent la valeur configurée.
Actualisation du registre de modèles- Modèles les plus récents : La liste des modèles a été actualisée par rapport à la documentation actuelle de chaque fournisseur — OpenAI GPT-5.6 (niveaux Sol / Terra / Luna), Claude Fable 5 et Claude Sonnet 5, avec une génération antérieure conservée par fournisseur pour assurer la continuité.

- Entrées obsolètes supprimées : Retrait des modèles que les fournisseurs ont remplacés ou sont en train de retirer — notamment qwen3-32b de Groq (arrêté le 17 juillet 2026) et Magistral Medium de Mistral — afin que la barre latérale ne puisse pas proposer un modèle qui génère une erreur à la sélection.

- Ajout d'un niveau Groq rapide/économique (llama-3.1-8b-instant).

v0.13

Quoi de neuf ?Pourquoi est-ce utile ?
Mode équipe violette : Détection & réponse- Compagnon défensif : Chaque scénario des pages Groupe de menace et Scénario personnalisé affiche désormais une section Détection & réponse qui relie chacune des techniques du scénario aux stratégies de détection, analyses, sources de journaux et mesures d'atténuation MITRE ATT&CK déjà présentes dans les données fournies — transformant un récit exclusivement orienté équipe rouge en exercice d'équipe violette (« voici l'attaque, et voici exactement ce que votre SOC aurait dû voir »).

- Aucun appel LLM pour les faits : La section de détection est une jointure de données locale, pas un appel de modèle — de sorte que les analyses, sources de journaux et mesures d'atténuation qu'elle répertorie sont le contenu MITRE réel et actuel plutôt que des suppositions du modèle. Elle est proposée en tant que téléchargement dédié ..._detection.md aux côtés du scénario et de la couche.

- Sources de journaux à activer : Un récapitulatif par scénario liste les sources de journaux distinctes que les détections consultent (par ex. WinEventLog:Security (EventCode=4624)), afin qu'un SOC puisse voir d'un coup d'œil quelle télémétrie l'exercice suppose.

- Récit équipe violette facultatif : Une option 🟣 Purple-team narrative par page ajoute un second passage du modèle qui parcourt le scénario étape par étape du côté du défenseur — ce qui devrait se déclencher, ce que l'analyste voit, comment répondre — strictement fondé sur les détections et les mesures d'atténuation ci-dessus (aucune détection inventée).

- Prise en compte d'ATLAS : Les scénarios ATLAS listent les mesures d'atténuation (ATLAS n'a pas encore de stratégies de détection) et le précisent, plutôt que de ne rien afficher.
MITRE ATT&CK v19.1 et données ATLAS les plus récentes- Frameworks mis à jour : Les données MITRE ATT&CK Enterprise et ICS ont été actualisées de la v18.1 à la v19.1, et MITRE ATLAS a été actualisé à la dernière version, de sorte que les scénarios générés reflètent les tactiques, techniques et études de cas actuelles.

- Listes de groupes actualisées : Les menus déroulants des groupes de menace sont régénérés à partir des bundles v19.1 (174 groupes actifs Enterprise et 14 ICS). Les groupes que MITRE a révoqués ou fusionnés en amont (par ex. APT34 → OilRig, UNC2452 → APT29) n'apparaissent plus, tandis que les groupes nouvellement suivis comme MirrorFace, eux, apparaissent.

- Davantage d'études de cas ATLAS : La bibliothèque d'études de cas ATLAS est passée à 57 (17 incidents, 40 exercices).

- Actualisation reproductible : Un nouveau scripts/generate_groups.py régénère les correspondances de groupes à partir des bundles STIX fournis, en complément du script existant d'études de cas ATLAS — de sorte que la prochaine actualisation est une étape scriptée plutôt qu'un travail de curation manuel.
Export de couche ATT&CK Navigator- Couche téléchargeable : Chaque scénario généré sur les pages Groupe de menace et Scénario personnalisé propose désormais une couche ATT&CK Navigator (.json) en plus du téléchargement Markdown, de sorte que les techniques d'un scénario peuvent être visualisées, annotées et partagées dans ATT&CK Navigator. Pour la consulter, téléchargez la couche et ouvrez-la via Open Existing Layer → Upload from local dans le Navigator.

- Les trois matrices : Le domaine Navigator correct est défini automatiquement pour chaque matrice — téléversez les couches Enterprise et ICS dans le MITRE ATT&CK Navigator et les couches ATLAS dans le fork ATLAS Navigator. (Une couche ATLAS ne se chargera pas dans ATT&CK Navigator, et inversement, car chacun ne reconnaît que son propre domaine.)

- Les techniques restent visibles : Les sous-techniques notées déploient automatiquement leur parent et les IDs de techniques sont affichés dans la mise en page, de sorte que les techniques mises en évidence du scénario sont immédiatement visibles plutôt que cachées dans des lignes réduites.

- Aucun appel LLM supplémentaire : La couche est une sérialisation locale des techniques déjà sélectionnées pour le scénario — aucun appel de modèle supplémentaire ni recherche externe.

- Noms de fichiers de téléchargement descriptifs : Les téléchargements de scénario et de couche sont désormais nommés d'après l'acteur de menace / le scénario personnalisé et la matrice, avec un horodatage de génération (par ex. AttackGen_APT29_Enterprise_20260714-153045.md), de sorte que les fichiers enregistrés sont explicites et n'entrent pas en collision entre les scénarios.
Quoi de neuf ?Pourquoi est-ce utile ?
----------------------------
Scénarios de menace interne liés à l'IA- Nouveau type de scénario : une page dédiée génère des exercices de simulation de réponse à incident dans lesquels un agent d'IA frontière déployé au sein de votre organisation se comporte comme une menace interne — par désalignement, « reward hacking », objectifs émergents ou compromission par injection de prompt. Basé sur le modèle de menace de Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents.

- Piloté par l'archétype de déploiement : les scénarios sont façonnés par le niveau d'autonomie de l'agent (L1 assistant supervisé → L4 flotte entièrement autonome), principal déterminant de sa surface d'attaque et de sa posture de détection.

- Cinq catégories de menace interne : compromission d'identifiants, sabotage de la chaîne d'approvisionnement, exfiltration de données, sabotage de l'infrastructure et tromperie et évasion — chacune mappée à des manifestations concrètes des agents d'IA plutôt qu'à des motivations humaines.

- 23 menaces STRIDE pour les agents d'IA : une taxonomie STRIDE complète (spoofing, altération, répudiation, divulgation d'informations, déni de service, élévation de privilèges) adaptée aux agents d'IA frontière, éventuellement utilisée pour réduire le périmètre du scénario.

- Contrôles alignés sur le NIST CSF : les scénarios générés incluent des mesures d'atténuation priorisées mappées au NIST Cybersecurity Framework (Identify, Protect, Detect, Respond, Recover).

- Parité des fournisseurs : prend en charge le même ensemble de fournisseurs que le reste d'AttackGen, avec un traçage LangSmith optionnel.
Migration vers LiteLLM et consolidation des fournisseurs- Wrapper LLM unifié : toute l'intégration des fournisseurs passe désormais par un unique wrapper core/llm.py qui utilise LiteLLM. Ajouter un nouveau modèle est une modification d'une ligne dans la liste MODELS de core/models.py ; ajouter un fournisseur est une simple entrée ProviderInfo. Reprend le modèle utilisé dans stride-gpt.

- Réduction massive de code : suppression d'environ 3 800 lignes de branchements redondants par fournisseur sur les quatre pages (~1 000 lignes de blocs if model_provider == ... plus huit fonctions wrapper quasi identiques par page). Chaque page construit désormais de simples dictionnaires de messages et appelle call_llm(config, messages).

- Barre latérale pilotée par registre : la barre latérale de bienvenue est désormais générée à partir du registre des fournisseurs, remplaçant huit blocs codés en dur par une seule boucle.

- Listes de modèles actualisées : mise à jour vers les derniers modèles — famille OpenAI GPT-5.5 / 5.4, Anthropic Claude 4.6 / 4.7 / 4.8, Google Gemini 3.x aperçu, Mistral Large 3 / Magistral, Groq GPT-OSS et Qwen3.

- Consolidation des fournisseurs : remplacement des entrées distinctes Azure OpenAI Service et Ollama par une unique option Custom (OpenAI-compatible). Les déploiements Azure, Ollama (http://localhost:11434/v1), LM Studio (http://localhost:1234/v1), OpenRouter et les points de terminaison auto-hébergés fonctionnent tous via ce chemin unique.

- Empreinte de dépendances réduite : suppression des paquets langchain, langchain-anthropic, langchain-core, langchain-community, langchain-google-genai, langchain-mistralai, langchain-openai et anthropic — remplacés par une unique dépendance litellm>=1.40. langsmith est conservé pour le traçage optionnel.

- Traçage LangSmith conservé : le décorateur @traceable et le widget de retour continuent de fonctionner de manière transparente ; core/llm.py enveloppe call_llm dans @traceable lorsqu'un client LangSmith est disponible.
Rafraîchissement de la sécurité de l'image Docker- Image de base actualisée : mise à jour du digest python:3.12-slim pour corriger les CVE de couche OS obsolètes signalées par l'analyse de code Trivy, réduisant le nombre d'alertes ouvertes sur l'image conteneur publiée.

- Correctif pip CVE-2025-8869 : pip est désormais mis à niveau avant l'installation des prérequis, intégrant le correctif pour les vérifications manquantes de liens symboliques lors de l'extraction des paquets.
Sortie LLM en streaming- Génération token par token : les scénarios et le chat de l'AttackGen Assistant diffusent désormais les tokens au fur et à mesure qu'ils arrivent plutôt que d'attendre la réponse complète, de sorte que les longues générations semblent réactives et que vous pouvez suivre le texte pendant que le modèle écrit.

- API de streaming opt-in : ajoute call_llm_stream aux côtés de call_llm dans le wrapper LiteLLM unifié, permettant aux appelants de choisir le streaming sans modifier le reste du contrat.

- Gestion propre du raisonnement : un helper avec état stream_filter_thinking masque les zones <think>...</think> dans la vue en direct, tandis que clean_model_response après le streaming continue de remplir l'expandeur de raisonnement à partir du texte brut complet.
Bascule « Adversaire amélioré par IA »- Nouvelle bascule par page : ajoute une bascule « adversaire amélioré par IA » sur les pages Threat Group et Custom Scenario, qui reformule le scénario généré pour que l'adversaire utilise l'IA afin d'accélérer et d'améliorer la même chaîne de frappe — abaissement du seuil de compétences, temporalités compressées, orchestration autonome et échelle parallèle — plutôt que d'introduire de nouvelles techniques.

- Fondé sur la recherche d'Anthropic : basé sur les travaux d'Anthropic LLM ATT&CK Navigator, qui ont constaté que le changement le plus significatif dans les cybermenaces réelles est l'accélération et l'orchestration des techniques existantes plutôt que l'apparition de nouvelles.

- Visibilité du traçage : les scénarios sont marqués ai_enhanced dans LangSmith afin que les générations augmentées par IA puissent être filtrées et comparées aux exécutions de référence.

- Volontairement ignoré sur la page AI Insider Threat : l'acteur menaçant de cette page est déjà un agent d'IA frontière, la mention « amélioré par IA » serait donc redondante.
Corrections de bugs et améliorations- Cette version inclut plusieurs petites améliorations de l'interface et correctifs de rendu sur les pages de scénarios et la barre latérale.

v0.11

Quoi de neuf ?Pourquoi est-ce utile ?
Support du framework MITRE ATLAS- Couverture des menaces IA/ML : AttackGen prend désormais en charge le framework MITRE ATLAS (Adversarial Threat Landscape for AI Systems), permettant de générer des scénarios de réponse à incident pour les menaces ciblant les systèmes d'IA et d'apprentissage automatique.

- Scénarios basés sur des études de cas : générez des scénarios à partir de 45 études de cas documentées d'attaques IA réelles, dont 14 incidents avérés et 31 exercices de recherche couvrant des attaques telles que l'injection de prompt, l'extraction de modèle et l'empoisonnement de données.

- 147 techniques ATLAS : accédez à la bibliothèque complète des techniques ATLAS couvrant 16 tactiques spécifiques à l'IA, notamment l'accès aux modèles d'IA, la préparation d'attaques IA et les phases d'attaque traditionnelles adaptées aux systèmes d'IA.

- Modèles spécifiques à l'IA : six nouveaux modèles de scénarios personnalisés pour les attaques d'IA/ML courantes : évasion de modèle, empoisonnement de données, extraction de modèle, injection de prompt, jailbreak de LLM et attaques de la chaîne d'approvisionnement IA.
Mise à jour des données MITRE ATT&CK vers v18.1- Dernières informations sur les menaces : AttackGen utilise désormais les données MITRE ATT&CK v18.1, garantissant que les scénarios générés reflètent les tactiques, techniques et procédures les plus actuelles utilisées par les acteurs de la menace.

- Couverture Entreprise élargie : la liste des groupes de menaces Enterprise est passée de 150+ à 187 groupes, y compris les acteurs nouvellement suivis.

- Couverture ICS élargie : la liste des groupes de menaces ICS est passée de 7 à 16 groupes, offrant une meilleure couverture pour les scénarios de systèmes de contrôle industrielle.
Support des modèles LLM mis à jour- OpenAI : ajout des modèles GPT-5.2 et GPT-5.2 Pro ; liste de modèles simplifiée en supprimant les modèles de raisonnement obsolètes de la série o.

- Anthropic : mise à jour vers la famille Claude 4.5 avec Sonnet 4.5, Haiku 4.5 et Opus 4.5.

- Google AI : ajout des modèles d'aperçu Gemini 3 Pro et Flash ; mise à jour des options Gemini 2.5.

- Groq : ajout des modèles GPT-OSS 120B et 20B pour l'inférence haute performance.

- Mistral : mise à jour vers des versions de modèles datées (Large 2512, Medium 2508, Small 2506) ; ajout de Ministral 14B.
Corrections de bugs- Correction de la gestion des réponses Google AI : mise à jour de l'analyse des réponses pour gérer le format de contenu structuré renvoyé par les nouveaux modèles Gemini, garantissant que le texte des scénarios est correctement extrait et affiché.

- Correction des messages d'erreur de la matrice ICS : les messages d'erreur affichent désormais correctement « ICS ATT&CK » au lieu de « Enterprise ATT&CK » lors de l'utilisation de la matrice ICS.

- Amélioration de la gestion des techniques vides : ajout d'une gestion élégante lorsqu'un groupe de menaces n'a aucune technique associée, évitant les erreurs secondaires.

v0.10.1

Quoi de neuf ?Pourquoi est-ce utile ?
Compatibilité LangChain v1.0- Correction des changements d'importation cassés : mise à jour de tous les imports de langchain.prompts.chat (obsolète) vers langchain_core.prompts, garantissant la compatibilité avec LangChain v1.0 et évitant les erreurs ModuleNotFoundError. Cela maintient la stabilité alors que l'écosystème LangChain évolue.
Infrastructure de sécurité complète- Analyse de sécurité automatisée : introduction de workflows GitHub Actions pour la surveillance continue de la sécurité à l'aide de Bandit (analyse de code Python), CodeQL (détection de vulnérabilités), pip-audit (analyse des dépendances), Safety (vulnérabilités connues), Gitleaks (détection de secrets) et Trivy (analyse d'images Docker).

- Documentation des bonnes pratiques de sécurité : ajout d'un fichier SECURITY.md complet couvrant les versions prises en charge, le signalement des vulnérabilités, la gestion des clés API, les considérations de confidentialité des données et les recommandations de sécurité pour le déploiement.

- Section sécurité du README enrichie : développement des recommandations de sécurité avec des instructions claires sur ce qu'il faut faire et ne pas faire pour la protection des clés API, les considérations de confidentialité des données et les pratiques de déploiement responsables.
Améliorations Docker- Sécurité renforcée : mise à jour du Dockerfile pour exécuter l'application en tant qu'utilisateur non root, améliorant ainsi la posture de sécurité du conteneur.

- Support Docker Compose : ajout de docker-compose.yml pour un déploiement multi-services rationalisé et une configuration de développement local plus simple.

- Meilleure optimisation de la construction : amélioration de .dockerignore pour réduire la taille de l'image et empêcher l'inclusion de fichiers sensibles dans les images conteneur.

- Modèle de configuration complet : mise à jour de .env.example avec toutes les clés API prises en charge (OpenAI, Anthropic, Azure, Google, Mistral, Groq) pour faciliter la configuration initiale.
Corrections de bugs- Délai d'expiration de l'API Ollama : ajout d'une configuration de délai d'expiration aux requêtes API Ollama pour éviter les connexions bloquantes.

- Mises à jour de Safety CLI : migration de la commande obsolète safety check vers la nouvelle commande safety scan, garantissant la poursuite de la fonctionnalité d'analyse de sécurité.

- Configuration Bandit : correction de la configuration de l'analyse de sécurité Bandit pour une analyse du code Python plus précise.

v0.10

Quoi de neuf ?Pourquoi est-ce utile ?
Intégration de l'API Responses d'OpenAI- API de nouvelle génération : AttackGen utilise désormais la dernière API Responses d'OpenAI pour tous les modèles pris en charge, offrant une interface unifiée et améliorée.
Prise en charge des derniers modèles frontières- Intégration de GPT-5 : ajout du support de la dernière série de modèles GPT-5 d'OpenAI, y compris gpt-5, gpt-5-mini et gpt-5-nano, offrant un accès aux capacités d'IA les plus avancées pour la génération de scénarios.

- Claude Sonnet 4.5 : ajout du support du dernier modèle Claude Sonnet 4.5 d'Anthropic (claude-sonnet-4-5-20250929), ainsi que des versions de modèles Claude mises à jour, notamment Claude Opus 4.1 (claude-opus-4-1-20250805).
Corrections de bugs et améliorations- Correction de l'avertissement de dépréciation Streamlit : remplacement du paramètre obsolète use_container_width par le nouveau paramètre width pour garantir la compatibilité avec les futures versions de Streamlit.

- Documentation améliorée : mise à jour de CLAUDE.md avec des conseils complets pour les futurs travaux de développement et ajout d'informations détaillées sur l'architecture.

v0.9

Quoi de neuf ?Pourquoi est-ce utile ?
Support de modèles élargi- Derniers modèles de raisonnement OpenAI : AttackGen prend désormais en charge les nouveaux modèles de raisonnement d'OpenAI, notamment o4-mini (le dernier modèle de raisonnement), o3/o3-mini et o1-pro (capacités de raisonnement améliorées). Ces modèles excellent dans la génération de scénarios complexes nécessitant une réflexion logique approfondie.

- Série GPT-4.1 : ajout du support des modèles de la série GPT-4.1 (gpt-4.1, gpt-4.1-mini et gpt-4.1-nano), offrant les dernières améliorations en matière de capacités générales d'IA avec des alternatives plus légères pour les cas d'usage sensibles aux coûts.

- Modèles Anthropic Claude : ajout d'un support complet des modèles Claude d'Anthropic, notamment claude-opus-4-20250514, claude-sonnet-4-20250514, claude-3-7-sonnet-latest et claude-3-5-haiku-latest. Ces modèles offrent d'excellentes performances pour la génération de scénarios de réponse à incident détaillés et contextuels, avec de fortes capacités de raisonnement.

- Modèles Google AI mis à jour : rafraîchissement de la sélection des modèles Google AI pour inclure les derniers modèles d'aperçu Gemini 2.5 (gemini-2.5-flash-preview-05-20 et gemini-2.5-pro-preview-05-06) aux côtés des modèles Gemini 2.0, offrant un accès aux améliorations les plus récentes de la technologie IA de Google.

- Amélioration de l'organisation des modèles : réorganisation des listes déroulantes de sélection des modèles pour prioriser les modèles plus récents et mise à jour des descriptions afin de distinguer clairement les différents types de modèles et leurs capacités.
Logique de sélection des techniques améliorée- Gestion des groupes plus robuste : correction d'un problème où des groupes d'acteurs de la menace vides pouvaient provoquer des erreurs lors de la sélection des techniques. L'outil gère désormais correctement les groupes vides en renvoyant un DataFrame vide, assurant un fonctionnement stable même avec des données limitées sur les acteurs de la menace.

- Préservation du nom de phase : amélioration du processus de sélection des techniques pour inclure correctement « Phase Name » dans la sortie, en conservant les informations de phase de la chaîne de frappe tout au long du processus de génération de scénarios. Cela garantit que les scénarios générés conservent le contexte approprié quant à la phase de l'attaque à laquelle chaque technique appartient.
Améliorations de l'environnement de développement- .gitignore amélioré : ajout du support des répertoires d'environnement virtuel .venv en plus de venv, pour tenir compte des différentes préférences des développeurs et des outils de gestion d'environnement Python.

- Nettoyage du code : suppression des imports inutilisés dans les scripts de génération de scénarios, améliorant la maintenabilité du code et réduisant les confusions potentielles.

v0.8

Quoi de neuf ?Pourquoi est-ce utile ?
Points de terminaison d'API personnalisés compatibles OpenAI- Flexibilité accrue : AttackGen prend désormais en charge les points de terminaison d'API compatibles OpenAI personnalisés, comme Anyscale, Together AI ou toute API auto-hébergée compatible. Cette fonctionnalité permet aux utilisateurs d'exploiter une gamme plus large de modèles et de services au-delà des fournisseurs officiellement pris en charge.

- Support de l'auto-hébergement : les organisations disposant de leurs propres déploiements de modèles compatibles OpenAI peuvent désormais connecter AttackGen directement à ces points de terminaison.

- Contrôle du choix des modèles : les utilisateurs peuvent spécifier l'URL de base, le nom du modèle et la clé API pour tout service compatible, offrant un meilleur contrôle sur les modèles et points de terminaison utilisés pour la génération de scénarios.
Sélection de modèles mise à jour- Accès aux derniers modèles : la sélection des modèles OpenAI inclut désormais la nouvelle série GPT-4.1 (gpt-4.1, gpt-4.1-mini, gpt-4.1-nano), offrant de meilleures performances en codage, en suivi d'instructions et en tâches à contexte long.

- Support Gemini élargi : ajout du support des derniers modèles Gemini 2.5 Pro Preview, 2.0 Flash et 2.0 Flash Lite.

v0.7

Quoi de neuf ?Pourquoi est-ce utile ?
Intégration de l'API Groq- Performances améliorées : AttackGen prend désormais en charge l'API haute performance de Groq, offrant un accès à des modèles comme llama-3.3-70b-versatile et deepseek-r1-distill-llama-70b. Cette intégration offre des temps d'inférence rapides tout en maintenant une génération de scénarios de haute qualité.

- Affichage amélioré de la sortie des modèles : pour les modèles comme DeepSeek qui fournissent un raisonnement en plus de leur sortie, AttackGen affiche désormais ce raisonnement dans un widget extensible. Cela permet aux utilisateurs de consulter le processus de pensée du modèle quand ils le souhaitent tout en gardant la sortie principale du scénario claire et ciblée.
Support des modèles OpenAI mis à jour- Derniers modèles : AttackGen prend désormais en charge le dernier modèle de raisonnement d'OpenAI, o3, ainsi que la version GA (disponibilité générale) du modèle o1, remplaçant l'ancienne version d'aperçu. Ces mises à jour donnent accès à des modèles plus stables et améliorés pour la génération de scénarios.
Cliquez pour afficher les notes de version des versions antérieures.

v0.6

Quoi de neuf ?Pourquoi est-ce utile ?
Support des nouveaux modèles de 'raisonnement' d'OpenAI- Génération de scénarios améliorée : AttackGen prend désormais en charge les nouveaux modèles de 'raisonnement' d'OpenAI (o1-preview et o1-mini), permettant la génération de scénarios de réponse à incident extrêmement détaillés et nuancés. Ces modèles offrent une meilleure cohérence et une plus grande profondeur dans la création de scénarios.
Support de la matrice MITRE ATT&CK ICS- Portée élargie : AttackGen prend désormais en charge la génération de scénarios de test de réponse à incident à l'aide de la matrice MITRE ATT&CK ICS (Industrial Control Systems), en plus de la matrice Enterprise. Cela permet aux utilisateurs de créer des scénarios adaptés aux environnements industriels et d'infrastructures critiques.
Mise à jour des données sources ATT&CK vers v15.1- Dernières informations sur les menaces : l'outil utilise désormais les données MITRE ATT&CK les plus récentes (v15.1), garantissant que les scénarios générés reflètent les dernières tactiques, techniques et procédures connues utilisées par les acteurs de la menace.
Mise à jour des données des groupes d'acteurs menaçants- Couverture complète : les données des groupes ont été mises à jour pour inclure les derniers groupes suivis dans MITRE ATT&CK, tels que Scattered Spider. Cela garantit que les utilisateurs peuvent générer des scénarios basés sur les informations les plus actuelles sur les acteurs de la menace.
Chargement des clés API / secrets à partir d'un fichier .env- Sécurité renforcée : les utilisateurs peuvent désormais stocker leurs clés API et autres informations sensibles dans un fichier .env, améliorant ainsi la sécurité et facilitant la gestion des identifiants dans différents environnements.

v0.5.2

Quoi de neuf ?Pourquoi est-ce utile ?
Support du modèle GPT-4o mini- Options de modèles élargies : AttackGen prend désormais en charge l'utilisation du modèle GPT-4o mini d'OpenAI. GPT-4o mini est un petit modèle très rentable.
Choix de modèles mis à jour pour l'API Google AI- Options de modèles élargies : AttackGen prend désormais en charge les versions stable et aperçu de Gemini 1.5 Pro.

v0.5.1

Quoi de neuf ?Pourquoi est-ce utile ?
Support du modèle GPT-4o- Options de modèles améliorées : AttackGen prend désormais en charge l'utilisation du modèle GPT-4o d'OpenAI. GPT-4o est le modèle phare d'OpenAI, capable de générer des scénarios deux fois plus vite que GPT-4 pour moitié moins de coût.
Quoi de neuf ?Pourquoi est-ce utile ?
---------------------------
Assistant AttackGen- Affinement itératif des scénarios : la nouvelle interface de chat permet aux utilisateurs d'interagir avec leurs scénarios de réponse aux incidents générés, ce qui facilite la mise à jour et le questionnement sur le scénario sans avoir à le régénérer à partir de zéro. Cette fonctionnalité permet une approche itérative du développement de scénarios, où les utilisateurs peuvent affiner et améliorer leurs scénarios en fonction des réponses de l'assistant IA.

- Assistance contextuelle : l'assistant IA répond aux requêtes des utilisateurs en se basant sur le contexte du scénario généré et sur l'historique de la conversation. Cela garantit que les réponses de l'assistant sont pertinentes et utiles pour affiner le scénario.
Modèles de démarrage rapide pour scénarios personnalisés- Génération rapide de scénarios : les utilisateurs peuvent désormais générer rapidement des scénarios de réponse aux incidents personnalisés à partir de modèles prédéfinis pour les types courants de cyberincidents, tels que les attaques de phishing, les attaques par ransomware, les infections par logiciels malveillants et les menaces internes. Cette fonctionnalité facilite la création de scénarios réalistes sans avoir à sélectionner individuellement les techniques ATT&CK.

- Flux de travail simplifié : la sélection du modèle est intégrée de manière transparente au processus de génération de scénarios personnalisés. Les utilisateurs peuvent choisir un modèle, qui remplit automatiquement les techniques ATT&CK pertinentes, puis personnaliser davantage le scénario si nécessaire.
Intégration de l'API Google AI- Options de modèles élargies : AttackGen prend désormais en charge l'utilisation des modèles Gemini de Google pour générer des scénarios de réponse aux incidents. Cette intégration élargit la gamme de modèles de haute qualité disponibles pour les utilisateurs, leur permettant de tirer parti des capacités IA de Google pour créer des scénarios réalistes et variés.

v0.4

Quoi de neuf ?Pourquoi est-ce utile ?
Intégration de l'API Mistral- Fournisseur de modèles alternatif : les utilisateurs peuvent désormais utiliser les modèles Mistral AI pour générer des scénarios de réponse aux incidents. Cette intégration offre une alternative aux modèles OpenAI et Azure OpenAI Service, permettant aux utilisateurs d'explorer et de comparer les performances de différents modèles de langage pour leur cas d'utilisation spécifique.
Prise en charge des modèles locaux avec Ollama- Hébergement local de modèles : AttackGen prend désormais en charge l'utilisation de LLM hébergés localement via une intégration avec Ollama. Cette fonctionnalité est particulièrement utile pour les organisations ayant des exigences strictes en matière de confidentialité des données ou pour celles qui préfèrent conserver leurs données sur site. Veuillez noter que cette fonctionnalité n'est pas disponible pour les utilisateurs de la version d'AttackGen hébergée sur Streamlit Community Cloud à l'adresse https://attackgen.streamlit.app
Intégration optionnelle de LangSmith- Flexibilité améliorée : l'intégration avec LangSmith est désormais optionnelle. Si aucune clé API LangChain n'est fournie, les utilisateurs verront un message informatif indiquant que l'exécution ne sera pas journalisée par LangSmith, au lieu d'une erreur. Ce changement améliore l'expérience utilisateur globale et permet aux utilisateurs de continuer à utiliser AttackGen sans avoir besoin de LangSmith.
Divers correctifs et améliorations- Expérience utilisateur améliorée : cette version inclut plusieurs correctifs et améliorations de l'interface utilisateur, rendant AttackGen plus convivial et plus robuste.

v0.3

Quoi de neuf ?Pourquoi est-ce utile ?
Intégration du service Azure OpenAI- Intégration améliorée : les utilisateurs peuvent désormais choisir d'utiliser les modèles OpenAI déployés sur le service Azure OpenAI, en plus de l'API OpenAI standard. Cette intégration offre une solution transparente et sécurisée pour incorporer AttackGen dans les écosystèmes Azure existants, en tirant parti d'accords commerciaux et de confidentialité établis.

- Sécurité des données améliorée : exécuter AttackGen depuis Azure garantit que les descriptions d'applications et autres données restent dans l'environnement Azure, ce qui le rend idéal pour les organisations qui traitent des données sensibles dans leurs modèles de menaces.
LangSmith pour le service Azure OpenAI- Débogage amélioré : le traçage LangSmith est désormais disponible pour les scénarios générés à l'aide du service Azure OpenAI. Cette fonctionnalité fournit un outil puissant pour déboguer, tester et surveiller les performances du modèle, permettant aux utilisateurs d'obtenir des informations sur le processus de prise de décision du modèle et d'identifier les problèmes potentiels avec les scénarios générés.

- Retour des utilisateurs : LangSmith capture également les retours des utilisateurs sur la qualité des scénarios générés à l'aide du service Azure OpenAI, fournissant des informations précieuses sur les performances du modèle et la satisfaction des utilisateurs.
Sélection de modèles pour l'API OpenAI- Options de modèles flexibles : les utilisateurs peuvent désormais choisir parmi plusieurs modèles disponibles à partir du point de terminaison de l'API OpenAI, tels que gpt-4-turbo-preview. Cela permet une plus grande personnalisation et expérimentation avec différents modèles de langage, permettant aux utilisateurs de trouver le modèle le plus adapté à leur cas d'utilisation spécifique.
Image de conteneur Docker- Déploiement facile : AttackGen est désormais disponible sous forme d'image de conteneur Docker, ce qui facilite le déploiement et l'exécution de l'application dans un environnement cohérent et reproductible. Cette fonctionnalité est particulièrement utile pour les utilisateurs qui souhaitent exécuter AttackGen dans un environnement conteneurisé, ou pour ceux qui souhaitent déployer l'application sur une plateforme cloud.

v0.2

Quoi de neuf ?Pourquoi est-ce utile ?
Scénarios personnalisés basés sur les techniques ATT&CK- Pour les organisations matures : cette fonctionnalité est particulièrement bénéfique si votre organisation dispose de capacités avancées de renseignement sur les menaces. Par exemple, si vous surveillez un groupe d'acteurs de la menace nouvellement identifié ou peu connu, vous pouvez adapter les scénarios de test de réponse aux incidents aux techniques spécifiques utilisées par ce groupe.

- Tests ciblés : alternativement, utilisez cette fonctionnalité pour concentrer vos tests de réponse aux incidents sur des parties spécifiques de la cyber kill chain ou sur certaines tactiques MITRE ATT&CK comme 'Lateral Movement' ou 'Exfiltration'. Ceci est utile pour les organisations qui cherchent à évaluer et à améliorer des domaines spécifiques de leur posture de défense.
Retour des utilisateurs sur les scénarios générés- La collecte de retours est essentielle pour suivre les performances du modèle dans le temps et aide à mettre en évidence les forces et les faiblesses des tâches de génération de scénarios.
Gestion améliorée des erreurs pour les clés API manquantes- Expérience utilisateur améliorée.
Remplacement des widgets st.spinner de Streamlit par le nouveau widget st.status- Offre une meilleure visibilité sur les processus de longue durée (c'est-à-dire la génération de scénarios).

v0.1

Version initiale.

Prérequis

  • Version récente de Python.
  • Paquets Python : streamlit, litellm, mitreattack-python, pandas (voir requirements.txt pour la liste complète).
  • Clé API OpenAI (ou clé API pour votre fournisseur de modèles choisi).
  • Clé API LangChain (optionnelle) - voir la section Configuration de LangSmith ci-dessous pour plus de détails.
  • Fichiers de données MITRE ATT&CK et ATLAS. Ils sont fournis avec le dépôt (dans ./data/), donc aucun téléchargement manuel n'est requis (voir Configuration des données).
  • Fichier .env pour stocker les clés API et les secrets (voir la section Installation pour plus de détails).

Installation

Option 1 : Clonage du dépôt

  1. Clonez ce dépôt :``` git clone https://github.com/mrwadams/attackgen.git
2. Changez de répertoire pour entrer dans le dépôt cloné :```
cd attackgen
  1. Installez les paquets Python requis :``` pip install -r requirements.txt
### Option 2: Utilisation de Docker

1. Récupérez l'image du conteneur Docker depuis Docker Hub:```
docker pull mrwadams/attackgen

Configuration de LangSmith

Si vous souhaitez utiliser LangSmith pour le débogage, les tests et le suivi des performances du modèle, vous devrez créer un compte LangSmith et créer un fichier .streamlit/secrets.toml contenant votre clé API LangChain. Veuillez suivre les instructions ici pour configurer votre compte et obtenir votre clé API. Vous trouverez un fichier secrets.toml-example dans le répertoire .streamlit/ que vous pouvez utiliser comme modèle pour votre propre fichier secrets.toml.

Si vous ne souhaitez pas utiliser LangSmith, vous devez quand même avoir un fichier .streamlit/secrets.toml en place, mais vous pouvez laisser le champ LANGCHAIN_API_KEY vide.

Configuration des données

Les ensembles de données MITRE ATT&CK (Enterprise + ICS) et ATLAS dont AttackGen a besoin sont inclus dans le dépôt sous ./data/, de sorte qu'un nouveau clone est prêt à être exécuté sans étape de téléchargement supplémentaire. Ils comprennent enterprise-attack.json, ics-attack.json, stix-atlas.json, groups.json, groups_ics.json et atlas-case-studies.json.

Si vous souhaitez les actualiser vers la dernière version en amont, vous pouvez retélécharger les bundles STIX depuis le dépôt de données STIX de MITRE ATT&CK (et le dépôt de données ATLAS) et remplacer les fichiers dans ./data/.

Exécution d'AttackGen

Après la configuration des données, vous pouvez exécuter AttackGen avec la commande suivante :``` streamlit run 00_👋_Welcome.py

Vous pouvez aussi essayer l'application sur [Streamlit Community Cloud](https://attackgen.streamlit.app/).

## Serveur MCP

AttackGen est fourni avec un serveur [MCP](https://modelcontextprotocol.io/) afin que les workflows agentiques (Claude Code, Claude Desktop, Cursor et autres clients MCP) puissent piloter la génération de scénarios sans l'interface Streamlit. Il expose **deux niveaux d'outils**:

- **Outils de données — pas de clé API, pas d'appel LLM.** Ils exposent les données MITRE d'AttackGen: lister les groupes de menace / études de cas ATLAS, résoudre la kill chain d'un groupe, construire le rapport Détection & Réponse de l'équipe pourpre, produire une couche ATT&CK Navigator, et lister les options de menace interne liées à l'IA. `list_ai_insider_options` renvoie chaque modèle de démarrage rapide avec les sélections et le résumé narratif qu'il applique, de sorte que `get_ai_insider_prompt` / `generate_ai_insider_scenario` puissent être appelés avec simplement `template=` ainsi que votre secteur d'activité et la taille de votre entreprise. Quand c'est utile, ils renvoient également un prompt prêt à l'emploi, afin que **le propre modèle de votre client** puisse écrire le scénario — ce qui signifie qu'ils fonctionnent même si vous n'avez pas de clé API de fournisseur distincte. C'est la surface qu'il est sûr d'héberger sur HTTP.
- **Outils de génération — apportez votre propre clé.** `generate_threat_group_scenario`, `generate_custom_scenario` et `generate_ai_insider_scenario` appellent un LLM côté serveur et renvoient un scénario Markdown finalisé. Le fournisseur, le modèle et la clé sont fournis à chaque appel; si vous omettez `api_key`, LiteLLM retombe sur la variable d'environnement correspondante (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, …) — c'est-à-dire **votre propre** clé. Comme ils lisent les identifiants depuis l'environnement du processus, conservez-les sur **stdio local** et ne les exposez pas sur un hôte partagé.

### Installation et exécution

La dépendance `mcp` est incluse dans `requirements.txt`. Installez le projet (une installation éditable vous donne également le script console `attackgen-mcp`):```
pip install -r requirements.txt
# optional, for the console script:
pip install -e .

Lancez le serveur (stdio):``` python -m mcp_server # or: attackgen-mcp

### Ajoutez-le à un client

**Claude Code:**```
claude mcp add attackgen -- python -m mcp_server

Claude Desktop (claude_desktop_config.json) — les clés vont dans env :```json { "mcpServers": { "attackgen": { "command": "python", "args": ["-m", "mcp_server"], "cwd": "/absolute/path/to/attackgen", "env": { "OPENAI_API_KEY": "sk-...", "ANTHROPIC_API_KEY": "sk-ant-..." } } } }

Vous pouvez définir `ATTACKGEN_PROVIDER` et `ATTACKGEN_MODEL` dans `env` pour donner aux outils de génération un fournisseur/modèle par défaut, afin que les appelants n'aient pas à les transmettre à chaque fois. Les lourds bundles MITRE se chargent paresseusement lors du premier appel à un outil de données, de sorte que le serveur démarre instantanément.

## Compétences de l'agent

Associée au serveur MCP se trouve une **[compétence d'agent](https://github.com/mrwadams/attackgen/blob/HEAD/skills/)**, `attackgen-tabletop`, qui transforme les données d'AttackGen en un exercice de table (tabletop) de réponse aux incidents prêt pour l'animateur.

À partir d'un groupe de menaces ou d'une étude de cas ATLAS, la compétence produit un tabletop complet / une liste principale des événements du scénario (MSEL) — récit du scénario, kill chain mappée par phase, injections horodatées, questions de discussion NIST SP 800-61 et un tableau de bord de couverture de détection — sous forme de Markdown ou d'un rapport HTML autonome, prêt à imprimer.

Elle couvre également le parcours **de menace interne liée à l'IA** : lorsque l'adversaire est un agent d'IA de pointe déployé au sein de l'organisation, la compétence travaille à partir de `list_ai_insider_options` et `get_ai_insider_prompt` au lieu d'une kill chain. L'exercice conserve la même structure en six sections, mais son épine dorsale est la portée des menaces STRIDE et l'archétype de déploiement, son tableau de bord de détection est évalué par rapport à la posture de détection de cet archétype, et les `required_decisions` d'un template deviennent des questions de discussion obligatoires.

La division du travail est délibérée : les **outils de données** MCP fournissent les faits (chaque technique ou ID STRIDE remonte à un résultat d'outil) et la compétence fournit l'art de l'exercice, de sorte qu'elle s'exécute sur le modèle propre de votre client, **sans clé API supplémentaire**. Connectez le serveur MCP (ci-dessus), puis pointez un client compatible avec les compétences, tel que Claude Code ou Claude Desktop, vers le répertoire [`skills/`](https://github.com/mrwadams/attackgen/blob/HEAD/skills/). Voir [`skills/README.md`](https://github.com/mrwadams/attackgen/blob/HEAD/skills/README.md) pour les emplacements d'installation et les détails propres à chaque client.

## Utilisation

### Exécution d'AttackGen

#### Option 1 : Exécution de l'application Streamlit en local
1. Lancez l'application Streamlit :```
streamlit run 00_👋_Welcome.py
  1. Ouvrez votre navigateur web et accédez à l'URL fournie par Streamlit.
  2. Utilisez l'application pour générer des scénarios de réponse aux incidents standard ou personnalisés (voir ci-dessous pour plus de détails).

Option 2: Utilisation de l'image de conteneur Docker

  1. Exécutez le conteneur Docker:``` docker run -p 8501:8501 mrwadams/attackgen
Cette commande démarrera le conteneur et mappera le port 8501 (par défaut pour les applications Streamlit) du conteneur vers votre machine hôte.
2. Ouvrez votre navigateur web et accédez à `http://localhost:8501`.
3. Utilisez l'application pour générer des scénarios de réponse à incident standard ou personnalisés (voir ci-dessous pour plus de détails).

### Génération de scénarios

#### Génération de scénario standard
1. Choisissez d'utiliser l'API OpenAI, l'API Anthropic, l'API Google AI, l'API Mistral, l'API Groq ou un endpoint personnalisé compatible OpenAI (pour Ollama, LM Studio, les déploiements Azure OpenAI, OpenRouter, etc.).
2. Saisissez votre clé API pour le fournisseur choisi. Pour le fournisseur personnalisé, saisissez également l'URL de base et le nom du modèle.
3. Sélectionnez votre modèle préféré dans la liste déroulante.
4. Sélectionnez le secteur d'activité et la taille de votre organisation dans les menus déroulants.
5. Accédez à la page `Threat Group Scenarios`.
6. Sélectionnez le groupe d'acteurs malveillants (Threat Actor Group) que vous souhaitez simuler.
7. Cliquez sur « Generate Scenario » pour créer le scénario de réponse à incident.
8. Utilisez les boutons 👍 ou 👎 pour donner votre avis sur la qualité du scénario généré. N.B. Les boutons de retour ne s'affichent que si une valeur pour LANGCHAIN_API_KEY a été définie dans le fichier `.streamlit/secrets.toml`.

#### Génération de scénario personnalisé
1. Choisissez d'utiliser l'API OpenAI, l'API Anthropic, l'API Google AI, l'API Mistral, l'API Groq ou un endpoint personnalisé compatible OpenAI.
2. Saisissez votre clé API pour le fournisseur choisi. Pour le fournisseur personnalisé, saisissez également l'URL de base et le nom du modèle.
3. Sélectionnez votre modèle préféré dans la liste déroulante.
4. Sélectionnez le secteur d'activité et la taille de votre organisation dans les menus déroulants.
5. Accédez à la page `Custom Scenario`.
6. Utilisez la zone de sélection multiple pour rechercher et sélectionner les techniques ATT&CK pertinentes pour votre scénario.
7. Cliquez sur « Generate Scenario » pour créer votre scénario personnalisé de test de réponse à incident en fonction des techniques sélectionnées.
8. Utilisez les boutons 👍 ou 👎 pour donner votre avis sur la qualité du scénario généré. N.B. Les boutons de retour ne s'affichent que si une valeur pour LANGCHAIN_API_KEY a été définie dans le fichier `.streamlit/secrets.toml`.

#### Génération de scénarios de menace interne liée à l'IA
1. Choisissez votre fournisseur de modèles et saisissez la clé API correspondante (utilisez le fournisseur personnalisé pour les déploiements Azure OpenAI ou les modèles locaux).
2. Sélectionnez votre modèle préféré dans la liste déroulante.
3. Sélectionnez le secteur d'activité et la taille de votre organisation dans les menus déroulants.
4. Accédez à la page `AI Insider Threat Scenarios`.
5. (Facultatif) Choisissez un modèle pour pré-remplir l'archétype de déploiement, les catégories de menaces et les menaces STRIDE pour un scénario courant.
6. Choisissez l'**archétype de déploiement** qui reflète le degré d'autonomie de l'agent IA au sein de votre organisation (par ex. assistant supervisé, agent autonome, flotte entièrement autonome). C'est le principal facteur de la surface de menace de l'agent.
7. Sélectionnez une ou plusieurs **catégories de menaces** (compromission d'identifiants, sabotage de la chaîne d'approvisionnement, exfiltration de données, sabotage des infrastructures, tromperie et évasion).
8. (Facultatif) Affinez le scénario en ciblant des **menaces STRIDE** spécifiques. Si laissé vide, les menaces STRIDE associées aux catégories sélectionnées sont utilisées automatiquement. Il s'agit des 23 menaces STRIDE issues de l'article sous-jacent.
9. (Facultatif) Ajustez les **capacités de l'agent frontalier** mises en évidence dans l'invite.
10. Cliquez sur « Generate Scenario ». La sortie comprend un récit d'attaque mappé aux identifiants STRIDE, des opportunités de détection et des contrôles recommandés alignés sur le NIST CSF.
11. Utilisez les boutons 👍 ou 👎 pour donner votre retour (nécessite LANGCHAIN_API_KEY).

Le modèle de menace derrière cette page est décrit dans [*Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents*](https://ai-insider-threat.matt-adams.co.uk).

Veuillez noter que la génération de scénarios peut prendre une minute environ. Une fois le scénario généré, vous pouvez le visualiser dans l'application et également le télécharger sous forme de fichier Markdown.

## Bonnes pratiques de sécurité

AttackGen est conçu pour un déploiement local et mono-utilisateur. Lorsque vous utilisez l'outil :

### Protéger vos clés API

**Vos clés API sont des identifiants sensibles qui peuvent entraîner des frais sur votre compte.**

✅ **À FAIRE :**
- Saisir les clés API via l'interface (elles restent dans votre session de navigation)
- Utiliser un fichier .env pour plus de commodité sur votre machine personnelle
- Définir des limites de dépense dans le tableau de bord de votre fournisseur de LLM
- Examiner régulièrement votre utilisation de l'API et vos coûts
- Effacer la session lors d'une utilisation sur des ordinateurs partagés

❌ **À NE PAS FAIRE :**
- Committer les fichiers .env dans le contrôle de version (déjà dans .gitignore)
- Partager des captures d'écran montrant des clés API
- Exécuter AttackGen sur des systèmes non fiables/compromis
- Partager vos clés API avec d'autres
- Ignorer des frais API inattendus

### Considérations relatives à la confidentialité des données

Lorsque vous générez des scénarios, AttackGen envoie des données au fournisseur de LLM que vous avez choisi :
- Détails de l'organisation (secteur d'activité, taille de l'entreprise)
- Techniques ATT&CK sélectionnées
- Texte personnalisé saisi
- Scénarios générés (via AttackGen Assistant)

**Ce que cela signifie :**
- OpenAI, Anthropic, etc. peuvent journaliser ces données conformément à leurs politiques de confidentialité
- Envisagez d'utiliser des informations d'organisation génériques/fictives pour les démonstrations
- Examinez les politiques de conservation des données et de confidentialité de votre fournisseur de LLM
- Pour les cas d'utilisation sensibles, envisagez des fournisseurs offrant de meilleures garanties de confidentialité

### Pour les déploiements en équipe/organisation

Si vous déployez AttackGen pour plusieurs utilisateurs (ce n'est pas le cas d'utilisation par défaut) :
- Ajoutez une authentification/autorisation (non incluse par défaut)
- Utilisez un service de gestion des secrets pour les clés API
- Déployez derrière un VPN ou un réseau interne
- Consultez ce document de modèle de menace pour des considérations supplémentaires
- Tenez compte des exigences de résidence des données et de conformité

### Sécurité des dépendances

Nous maintenons les dépendances et surveillons les vulnérabilités :
- Les dépendances sont mises à jour régulièrement
- Les avis de sécurité sont suivis dans GitHub Issues
- Exécutez `pip list --outdated` pour vérifier les mises à jour
- Envisagez d'utiliser `pip-audit` pour l'analyse des vulnérabilités

### Signaler des problèmes de sécurité

Vous avez trouvé un problème de sécurité ? Merci de le signaler de manière responsable :
- Créez un avis de sécurité via le [signalement privé de vulnérabilités](https://github.com/mrwadams/attackgen/security/advisories/new) de GitHub
- Ne publiez pas les problèmes de sécurité ouvertement
- Nous accuserons réception sous 48 heures
- Les correctifs seront priorisés et publiés rapidement

## Contribution

Je suis très heureux d'accepter des contributions à ce projet. N'hésitez pas à soumettre une issue ou une pull request.

## Licence

Ce projet est sous licence [GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/).

Catégories