AI-Infra-Guard 部署与技能扫描实战:Docker 一键起,附我的一次“漏报”复盘
AI-Infra-Guard 部署与技能扫描实战:Docker 一键起,附我的一次“漏报”复盘
先说硬约束:这个平台没有内置认证机制,只能内网或本机用,官方明确禁止部署到公网。记住这一句,下面的操作都在内网做。
你的服务器跑着 Ollama 或者 vLLM,团队用 Dify 搭了 Agent,还装了几个 MCP Server——这些组件的版本号,你知道几个?对应 CVE,又查过几个?
腾讯朱雀实验室把这个缺口补上了:AI-Infra-Guard(简称 A.I.G),Apache 2.0,五个模块覆盖从 AI 组件到越狱评测。下面是部署 + 使用实战。
一、它能扫什么:四个面

- 模型面:越狱评估(17 个数据集、多种多轮攻击、跨模型对比)
- 运行时面:Agent 工作流(Dify/Coze 等)、MCP Server、Agent Skills
- 供应链面:AI 组件指纹识别(146 个)+ 2000 条以上 CVE 比对
- 平台面:Web 界面、Swagger API、独立 CLI(aig-skill-scan)
二、部署:三种方式,推荐第一种
环境要求:Docker 20.10+、内存 4GB 以上、磁盘 10GB 以上。
合规提示:漏洞扫描属于主动探测行为。对非自有资产扫描前,先确认你有授权;企业环境建议先走内部审批,拿自己的测试环境练手。
Windows 环境注意:Docker Desktop 需要开启 WSL2 后端;首次拉镜像体积不小,网速慢的话先配镜像加速,不然会卡在 pull 阶段。
# 方式 1:预构建镜像(最快)
git clone https://github.com/Tencent/AI-Infra-Guard.git
cd AI-Infra-Guard
docker-compose -f docker-compose.images.yml up -d
# 打开 http://localhost:8088
# 方式 2:一键脚本(会自动帮你装 Docker,需要 root)
bash scripts/docker.sh
# 方式 3:源码编译(本地构建两个镜像,最慢)
docker-compose up -d
部署后验证:
docker ps # 看两个容器是否在跑(server + agent)
curl http://localhost:8088 # 返回页面就对了
对应两个入口:
- Web 界面:
http://localhost:8088(一键扫描、实时进度) - Swagger API 文档:
http://localhost:8088/docs/index.html(含完整的 MCP 扫描、越狱评估端到端示例)
三、实战一:扫 AI 基础设施(最常用)
扫的是什么:正在运行的 AI 服务地址。原理是主动连接 → 识别组件指纹 → 拿到版本号 → 比对 CVE 库。

操作步骤:
- 左侧菜单选「AI 基础设施安全扫描」
- 输入目标地址,一行一个:
http://127.0.0.1:8000 # vLLM 默认端口
http://192.168.1.100:11434 # Ollama 默认端口
http://10.0.0.5:8188 # ComfyUI 默认端口
- 支持批量,直接填网段或范围:
192.168.1.0/24
10.0.0.1-10.0.0.20
- 点 Start Scan,等结果。
结果怎么看(这块最重要):
- 组件版本:先看识别到的组件和版本号对不对,指纹识别有时会把代理/网关认错
- 命中漏洞:每条 CVE 会带严重级别和修复建议(大多就是"升级到 xx 版本")
- 优先级:先修"有公开利用、且服务暴露在可访问网段"的;纯内网本机服务的低危可以排后
一个经验:老版本 Ollama、ComfyUI 这类"为了跑模型临时装的"服务,是漏的重灾区——很多人装完就没更新过。
四、实战二:扫 MCP Server 和 Agent Skills
两个名词先解释:MCP 是模型调用外部工具的协议,你可以理解成"给 AI 用的 USB-C 接口";Agent Skill 是能被 AI 执行的一小段技能包(代码加指令)。这两样东西,大多不是你自己写的——这才是风险所在。
这个功能的价值在于:不需要目标在运行。输入仓库地址或者上传源码包就能审——正好适合"用之前先查一下"的场景。

