MakerChecker: AI Agent 开源安全网关与静态风险扫描器

MakerChecker: AI Agent 开源安全网关与静态扫描器

MakerChecker 是一个开源安全框架,旨在防止 AI agent 执行未经授权或危险的操作。它实现了“默认拒绝”的安全策略,确保 agent 只能执行已被明确授予的工具和技能,同时为每一个决策提供防篡改的审计追踪。

使用 mc scan 进行静态风险扫描

MakerChecker 包含一个静态分析工具 mc scan,用于识别 agent 代码库中潜在的危险能力。该扫描器会标记具有后果性的操作——例如删除数据、转账、运行 shell 命令或泄露机密——并按风险等级对其进行分类。

扫描器的主要功能包括:

  • 本地执行:扫描完全在本地机器上运行;数据不会离开环境。
  • 自动化治理:该工具可以使用 --fix 标志自动生成治理代码,以减轻已识别的风险。
  • 多语言支持:支持使用 Python、JavaScript 和 TypeScript 编写的代码。

运行时强制执行与治理

MakerChecker 提供了一个嵌入式库 (@makerchecker/embedded) 和一个中心化服务器,用于在调用工具时强制执行基于角色的访问控制 (RBAC)。这可以防止 agent 超出其被授予的限制或自行批准自己的工作。

基于角色的访问控制 (RBAC)

系统定义了“技能” (specific actions) 和“角色” (sets of permissions)。agent 被分配一个角色,而工具被封装在治理层中,用于检查 agent 的角色是否拥有所需的技能。如果技能未被授予,系统会在工具执行前抛出 GovernanceDeniedError

人机回环 (HITL) 审批

对于高风险技能,MakerChecker 强制执行职责分离。agent 可以请求执行高风险操作,但该操作会被拦截,直到单独的人类“官员” (officer) 角色签署该请求。系统在结构上防止了请求者兼任审批者的行为。

可验证的审计追踪

为了满足监管和审计要求,MakerChecker 生成经过加密签名且哈希链化的审计日志。

  • 防篡改性:每个事件都是对该事件的 RFC 8785 标准 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 角色和文件级访问控制)可以处理许多此类需求,而无需专门的“插件式” AI 安全工具。

另一种观点强调了 AI 开发的周期性本质,指出行业最初拥有基于权限的 agent,但为了追求速度而转向了无限制的自主性,而现在正因为这些风险而回归到实施安全保障措施的做法中。

Sources