Sigil · sigil-mcp · リスク検出デモ

わざと危険にした AI エージェント設定を、
Sigil が一発で見抜く

新しいディレクトリに、意図的に危険な Claude Code と Codex の設定を置きました。Sigil の AI Guard はそれぞれを解析し、リスク要因を挙げて critical と判定します。下のスコアと理由は、すべて実際のパーサ出力です(モックなし)。

sigil-mcp が危険な Claude Code / Codex 設定をライブで検出するデモ
sigil-mcp 経由でライブのフリートを照会 — ホスト dev-mbp-01critical、ツール別に理由が並ぶ。

01セットアップ

新しいワークスペースに2つの「リポジトリ」を作り、それぞれに危険な設定ファイルを置いた。Sigil エージェントの per-repo discovery がこれを発見してスコアリングする。

demo/risky-workspace/
├── claude-proj/.claude/settings.json   ← 危険な Claude Code 設定
└── codex-proj/.codex/config.toml       ← 危険な Codex 設定

02Claude Code — CRITICAL 10.0

置いた設定 claude-proj/.claude/settings.json

{
  "hooks": {
    "PreToolUse": [
      { "matcher": "*",  "hooks": [{ "type": "command", "command": "rm -rf /tmp/sigil-demo/*" }] },
      { "matcher": ".*", "hooks": [{ "type": "command", "command": "/usr/local/bin/deploy-hook.sh" }] }
    ]
  },
  "permissions": { "allow": ["Bash:.*", "*:*"] },
  "mcpServers": { "shadow-mcp": { "url": "https://mcp.unknown-vendor.example/sse" } }
}

Sigil が検出した理由(9件):

理由 (reason)意味
no_sandboxサンドボックスなし — フックがホストシェルで直接実行される
broad_matcher ×2マッチャーが広すぎる(*.* は全ツール呼び出しに発火)
destructive_in_inline_commandフックに破壊的コマンド(rm -rf …
external_script_unscanned未スキャンの外部スクリプト(リポジトリ外の /usr/local/bin/deploy-hook.sh を呼ぶ)
permissions_deny_emptypermissions.deny が空(拒否リストなし)
permissions_allow_broad ×2allow が広すぎる(*:* / Bash:.*
mcp_server_remoteリモート MCP サーバ(外部 https:// の MCP を許可)

03Codex — CRITICAL 9.5

置いた設定 codex-proj/.codex/config.toml

sandbox_mode = "danger-full-access"

[[hooks.PreToolUse]]
matcher = "Bash"

[[hooks.PreToolUse.hooks]]
type = "command"
command = "rm -rf /tmp/sigil-demo/*"

[[hooks.PreToolUse.hooks]]
type = "command"
command = "/opt/codex/deploy.sh"

[mcp_servers.shadow]
url = "https://mcp.unknown-vendor.example/sse"

Sigil が検出した理由(4件):

理由 (reason)意味
sandbox_disabledサンドボックス無効(danger-full-access = 全アクセス許可)
destructive_in_inline_commandフックに破壊的コマンド(rm -rf …
external_script_unscanned未スキャンの外部スクリプト(/opt/codex/deploy.sh
mcp_server_remoteリモート MCP サーバ(外部 https:// の MCP)

04そして Claude に聞く

同じデータは sigil-fleet(MCP)として Claude にも見えている。ダッシュボードを読む代わりに、こう尋ねるだけ:

dev-mbp-01 がなぜ critical なのか、Claude Code と Codex それぞれの理由を説明して、
優先的に直すべき設定を3つ挙げて

Claude は fleet_riskget_host を呼び、上の理由を読み解き、「まず danger-full-access をやめ、permissions.deny を設定し、ワイルドカードのフックマッチャーを絞る」といった具体的な対応を提案する。

これらの設定は実在の Claude Code / Codex のスキーマに沿った 本物の危険設定で、スコアと理由は Sigil の AI Guard パーサがそのまま出した結果です。Sigil は計測するだけ — ブロックや書き換えはせず、判断は運用者(または Claude の助言を受けた人)に委ねます。
Sigil · AI-Native Detection Engine for Device Assurance · github.com/Ju571nK/sigil · Apache-2.0(mechanism)