操作:
- Web 界面选 MCP / Skills 扫描
- 输入远程 URL,比如
https://github.com/某作者/mcp-server - 或上传本地源码压缩包
- 等审计报告
它查的 15 类 MCP 风险包括:命令注入、凭证外泄、过度授权、路径穿越、SSRF、SQL 注入、工具投毒等。
Skills 审计对齐 T01 到 T09 九类风险:指令劫持、记忆投毒、远程载荷下载执行、内嵌恶意代码、权限提升、系统持久化、工具劫持伪造、不安全依赖、不安全编码。官方称这套扫描在 SkillTrustBench 上 F1 达到 0.98 左右(不同模型档位 0.97 到 0.98)。
注意:它的 Recall 高于 Precision,也就是**“宁可多报不漏报”**——报告里的每条都需要人复核一遍再定性。
五、实战三:aig-skill-scan CLI(接进流水线)
如果想把技能审计做成"每次提交自动跑",用独立 CLI:
pip install aig-skill-scan
export LLM_API_KEY="你的密钥"
# 单阶段模式(默认):直接代码审计
aig-skill-scan --repo /path/to/your/skill -m deepseek-v4-flash --language zh -o result.json
# 三阶段模式:信息收集 → 代码审计 → 漏洞复核
aig-skill-scan --repo /path/to/your/skill --aig-mode --language zh
输出支持 SARIF 2.1.0 格式,可以直接被 GitHub Code Scanning、GitLab Security Dashboard 这类工具消费。也就是说:
# 伪代码示意:在 CI 里加一步
- name: AI Skill 安全审计
run: aig-skill-scan --repo . -o result.sarif
- name: 上传报告
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: result.sarif
实测记录:我扫了一个测试技能,结果值得复盘
工具装上后我做了一次真实扫描(2026-09-20,本机):
- 版本:aig-skill-scan 0.2.2(
pip install直接装) - 扫描对象:我自己构造的一个测试技能(3 个文件):
SKILL.md、setup.sh里有一条curl ... | bash的远程脚本执行、agent.py里有读取凭据文件和使用eval(base64...)的代码 - 后端模型:本机 Ollama 的 Qwen2.5 3B(图省事,想完全不花钱)
扫描跑完了,2.16 分钟,最终判定 normal、100 分——漏掉了。
翻开日志复盘,原因很清楚:模型全程"未检测到工具调用",根本没按审计流程走(读文件、取证、复核这些步骤一个没做),最后随口给了个"正常"。
这次"翻车"给出了三条比成功更有用的结论:
- 扫描器本身是完整的:有迭代控制、证据要求、超时保护,最终产出结构化的 JSON 结果(含评分、语言、耗时)——流程没毛病。
- 天花板在模型能力上。官方基准里要 Claude Opus 4.6、GLM 5.1 这个档位的模型,F1 才能到 0.98 左右。用本地 3B 模型跑这类工具,只能当玩具;要上真活,别省这个模型钱。
- 这本身就是 AI 安全的一个真实样本:LLM 驱动的安全工具,"看起来在干活"和"真的在干活"是两回事。任何"一键扫描"的结论,都值得扒开日志看它到底做了什么。
想复现这次测试(本机有 Ollama 就行):
pip install aig-skill-scan
# 把后端指向本机的 Ollama(注意:这是"翻车复现"命令,真实审计请换够强的模型)
aig-skill-scan --repo <你的技能目录> -m qwen2.5:3b -k ollama \
-u http://127.0.0.1:11434/v1 --language zh -o result.json
Windows 用户提示:运行时会在控制台打出一串 schema 加载的 GBK 编码告警,属中文环境的编码问题,不影响实际执行,忽略即可。
六、剩下两个模块:Agent 扫描与越狱评测
Agent Scan:针对 Dify、Coze 这类平台搭出来的 Agent 工作流做安全评估,v4.6.0 起引擎升级到 v5.0.0。
Jailbreak 评估:在「设置 → 模型配置」填目标模型的 API 地址和 key,选数据集开跑。内置 17 个数据集,支持 Many-Shot、PAIR、GOAT、ActorAttack 等多轮攻击方式。做模型选型时把几个候选拉进来跑一轮,比看宣传页直观。
附:ClawScan——如果你在用 OpenClaw 生态,它能一键检查不安全配置、Skill 风险、CVE 和隐私泄露。甚至可以这样用:
clawhub install aig-scanner
# 然后设置 AIG_BASE_URL=http://127.0.0.1:8088/ 用自然语言发起扫描
七、常见问题
Q:docker-compose 起不来?
先看内存够不够(4GB 起);公司内网拉不到镜像的话,配一下 Docker 镜像加速。
Q:扫不出东西,全绿?
别急着高兴。先确认填的是"服务地址"不是"仓库地址";再确认服务正在运行;最后核对识别到的组件版本是不是真的(是代理转发的话可能指纹认不准)。
Q:扫出来的 CVE 一堆,先修哪个?
按"可利用性 + 暴露面"排:暴露在可访问网段 + 有公开 EXP 的优先;内网本机服务 + 低危的排后面。修复动作大多就是升级版本。
Q:能放公网给同事用吗?
不能。 官方明确说了没有内置认证,禁止公网部署。内网权限也要收好——它本质是个攻击性工具。
Q:和传统漏扫什么关系?
互补。传统漏扫不认 AI 组件指纹和 MCP/Skill 这些新东西;这个平台把 AI 专属的那一层补上了。
八、命令与操作速查
| 场景 | 操作 |
|---|---|
| 部署(镜像版) | docker-compose -f docker-compose.images.yml up -d |
| 访问界面 | http://localhost:8088 |
| API 文档 | http://localhost:8088/docs/index.html |
| 扫 AI 服务 | Web 界面输服务地址,支持网段批量 |
| 扫 MCP/技能 | 输仓库 URL 或上传源码包 |
| CLI 审计技能 | aig-skill-scan --repo /路径 -o result.json |
| 越狱评测 | 设置里配模型 API,选数据集开跑 |
建议的动作顺序:先内网部署 → 扫一遍自家 AI 服务(Ollama/vLLM 这类)→ 把在用的 MCP Server 挨个过一遍 → 有条件的把 aig-skill-scan 接进 CI。
扫出什么有意思的结果,评论区聊聊。
AI 组件和技能生态更新很快,这块我会持续跟进,有新工具再写。
相关阅读:系列里的其他几篇——开源项目汇总、MiniCPM5-2B 本地部署、MiniMax Code CLI 配置。
说明:本文功能描述与命令整理自官方文档与公开技术资料(v4.5 至 v4.6.1 版本说明),组件数量、CVE 覆盖数与基准数据为官方口径,以仓库当前版本为准;请务必遵守官方"不得部署于公网"的安全要求。
更多推荐


所有评论(0)