MakerChecker: AI Agent 的開源安全閘道與靜態掃描器

MakerChecker: AI Agent 的開源安全閘道與靜態掃描器

MakerChecker 是一個開源安全框架,旨在防止 AI agent 執行未經授權或危險的動作。它實作了「預設拒絕」(deny-by-default) 的安全策略,確保 agent 僅能執行已被明確授予的工具與技能,同時為每個決策提供具備防篡改能力的稽核軌跡。

使用 mc scan 進行靜態風險掃描

MakerChecker 包含一個靜態分析工具 mc scan,用於識別 agent 程式碼庫中潛在的危險能力。該掃描器會標記具有重大影響的動作——例如刪除數據、轉帳、執行 shell 命令或外洩機密——並根據風險等級進行分類。

掃描器的主要功能包括:

  • 本地執行:掃描完全在本地機器上運行;數據不會離開環境。
  • 自動化治理:該工具可以使用 --fix 旗標自動生成治理代碼,以減輕已識別的風險。
  • 多語言支持:它支持使用 Python、JavaScript 和 TypeScript 編寫的代碼。

執行時強制執行與治理

MakerChecker 提供了一個嵌入式函式庫 (@makerchecker/embedded) 和一個中央伺服器,用於在呼叫工具的瞬間強制執行基於角色的存取控制 (RBAC)。這可以防止 agent 超過其被授予的限制或自行批准自己的工作。

基於角色的存取控制 (RBAC)

系統定義了「技能」(skills)(特定動作)和「角色」(roles)(權限集)。agent 被分配一個角色,而工具會被封裝在治理層中,用以檢查 agent 的角色是否擁有所需的技能。如果技能未被授予,系統會在工具執行前拋出 GovernanceDeniedError

人機協作 (HITL) 批准

對於高風險技能,MakerChecker 強制執行職責分離。agent 可以請求執行高風險動作,但該動作會保持在門檻狀態,直到另一個獨立的人類「官員」(officer) 角色簽署該請求。系統在結構上防止了請求者自行擔任批准者。

可驗證的稽核軌跡

為了滿足監管與稽核要求,MakerChecker 會生成經加密簽署且具備雜湊鏈 (hash-chained) 的稽核日誌。

  • 防篡改性:每個事件都是對該事件的 RFC 8785 canonical JSON 的 SHA-256 雜湊,並鏈接到前一個事件的雜湊。任何對單一行的修改都會破壞驗證鏈。
  • 離線驗證:稽核數據包可以匯出並使用 npx @makerchecker/proof-verifier 工具進行離線驗證,從而無需信任產生日誌的過程。
  • 加密簽署:所有決策都經過 Ed25519 簽署。

整合與架構

MakerChecker 的設計是框架無關的,並透過專用連接器與現有的 AI agent 技術棧整合:

  • 框架連接器:為 LangChain 和 Claude Agent SDK 提供官方連接器。
  • SDKs:提供完整的 TypeScript 和 Python SDK 用於自定義整合。
  • 部署選項:用戶可以選擇使用 @makerchecker/embedded 函式庫進行本地強制執行,或使用自行託管的伺服器(透過 Docker Compose 部署)進行中央授權、人類批准收件箱以及審查控制台。

套件生態系統

| Package | License | Purpose | | :--- | :--- | :--- | :--- | | packages/scan | Apache-2.0 | 靜態風險掃描與分類 | | packages/embedded | Apache-2.0 | 執行時治理原語 | | packages/proof-verifier | Apache-2.0 | 離線稽核數據包驗證 | | packages/sdk / sdk-python | Apache-2.0 | 用於伺服器整合的客戶端函式庫 | | packages/connector-langchain | Apache-2.0 | LangChain 工具治理 | | packages/connector-claude-agent | Apache-2.0 | Claude Agent SDK 治理 | | packages/server | AGPL-3.0 | 中央閘道與流程引擎 | | packages/web | AGPL-3.0 | 批准收件箱與審查控制台 |

社群觀點

雖然 MakerChecker 解決了執行時護欄的需求,但一些開發者對是否有必要建立獨立的 AI 安全框架提出了質疑。一位 Hacker News 的評論者建議,傳統的操作系統權限(sysadmin 角色與文件級存取控制)可以處理許多這類需求,而無需使用專門的「附加式」(bolt-on) AI 安全工具。

另一種觀點強調了 AI 開發的週期性,指出產業最初擁有基於權限的 agent,但為了追求速度而轉向了無限制的自主性,而現在正因為對這些風險的反應,而重新回歸到實施防護措施的實踐中。

Sources