mrwadams/attackgen

AttackGen is a cybersecurity incident response testing tool that leverages the power of large language models and the comprehensive MITRE ATT&CK framework. The tool generates tailored incident response scenarios based on user-selected threat actor groups and your organisation's details.

AttackGen – AI‑powered cyber‑incident‑response scenario generator

What it is – AttackGenは、現実的なテーブルトップ形式のインシデント対応演習を作成するWebアプリ(Streamlitで構築)です。MITRE ATT&CK、MITRE ATLAS、および新興の AI Insider Threat モデルを、大規模言語モデル(OpenAI, Anthropic, Google, Mistral, Groq, または LiteLLM経由のOpenAI互換エンドポイント)と組み合わせます。ユーザーは脅威アクター・グループ、ATLASケーススタディ、またはAI-insider-threatテンプレートを選択し、組織の詳細(規模、業界)を追加することで、完全なシナリオ、検知・対応レポート、およびATT&CK Navigatorレイヤーを生成します。


Core capabilities (as described in the README)

  • Scenario generation – MITRE ATT&CK Enterprise, ATT&CK ICS, および ATLAS脅威グループまたはケーススタディに合わせたナラティブ(物語)を生成します。
  • AI Insider‑Threat templatesActions Speak Louder Than Tokens モデル(自律性レベル、STRIDE脅威など)に基づき、最先端のAIエージェントが内部脅威として振る舞うシナリオを生成します。
  • Two‑phase output – ベースとなるシナリオが最初に提供され、オプションの「purple‑team」ナラティブ(防御側の視点)が、2回目のモデル呼び出しとしてストリーミングされます。
  • Detection & Response section – シナリオ内のすべてのテクニックをMITREの検知戦略、アナリティクス、ログソース、および緩和策にマッピングする、ローカルデータ結合(LLMを使用しない)機能です。
  • Export options – Markdownレポート、ATT&CK Navigatorレイヤー(.json)、およびテーブルトップ演習用のコンパクトなHTML版を提供します。
  • Assistant chat – 統合されたLLMチャットにより、ページを離れずにシナリオや検知ナラティブを洗練練させることができます。
  • Model‑agnostic backend – すべてのLLM呼び出しはLiteLLMを経由するため、新しいモデルの追加は設定ファイルの1行の変更だけで済みます。
  • Docker image – 簡単にデプロイできる、すぐに使えるコンテナイメージです。
  • LangSmith integration – LLM呼び出しのトレース/モニタリングが可能です(オプション)。
  • Secure credential handling – APIキーは.envファイルに保存されます。

How to get it running (README‑based steps)

  1. Prerequisites – Python 3.14+、Docker(オプション)、使用するLLMプロバイダーのAPIキー。
  2. Clone & install
    git clone https://github.com/mrwadams/attackgen.git
    cd attackgen
    pip install -r requirements.txt   # installs Streamlit, LiteLLM, etc.
    
  3. Configure – 必要なキーを含む.envファイルを作成します。例:
    OPENAI_API_KEY=sk-…
    ANTHROPIC_API_KEY=…
    
  4. Run locally
    streamlit run app.py
    
    UIはブラウザで表示されます。
  5. Docker alternative
    docker build -t attackgen .
    docker run -p 8501:8501 --env-file .env attackgen
    
  6. Optional LangSmith – 「LangSmith Setup」セクションに従って、LANGCHAIN_API_KEYを追加し、トレースを有効にします。
  7. MCP server – エージェント型クライアント向けに、以下のコマンドでFastMCPサーバーを起動します:
    python -m mcp_server
    
    これにより、他のLangChainエージェントから呼び出し可能なdata‑toolとgenerate‑toolエンドポイントが公開されます。

Typical workflow (user perspective)

  1. Setup sidebar – LLMプロバイダー/モデル、組織の規模/業界、およびpurple‑teamナラティブが必要かを選択します。
  2. Select a source – MITRE ATT&CK脅威グループ、ATLASケーススタディ、またはAI-insider-threatテンプレートを選択します。
  3. GenerateGenerateをクリックします。UIは進行状況(入力準備 → ベースとなるシナリオ → エクスポート → オプションのナラティブ)を表示します。
  4. Review – 結果ページには、Markdownシナリオ、ナビゲーションショートカット付きのコンパクトなサマリー、および検知・対応セクションが表示されます。
  5. Refine – 「AttackGen Assistant」チャットを開いて、編集、詳細の追加、または防御側のナラティブを微調整するためのお願いをします。
  6. Export – テーブルトップ演習で使用するために、シナリオ、ATT&CK Navigatorレイヤー、および検知レポートをダウンロードします。

Recent highlights (v0.16)

  • Base‑scenario‑first generation – ユーザーはすぐに利用可能なシナリオを即座に取得できます。オプションの防御側ナラティブは後からストリーミングされます。
  • Guided, resilient workflow – UIは、すべての必須入力が揃うまでGenerateボタンをディスエブル(無効化)し、実行前の簡バシー・サマリーを表示します。
  • Neutral selectors – 脅威グループやケーススタディのドロップダウンは、実際にシナリオを生成できるオプションのみを表示し、デッドエンドを防ぎます。
  • Security hardening – CIは、pip-audit, Bandit, Trivyの検出結果に基づいて失敗します。Dockerベースイメージはpython:3.14-slimにアップグレードされました。

License & contribution

  • プロジェクトはMIT Licenseの下で公開されています。
  • 貢献(Contributions)は歓迎されています。ガイドラインについてはContributingセクションを参照してください。

Bottom line – AttackGenは、現代的なLLM APIを活用して、MITREに準拠した、豊かで詳細なサイバーインシデント対応シナリオ(新しいAI-insider-threat演習を含む)の作成を自動化する、真に実用的で、活発にメンテナンスされているオープンソースツールです。AI-augmented cybersecurityの分野に位置づけられています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト