前一篇文章介紹了可以控制「什麼都能操作」的 AI 代理的 AIGIS。
https://qiita.com/sharu389no/items/ede7d1c0be4a14024857
這次是接著前一篇,實作篇:安裝 AIGIS 之後,要如何依照你的環境去做設定!
工程師:「我想導入 Claude Code」
資訊部門:「AI 會不會把公司內部的程式碼偷偷送到外部?」
工程師:「……應該沒問題吧」
資訊部門:「『應該』不行。駁回。」
資訊部門並不是在刁難人,他們真正需要的是以下 4 點:
只要有一個基礎設施能把「AI 的操作全部攤開、加以控制、並完整記錄」,就能同時滿足這 4 點。
PyPI 上的套件名稱是 pyaigis(CLI 是 aigis)。
pip install pyaigis
aigis init --agent claude-code
這樣一來,以下內容就會自動放到 Claude Code 專案根目錄下:
aigis-policy.yaml — 預設安全規則(立即套用).claude/hooks/aigis-guard.py — Claude Code 的 pre-tool-use hook,攔截所有工具呼叫.aigis/logs/ — JSON Lines 格式的本機操作紀錄.claude/hooks/ 是 Claude Code 官方的 hook 機制,所以不會再包一層特殊 wrapper。可以在不改變 Claude Code 行為的前提下,只額外加上監控層。
rm -rf / 為例導入 hook 之後,行為會像這樣:
Claude Code 「我要用 Bash 執行 rm -rf /」
↓ (pre-tool-use hook)
Aigis Guard 「policy: dangerous_commands 命中 → deny」
↓
Claude Code 「已被阻擋。請考慮其他方法。」
本機紀錄會留下如下的 JSON Lines:
{
"timestamp": "2026-05-15T15:30:00Z",
"user_id": "tanaka",
"agent_type": "claude_code",
"action": "shell:exec",
"target": "rm -rf /",
"risk_score": 90,
"risk_level": "CRITICAL",
"policy_decision": "deny",
"policy_rule_id": "dangerous_commands",
"reasons": ["Recursive root deletion"]
}
決策是落在「deny / review / allow」哪一種,以及為什麼會這樣判定,都有結構化地記錄下來。可以直接貼到 Excel,也可以用 grep 搜尋。
aigis init --agent claude-code 之後,aigis-policy.yaml 內預設會生效的規則節錄如下:
操作預設判定偵測到的攻擊面rm -rf *block遞迴刪除.env 寫入block保護機密資訊.ssh/ 存取block保護 SSH 金鑰git push --forceblock防止歷史記錄破壞curl ... | bashblock遠端程式碼執行sudoreview權限提升需人工核准git pushreviewpush 需人工核准建立子代理review代理委派需人工核准產生硬編碼 API keyblockdev_hardcode_secret生成惡意程式碼blockdev_malware_gen這些全部都是在 aigis-policy.yaml 裡可讀的正規表示式/DSL 規則,不是黑箱。
如果你想加上自訂規則,直接寫 YAML 就可以。
rules:
- id: protect_production
action: "shell:exec"
target: "*production*"
decision: deny
reason: "禁止對正式環境進行操作"
- id: protect_customer_data
action: "file:read"
target: "*customer*"
decision: review
reason: "存取客戶資料需要審核"
這一類編輯要怎麼做,就去問 Claude code 吧♡ 「我要修改 AIGIS 的政策」
導入後,拿來做公司內部核准說明時,只要展示以下 3 個成果物就夠了。
# (a) 治理狀態快照
aigis status
# (b) 操作紀錄(僅警示)
aigis logs --alerts
# (c) 合規報告(30 天)
aigis report --days 30
aigis status 的輸出範例:
Aigis - Governance Status
==================================================
Policy: developer_tools.yaml (v1.0.21)
Rules: {N} (deny={D}, review={R})
Activity (last 7 days):
Total events: 342
Blocked: 8
Review queued: 3
Compliance (JP): 39/39 requirements mapped
OpenSSF Scorecard: passing
※ 規則數量 N 會依照所套用的政策(
developer_tools.yaml/internal_tools.yaml/finance.yaml等 9 種樣板可選)以及公司自訂新增的部分而變動。
用 aigis monitor --owasp 還可以輸出 OWASP LLM Top 10 的評分卡。
OWASP LLM Top 10 Scorecard
LLM01 Prompt Injection ACTIVE 118 detections
LLM02 Insecure Output Handling ACTIVE 36 detections
LLM05 Supply-Chain ACTIVE 17 detections
LLM06 Sensitive Info Disclosure ACTIVE 45 detections
LLM07 Insecure Plugin Design ACTIVE 12 detections
...
本文的主張是:你可以帶著實測數據去跟資訊部門溝通。不是只說「我們有做防護」,而是可以直接回答「最近 7 天我們擋下了 8 次」。
AIGIS 內建 44 個合規樣板/各國合計 39 項日本法規要求對應。日本部分的內涵如下(來自 aigis/compliance.py 的實作值)。
規制要件マッピング数AI 事業者ガイドライン v1.2(2026-03 改訂)25總務省 AI セキュリティ技術ガイドライン6AI 推進法(2025-09 施行)3個人情報保護法 / マイナンバー法3不正競争防止法1著作権法1合計**39**```
aigis report --days 30
這裡重要的不是「是否 100% 涵蓋」,而是**有一份看得懂的 YAML 樣板在手上,而且不足的部分可以由公司自行補上**。就算資訊部門說「我們公司還有自己的 XX 規程」,也只要以 `policy_templates/` 為起點,再加一個自訂樣板檔案就能對應。
自訂樣板怎麼做,等這篇文章公開後我再來試著寫看看!
---
[](#6-%E3%81%9F%E3%81%A3%E3%81%9F%E3%81%8F%E5%88%A5%E3%81%AE%E5%B1%A4%E3%81%AE%E9%98%B2%E5%BE%A1--ai-%E7%89%B9%E6%9C%89%E3%81%AE%E6%94%BB%E6%92%83%E3%81%AB%E5%8A%B9%E3%81%8F%E3%81%AE%E3%81%AF%E5%88%A5%E3%81%AE%E5%B1%A4)6. 再往下一層的防禦 — 對 AI 特有攻擊有效的是另一層
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
到目前為止介紹的,是「命令執行層級」的控制。AIGIS 的核心其實在更下一層,位於 **prompt / output / memory / MCP tools 定義** 這些層面。代表性的攻擊面如下:
- **提示詞注入** — `Ignore all previous instructions...` 這類的指令劫持
- **MCP rug-pull / shadowing** — 原本已核准的 MCP 工具,之後被偷偷改了定義,變成惡意行為
- **記憶汙染** — 在長期記憶中植入模仿系統聲音的假記憶,導引後續 session
- **LLM-as-Judge 攻擊** — 欺騙評測器,強迫給出通過判定(AdvJudge-Zero / Palo Alto Unit 42, 2026)
AIGIS 透過基於 **2025–2026 年 7 篇論文(Mirror / StruQ / MI9 / MemoryGraft / MSB / DataFilter / AdvJudge-Zero)** 的偵測器來涵蓋這些攻擊。細節可參考 GitHub README 的對照表。
**1,002 筆測試全部通過、偵測率 98.9%、誤判率 0% 都會在 CI 中持續測量**。也已登錄到 OpenSSF Scorecard / OpenSSF Best Practices。
這一段比較細節化,大家把它當作讓資訊部門更有說服力的其中一個點來理解就好!
---
[](#%E3%81%BE%E3%81%A8%E3%82%81--%E6%9C%80%E7%9F%AD%E7%B5%8C%E8%B7%AF)總結 — 最短路徑
--------------------------------------------------------------------------------
要做的事指令安裝`pip install pyaigis`初始化`aigis init --agent claude-code`狀態確認`aigis status`警示紀錄`aigis logs --alerts`法規報告`aigis report --days 30`體驗遊戲[Gandalf Challenge](https://aigis-mauve.vercel.app/challenge)「想把 AI 工具導入工作流程,但一直被駁回」這種狀況,只要用一套基礎設施把技術對策的 **可視化、控制、稽核、法規對應** 四件事做好,就能突破。與其先花幾百萬買商用工具,不如先用 30 秒就能跑起來的 OSS,實際取得「我們現場到底擋下了哪些事件」的數據。
- [GitHub: killertcell428/aigis](https://github.com/killertcell428/aigis) — 如果願意按 ⭐,下一個偵測器會更快完成
- 在 GitHub 的 **Watch → Custom → Releases only**,就只會在有新的攻擊類型支援版本時收到 Slack/Email 通知
- [PyPI: pyaigis](https://pypi.org/project/pyaigis/)
- [Gandalf Challenge(可實際體驗提示詞注入的遊戲)](https://aigis-mauve.vercel.app/challenge)
歡迎在 GitHub Issues,或這篇文章留言提出問題/勘誤。
---
原文出處:https://qiita.com/sharu389no/items/ab5bf50d9f68e7c8de56