RepoDaily · 2026-08-22 · Security tool

腾讯 AI-Infra-Guard:一把工具扫遍 Agent、MCP 服务、技能包与越狱风险

#12 Security tool Python +435 Tencent/AI-Infra-Guard 打开仓库

腾讯这款 Apache-2.0 全栈 AI 红队平台,把 Agent 扫描、技能扫描、MCP 扫描、1700+ 条 CVE 规则的基础设施检测与多轮越狱攻击装进同一个工具。

项目类型Security tool
最适合需要用同一套 CLI 或本地 WebUI 审计 AI Agent、MCP 服务器、Agent 技能包与暴露 AI 组件的安全工程师和红队
风险等级中等 — WebUI 无登录设计,越狱模块依赖外部 LLM API Key
评估时间1-2 小时(构建镜像、扫描实验目标、复核结果)

核心问题: 一个 Apache-2.0 扫描器能否替代分别负责 Agent、MCP、技能、基础设施与越狱测试的多套工具?

91/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 91/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 中
100证据质量

包含 7 个来源、覆盖 4 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

100可安装/可试用性

检测到 6 个工作流步骤、5 个下一步动作,以及 7 个命令/安装信号。

63维护可信度

趋势热度为 +435 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

93生产准备度

采纳风险标记为 medium,并包含 5 条安全说明与 4 条跳过条件。

100差异化

3 个机会视角、5 个替代方案,以及 4 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

84Agent / AI 适配度

文章正文和元数据中检测到 6 个 AI/Agent 相关信号。

项目概览

Tencent/AI-Infra-Guard 把自己定位为全栈 AI 红队平台,模块清单也确实撑得起这个说法:针对 Agent 行为的 Agent Scan、审计技能包的 Skills Scan、面向 MCP 服务器的 MCP scan、基于组件指纹加 CVE 规则的 AI 基础设施扫描,以及负责越狱测试的 PromptSecurity。本期它拿下 435 颗星、排名第 12。GitHub 把仓库语言标成 Python,但 go.mod 揭示了更完整的结构:核心是 Go 1.23.2,Python 扫描模块挂载在旁——Dockerfile 最终把 Go 二进制装进 python:3.12-alpine 运行时。

发布节奏是它上榜的直接原因。v4.5.0(2026-07-27)开源了 WebUI 前端,把 Agent-Scan 拆成独立 CLI,给 MCP-Scan 加上 CLI/Web 双模式和 mcp-scan-lite 模块,并把 Skill-Scan 重打包为 PyPI 包 aig-skill-scan,输出 SARIF 2.1.0。三天后的 v4.5.1(2026-07-30)一次性加入四个多轮越狱攻击家族——Many-Shot、PAIR、GOAT、ActorAttack——以及五个新的 OWASP Agent 检测技能(agentic-supply-chain、cascading-failure、human-agent-trust、inter-agent-comm、unexpected-code-execution)、web-exfiltration-detection 技能,和四条覆盖硬编码密钥与不安全反序列化的 MCP 规则。

规则库被当作病毒库一样运营:带日期的规则包(2026-06-29、2026-07-13、2026-07-17、2026-07-24)持续追加,v4.5.0 还为 Jan、Open WebUI、crewai、lobehub 补了 CVE 规则——正是当前被大量暴露的 AI 组件。文档标注 CVE 规则 1700+ 条,德文与俄文 README 已修正为 1900+。整体以 Apache-2.0 发布,SECURITY.md 对单操作员设计也写得相当坦率。

解决什么问题

  • 一套 AI 部署横跨四层——Agent 框架、MCP 服务器、Agent 技能、Open WebUI/Jan 这类面板——每一层通常要单独的扫描器。
  • 越狱方法(Many-Shot、PAIR、GOAT、ActorAttack)大多停留在研究代码,缺少可直接运行且持续维护的工具。
  • MCP 服务器的配置级缺陷(硬编码密钥、不安全反序列化)是通用 Web 漏洞扫描器不覆盖的。
  • agentic 供应链、级联失败、Agent 间通信这类 OWASP Agent 风险在传统 CVE 扫描器里没有对应物。
  • 结果要进 CI 和缺陷系统,它们要的是 SARIF,不是控制台日志。

工作原理

  1. 部署:多阶段 Dockerfile 先在 node:22-alpine 上用 pnpm 构建前端,再在 golang:1.23.2-alpine 上从 ./cmd/cli/main.go 编译 Go 二进制,最后装进 python:3.12-alpine,并用 `uv sync --no-dev` 安装 agent-scan 的 Python 依赖。
  2. 在 8088 端口启动 WebUI(默认绑定 127.0.0.1:8088),或者完全离线走 CLI:`aig -target ...` 把结果写到 stdout 或文件,不开放任何网络面。
  3. AI 基础设施扫描用 data/fingerprints 与 data/vuln 做组件匹配;1700+ 条 CVE 规则包含 7 月为 Jan、Open WebUI、crewai、lobehub 新增的部分。
  4. Agent-Scan 以注册在 _DETECTION_SKILLS 的检测技能(含五个新的 OWASP 技能)探测目标 Agent,可集成在 AIG 内,也可作为独立 CLI 运行。
  5. MCP-Scan 探测 MCP 服务器(CLI + AIG Web 双模式,另有 mcp-scan-lite),aig-skill-scan 审计技能包并输出 SARIF 2.1.0 供流水线消费。
  6. PromptSecurity 用操作员配置的 LLM API Key 发起多轮越狱攻击,任务记录在 /app/db/tasks.db 供 WebUI 跟踪。

架构解读:Go 内核 + Python 模块 + 单一二进制

  • go.mod 声明 `go 1.23.2`;gin-gonic/gin v1.10.0 提供 HTTP,gorilla/websocket v1.5.3 支撑实时 WebUI,gorm.io/gorm v1.26.1 配 glebarez/sqlite 存任务,spf13/cobra v1.9.1 驱动 CLI。
  • 网络层是 projectdiscovery 系:rawhttp v0.1.69、retryablehttp-go v1.0.82、fastdialer v0.2.9、hmap v0.0.62,与 nuclei 一脉相承的库家族。
  • LLM 集成写在依赖里:openai-go v1.8.3 负责模型调用,mark3labs/mcp-go v0.32.0 是 MCP 扫描时使用的客户端库。
  • Dockerfile 把 pnpm 构建的前端拷进 common/websocket/static/,Go 二进制直接托管 UI,无需独立 Web 服务器。
  • Agent-Scan 是带独立依赖的 Python 模块(镜像内执行 `uv sync --no-dev`),这解释了 GitHub 为何把仓库语言标为 Python,而核心二进制是 Go。

部署要点:单操作员、回环优先

  • 运行时基础镜像是 python:3.12-alpine,附加 bash、curl、git;入口为 /app/start.sh;EXPOSE 8088。
  • SECURITY.md 明确默认绑定 127.0.0.1:8088,并直言把 `-ws-addr` 暴露到非回环地址属于运维误配,不是 AIG 漏洞。
  • 声明的卷:/app/uploads、/app/db、/app/data、/app/logs;任务库位于 DB_PATH=/app/db/tasks.db。
  • 健康检查每 30 秒执行一次 `pgrep ai-infra-guard || exit 1`,超时 3 秒。
  • ENV AIG_API_CHECKER_URL=http://agent:8000 与 TZ=Asia/Shanghai 暗示存在配套的 agent 服务负责 API Key 检测。

命令面:你实际敲的东西

  • `aig -target ...`:CLI 扫描模式,SECURITY.md 注明无网络暴露,输出到 stdout/文件。
  • `-ws-addr`:8088 服务的 WebUI 绑定地址。
  • `--version`:安全报告必填项,用于锁定被审计版本;v4.5.1 改用 releases/latest 重定向绕过 GitHub API 限流。
  • `aig-skill-scan`:技能审计的独立 PyPI 包;第二阶段代码审计改输出 Markdown 而非 XML。
  • Agent-Scan 与 MCP-Scan 在 v4.5.0 均已独立成 CLI,可脱离主二进制运行。

维护解读:节奏、修复与数据卫生

  • 四天两个版本(v4.5.0 于 2026-07-27、v4.5.1 于 2026-07-30),每个版本几十条变更——迭代快,但升级前应先测。
  • 社区输入能落地:v4.5.0 合入 PR #458、#469(MCP 规则)、#459(组件指纹)、#427(agentic-tool-misuse 数据集);issue #331 的前端复选框跳动修复随 v4.5.1 发布。
  • 规则数据有修正而不只做加法:v4.5.0 删除 4 条没有对应指纹的 CVE 规则、修复 4 个漏洞规则文件的 YAML 解析错误、清理重复指纹与目录。
  • 文档覆盖 9 种语言的 README,数字会漂移:v4.5.1 把 README_DE 和 README_RU 的 CVE 数从 1600+ 修正为 1900+。
  • 用户致谢里出现了 Tiane 与 Binus University,项目还把 Securing the AI Agent 论文同步到各语言 README——有真实部署,不只是刷星。

谁适合关注

适合关注

  • 要在上线前审计 MCP 服务器的安全工程师——v4.5.1 刚加入硬编码密钥与不安全反序列化规则。
  • 正在运行 Open WebUI、Jan、crewai 或 lobehub 的运维方,四者都被 v4.5.0 的 CVE 规则覆盖。
  • 想要现成多轮越狱攻击(Many-Shot、PAIR、GOAT、ActorAttack)而非自维护脚本的红队。
  • 想给技能市场加审计关卡的团队,用 aig-skill-scan 的 SARIF 2.1.0 输出接入 CI。

可以先跳过

  • 需要多租户、带登录与权限体系的扫描平台——SECURITY.md 明说不存在这套东西。
  • 不能接受把攻击提示词发给外部 LLM API 的场景;PromptSecurity 必须配置 API Key。
  • 只需大规模传统网络 CVE 扫描——projectdiscovery nuclei 就是为这件事而生的。
  • 无法运行 Docker 或本地二进制的环境;仓库不提供托管服务。

风险与注意事项

中

