
Web、RSS、ドキュメントの各ソースを取り込み、引用検証済みの主張を抽出し、敵対者プロファイルをMITRE ATT&CKにマッピングしてSTIXおよびSigma形式でエクスポートする、ローカルAI支援型の脅威インテリジェンスパイプライン。
パープルチーム向けのAI駆動型敵対者インテリジェンス。
Argusは、ウェブ、あなたのRSSフィード、および提供されたドキュメントにまたがる脅威を調査し、LLMを用いて引用に裏付けられた主張を抽出し、それらをMITRE ATT&CKにマッピングされた信頼度スコア付きの評価へと統合し、すべてのステップを人間がレビューできるようにします。完全にあなた自身のマシン上で動作します。
パイプラインはドキュメントごとに1回実行され、アトミックな主張とその背後にある逐語的な引用、およびステージごとの監査行を書き込みます。Validatorはすべての引用をテキストに対して検証し、エンティティをローカルストアとATT&CKカタログに対して解決し、ソースをまたいだ主張をUIが描画する評価へと統合します。モデルに触れるのはTriage、Analyst、およびサマリーライターのみであり、Validatorはプレーンなコードです。
ArgusはWeb UIをビルド済みで同梱しているため、インストールには**Python 3.12+**のみが必要です(Nodeもビルドステップも不要)。WindowsとLinuxで動作し、まだPyPIには公開されていないため、リポジトリまたはリリースのwheelからインストールしてください。
# from a clone of the repository
git clone https://github.com/Cyllex-Framework/Cyllex-Argus.git
cd Cyllex-Argus
python3 -m venv .venv
. .venv/bin/activate # Windows PowerShell: .venv\Scripts\Activate.ps1
pip install .
# ...or straight from GitHub, without cloning
pip install "git+https://github.com/Cyllex-Framework/Cyllex-Argus.git"
いずれの方法でも argus コマンドが PATH に追加されます。Argus 自体の開発に携わる方は、代わりに uv を利用できます(uv sync)。詳細は開発ページを参照してください。
argus init # creates ~/.cyllex-argus/
argus attack update # downloads the MITRE ATT&CK Enterprise bundle
export ANTHROPIC_API_KEY='sk-ant-...' # or the Claude Code CLI / Ollama; see Choosing a model below
argus investigate "Scattered Spider" --max-docs 10
argus serve # web UI at the printed URL
初回起動時、argus attack update をスキップした場合、argus serve は ATT&CK カタログ自体をダウンロードします(約1分)。最初の調査はその完了を待つため、ATT&CK が読み込まれる前に調査が実行されることはありません。
UI は http://127.0.0.1:8765 で開き、初期状態では admin / Argus123 でログインします。
Argus をネットワーク上に公開する前にこれを変更してください(argus set-admin-password '...'、またはディスクに一切書き込まれない ARGUS_ADMIN_PASSWORD 環境変数を使用)。LAN からのクライアントを受け入れるには argus serve --host 0.0.0.0 を渡します。
Argus のコンテンツパイプライン(Triage、Analyst、Validator、要約)は4つのプロバイダーのいずれかで動作します。
Settings → LLM provider で選択するか、~/.cyllex-argus/argus.toml の [llm] を編集してください:
| プロバイダー | 必要条件 | モデル(デフォルト) | Web 検索 |
|---|---|---|---|
claude-code-cli | Claude Pro/Max + ログイン済みの claude CLI | サブスクリプションにより制御 | あり(組み込み) |
anthropic-api | ANTHROPIC_API_KEY(bring-your-own-key) | claude-sonnet-5-5 | なし、Search プロバイダーとして claude-code-cli と組み合わせる |
openai-api | OPENAI_API_KEY | gpt-4o | なし |
ollama | Ollama の実行 + モデルのプル | qwen2.5:32b-instruct | なし |
テスト済みの内容。 開発および日常的なテストは主に Claude (
claude-code-cliとanthropic-api)およびローカルの Ollama で行われました。プロンプトは Claude に合わせて調整されています。OpenAI の経路は動作し、その出力はスキーマで強制されますが、実績が少なく、 プロンプトが再調整されるまでは抽出される主張が少なくなる可能性があります。
# Preferred: env wins over anything stored in argus.toml, and never touches disk
export ANTHROPIC_API_KEY='sk-ant-...'
# or:
export OPENAI_API_KEY='sk-...'
argus serve
または、Settings → LLM provider → API key にキーを貼り付けます。UI はそれを
[llm.anthropic] api_key / [llm.openai] api_key の下に保存し、再読み込み時にはマスク表示(••••••••)するため、
平文で再レンダリングされることはありません。環境変数が常に優先されるため、export によるローテーションは
ファイル編集なしで機能します。
プロバイダーページでは、デフォルトの model(例: より安価な Triage には gpt-4o-mini、
深い Analyst 実行には claude-opus-5-5)と base_url(OpenRouter、LocalAI、LiteLLM のような
OpenAI 互換プロキシに便利。OpenAI アダプターは Chat Completions / Structured
Outputs の契約に準拠しており、それを実装する任意のサーバーに対して動作します)をオーバーライドできます。ここで設定した model は
すべての エージェントに対して各プロバイダーのデフォルトをオーバーライドするため、有効な間はページに
ワンクリックの Clear 付きバナーが表示されます。
各 API キープロバイダーには Test connection ボタンがあり、設定された認証情報で GET /v1/models を呼び出し、
サーバーが一覧する内容を報告します。これによりキー、ベース URL、および(モデル ID が入力されている場合は)
そのモデルがアカウント上に表示されるかどうかが検証されます。
Anthropic: 組織またはユーザースコープのキー(
sk-ant-usr-...)は、ワークスペーススコープでない限り/v1/modelsで HTTP 400 を返します。有効だと分かっているキーで Test connection が 400 を返す場合は、 それをワークスペースキーとして再発行してください。これが(キーの誤りではなく)通常の原因です。
パイプラインは 3 つ の LLM ベースのエージェントを実行します。yes/no エージェントには安価なモデルを、 抽出には高性能なモデルを、同じプロバイダーからでも異なるプロバイダーからでも選択できます (Settings → LLM provider → Per-agent model overrides):
| エージェント | 役割 | ボリューム | 推奨 |
|---|---|---|---|
triage | このドキュメントは脅威に関するものか?(yes/no) | ドキュメントごとに 1 回の呼び出し | gpt-4o-mini、claude-haiku-4-5、安価なモデルは二値判定をうまくこなす |
analyst | 逐語的な引用付きで主張を抽出 | ドキュメントごとに 1〜12 回の呼び出し(チャンク) | 高性能なもの: claude-sonnet-5-5、gpt-4o、claude-opus-5-5 |
summary | プロファイルのエグゼクティブサマリー | エクスポートごとに 1 回の呼び出し | 中程度 |
Use base provider のままにしたスロットはメインの [llm] ブロックを継承するため、オーバーライドを
望まない場合はコストがかかりません。典型的なコスト削減の分担:
# ~/.cyllex-argus/argus.toml
[llm]
provider = "anthropic-api" # base: Analyst runs here on claude-sonnet-5-5
[llm.agents.triage]
provider = "openai-api" # cheap/fast; env OPENAI_API_KEY must also be set
model = "gpt-4o-mini"
Validatorは純粋なコード(引用検証+ルールベースのスコアリング、LLM不使用)であるため、ここには決して登場しません。
Web検索はSearchプロバイダーとしてclaude-code-cliを経由するため、組み合わせが可能です。たとえば、
ローカルのOllamaコンテンツモデルと、発見のためだけにClaudeを使う、といった構成です。
claude-code-cliにのみ接続されています。コンテンツプロバイダーが
anthropic-api / openai-api / ollamaであっても、Searchプロバイダーとしてこれを選択するか、
SearchをDisabledに設定してRSS+ローカル取り込みのみに頼ってください。完全なリファレンスは**docs/**にあります: