agentseal
AI Agent 安全工具包:扫描 Skill/MCP 配置投毒、测试提示注入抵抗力、审计实时 MC
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI Agent 安全工具包:扫描 Skill/MCP 配置投毒、测试提示注入抵抗力、审计实时 MC
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
适用读者:本报告面向 AI 技术爱好者和安全研究人员,深入剖析 AgentSeal 这款开源 AI Agent 安全工具的原理、功能与行业意义。
想象这样一个场景:你让 Cursor AI 帮你审查一份代码,但它在后台悄悄把项目密钥发送到了外部服务器。这不是科幻情节——这正是 MCP 工具投毒(Tool Poisoning) 和 提示注入(Prompt Injection) 所带来的真实威胁。
2024年11月,Anthropic 推出 MCP(Model Context Protocol)开放标准,让 AI Agent 能够连接文件系统、数据库、Slack 等外部工具。便捷性的背后,一个致命漏洞随之浮现:MCP 服务器返回的工具描述中,可以隐藏恶意指令,而 AI Agent 会不加甄别地执行。 安全研究员 Simon Willison 最早在博客中演示了这一攻击链——只需在 MCP 服务器的返回值中嵌入一条隐藏指令,AI 就会在用户毫无察觉的情况下泄露凭证。
AgentSeal 正是为解决这一类威胁而生的安全工具包。它由安全研究员发起,通过开源社区协作不断壮大,目前支持 28 种主流 AI Agent(Claude Code、Cursor、Windsurf、VS Code 等),积累了 291 Stars,成为 AI 安全领域增长最快的开源项目之一。
AgentSeal 是一个专为 AI Agent 设计的安全工具包,核心目标是帮助开发者和安全团队:扫描本地机器上是否存在危险的 Skill 文件和被投毒的 MCP 配置、持续监控供应链攻击、自动化测试 AI Agent 的提示注入抵抗力、实时审计 MCP 服务器工具描述中的投毒内容。
与传统的网络安全扫描器不同,AgentSeal 的攻击面完全聚焦于 AI Agent 特有的威胁向量——提示词攻击、数据流向污染和 MCP 协议漏洞。项目采用 Python(CLI 工具)+ TypeScript(npm 包)双实现,兼顾自动化脚本和前端项目集成场景。
agentseal guard 是项目的核心命令,无需任何 API key,完全离线运行——这对注重数据隐私的企业用户尤为重要。它会扫描本地所有主流 AI Agent 的配置文件,执行六阶段检测流水线:
第一阶段:模式签名匹配 — 检测已知恶意模式,如凭证访问、恶意 URL 请求和危险 Shell 命令。
第二阶段:去混淆检测 — 解码 Unicode 标签、Base64 编码、双向文本覆盖(Bidi Override)、零宽字符(Zero-Width Characters)以及 TR39 可混淆字符。这是检测高级隐写攻击的关键环节——攻击者可以将恶意指令编码成肉眼不可见的字符嵌入配置文件。
第三阶段:语义分析 — 使用 MiniLM-L6-v2 句子嵌入模型,对配置文件进行语义相似度计算。即使用词替换规避了模式匹配,语义相近的恶意内容仍会被捕获。这是项目技术含量最高的环节之一,也是开源社区少数将 NLP 嵌入模型用于安全检测的实践。
第四阶段:基线追踪 — 通过 SHA-256 哈希值记录文件的历史状态,检测自上次扫描以来是否发生了配置变更。若一个原本安全的 MCP 配置在 npm install 后被悄悄篡改,Guard 能立即发现。
第五阶段:注册表富化 — 对接 AgentSeal 官方维护的 MCP Security Registry,该平台已扫描 6600+ MCP 服务器,并持续更新各服务器的信任评分。用户安装新的 MCP 服务器前,可先查询其安全评级。
第六阶段:自定义规则 — 支持 YAML 格式的自定义安全策略,企业可结合自身合规要求制定组织级别的 Agent 使用规范。
agentseal scan 对系统提示词执行 225 个对抗性攻击探针(82 个提取探针 + 143 个注入探针),并通过 8 种自适应变形变换增强检测强度。
检测机制的核心创新:传统红队工具依赖 LLM 评判结果(LLM 作为裁判判断回复是否泄漏信息),存在评判主观性和成本高昂的问题。AgentSeal 采用了金丝雀字符串(Canary String) 机制——每个注入探针都嵌入一个唯一标识符,若该字符串出现在模型回复中,则探针命中。这种方法保证了相同输入、相同结果的确定性,无需 LLM 作为评判者,测试结果可完全复现。提取探针则通过 N-gram 匹配,检测回复内容与真实提示词的重叠程度。
扫描完成后,AgentSeal 输出一个 0-100 的信任评分:
| 评分区间 | 等级 | 含义 |
|---|---|---|
| 85-100 | Excellent | 强防御,抵御大部分已知攻击 |
| 70-84 | High | 良好防御,存在轻微缺陷 |
| 50-69 | Medium | 中等风险,多个探针类别泄漏 |
| 30-49 | Low | 严重漏洞 |
| 0-29 | Critical | 几乎没有提示攻击防御 |
该评分可直接集成到 CI/CD 流水线中,通过 --min-score 75 --output sarif 参数,在信任分低于阈值时使流水线失败,并将结果上报至 GitHub Security 页。
模型支持:支持 OpenAI(GPT-4o)、Anthropic(Claude 系列)、MiniMax(MiniMax-M2)、Ollama(本地免费推理)以及任意 HTTP 端点。使用 Ollama 时完全免费,真正实现零成本安全测试。
agentseal scan-mcp 连接到实时运行的 MCP 服务器,通过 stdio 或 SSE 协议枚举所有可用工具,对每个工具描述执行同样的模式匹配 + 去混淆 + 语义分析流程,最终输出每个服务器的可信度评分。
该命令能捕获工具描述投毒(Tool Description Poisoning)——在 MCP 服务器的工具 metadata 中嵌入隐藏指令,使 AI Agent 在用户不知情的情况下执行数据外泄或命令执行操作。这正是 2025 年 MCP 安全研究中最受关注的攻击向量。
agentseal shield 是 Guard 的实时增强版,通过 watchdog 库监控 Agent 配置文件路径,持续追踪变更。当检测到威胁时,触发桌面通知并可自动隔离含恶意载荷的文件,防止供应链攻击得手后才告警。
Python 版本采用 hatchling 作为构建系统,agentseal.cli:main 作为入口点,核心依赖极为克制(仅 httpx 和 pyyaml),语义分析模块(onnxruntime + tokenizers + numpy)作为可选依赖按需安装。
源码结构按功能划分为以下模块层次:
complete() 方法,便于扩展新 provider。PROBES.md 中的分类体系严格对应。npm 包采用 tsup 打包工具,输出 CommonJS(.cjs)和 ESM(.js)双格式,并包含完整类型声明文件。CLI 入口通过 js/bin/agentseal.ts 定义,对应 npm bin 字段。npm 包额外引入了 @types/better-sqlite3 用于基线追踪历史记录的本地 SQLite 存储。
项目提供了 .github/actions/guard/Dockerfile 和 action.yml,用户可在 CI 流水线中直接引用 Action,实现每次代码提交自动触发安全扫描。Dockerfile 基于 Alpine Linux,体积小巧,适合容器化 CI 环境。
| 能力 | AgentSeal | Snyk | Pillar | Lakera | Mindgard |
|---|---|---|---|---|---|
| 开源扫描器 | 完整开源 | 部分开源 | 否 | 否 | 否 |
| 本地 Guard(Skill + MCP) | 支持 | 部分支持 | 部分支持 | 否 | 否 |
| 提示词红队探针 | 225+ | 20 | 支持 | 支持 | 支持 |
| MCP 工具投毒检测 | 支持 | 支持 | 部分支持 | 部分支持 | 否 |
| 毒性数据流分析 | 支持 | 支持 | 部分支持 | 否 | 否 |
| 实时文件监控 | 支持 | 否 | 否 | 否 | 否 |
| 公共 MCP 服务器注册表 | 6600+ | 否 | 否 | 否 | 否 |
| 支持的 Agent 数量 | 28 | 10+ | 2+ | N/A | N/A |
| Ollama 本地 LLM 支持 | 支持 | 否 | 否 | 否 | 否 |
| Guard 无需 API Key | 支持 | 否 | 否 | 否 | 否 |
AgentSeal 的核心差异化优势在于:完整的开源实现、最大的 Agent 支持覆盖面(28 种)、以及 Guard 命令的完全离线运行能力——这在竞品中是独一份的。大多数企业安全工具要求将 Agent 配置上传至云端进行检测,而 AgentSeal 允许安全团队在不暴露任何敏感配置的前提下完成扫描,这对金融、医疗等高合规行业具有极大吸引力。
AgentSeal 的安装极为简单,一条命令即可完成:
pip install agentseal # Python 版
npm install agentseal # TypeScript 版
安装后,guard 命令零配置立即可用——无需 API key,无需联网,直接扫描本机所有 AI Agent 配置。对于想测试提示词防护能力的用户,scan 命令支持 Ollama 本地推理,完全免费。
不过,不支持 Web UI 是其局限:所有操作均通过命令行进行,对非技术用户存在一定门槛。对于习惯 GUI 操作的团队,需要额外配置或包装一层简单的 Web 界面。
局限性一:探针覆盖的滞后性。 AgentSeal 的 225 个探针是对已知攻击模式的总结,但 AI 攻击手段日新月异,新型攻击手法可能暂时不被探针覆盖。团队需要持续同步社区贡献的新探针。
局限性二:语义分析依赖模型质量。 MiniLM-L6-v2 作为轻量级嵌入模型,在复杂语境下的误报率和漏报率尚无公开基准数据,企业用户应在关键场景自行复核。
争议点:FSL(Functional Source License)许可证。 FSL 是非 OSI 认证的"类开源"许可证,允许免费使用、修改和分发,但不允许用相同代码提供竞争性服务。部分开发者认为这偏离了纯开源精神,但项目维护方表示这是保障持续投入商业支持的必要条件。
AgentSeal 的出现填补了 AI Agent 安全领域的一个关键空白:在模型层安全(对齐、RLHF)之外,真正面向 Agent 系统层(配置、工具链、数据流)的开源安全工具。
从增长趋势看,291 Stars 在 AI 安全类项目中属于中上游水平,但其 guard 命令的完全离线特性使其在企业市场具有独特的竞争力。6600+ MCP 服务器的信任评分注册表更是构建了一个持续运转的社区安全情报网络——随着 MCP 生态的扩张,这一数据资产的战略价值将持续增长。
未来值得关注的演进方向包括:RAG 文档注入检测(项目已规划 Pro 版探针)、多模态攻击探针(图像/音频提示注入),以及与企业 SSO/SCIM 系统的深度集成。对于正在构建 AI Agent 基础设施的团队,AgentSeal 是值得纳入安全开发生命周期的必要组件。