Apache-2.0 许可与高速发布是实打实的优点,但 WebUI 设计上就没有认证、越狱测试依赖外部 LLM API Key,检出效果也与规则数据的新鲜度强相关。

  • WebUI 无登录、无会话、无按用户的权限;能访问 `-ws-addr` 的人即被视为操作员,部署必须保持回环或使用专用扫描主机。
  • LLM API Key 由操作员主动写入配置——SECURITY.md 明确把密钥在配置里这类报告列为不受理。
  • 检出依赖 data/vuln 与 data/fingerprints 的更新;changelog 里既有新增也有修正(删重复规则、修 YAML、剔除 4 条孤儿 CVE 规则)。
  • Go 内核 + Python 模块 + Node 前端的组合,本地构建比单语言扫描器更重。
  • Apache-2.0 许可含专利授权,商业红队使用无需付费。
  • 漏洞披露走 GitHub Security Advisories,并公布了分诊门槛:精确的文件/函数/行号、`--version` 输出、针对最新 main 的 PoC 与可证明的影响;联系邮箱 [email protected]。
  • SECURITY.md 公开了常见误报清单(纯提示注入、回环 TLS、自扫描等),缩短了报告者与维护者的往返。
  • 针对 AIG 自身的提示注入除非跨过 OS、网络或文件系统边界,否则不在受理范围——对红队工具而言是合理的边界。
  • 推荐部署在本地或专用扫描主机、WebUI 保持回环;CLI 模式(`aig -target ...`)完全不开放网络面。

替代方案比较

方案适用场景代价
Microsoft PyRIT
想用 Python SDK 自建 LLM 红队流水线和评分逻辑,而不是用固定界面的扫描器免费开源
NVIDIA garak
需要探针式 LLM 漏洞扫描器,且主技术栈是 Python免费开源
projectdiscovery nuclei
目标是传统网络服务;AIG 的 go.mod 本身就构建在 projectdiscovery 网络库之上免费开源
mcp-scan(Invariant Labs)
只检查 MCP 服务器,想要专注的轻量工具免费开源
商业 AI 安全平台
需要托管的、多租户、带 SSO 与审计日志和 SLA 的扫描服务订阅制

这个趋势说明了什么

把技能审计做成市场上架关卡

Skill-Scan 是最新模块:v4.5.0 加入、重打包为 PyPI 上的 aig-skill-scan、简化为单一默认 LLM,第二阶段代码审计输出 Markdown 加 SARIF 2.1.0。技能市场完全可以把它作为上架前检查。

从 PyPI 安装 aig-skill-scan,审计 5-10 个已发布技能,把 SARIF 结果与人工复核逐条比对。

用扫描规则做 MCP 准入控制

MCP 规则增长很快——v4.5.0 的 PR #458、#469,再到 v4.5.1 的硬编码密钥与不安全反序列化——并且专门有 mcp-scan-lite 模块做轻量运行。

对预发环境注册表里的每台 MCP 服务器跑 mcp-scan-lite,按规则统计命中数,再与同一批服务器的人工配置审查对比。

AI 组件层的指纹覆盖

v4.5.0 的数据包为 Jan、Open WebUI、crewai、lobehub 加了 CVE 规则,还新增了 AI 组件指纹(PR #459)——恰好是通用扫描器识别得很差的那批暴露面板。

在实验环境部署一个过期的 Open WebUI 或 Jan 实例,确认 AIG 能识别组件并触发 data/vuln 中对应规则。

下一步建议

用一个下午对实验目标做完验证

对一台故意不升级的 AI 组件做回环测试,就能回答唯一重要的问题:指纹加 CVE 规则的组合,能不能抓住你现有扫描器漏掉的东西?

  1. 用仓库里的 Dockerfile 构建镜像并启动;确认 WebUI 在 127.0.0.1:8088 可访问,`pgrep ai-infra-guard` 健康检查通过。
  2. 搭一个带已知 CVE 的实验目标——过期的 Open WebUI、Jan、crewai 或 lobehub,四者都被 v4.5.0 规则覆盖。
  3. 运行 `aig -target <实验主机>`,记录命中的指纹与触发的 CVE 规则。
  4. 从 PyPI 安装 aig-skill-scan,审计一个内部 Agent 技能,查看 SARIF 2.1.0 输出。
  5. 若越狱测试在授权范围内,配置 LLM API Key,对一次性测试模型跑一轮 Many-Shot 或 PAIR,完成后删除密钥。

RepoDaily 判断

AI-Infra-Guard 上榜的原因很直接:它把五个工具压缩进一个 Apache-2.0 二进制——Agent 行为扫描、MCP 服务器检查、技能审计、1700+ 规则的 AI 基础设施 CVE 扫描,以及四个家族的多轮越狱攻击。v4.5.x 的发布节奏说明迭代是认真的——四天内交出 PyPI 包、SARIF 输出、双模式 MCP 扫描和具名的 OWASP Agent 技能。把它当单操作员的实验利器跑在回环上,保持规则数据更新;如果你要的是多租户平台,就别选它——项目自己都说了它不是。

信息来源