
AttackGenは、大規模言語モデルの能力と包括的なMITRE ATT&CKフレームワークを活用する、サイバーセキュリティのインシデント対応テストツールです。このツールは、ユーザーが選択した脅威アクターグループと組織の詳細に基づいて、カスタマイズされたインシデント対応シナリオを生成します。
AttackGenは、大規模言語モデルの力と包括的なMITRE ATT&CKおよびATLASフレームワークを活用したサイバーセキュリティインシデント対応テストツールです。このツールは、ユーザーが選択した脅威アクターグループ、AI攻撃ケーススタディ、および組織の詳細に基づいて、カスタマイズされたインシデント対応シナリオを生成します。
AttackGenが役立つと感じたら、GitHubでリポジトリにスターを付けることをご検討ください。これにより、より多くの人々がこのツールを発見できるようになります。あなたのサポートを大いに感謝します! ⭐

streamlit、litellm、mitreattack-python、pandas(完全なリストは requirements.txt を参照)。./data/ 内)に同梱されているため、手動でのダウンロードは不要です(データセットアップ を参照)。.env ファイル(詳細については、インストール セクションを参照)。2. クローンしたリポジトリにディレクトリを変更します:```
cd attackgen
### オプション2: Dockerを使用する
1. Docker HubからDockerコンテナイメージをプルします:```
docker pull mrwadams/attackgen
モデルのパフォーマンスのデバッグ、テスト、モニタリングにLangSmithを使用したい場合は、LangSmithアカウントを設定し、LangChain APIキーを含む.streamlit/secrets.tomlファイルを作成する必要があります。アカウントの設定とAPIキーの取得方法については、こちらの手順に従ってください。.streamlit/ディレクトリにはsecrets.toml-exampleファイルがあるので、これを独自のsecrets.tomlファイルのテンプレートとして使用できます。
LangSmithを使用しない場合でも、.streamlit/secrets.tomlファイルを配置しておく必要がありますが、LANGCHAIN_API_KEYフィールドは空のままにしておいてかまいません。
AttackGenが必要とするMITRE ATT&CK(Enterprise + ICS)およびATLASデータセットは、./data/の下でリポジトリにコミットされているため、新規クローンは追加のダウンロード手順なしですぐに実行できます。これらには、enterprise-attack.json、ics-attack.json、stix-atlas.json、groups.json、groups_ics.json、atlas-case-studies.jsonが含まれます。
これらを最新のアップストリームリリースに更新したい場合は、MITRE ATT&CK STIXデータリポジトリ(およびATLASデータリポジトリ)からSTIXバンドルを再ダウンロードし、./data/内のファイルを置き換えてください。
データのセットアップ後、以下のコマンドでAttackGenを実行できます。``` streamlit run 00_👋_Welcome.py
[Streamlit Community Cloud](https://attackgen.streamlit.app/) でもアプリを試すことができます。
## MCP サーバー
AttackGen には [MCP](https://modelcontextprotocol.io/) サーバーが同梱されており、エージェント型ワークフロー(Claude Code、Claude Desktop、Cursor、その他の MCP クライアント)が Streamlit UI を使わずにシナリオ生成を駆動できます。**2 層のツール**を公開しています。
- **データツール — API キー不要、LLM 呼び出しなし。** これらは AttackGen の MITRE データを公開します。脅威グループ / ATLAS ケーススタディの一覧表示、グループのキルチェーンの解決、パープルチームの Detection & Response レポートの作成、ATT&CK Navigator レイヤーの生成、AI インサイダー脅威オプションの一覧表示などです。`list_ai_insider_options` は各クイックスタートテンプレートを、適用される選択内容とナラティブ概要とともに返すため、`get_ai_insider_prompt` / `generate_ai_insider_scenario` は `template=` に業界と会社規模を加えるだけで呼び出せます。有用な場合には、実行可能なプロンプトも返すため、**クライアント自身のモデル**でシナリオを記述できます。つまり、別途プロバイダーの API キーがなくても動作します。これは HTTP 経由でホストしても安全なサーフェスです。
- **生成ツール — キー持ち込み方式。** `generate_threat_group_scenario`、`generate_custom_scenario`、`generate_ai_insider_scenario` はサーバー側で LLM を呼び出し、完成した Markdown シナリオを返します。プロバイダー、モデル、キーは呼び出しごとに指定します。`api_key` を省略すると、LiteLLM は対応する環境変数(`OPENAI_API_KEY`、`ANTHROPIC_API_KEY` など)にフォールバックします。つまり、**ご自身の**キーが使われます。これらのツールはプロセス環境から認証情報を読み取るため、**ローカルの stdio** に留め、共有ホスト上では公開しないでください。
### インストールと実行
`mcp` 依存関係は `requirements.txt` に含まれています。プロジェクトをインストールしてください(編集可能インストールでは `attackgen-mcp` コンソールスクリプトも利用できます)。```
pip install -r requirements.txt
# optional, for the console script:
pip install -e .
サーバーを起動します(stdio):``` python -m mcp_server # or: attackgen-mcp
### クライアントに追加する
**Claude Code:**```
claude mcp add attackgen -- python -m mcp_server
Claude Desktop (claude_desktop_config.json) — キーは 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-..."
}
}
}
}
`env` で `ATTACKGEN_PROVIDER` と `ATTACKGEN_MODEL` を設定すると、generate ツールにデフォルトのプロバイダー/モデルを指定できるため、呼び出し側が毎回それらを渡す必要がなくなります。重い MITRE バンドルは最初のデータツール呼び出し時に遅延ロードされるため、サーバーは即座に起動します。
## Agent Skills
MCP サーバーと組み合わせて使うのが **[Agent Skill](https://github.com/mrwadams/attackgen/blob/main/skills)**、`attackgen-tabletop` です。これは AttackGen のデータを、ファシリテーターがすぐ使えるインシデント対応テーブルトップ演習に変換します。
脅威グループまたは ATLAS ケーススタディを指定すると、このスキルは完全なテーブルトップ演習 / Master Scenario Events List (MSEL) を生成します。シナリオのナラティブ、フェーズにマッピングされたキルチェーン、タイムスタンプ付きのインジェクト、NIST SP 800-61 の討議質問、検知カバレッジのスコアカードを、Markdown または自己完結型で印刷に適した HTML レポートとして出力します。
また、**AI 内部関係者脅威**のシナリオにも対応しています。敵対者が組織内部に展開されたフロンティア AI エージェントである場合、このスキルはキルチェーンの代わりに `list_ai_insider_options` と `get_ai_insider_prompt` を使用します。演習は同じ 6 セクション構成を維持しますが、その背骨は STRIDE 脅威スコープと展開アーキタイプとなり、検知スコアカードはそのアーキタイプの検知体制に照らして評価され、テンプレートの `required_decisions` は必須の討議質問になります。
役割分担は意図的です。MCP **データツール**が事実を提供し(すべてのテクニックや STRIDE ID はツールの結果に遡ります)、スキルが演習の設計を提供するため、クライアント自身のモデルで実行され、**追加の API キーは不要**です。上記の MCP サーバーを接続し、Claude Code や Claude Desktop などのスキル対応クライアントを [`skills/`](https://github.com/mrwadams/attackgen/blob/main/skills) ディレクトリに向けます。クライアントごとのインストール場所と詳細については、[`skills/README.md`](https://github.com/mrwadams/attackgen/blob/main/skills/README.md) を参照してください。
## 使用方法
### AttackGen の実行
#### オプション 1: Streamlit アプリをローカルで実行する
1. Streamlit アプリを実行します:```
streamlit run 00_👋_Welcome.py
このコマンドでコンテナが起動し、コンテナ内のポート8501(Streamlitアプリのデフォルト)がホストマシンにマッピングされます。
2. Webブラウザを開き、`http://localhost:8501` にアクセスします。
3. アプリを使用して、標準またはカスタムのインシデントレスポンスシナリオを生成します(詳細は以下を参照)。
### シナリオの生成
#### 標準シナリオの生成
1. OpenAI API、Anthropic API、Google AI API、Mistral API、Groq API、またはカスタムのOpenAI互換エンドポイント(Ollama、LM Studio、Azure OpenAIデプロイメント、OpenRouterなど)のいずれを使用するかを選択します。
2. 選択したプロバイダーのAPIキーを入力します。カスタムプロバイダーの場合は、ベースURLとモデル名も入力します。
3. ドロップダウンから希望するモデルを選択します。
4. ドロップダウンメニューから、組織の業界と規模を選択します。
5. `Threat Group Scenarios` ページに移動します。
6. シミュレートしたい脅威アクターグループを選択します。
7. 「Generate Scenario」をクリックして、インシデントレスポンスシナリオを作成します。
8. 👍 または 👎 ボタンを使用して、生成されたシナリオの品質に関するフィードバックを提供します。注意:フィードバックボタンは、`.streamlit/secrets.toml` ファイルに `LANGCHAIN_API_KEY` の値が設定されている場合にのみ表示されます。
#### カスタムシナリオの生成
1. OpenAI API、Anthropic API、Google AI API、Mistral API、Groq API、またはカスタムのOpenAI互換エンドポイントのいずれを使用するかを選択します。
2. 選択したプロバイダーのAPIキーを入力します。カスタムプロバイダーの場合は、ベースURLとモデル名も入力します。
3. ドロップダウンから希望するモデルを選択します。
4. ドロップダウンメニューから、組織の業界と規模を選択します。
5. `Custom Scenario` ページに移動します。
6. 複数選択ボックスを使用して、シナリオに関連するATT&CKテクニックを検索して選択します。
7. 「Generate Scenario」をクリックして、選択したテクニックに基づいてカスタムのインシデントレスポンステストシナリオを作成します。
8. 👍 または 👎 ボタンを使用して、生成されたシナリオの品質に関するフィードバックを提供します。注意:フィードバックボタンは、`.streamlit/secrets.toml` ファイルに `LANGCHAIN_API_KEY` の値が設定されている場合にのみ表示されます。
#### AI内部関係者脅威シナリオの生成
1. モデルプロバイダーを選択し、関連するAPIキーを入力します(Azure OpenAIデプロイメントまたはローカルモデルにはカスタムプロバイダーを使用します)。
2. ドロップダウンから希望するモデルを選択します。
3. ドロップダウンメニューから、組織の業界と規模を選択します。
4. `AI Insider Threat Scenarios` ページに移動します。
5. (任意)テンプレートを選択して、一般的なシナリオのデプロイメントアーキタイプ、脅威カテゴリ、STRIDE脅威を事前に入力します。
6. 組織内でAIエージェントがどの程度自律的に動作するかを反映する**デプロイメントアーキタイプ**を選択します(例:監督付きアシスタント、自律エージェント、完全自律型フリート)。これはエージェントの脅威サーフェスの主な決定要因です。
7. 1つ以上の**脅威カテゴリ**(認証情報の侵害、サプライチェーン妨害、データ窃取、インフラ妨害、欺瞞と回避)を選択します。
8. (任意)シナリオを特定の**STRIDE脅威**に絞り込みます。空のままにすると、選択したカテゴリに関連するSTRIDE脅威が自動的に使用されます。これらは、基盤となる論文の23のSTRIDE脅威です。
9. (任意)プロンプトで強調される**フロンティアエージェント機能**を調整します。
10. 「Generate Scenario」をクリックします。出力には、STRIDE識別子にマッピングされた攻撃の物語、検出の機会、NIST CSFに沿った推奨コントロールが含まれます。
11. 👍 または 👎 ボタンを使用してフィードバックを提供します(`LANGCHAIN_API_KEY` が必要です)。
このページの背後にある脅威モデルは、[*Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents*](https://ai-insider-threat.matt-adams.co.uk) に記載されています。
シナリオの生成には1分ほどかかる場合があることに注意してください。シナリオが生成されると、アプリで表示したり、Markdownファイルとしてダウンロードしたりできます。
## セキュリティのベストプラクティス
AttackGenは、ローカルでの単一ユーザー展開用に設計されています。ツールを使用する際は:
### APIキーの保護
**APIキーは、アカウントに料金が発生する可能性がある機密性の高い認証情報です。**
✅ **推奨事項:**
- UIを通じてAPIキーを入力します(ブラウザセッション内に保持されます)
- 個人のマシンでは利便性のために.envファイルを使用します
- LLMプロバイダーのダッシュボードで支出制限を設定します
- APIの使用状況とコストを定期的に確認します
- 共有コンピューターで使用する場合はセッションをクリアします
❌ **禁止事項:**
- .envファイルをバージョン管理にコミットする(すでに.gitignoreに含まれています)
- APIキーが見えるスクリーンショットを共有する
- 信頼できない/侵害されたシステムでAttackGenを実行する
- APIキーを他の人と共有する
- 予期しないAPI請求を無視する
### データプライバシーに関する考慮事項
シナリオを生成すると、AttackGenは選択したLLMプロバイダーにデータを送信します:
- 組織の詳細(業界、会社規模)
- 選択したATT&CKテクニック
- カスタム入力テキスト
- 生成されたシナリオ(AttackGenアシスタント経由)
**これが意味すること:**
- OpenAI、Anthropicなどは、プライバシーポリシーに従ってこのデータをログに記録する場合があります
- デモンストレーションには、一般的/架空の組織情報の使用を検討してください
- LLMプロバイダーのデータ保持およびプライバシーポリシーを確認してください
- 機密性の高いユースケースでは、より厳格なプライバシー保証を提供するプロバイダーを検討してください
### チーム/組織展開の場合
複数のユーザー向けにAttackGenを展開する場合(デフォルトのユースケースではありません):
- 認証/認可を追加します(デフォルトでは含まれていません)
- APIキーにはシークレット管理サービスを使用します
- VPNまたは内部ネットワークの背後に展開します
- 追加の考慮事項については、この脅威モデルドキュメントを確認してください
- データの保存場所とコンプライアンス要件を検討してください
### 依存関係のセキュリティ
依存関係を維持し、脆弱性を監視しています:
- 依存関係は定期的に更新されます
- セキュリティ勧告はGitHub Issuesで追跡されます
- `pip list --outdated` を実行して更新を確認します
- 脆弱性スキャンには `pip-audit` の使用を検討してください
### セキュリティ問題の報告
セキュリティ問題を発見しましたか?責任を持って報告してください:
- GitHubの[プライベート脆弱性報告](https://github.com/mrwadams/attackgen/security/advisories/new)を通じてセキュリティ勧告を作成します
- セキュリティ問題を公に投稿しないでください
- 48時間以内に確認します
- 修正は優先され、迅速にリリースされます
## 貢献
このプロジェクトへの貢献を歓迎します。お気軽にissueまたはpull requestを提出してください。
## ライセンス
このプロジェクトは[GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/)の下でライセンスされています。
| 新機能は? | なぜ役立つのか? |
|---|
| ベースシナリオ優先の生成 | - 待ち時間の短縮:生成はフェーズで実行されるようになりました — ベースシナリオが最初にレンダリングされ、シナリオのダウンロードおよびATT&CK Navigatorレイヤーのダウンロードボタンがすでに有効になり、オプションのパープルチームナラティブはその後でストリーミングされます。その2番目のパスが遅い場合、または不要な場合は、すべてが完了するまで保留されるのではなく、シナリオをすぐに使用できます。 - 生成時の入力固定:各実行は生成を押した瞬間のスナップショットから動作するため、実行中にサイドバーを変更しても、生成中のシナリオが途中で書き換えられることはありません。 - 正直な進捗表示:実行中の経過時間ラベルと名前付きフェーズ — 入力の準備、ベースシナリオの生成、決定論的エクスポートの構築、パープルチームナラティブの生成 — により、長時間の実行が実際にどこまで進んでいるかがわかります。 |
| 中立で行き止まりのないセレクター | - 機能するオプションのみ:脅威グループとケーススタディのセレクターは、実際にシナリオを生成する選択肢のみを提供するようになったため、選択が行き止まりになることはありません。 - 自然な順序:グループは自然な数値順でソートされるため、APT3はAPT28やAPT30の前に来ます(テキストとしてソートされてそれらの間に配置されることはありません)。 |
| すべてのページで共有セットアップサイドバー | - 一度のセットアップ:プロバイダー、モデル、フレームワーク、業界、会社規模は、各シナリオページ — 脅威グループ、カスタム、AI内部関係者脅威 — で個別に入力する代わりに、単一の共有セットアップサイドバーに配置されました。 - ナビゲーション間で保持:非秘密の選択はページ間を移動しても保持され、URLにミラーリングされます。一方、APIキーは意図的にクエリ文字列から除外されています。 |
| プラットフォームとセキュリティのハウスキーピング | - 2.x SDK上のMCP:MCPサーバーはmcp 2.x SDKに移行しました。- 新しいベースイメージ:Dockerイメージは python:3.14-slim上に構築されるようになりました。- 警告ではなくCIゲート:セキュリティスキャンは、報告するだけでなく、検出結果でビルドを失敗させるようになりました — pip-auditとBanditがゲートし、Trivyはpipのベンダー提供SBOMをインストール済みパッケージとして誤ってカウントしなくなり、実行可能なイメージCVEは解消されました。GitHub ActionsはNode 20ランタイムから移行し、Dependabotはワークフローアクション自体を追跡するようになりました。 |
| 新機能は? | なぜ役立つのか? |
|---|
| 評価環境脱出プリセットとシナリオシード | - 特定のインシデントをリハーサル:新しいAI内部関係者脅威テンプレートは、隔離されていると想定された環境から評価エージェントが実際のシステムに到達する状況をリハーサルします — 封じ込め、資格情報のローテーション、第三者への通知、証拠の保存を強制します。これは、隔離境界が強制されるのではなく想定されていた、サンドボックスから脱出する評価エージェントに関する2026年7月の開示をカバーしています。 - テンプレートがプロンプトに到達:クイックスタートテンプレートは以前はページのウィジェットを事前入力するだけで、生成されたシナリオに影響を与えませんでした。現在は、ナラティブの briefと、ディスカッション質問が強制しなければならないrequired_decisionsを保持し、両方がプロンプトに組み込まれます — そのため、テンプレートは質問の寄せ集めではなく、使用可能な時間指定のテーブルトップ演習を生成します。これにより、テンプレートは2つのクラスに分割されます:元の6つのアーキタイプテンプレートは決定のみを設定するため、モデルが前提を考案し、再実行すると同じ脅威プロファイルに対して新しい演習が生成されます;インシデントテンプレートはブリーフも設定し、状況を固定します。- 自由記述シナリオシード:AI内部関係者脅威ページのオプションのシードボックスは、任意のシナリオのナラティブを導きます。テンプレートを選択すると事前入力され、編集したり、ゼロから独自のものを書いたりできます。 - タクソノミーを27の脅威/6カテゴリに拡張:6番目の脅威カテゴリ(封じ込めと第三者への影響)と、演習が依存する4つのSTRIDE脅威を追加 — S5再利用可能なワークロード資格情報のリプレイ、R4エージェント側テレメトリ抑制、I5第三者および下流の侵害、E5封じ込め境界保証の失敗。AttackGenは公開された脅威モデルをミラーリングするのではなく、拡張するようになりました。- MCP経由でテンプレートを使用可能: get_ai_insider_promptとgenerate_ai_insider_scenarioはtemplate=とscenario_seed=を受け入れ、list_ai_insider_optionsは各テンプレートを選択内容と適用するブリーフとともに返します — そのため、クライアントはメリットに基づいてプリセットを選択し、テンプレート、業界、会社規模だけで呼び出すことができます。以前はテンプレート名がリストされていましたが、それを受け入れるツールはありませんでした。 |
| attackgen-tabletopスキル:AI内部関係者脅威パス | - 2番目の演習パス:エージェントスキルは、MITREキルチェーンだけでなく、AI内部関係者脅威モデルからもテーブルトップ演習を構築するようになりました。クイックスタートテンプレート(または展開アーキタイプと脅威カテゴリ)を選択すると、get_ai_insider_promptのペイロードをMSELに変換します。- 同じ形状、異なる背骨:演習は同じ6つのセクションを維持しますが、キルチェーンテーブルはエージェントプロファイルとSTRIDE脅威スコープになり、検出スコアカードは展開アーキタイプの検出態勢に対して評価されます — そのため、発火しない行が発見事項になり、テンプレートの必須決定は必須のディスカッション質問になります。 - パスが自動選択:スキルの説明は現在、不正エージェントの表現でトリガーされるため、「AI内部関係者脅威テーブルトップ」を要求すると正しいパスに到達します。AI加速されたトレードクラフトを持つ外部アクターはMITREパスに留まります。 - 応答であり、エクスプロイトではない:両方のパスは、対応チームが下さなければならない決定をリハーサルすることに明示的に限定されています — エクスプロイトコード、ペイロード、実際の未パッチの脆弱性はありません — また、AIパスはエージェントの行動を人間の動機ではなく、設定、アクセス、目的に帰属させます。 |
| 修正:MCP AI内部関係者プロンプトがエージェント機能を省略 | - 同じテンプレート、同じプロンプト:フロンティアエージェント機能ブロック — AI内部関係者シナリオを信頼できるものにするベンチマークに基づく行 — は、capabilitiesを明示的に指定しないすべてのget_ai_insider_prompt / generate_ai_insider_scenario呼び出しで省略されていました。テンプレートはそれらを提供しないため、引数は空にフォールスルーし、プロンプトは汎用的な「有能なフロンティアコーディングエージェントを想定」という行に置き換えられました。一方、ページ3は同じテンプレートに対して4つすべてを送信していました。- デフォルトがアプリと一致: capabilitiesを省略すると、ページのマルチセレクトと同様に完全なセットが適用されます。[]を渡すと、それらは未指定のままになるため、意図的なオプトアウトは変更されません。 |
| 修正:Anthropic Claude 4.7+のシナリオ生成 | - すべてのClaudeモデルが再び動作:Claude 4.7以降は任意のサンプリングtemperatureを拒否し、BadRequestError: 'temperature' is deprecated for this modelを返します。リストされている5つのAnthropicモデルのうち4つ — Fable 5、Opus 4.8、Sonnet 5、Opus 4.7 — はどのページでもシナリオを生成できませんでした;Haiku 4.5のみが機能しました。- プロバイダーごとではなくモデルごとにゲート:温度ルールは以前はプロバイダーからルーティングされていましたが、モデルが異なるプロバイダーを表現することはできません。 ModelInfo.supports_temperatureは現在、温度を拒否するモデルをマークするため、Haiku 4.5は設定された温度を維持し、その兄弟モデルはそれを省略します。OpenAIはプロバイダーレベルのルールのままです(現在のすべてのチャットモデルは推論モデルです)、また未登録のモデル — ローカルのOllama / LM Studioエンドポイント — は引き続き温度を受け取ります。 |
| 新機能は? | なぜ役立つのか? |
|---|---|
| エージェントクライアント用MCPサーバー | - ツールとしてのシナリオ生成:新しいFastMCPサーバー(mcp_server.py、公式mcp SDK)は、stdioを介してエージェントクライアントにAttackGenを公開するため、Claude CodeやClaude DesktopなどのアシスタントがStreamlit UIなしでMITREデータを取得し、シナリオを生成できます。- 2つの階層:データツール( list_threat_groups、list_case_studies、get_kill_chain、get_detection_report、get_navigator_layer、list_ai_insider_options、get_ai_insider_prompt)はLLM呼び出しを行わず、APIキーも不要です — 構造化されたMITREデータと、有用な場合は実行可能なプロンプトを返すため、HTTP経由でホストしても安全です。生成ツール(generate_threat_group_scenario、generate_custom_scenario、generate_ai_insider_scenario)は、持ち込みキー設定を受け入れ、完成したMarkdownを返します — これらはローカルのstdioに保持してください。- 共有実装:サーバーはStreamlitページが使用するのと同じヘッドレス core/prompts.pyビルダーとcore/attack_data.pyローダーを再利用するため、シナリオはアプリと一致し、乖離しません。python -m mcp_serverまたはattackgen-mcpコンソールスクリプトで起動します。 |
| attackgen-tabletopエージェントスキル | - ファシリテーター対応テーブルトップ:新しいエージェントスキルは、MCPデータツールに基づいて、MITRE ATT&CK/ATLAS脅威グループまたはケーススタディを完全なIRテーブルトップ/MSELに変換します — シナリオナラティブ、フェーズマッピングされたキルチェーン、タイムスタンプ付きインジェクション、NIST SP 800-61ディスカッション質問、検出カバレッジスコアカード。 - 呼び出し元のモデルで実行:スキルは演習のクラフトを提供し、MCPサーバーはデータを提供するため、追加のAPIキーなしでクライアント自身のモデルで実行されます。 - 2つの出力形式:Markdown(デフォルト)または自己完結型の印刷に適したHTMLレポートとして配信されます。 |
| アシスタントが検出と応答の出力を改善 | - パープルチーム編集:AttackGenアシスタントは、シナリオだけでなく検出と応答ナラティブも改善できるようになりました。シナリオが🟣パープルチームナラティブトグル(脅威グループ/カスタムページ)で生成されると、アシスタントページに編集:セレクターが表示され、チャットがシナリオまたは防御側のウォークスルーのいずれかをターゲットにできます — 以前はアシスタントはシナリオテキストのみを持っていました。 - 結合編集モード:3番目のシナリオ+検出と応答ターゲットは両方を一緒に改善するため、横断的な変更 — 異なる業界、脅威アクター、テクニック、タイムライン — が攻撃者のシナリオと防御側のナラティブの両方に一貫して適用され、2回行われて乖離することはありません。 - 決定論的事実は変更されない:LLMナラティブのみが改善ターゲットです;ローカルのSTIX検出結合はLLM編集されません。各編集モードは独自のチャット履歴を保持し、結合パスはLangSmithで purple_team_narrativeとしてタグ付けされます。 |
| よりシンプルなモデルレジストリ | - モデルごとに1つ少ないもの:max_completion_tokens kwargと推論モデルの温度ルールは、モデルごとのuses_max_completion_tokensフラグではなく、プロバイダーからルーティングされるようになりました — 現在のすべてのOpenAIチャットモデルがそれらを使用するため、フラグはプロバイダーキーがすでにキャプチャした事実を複製していました。新しいOpenAIモデルの追加は、覚えるべき追加フラグなしで、への1エントリ編集のままです。- 動作の変更なし:内部の簡素化のみ — ラッパーは現在のすべてのモデルに対して同一のLiteLLM kwargsを構築します。 |
| 新機能は? | なぜ役立つのか? |
|---|---|
| 修正:OpenAI GPT-5.xのシナリオ生成 | - 正しい推論モデル処理:OpenAIのGPT-5.x推論モデルは、デフォルト以外の任意のサンプリングtemperatureを拒否するため、すべてのGPT-5.x生成はBadRequestError: 'temperature' does not support 0.7 with this modelで失敗していました。AttackGenはこれらのモデルにカスタム温度を送信しなくなりましたが、他のプロバイダーは設定された値を維持します。 |
| モデルレジストリの更新 | - 最新モデル:各プロバイダーの現在のドキュメントに対してモデルリストを更新 — OpenAI GPT-5.6(Sol / Terra / Lunaティア)、Claude Fable 5およびClaude Sonnet 5、継続性のためにプロバイダーごとに以前の世代を1つ保持。 - 古いエントリの削除:プロバイダーが置き換えた、または廃止予定のモデルを削除 — 特にGroqの qwen3-32b(2026年7月17日シャットダウン)とMistralのMagistral Medium — そのため、サイドバーが選択時にエラーになるモデルを提供できません。- 高速/低コストのGroqティア( llama-3.1-8b-instant)を追加。 |
| 新機能は? | なぜ役立つのか? |
|---|---|
| パープルチームモード:検出と応答 | - 防御側のコンパニオン:すべての脅威グループとカスタムシナリオに、シナリオの各テクニックを出荷済みデータにすでに含まれているMITRE ATT&CK検出戦略、分析、ログソース、緩和策に結合する検出と応答セクションが表示されるようになりました — レッドのみのナラティブをパープルチーム演習に変換します(「ここに攻撃があり、SOCが正確に何を見るべきだったかはこちら」)。 - 事実に対するLLM呼び出しなし:検出セクションはローカルデータ結合であり、モデル呼び出しではありません — そのため、リストされる分析、ログソース、緩和策はモデルの推測ではなく、実際の現在のMITREコンテンツです。これはシナリオとレイヤーとともに独自の ..._detection.mdダウンロードとして提供されます。- 有効にするログソース:シナリオごとのロールアップは、検出が読み取る個別のログソースをリストします(例: WinEventLog:Security (EventCode=4624))— そのため、SOCは演習が想定するテレメトリを一目で確認できます。- オプションのパープルチームナラティブ:ページごとの🟣パープルチームナラティブトグルは、シナリオを防御側の視点から段階的にウォークスルーする2番目のモデルパスを追加します — 何が発火するか、アナリストが何を見るか、どう応答するか — 上記の検出と緩和策に厳密に基づいています(発明された検出はありません)。 - ATLAS対応:ATLASシナリオは緩和策をリストします(ATLASにはまだ検出戦略がありません)そして、何も表示しないのではなく、その旨を明記します。 |
| MITRE ATT&CK v19.1と最新のATLASデータ | - 更新されたフレームワーク:MITRE ATT&CK EnterpriseおよびICSデータがv18.1からv19.1に更新され、MITRE ATLASは最新リリースに更新されたため、生成されたシナリオは現在の戦術、テクニック、ケーススタディを反映します。 - 更新されたグループリスト:脅威グループのドロップダウンはv19.1バンドル(174のEnterpriseと14のICSアクティブグループ)から再生成されます。MITREが上流で取り消した、または統合したグループ(例:APT34 → OilRig、UNC2452 → APT29)は表示されなくなり、MirrorFaceなどの新しく追跡されるグループは表示されます。 - より多くのATLASケーススタディ:ATLASケーススタディライブラリは57に成長しました(17のインシデント、40の演習)。 - 繰り返し可能な更新:新しい scripts/generate_groups.pyは、出荷済みのSTIXバンドルからグループマッピングを再生成し、既存のATLASケーススタディスクリプトを補完します — そのため、次の更新は手動キュレーションではなくスクリプト化されたステップです。 |
| ATT&CK Navigatorレイヤーエクスポート | - ダウンロード可能なレイヤー:脅威グループとカスタムシナリオページのすべての生成シナリオで、MarkdownダウンロードとともにATT&CK Navigatorレイヤー(.json)が提供されるようになりました — そのため、シナリオのテクニックをATT&CK Navigatorで視覚化、注釈付け、共有できます。表示するには、レイヤーをダウンロードし、Navigatorで既存のレイヤーを開く → ローカルからアップロードを介して開きます。- 3つすべてのマトリックス:正しいNavigatorドメインがマトリックスごとに自動的に設定されます — EnterpriseおよびICSレイヤーはMITRE ATT&CK Navigatorにアップロードし、ATLASレイヤーはATLAS Navigatorフォークにアップロードします。(ATLASレイヤーはATT&CK Navigatorで読み込まれず、その逆も同様です。それぞれが自分のドメインのみを認識するためです。) - テクニックが表示されたまま:スコアリングされたサブテクニックは自動的に親を展開し、テクニックIDがレイアウトに表示されるため、シナリオの強調表示されたテクニックは折りたたまれた行に隠れるのではなく、すぐに明らかになります。 - 追加のLLM呼び出しなし:レイヤーはシナリオ用にすでに選択されたテクニックのローカルシリアライゼーションです — 追加のモデル呼び出しや外部ルックアップはありません。 - 説明的なダウンロードファイル名:シナリオとレイヤーのダウンロードは、脅威アクター/カスタムシナリオとマトリックスに生成タイムスタンプを付けて名前が付けられるようになりました(例: AttackGen_APT29_Enterprise_20260714-153045.md)— そのため、保存されたファイルは意味があり、シナリオ間で衝突しません。 |
| 新機能 | なぜ役立つのか |
| 新機能 | なぜ役立つのか |
|---|---|
| MITRE ATLASフレームワークサポート | - AI/ML脅威カバレッジ: AttackGenはMITRE ATLAS(AIシステム向け敵対的脅威ランドスケープ)フレームワークをサポートするようになり、AIおよび機械学習システムを標的とする脅威に対するインシデント対応シナリオの生成が可能になりました。 - ケーススタディベースのシナリオ: プロンプトインジェクション、モデル抽出、データポイズニングなどの攻撃をカバーする、14件の実際のインシデントと31件の研究演習を含む45件の文書化された実世界のAI攻撃ケーススタディに基づくシナリオを生成します。 - 147のATLASテクニック: AIモデルアクセス、AI攻撃ステージング、AIシステム向けに適応された従来の攻撃フェーズを含む16のAI固有戦術をカバーする完全なATLASテクニックライブラリにアクセスできます。 - AI固有テンプレート: 一般的なAI/ML攻撃用の6つの新しいカスタムシナリオテンプレート: モデル回避、データポイズニング、モデル抽出、プロンプトインジェクション、LLM脱獄、AIサプライチェーン攻撃。 |
| MITRE ATT&CKデータをv18.1に更新 | - 最新の脅威インテリジェンス: AttackGenはMITRE ATT&CK v18.1データを使用するようになり、生成されたシナリオが脅威アクターによって使用される最新の戦術、テクニック、手順を反映することを保証します。 - エンタープライズカバレッジの拡大: エンタープライズ脅威グループリストは150+グループから187グループに拡大し、新しく追跡されたアクターが含まれます。 - ICSカバレッジの拡大: ICS脅威グループリストは7グループから16グループに拡大し、産業用制御システムシナリオのカバレッジが向上しました。 |
| LLMモデルサポートの更新 | - OpenAI: GPT-5.2およびGPT-5.2 Proモデルを追加。非推奨のoシリーズ推論モデルを削除してモデルリストを合理化。 - Anthropic: Sonnet 4.5、Haiku 4.5、Opus 4.5を含むClaude 4.5ファミリーに更新。 - Google AI: Gemini 3 ProおよびFlashプレビューモデルを追加。Gemini 2.5オプションを更新。 - Groq: 高性能推論用にGPT-OSS 120Bおよび20Bモデルを追加。 - Mistral: 日付付きモデルバージョン(Large 2512、Medium 2508、Small 2506)に更新。Ministral 14Bを追加。 |
| バグ修正 | - Google AI応答処理の修正: 新しいGeminiモデルが返す構造化コンテンツ形式を処理するように応答解析を更新し、シナリオテキストが適切に抽出・表示されることを保証。 - ICSマトリックスエラーメッセージの修正: ICSマトリックス使用時に「Enterprise ATT&CK」ではなく「ICS ATT&CK」と正しく表示されるようエラーメッセージを修正。 - 空のテクニック処理の改善: 脅威グループに関連するテクニックがない場合のグレースフルな処理を追加し、二次エラーを防止。 |
| 新機能 | なぜ役立つのか |
|---|---|
| LangChain v1.0互換性 | - 破壊的なインポート変更の修正: 非推奨の langchain.prompts.chat から langchain_core.prompts へのすべてのインポートを更新し、LangChain v1.0との互換性を確保して ModuleNotFoundError の問題を防止。LangChainエコシステムの進化に伴う安定性を維持します。 |
| 包括的なセキュリティインフラストラクチャ | - 自動化されたセキュリティスキャン: Bandit(Pythonコード解析)、CodeQL(脆弱性検出)、pip-audit(依存関係スキャン)、Safety(既知の脆弱性)、Gitleaks(シークレット検出)、Trivy(Dockerイメージスキャン)を使用した継続的なセキュリティ監視のためのGitHub Actionsワークフローを導入。 - セキュリティベストプラクティスドキュメント: サポート対象バージョン、脆弱性報告、APIキー管理、データプライバシーに関する考慮事項、デプロイメントセキュリティガイダンスをカバーする包括的なSECURITY.mdを追加。 - READMEセキュリティセクションの拡張: APIキー保護、データプライバシーに関する考慮事項、責任あるデプロイメントプラクティスに関する明確なdo's and don'tsでセキュリティガイダンスを拡張。 |
| Dockerの改善 | - セキュリティ強化: 非rootユーザーとして実行するようにDockerfileを更新し、コンテナセキュリティ体制を改善。 - Docker Composeサポート: 合理化されたマルチサービスデプロイメントと簡単なローカル開発セットアップのためのdocker-compose.ymlを追加。 - ビルド最適化の改善: イメージサイズを削減し、機密ファイルがコンテナイメージに含まれないようにするための.dockerignoreを強化。 - 包括的な設定テンプレート: すべてのサポート対象APIキー(OpenAI、Anthropic、Azure、Google、Mistral、Groq)を含むように.env.exampleを更新し、初期セットアップを容易に。 |
| バグ修正 | - Ollama APIタイムアウト: ハング接続を防ぐためにOllama APIリクエストにタイムアウト設定を追加。 - Safety CLI更新: 非推奨の safety check コマンドから新しい safety scan コマンドに更新し、継続的なセキュリティスキャン機能を確保。- Bandit設定: より正確なPythonコード解析のためのBanditセキュリティスキャン設定を修正。 |
| 新機能 | なぜ役立つのか |
|---|---|
| OpenAI Responses API統合 | - 次世代API: AttackGenは現在、すべてのサポート対象モデルにOpenAIの最新Responses APIを使用し、統合された強化されたインターフェースを提供します。 |
| 最新フロンティアモデルサポート | - GPT-5統合: gpt-5、gpt-5-mini、gpt-5-nanoを含むOpenAIの最新GPT-5モデルシリーズのサポートを追加し、シナリオ生成のための最先端のAI機能へのアクセスを提供。 - Claude Sonnet 4.5: Anthropicの最新Claude Sonnet 4.5(claude-sonnet-4-5-20250929)モデルのサポートを追加し、Claude Opus 4.1(claude-opus-4-1-20250805)を含む更新されたClaudeモデルバージョンも追加。 |
| バグ修正と改善 | - Streamlit非推奨警告の修正: 非推奨の use_container_width パラメータを新しい width パラメータに置き換え、将来のStreamlitバージョンとの互換性を確保。- ドキュメント強化: 将来の開発作業のための包括的なガイダンスを含むようにCLAUDE.mdを更新し、詳細なアーキテクチャ情報を追加。 |
| 新機能 | なぜ役立つのか |
|---|---|
| モデルサポートの拡大 | - 最新のOpenAI推論モデル: AttackGenは現在、o4-mini(最新の推論モデル)、o3/o3-mini、o1-pro(強化された推論機能)を含むOpenAIの最新推論モデルをサポート。これらのモデルは、深い論理的思考を必要とする複雑なシナリオ生成に優れています。 - GPT-4.1シリーズ: GPT-4.1シリーズモデル(gpt-4.1、gpt-4.1-mini、gpt-4.1-nano)のサポートを追加し、コスト重視のユースケース向けの軽量な代替オプションとともに、一般的なAI機能の最新の改善を提供。 - Anthropic Claudeモデル: claude-opus-4-20250514、claude-sonnet-4-20250514、claude-3-7-sonnet-latest、claude-3-5-haiku-latestを含むAnthropicのClaudeモデルの包括的なサポートを追加。これらのモデルは、強力な推論機能を備えた詳細で文脈を認識したインシデント対応シナリオの生成に優れたパフォーマンスを提供します。 - Google AIモデルの更新: Gemini 2.0モデルに加えて最新のGemini 2.5プレビューモデル(gemini-2.5-flash-preview-05-20およびgemini-2.5-pro-preview-05-06)を含むようにGoogle AIモデル選択を更新し、GoogleのAI技術の最新の改善へのアクセスを提供。 - モデル構成の改善: 新しいモデルを優先するようにモデル選択ドロップダウンを再編成し、異なるモデルタイプと機能を明確に区別するように説明を更新。 |
| テクニック選択ロジックの強化 | - より堅牢なグループ処理: 空の脅威アクターグループがテクニック選択中にエラーを引き起こす可能性がある問題を修正。ツールは現在、空のDataFrameを返すことで空のグループを適切に処理し、限られた脅威アクターデータでも安定した動作を確保。 - フェーズ名の保持: 出力に「Phase Name」を適切に含めるようにテクニック選択プロセスを改善し、シナリオ生成プロセス全体を通じてキルチェーンフェーズ情報を維持。これにより、生成されたシナリオが各テクニックが攻撃のどのフェーズに属するかについて適切なコンテキストを維持することが保証されます。 |
| 開発環境の改善 | - 強化された.gitignore: venv に加えて .venv 仮想環境ディレクトリのサポートを追加し、さまざまな開発者の好みとPython環境管理ツールに対応。- コードクリーンアップ: シナリオ生成スクリプト全体で未使用のインポートを削除し、コードの保守性を改善して潜在的な混乱を削減。 |
| 新機能 | なぜ役立つのか |
|---|---|
| カスタムOpenAI互換APIエンドポイント | - 柔軟性の向上: AttackGenは現在、Anyscale、Together AI、またはセルフホストの互換APIなど、カスタムのOpenAI互換APIエンドポイントをサポート。この機能により、公式にサポートされているプロバイダーを超えたより広範なモデルとサービスを活用できます。 - セルフホスティングサポート: OpenAI互換モデルの自社デプロイメントを持つ組織は、AttackGenをこれらのエンドポイントに直接接続できるようになりました。 - モデル選択の制御: ユーザーは任意の互換サービスのベースURL、モデル名、APIキーを指定でき、シナリオ生成に使用されるモデルとエンドポイントをより細かく制御できます。 |
| モデル選択の更新 | - 最新モデルへのアクセス: OpenAIモデル選択に新しいGPT-4.1シリーズモデル(gpt-4.1、gpt-4.1-mini、gpt-4.1-nano)が含まれるようになり、コーディング、指示追従、長いコンテキストタスクでのパフォーマンスが向上。 - Geminiサポートの拡大: 最新のGemini 2.5 Pro Preview、2.0 Flash、2.0 Flash Liteモデルのサポートを追加。 |
| 新機能 | なぜ役立つのか |
|---|---|
| Groq API統合 | - パフォーマンスの向上: AttackGenは現在、Groqの高性能APIをサポートし、llama-3.3-70b-versatileやdeepseek-r1-distill-llama-70bなどのモデルへのアクセスを提供。この統合により、高品質なシナリオ生成を維持しながら高速な推論時間を実現します。 - モデル出力表示の改善: DeepSeekなど、出力とともに推論を提供するモデルの場合、AttackGenはこの推論を折りたたみ可能なエキスパンダーウィジェットに表示するようになりました。これにより、ユーザーは必要に応じてモデルの思考プロセスを表示しながら、メインのシナリオ出力をクリーンで焦点を絞った状態に保つことができます。 |
| OpenAIモデルサポートの更新 | - 最新モデル: AttackGenは現在、OpenAIの最新o3推論モデルとo1モデルのGA(一般提供)バージョンをサポートし、以前のプレビューバージョンを置き換え。これらの更新により、シナリオ生成のためのより安定した改善されたモデルへのアクセスが提供されます。 |
| 新機能 | なぜ役立つのか |
|---|---|
| OpenAIの新しい「推論」モデルのサポート | - シナリオ生成の強化: AttackGenは現在、OpenAIの新しい「推論」モデル(o1-previewおよびo1-mini)をサポートし、非常に詳細でニュアンスのあるインシデント対応シナリオの生成を可能にします。これらのモデルは、シナリオ作成における一貫性と深さの改善を提供します。 |
| MITRE ATT&CK ICSマトリックスサポート | - 範囲の拡大: AttackGenは現在、エンタープライズマトリックスに加えて、MITRE ATT&CK ICS(産業用制御システム)マトリックスを使用したインシデント対応テストシナリオの生成をサポート。これにより、ユーザーは産業および重要インフラストラクチャ環境に合わせたシナリオを作成できます。 |
| ATT&CKソースデータをv15.1に更新 | - 最新の脅威インテリジェンス: ツールは現在、最新のMITRE ATT&CKデータ(v15.1)を使用し、生成されたシナリオが脅威アクターによって使用される最新の既知の戦術、テクニック、手順を反映することを保証します。 |
| 脅威アクターグループデータの更新 | - 包括的なカバレッジ: グループデータは、Scattered Spiderなど、MITRE ATT&CKで追跡されている最新のグループを含むように更新されました。これにより、ユーザーは利用可能な最新の脅威アクター情報に基づいてシナリオを生成できます。 |
| .envファイルからのAPIキー/シークレットの読み込み | - セキュリティの強化: ユーザーはAPIキーやその他の機密情報を.envファイルに保存できるようになり、セキュリティが向上し、さまざまな環境間での認証情報の管理が容易になります。 |
| 新機能 | なぜ役立つのか |
|---|---|
| GPT-4o miniモデルサポート | - モデルオプションの拡大: AttackGenは現在、OpenAIのGPT-4o miniモデルの使用をサポート。GPT4-o miniは非常にコスト効率の高い小型モデルです。 |
| Google AI APIのモデル選択肢の更新 | - モデルオプションの拡大: AttackGenは現在、Gemini 1.5 Proの安定版とプレビュー版をサポート。 |
| 新機能 | なぜ役立つのか |
|---|---|
| GPT-4oモデルサポート | - モデルオプションの強化: AttackGenは現在、OpenAIのGPT-4oモデルの使用をサポート。GPT4-oはOpenAIの主要モデルであり、GPT-4の2倍の速度でシナリオを生成でき、コストは半分です。 |
| 新機能 | なぜ役立つのか |
| ----------- | ---------------- |
| AttackGen アシスタント | - 反復的なシナリオ改良: 新しいチャットインターフェースにより、ユーザーは生成されたインシデント対応シナリオと対話できるようになり、シナリオを最初から再生成することなく、簡単に更新や質問ができるようになりました。この機能により、AIアシスタントの応答に基づいてシナリオを改良・改善できる、反復的なシナリオ開発アプローチが可能になります。 - 文脈に応じた支援: AIアシスタントは、生成されたシナリオと会話履歴の文脈に基づいてユーザーの質問に応答します。これにより、アシスタントの応答がシナリオの改良において関連性が高く、役立つものになります。 |
| カスタムシナリオ用クイックスタートテンプレート | - クイックシナリオ生成: ユーザーは、フィッシング攻撃、ランサムウェア攻撃、マルウェア感染、内部関係者による脅威など、一般的なサイバーインシデントの種類向けの事前定義テンプレートに基づいて、カスタムインシデント対応シナリオをすばやく生成できるようになりました。この機能により、個々のATT&CKテクニックを選択しなくても、現実的なシナリオを簡単に作成できます。 - 合理化されたワークフロー: テンプレート選択は、カスタムシナリオ生成プロセスにシームレスに統合されています。ユーザーはテンプレートを選択すると、関連するATT&CKテクニックが自動的に入力され、必要に応じてシナリオをさらにカスタマイズできます。 |
| Google AI API 統合 | - モデルオプションの拡大: AttackGen は、インシデント対応シナリオの生成に Google の Gemini モデルの使用をサポートするようになりました。この統合により、ユーザーが利用できる高品質モデルの範囲が広がり、Google の AI 機能を活用して現実的で多様なシナリオを作成できるようになります。 |
| 新機能 | なぜ役立つのか |
|---|---|
| Mistral API 統合 | - 代替モデルプロバイダー: ユーザーは Mistral AI モデルを活用してインシデント対応シナリオを生成できるようになりました。この統合により、OpenAI および Azure OpenAI Service モデルの代替手段が提供され、ユーザーは特定のユースケースに合わせてさまざまな言語モデルのパフォーマンスを検討・比較できます。 |
| Ollama を使用したローカルモデルサポート | - ローカルモデルのホスティング: AttackGen は、Ollama との統合により、ローカルでホストされた LLM の使用をサポートするようになりました。この機能は、厳格なデータプライバシー要件を持つ組織や、データをオンプレミスに保持したい組織にとって特に役立ちます。この機能は、https://attackgen.streamlit.app でホストされている Streamlit Community Cloud 版の AttackGen ユーザーには利用できないことに注意してください。 |
| オプションの LangSmith 統合 | - 柔軟性の向上: LangSmith との統合はオプションになりました。LangChain API キーが提供されない場合、エラーがスローされるのではなく、実行が LangSmith によってログに記録されないことを示す情報メッセージがユーザーに表示されます。この変更により、全体的なユーザーエクスペリエンスが向上し、ユーザーは LangSmith を必要とせずに AttackGen を引き続き使用できます。 |
| さまざまなバグ修正と改善 | - ユーザーエクスペリエンスの向上: このリリースには、ユーザーインターフェースのいくつかのバグ修正と改善が含まれており、AttackGen をよりユーザーフレンドリーで堅牢なものにしています。 |
| 新機能 | なぜ役立つのか |
|---|---|
| Azure OpenAI Service 統合 | - 統合の強化: ユーザーは、標準の OpenAI API に加えて、Azure OpenAI Service にデプロイされた OpenAI モデルを利用できるようになりました。この統合により、確立された商用契約および機密保持契約を活用して、AttackGen を既存の Azure エcosystem に組み込むためのシームレスで安全なソリューションが提供されます。 - データセキュリティの向上: Azure から AttackGen を実行すると、アプリケーションの説明やその他のデータが Azure 環境内に留まるため、脅威モデルで機密データを扱う組織に最適です。 |
| Azure OpenAI Service 向け LangSmith | - デバッグの強化: LangSmith トレーシングが、Azure OpenAI Service を使用して生成されたシナリオで利用できるようになりました。この機能は、モデルのパフォーマンスのデバッグ、テスト、監視のための強力なツールを提供し、ユーザーがモデルの意思決定プロセスに関する洞察を得て、生成されたシナリオの潜在的な問題を特定できるようにします。 - ユーザーフィードバック: LangSmith は、Azure OpenAI Service を使用して生成されたシナリオの品質に関するユーザーフィードバックも取得し、モデルのパフォーマンスとユーザー満足度に関する貴重な洞察を提供します。 |
| OpenAI API のモデル選択 | - 柔軟なモデルオプション: ユーザーは、gpt-4-turbo-preview など、OpenAI API エンドポイントから利用可能な複数のモデルから選択できるようになりました。これにより、さまざまな言語モデルをより細かくカスタマイズして実験できるようになり、ユーザーは特定のユースケースに最も適したモデルを見つけることができます。 |
| Docker コンテナイメージ | - 簡単なデプロイ: AttackGen は Docker コンテナイメージとして利用できるようになり、一貫性のある再現可能な環境でアプリケーションを簡単にデプロイして実行できます。この機能は、コンテナ化された環境で AttackGen を実行したいユーザーや、クラウドプラットフォームにアプリケーションをデプロイしたいユーザーにとって特に役立ちます。 |
| 新機能 | なぜ役立つのか |
|---|---|
| ATT&CK テクニックに基づくカスタムシナリオ | - 成熟した組織向け: この機能は、組織が高度な脅威インテリジェンス機能を備えている場合に特に有益です。たとえば、新たに特定された、またはあまり知られていない脅威アクターグループを監視している場合、そのグループが使用するテクニックに固有のインシデント対応テストシナリオを調整できます。 - 焦点を絞ったテスト: あるいは、この機能を使用して、インシデント対応テストをサイバーキルチェーンの特定の部分や、「ラテラルムーブメント」や「データ流出」などの特定の MITRE ATT&CK 戦術に焦点を当てることもできます。これは、防御態勢の特定の領域を評価および改善したい組織にとって役立ちます。 |
| 生成されたシナリオに関するユーザーフィードバック | - フィードバックの収集は、時間の経過に伴うモデルのパフォーマンスを追跡するために不可欠であり、シナリオ生成タスクの長所と短所を浮き彫りにするのに役立ちます。 |
| 欠落した API キーに対するエラーハンドリングの改善 | - ユーザーエクスペリエンスの向上。 |
Streamlit の st.spinner ウィジェットを新しい st.status ウィジェットに置き換え | - 長時間実行されるプロセス(つまり、シナリオ生成)の可視性が向上します。 |
初期リリース。
MODELS| ----------- |
| ----------------- |
| AI内部関係者脅威シナリオ | - 新しいシナリオタイプ: 組織内に展開されたフロンティアAIエージェントが内部関係者の脅威として振る舞うインシデント対応机上演習を生成する専用ページを追加しました。これは、誤った調整、報酬ハッキング、創発的目的、またはプロンプトインジェクションによる侵害を通じて発生します。Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents の脅威モデルに基づいています。 - 展開アーキタイプ駆動: シナリオはエージェントの自律性レベル(L1 監視付きアシスタント → L4 完全自律型フリート)によって形成されます。これは、その脅威面と検出体制の主要な決定要因です。 - 5つの内部関係者脅威カテゴリ: 認証情報の侵害、サプライチェーン妨害行為、データ外部流出、インフラストラクチャ妨害行為、および欺瞞と回避 — それぞれが人間の動機ではなく、具体的なAIエージェントの顕在化にマッピングされています。 - AIエージェント向け23のSTRIDE脅威: フロンティアAIエージェント向けに適応された完全なSTRIDE分類法(スプーフィング、タンパリング、否認、情報開示、サービス拒否、権限昇格)を提供し、シナリオの範囲を絞り込むためにオプションで使用できます。 - NIST CSF準拠の制御策: 生成されたシナリオには、NISTサイバーセキュリティフレームワーク(特定、防御、検知、対応、復旧)にマッピングされた優先順位付けされた緩和策が含まれます。 - プロバイダー同等性: AttackGenの他の部分と同じプロバイダーセットをサポートし、オプションのLangSmithトレーシングも利用できます。 |
| LiteLLM移行とプロバイダー統合 | - 統合LLMラッパー: すべてのプロバイダー統合は、LiteLLM を使用する単一の core/llm.py ラッパーを通じて行われるようになりました。新しいモデルの追加は core/models.py の MODELS リストへの1行の編集で済み、プロバイダーの追加は単一の ProviderInfo エントリで済みます。stride-gpt で使用されているパターンを反映しています。- 大幅なコード削減: 4つのページにわたる重複したプロバイダー別分岐の約3,800行を削除しました(ページごとに約1,000行の if model_provider == ... ブロックと8つのほぼ同一のラッパー関数)。各ページは現在、プレーンなメッセージdictを構築し、call_llm(config, messages) を呼び出すだけです。- レジストリ駆動のサイドバー: Welcomeサイドバーはプロバイダーレジストリから生成されるようになり、手書きの8つのプロバイダーブロックが1つのループに置き換えられました。 - 更新されたモデルリスト: 最新モデルに更新 — OpenAI GPT-5.5 / 5.4 ファミリー、Anthropic Claude 4.6 / 4.7 / 4.8、Google Gemini 3.x プレビュー、Mistral Large 3 / Magistral、Groq GPT-OSS および Qwen3。 - プロバイダー統合: 個別のAzure OpenAI ServiceとOllamaエントリを、単一の カスタム(OpenAI互換) オプションに置き換えました。Azureデプロイメント、Ollama( http://localhost:11434/v1)、LM Studio(http://localhost:1234/v1)、OpenRouter、およびセルフホストエンドポイントはすべてこの1つのパスで動作します。- 依存関係の縮小: langchain、langchain-anthropic、langchain-core、langchain-community、langchain-google-genai、langchain-mistralai、langchain-openai、anthropic パッケージを削除し、単一の litellm>=1.40 依存関係に置き換えました。langsmith はオプションのトレーシング用に保持されています。- LangSmithトレーシングの維持: @traceable デコレータとフィードバックウィジェットは引き続き透過的に機能します。core/llm.py は、LangSmithクライアントが利用可能な場合に call_llm を @traceable でラップします。 |
| Dockerイメージセキュリティ更新 | - ベースイメージの更新: python:3.12-slim ダイジェストを更新し、Trivyコードスキャンでフラグが立てられた古いOSレイヤーのCVEを解消し、公開コンテナイメージに対するオープンアラート数を削減しました。- pip CVE-2025-8869修正: 要件のインストール前に pip がアップグレードされるようになり、パッケージ抽出中のシンボリックリンクチェック欠落の修正が適用されます。 |
| ストリーミングLLM出力 | - トークン単位の生成: シナリオとAttackGenアシスタントチャットは、完全な応答を待ってブロックするのではなく、トークンが到着するたびにストリーミングされるようになり、長い生成でも応答性が感じられ、モデルが書きながら読み進めることができます。 - オプトインストリーミングAPI: 統合LiteLLMラッパーに call_llm と並んで call_llm_stream を追加し、呼び出し側が契約の他の部分を変更せずにストリーミングするかどうかを選択できるようにしました。- クリーンな推論処理: ステートフルな stream_filter_thinking ヘルパーがライブビューで <think>...</think> 領域を抑制し、ストリーム後の clean_model_response が完全な生テキストから推論エキスパンダーへの入力を継続します。 |
| AI強化敵対者トグル | - 新しいページ別トグル: 脅威グループページとカスタムシナリオページに「AI強化敵対者」トグルを追加しました。これにより、敵対者がAIを使用して同じキルチェーンを加速・強化するように生成シナリオが再構成されます — スキルの敷居の低下、タイムラインの圧縮、自律オーケストレーション、並列スケール — 新しいテクニックを導入するのではありません。 - Anthropicの研究に基づく: AnthropicのLLM ATT&CK Navigator 研究に基づいています。この研究では、実際のサイバー脅威における最も重要な変化は、新しいテクニックではなく既存テクニックの加速とオーケストレーションであることが判明しました。 - トレース可視性: LangSmithで ai_enhanced タグが付いたシナリオをタグ付けし、AI強化された生成をフィルタリングしてベースライン実行と比較できるようにしました。- AI内部関係者脅威ページでは意図的にスキップ: そのページの脅威アクターはすでにフロンティアAIエージェントであるため、「AI強化」フレーミングは冗長になります。 |
| バグ修正と改善 | - このリリースには、シナリオページとサイドバーにわたるいくつかの小さなUIポリッシュとレンダリング修正が含まれています。 |