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 是一個使用 Streamlit 建構的 web‑app,用於建立真實的桌面演練式事件響應練習。它結合了 MITRE ATT&CK、MITRE ATLAS 以及新興的 AI Insider Threat 模型與大型語言模型(OpenAI、Anthropic、Google、Mistral、Groq,或透過 LiteLLM 使用任何與 OpenAI 相容的端點)。使用者可以選擇一個威脅行為者群組、一個 ATLAS 個案研究,或是一個 AI‑insider‑threat 範本,並加入組織細節(規模、產業),系統就會產生一個完整的場景、一份檢測與響應報告,以及一個 ATT&CK Navigator layer。


Core capabilities (as described in the README)

  • Scenario generation – 為 MITRE ATT&CK Enterprise、ATT&CK ICS 與 ATLAS 威脅群組或個案研究量身打造的敘事內容。
  • AI Insider‑Threat templates – 場景中,前沿 AI agent 會扮演內部威脅者,由 Actions Speak Louder Than Tokens 模型驅動(包含自主性層級、STRIDE 威脅等)。
  • Two‑phase output – 首先交付基礎場景;可選的「purple‑team」敘事(防禦者視角)會作為第二次模型呼叫時串流傳輸。
  • Detection & Response section – 本地數據關聯(不使用 LLM)將場景中的每個技術點進行映射到 MITRE 檢測策略、分析工具、日誌來源與緩解措施。
  • Export options – Markdown 報告、ATT&CK Navigator layer (.json),以及透過 tabletop skill 提供的精簡版 HTML 版本。
  • Assistant chat – 整合的 LLM chat 讓使用者可以在不離開頁面的情況下,精煉製作成的場景或檢測敘事。
  • Model‑agnostic backend – 所有 LLM 呼叫都透過 LiteLLM 進行,因此新增一個模型即可透過一行程式碼配置即可完成。
  • Docker image – 隨即可用於部署的 Docker container。
  • LangSmith integration – 可選的 LLM 呼叫追蹤/監控。
  • Secure credential handling – API keys 儲存在 .env 檔案中。

How to get it running (README‑based steps)

  1. Prerequisites – Python 3.14+、Docker (可選)、您打算使用的 LLM 提供商的 API keys。
  2. Clone & install
    git clone https://github.com/mrwadams/attackgen.git
    cd attackgen
    pip install -r requirements.txt   # installs Streamlit, LiteLLM, etc.
    
  3. Configure – 建立一個包含所需 keys 的 .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 – 對於 agentic clients,啟動 FastMCP server 如下:
    python -m mcp_server
    
    這會暴露 denata‑tool 與 generate‑tool 端點,可以從其他 LangChain agents 進行呼叫。

Typical workflow (user perspective)

  1. Setup sidebar – 選擇 LLM 提供商/模型、組織規模/產業,以及是否需要 purple‑team 敘事。

  2. Select a source – 選擇一個 MITRE ATT&CK 威脅群組、一個 ATLAS case study,或是一個 AI‑insider‑threat 範本。

  3. Generate – 點擊 Generate;UI 會顯示進度階段(輸入準備 → 基礎場景 → 匯出功能 $ ightarrow$ 可選的敘事內容)。進度條會隨著模型串流傳輸。

  4. Review – 結果頁面會顯示 Markdown 場景、帶有導航快捷鍵的精簡摘要,以及檢測與響應應對措施的章節章節。

  5. Refine – 開啟「AttackGen Assistant」chat 進行修改、要求額外細節,或調整防禦者敘事內容。

  6. Export – 下載場景、ATT&CK Navigator layer,以及檢測報告,以便於桌面演練式練習。


Recent highlights (v0.16)

  • Base‑scenario‑first generation – 使用者可以立即獲得可用的場景內容,隨後串流傳輸可選的防禦者敘事內容。
  • Guided, resilient workflow – UI 會在所有必要輸入都齊全的狀況下才啟用 Generate 鈕,並顯示簡潔的預先執行摘要。
  • Neutral selectors – 縮減至僅列出能實際產生場景的選項,威脅群組與 case study 下拉選單僅列出能實際產生場景的選項,防止使用者做無效的選擇。
  • Security hardening – CI 現在會針對 pip‑audit、Bandit 與 Trivy 的檢測結果進行攔截;Docker base image 已升級至 python:3.14‑slim

License & contribution

  • 該專案是根據 MIT License 釋出的。
  • 歡迎任何形式的貢獻;請參閱 Contributing 章節以了解指南。

Bottom line – AttackGen 是一個真實、且持續維護的開源源碼工具,利用現代 LLM API 來自動化建立豐富、符合 MITRE 架構的網路事件響應應對措施場景,包括新穎的 AI‑insider‑threat 演練。它正處於 AI‑augmented cybersecurity 領域的核心地位。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案