腾讯朱雀开源AI安全平台A.I.G:一站式红队测试与漏洞扫描实战
1. 项目概述与核心价值
如果你正在构建或使用基于大语言模型(LLM)的智能体(Agent),或者在公司内部部署了像 Ollama、vLLM、ComfyUI 这样的 AI 基础设施,那么一个无法回避的问题正变得越来越紧迫:它们真的安全吗?这不仅仅是传统的代码漏洞(CVE),更包括针对 AI 特有的攻击面,比如精心设计的提示词注入(Prompt Injection)、被恶意“越狱”(Jailbreak)的模型、存在后门的 MCP 服务器,甚至是智能体工作流中潜藏的逻辑漏洞。过去,安全团队可能需要组合使用多种工具,分别扫描基础设施、评估模型、审计智能体,过程繁琐且覆盖不全。现在,一个名为AI-Infra-Guard(A.I.G)的开源平台,正试图将这一切整合起来。
A.I.G 是由腾讯朱雀实验室开源的一站式 AI 红队(Red Teaming)平台。简单来说,它就像给你的 AI 应用和基础设施做一次全面的“安全体检”。无论是运行中的 AI 服务、智能体技能(Skill)、MCP 服务器源码,还是大模型本身的抗攻击能力,A.I.G 都能通过自动化的扫描和评估,帮你发现潜在的安全风险。它的目标很明确:让开发者、安全研究员和运维人员,能够以最低的成本和最高的效率,对自身的 AI 资产进行主动的安全自查。
我花了几周时间深度体验了 A.I.G,从 Docker 一键部署到对内部几个测试服务进行扫描,整个过程给我的感觉是:它正在填补 AI 安全工具链中的一个关键空白。市面上不缺单一的漏洞扫描器或越狱测试集,但能将 AI 基础设施漏洞、MCP/技能安全、智能体工作流评估和模型越狱测试这四大核心风险点,集成在一个统一界面和框架下的工具,A.I.G 是目前我看到的最为全面的一个。接下来,我将从设计思路、实战操作、核心功能解析以及避坑经验几个方面,为你完整拆解这个工具。
2. 核心架构与设计思路拆解
在深入实操之前,理解 A.I.G 的设计哲学至关重要。它不是一个简单的漏洞扫描器合集,其架构体现了对 AI 安全生态的深刻理解。
2.1 模块化与插件化:应对快速演进的威胁
AI 安全领域日新月异,新的框架(如 CrewAI)、新的协议(如 MCP)、新的攻击手法层出不穷。A.I.G 采用了一种高度模块化和插件化的架构来应对这种变化。其核心扫描引擎与具体的检测规则是解耦的。
为什么这么设计?传统的单体安全工具在面临新威胁时,往往需要等待官方发布新版本,升级周期长。而 A.I.G 将指纹识别规则(data/fingerprints/)、漏洞规则(data/vuln/)、MCP 检测规则(data/mcp/)和越狱测试数据集(data/eval)都设计成了可独立更新的文件。这意味着:
- 社区可以快速贡献:任何安全研究员发现了一个新的 AI 组件指纹或 CVE,都可以按照既定格式提交一个 YAML 文件,立即丰富 A.I.G 的检测能力,无需改动核心代码。
- 企业可以内部定制:如果你公司内部使用了一些自研或小众的 AI 框架,你可以为其编写专属的指纹和漏洞规则,集成到内部的 A.I.G 实例中,实现定制化安全扫描。
- 快速响应0day:当出现类似 LiteLLM 供应链攻击这样的紧急漏洞时,项目团队可以迅速更新漏洞数据库,所有用户通过更新规则库即可获得检测能力,响应速度远超传统软件升级。
这种设计使得 A.I.G 从一个“工具”进化成了一个“平台”。它的检测能力边界不是由开发团队决定的,而是由整个社区共同拓展的。目前其漏洞库已覆盖超过 57 个主流 AI 组件和 1000+ 个 CVE,并且还在持续增长。
2.2 四大核心能力的一体化整合
A.I.G 将 AI 安全风险归纳为四个主要维度,并提供了对应的扫描模块:
AI 基础设施漏洞扫描:这是最“传统”但也最基础的一环。它通过向目标服务的特定端点发送探测请求,根据返回的 Header、Body 内容、错误信息等特征,识别出你运行的是 Ollama、vLLM、ComfyUI 还是 Triton Inference Server,并精确匹配其版本号。然后,它会查询本地的漏洞数据库,列出该版本所有已知的 CVE 漏洞。关键在于,它扫描的是“运行中的服务”,而不是源代码。这非常适合运维人员对线上或内网环境进行资产梳理和风险排查。
MCP 服务器与智能体技能扫描:Model Context Protocol (MCP) 是让 LLM 连接外部工具和数据的协议,但其服务器和技能可能包含恶意代码。A.I.G 可以接受一个 GitHub 仓库地址或本地源码包,对其进行静态和动态分析,检测 14 大类安全风险,如任意文件读取、命令注入、不安全的反序列化等。这相当于为 AI 的“手和脚”(工具调用)做了代码安全审计。
智能体扫描框架:这是面向 AI Agent 工作流的安全评估。不同于扫描单个组件,它模拟一个真实用户与智能体进行多轮对话,尝试通过提示词注入、逻辑绕过等方式,探测智能体在业务流程中是否存在安全缺陷,例如越权访问、信息泄露或执行危险操作。它支持对接 Dify、Coze 等主流 Agent 平台。这解决的是“智能体作为一个整体应用”的业务逻辑安全问题。
越狱评估:用于评估大模型本身抵抗恶意提示词的能力。A.I.G 内置了多种精心设计的越狱测试数据集,可以配置目标模型的 API(如 OpenAI、DeepSeek 等),自动发起批量测试,并生成详细的对抗成功率报告。这帮助模型开发者或使用者了解模型的“道德护栏”坚固程度。
将这四者整合在一个平台里,最大的好处是上下文关联。例如,扫描一个 AI 基础设施时发现了一个可远程代码执行的漏洞(CVE-2023-xxxx),攻击者可以利用此漏洞植入一个恶意的 MCP 服务器。而 A.I.G 可以在后续的 MCP 扫描中,识别出这种恶意模式。这种关联性分析,对于构建纵深防御体系非常有价值。
2.3 面向生产与集成的设计
从它的部署方式(Docker Compose)和提供的完整 RESTful API 就能看出,A.I.G 考虑了生产环境集成的需求。
- 无状态服务:扫描任务通过 API 提交,结果存储在数据库中,易于与现有的 CI/CD 流水线或安全运营中心(SOC)对接。
- 清晰的 API 文档:启动后自带 Swagger UI,所有接口一目了然,方便二次开发。
- ClawHub 技能市场集成:项目提供了
aig-scanner等技能,可以让你在 OpenClaw 等 AI 安全聊天机器人中直接调用 A.I.G 的扫描能力,将安全检测自然融入到智能体工作流中。
这种设计使得安全团队可以将其作为一项持续性的安全服务来运营,而不仅仅是安全研究员手中的一次性工具。
3. 实战部署与快速上手
理论说了这么多,是时候动手了。A.I.G 的部署非常友好,官方推荐的方式是使用 Docker Compose,这也是我最推荐的方式,能避免复杂的依赖环境问题。
3.1 环境准备与一键部署
系统要求:
- Docker 20.10 及以上版本
- 至少 4GB 可用内存(建议 8GB+ 以获得更好体验)
- 至少 10GB 磁盘空间
- Linux/macOS/Windows (WSL2) 操作系统
部署步骤:
克隆仓库:打开终端,执行以下命令获取最新代码。
git clone https://github.com/Tencent/AI-Infra-Guard.git cd AI-Infra-Guard一键启动:使用官方提供的预构建镜像快速启动,这是最快的方式。
# 如果你使用的是 Docker Compose V2+(新版本),命令是 `docker compose` # 如果你使用的是 Docker Compose V1(旧版本),命令是 `docker-compose` # 以下以 V2 为例,如果你不确定,可以尝试 `docker compose version` 查看 docker compose -f docker-compose.images.yml up -d这个命令会拉取 Redis、MySQL 和 A.I.G 服务器三个镜像,并以后台模式运行。
验证服务:等待几分钟,让容器完全启动。然后,在浏览器中访问
http://localhost:8088。如果看到 A.I.G 的登录界面(初始无密码,直接点击登录),恭喜你,部署成功!
重要安全提示:A.I.G 目前没有内置认证机制。这意味着一旦服务在公网可访问,任何人都可以操作。因此,绝对不要将其部署在公网 IP 或云服务器的公网端口上。仅用于内网安全测试或本地环境。
3.2 首次登录与界面概览
登录后,你会看到一个简洁的现代 Web 界面。左侧是导航栏,核心功能一目了然:
- 仪表盘:任务概览和统计。
- AI 基础设施安全扫描:对应 AI 基础设施漏洞扫描。
- MCP 服务器扫描:对应 MCP 与技能扫描。
- 越狱评估:对应模型越狱测试。
- 插件管理:查看和管理已加载的检测插件(规则)。
- 系统设置:配置模型 API 密钥、系统参数等。
界面是中文的,但可以在右上角切换到英文。整个 UI 响应迅速,任务提交和结果查看的流程设计得很直观。
4. 核心功能深度实操解析
接下来,我们针对每个核心功能,进行详细的实战操作,并分享一些从官方文档里可能找不到的细节和技巧。
4.1 AI 基础设施漏洞扫描:从发现到修复
这是我最先测试的功能。假设我在内网192.168.1.100上运行了一个 Ollama 服务(端口 11434),在192.168.1.101上运行了一个 vLLM 服务(端口 8000)。
操作步骤:
- 在界面点击“AI 基础设施安全扫描”。
- 在目标输入框中,可以输入单个地址,也可以批量输入。我输入:
你也可以输入 CIDR 格式(如http://192.168.1.100:11434 http://192.168.1.101:8000192.168.1.0/24)或范围格式(如192.168.1.1-192.168.1.50)进行网段扫描。 - 点击“开始扫描”。A.I.G 会为每个目标创建一个扫描任务。
结果解读: 扫描完成后,点击任务查看详情。报告会清晰列出:
- 目标信息:IP、端口、扫描时间。
- 指纹识别结果:识别出的组件(如
Ollama)、版本号(如0.5.0)、置信度。 - 漏洞列表:关联的 CVE 编号、严重等级(高危、中危、低危)、漏洞描述、CVE 详情链接(通常指向 NVD)以及修复建议。
实操心得与注意事项:
- 目标必须是“活”的服务:你需要确保目标 IP 和端口上的 AI 服务正在运行。A.I.G 通过发送 HTTP 请求来探测,如果服务未启动或防火墙阻拦,扫描会失败。
- 版本识别的准确性:A.I.G 的指纹识别依赖于特征匹配。对于某些自定义构建或高度修改的版本,可能无法识别或识别不准。报告中的“置信度”字段值得关注。
- 关于“误报”:漏洞匹配是基于版本号的。如果报告显示某个 CVE 影响版本范围是
<= 0.4.2,而你的版本是0.5.0,但该 CVE 的修复可能不彻底或在0.5.0中引入了新的问题,A.I.G 仍会提示。这需要安全人员结合 CVE 详情进行人工研判,工具提供的是线索,而非最终判决。 - 内网扫描效率:扫描大量目标时,建议合理设置并发数和超时时间(可在设置中调整),避免对网络和内网服务造成过大压力。
4.2 MCP 服务器与技能扫描:源码级安全审计
这个功能用于在集成第三方 MCP 服务器或 Agent Skill 之前进行安全审查。我以一个公开的 GitHub 仓库为例。
操作步骤:
- 点击“MCP 服务器扫描”。
- 有两种输入方式:
- 远程 URL:直接粘贴 GitHub 仓库地址,如
https://github.com/example/mcp-server-weather。 - 上传源码:如果代码不在公开仓库,可以打包成 ZIP 文件上传。
- 远程 URL:直接粘贴 GitHub 仓库地址,如
- 点击“开始扫描”。A.I.G 会下载代码(如果是 URL)并进行静态分析。
结果解读: 报告会按风险类别(如“命令注入”、“文件操作风险”、“网络访问风险”、“反序列化风险”等)列出问题。每个问题会说明:
- 风险类型:具体是哪一类安全风险。
- 位置:出问题的代码文件及行号。
- 代码片段:展示有问题的代码。
- 风险描述:解释为什么这段代码有风险。
- 修复建议:提供通用的安全编码建议。
避坑指南:
- 动态分析的局限性:目前的扫描以静态分析为主。对于高度依赖运行时行为的漏洞,静态分析可能无法发现。A.I.G 的“Agent 扫描”框架在一定程度上弥补了这一点,因为它会动态运行技能。
- 误报与白名单:一些安全的代码模式可能被规则误判。成熟的团队应该建立自己的“安全代码模式白名单”,并对 A.I.G 的扫描结果进行复核。
- 私有仓库扫描:如果需要扫描私有 Git 仓库,目前的上传源码方式是主要途径。未来或许会支持通过配置 Git Token 进行直接扫描。
4.3 越狱评估:量化模型的“抵抗力”
我想测试一下我们正在使用的某个云端大模型 API 的抗越狱能力。
前期准备:
- 在“系统设置” -> “模型配置”中,添加你的模型配置。需要填写:
- 模型名称:自定义,如
My-Cloud-LLM。 - API 类型:选择对应的提供商(如 OpenAI-兼容、DeepSeek 等)。
- Base URL:模型的 API 端点。
- API Key:你的访问密钥。
- 模型名称:具体模型名,如
gpt-4o-mini。
- 模型名称:自定义,如
执行评估:
- 点击“越狱评估”。
- 选择刚才配置的模型。
- 选择评估数据集。A.I.G 内置了多个数据集,如
AdvBench、Harmful Behaviors等,涵盖了不同攻击手法。 - 点击“开始评估”。系统会自动向模型发送大量精心设计的恶意提示词,并收集回复。
报告分析: 评估完成后,你会得到一份详细的报告,包括:
- 总体越狱成功率:模型被“攻破”的比例。
- 分类型成功率:在不同攻击类型(如角色扮演、代码执行、危险信息生成等)上的表现。
- 请求与响应详情:可以查看每一条测试用例的输入和模型的原始输出,便于分析模型在哪些具体问题上失守。
经验分享:
- 成本控制:越狱评估会发送大量请求,产生相应的 API 调用费用。在测试前,最好估算一下数据集的大小和成本。可以从一个小数据集开始。
- 结果解读:没有一个模型能达到 100% 免疫。评估的目的是了解模型的薄弱环节。例如,如果发现模型在“生成钓鱼邮件”这类攻击上抵抗力较弱,那么在业务应用中就需要额外加强对此类内容的过滤或监控。
- 持续测试:模型的更新和微调可能会影响其安全性。建议将越狱评估作为模型上线前和重大更新后的常规测试项目。
4.4 Agent 扫描:模拟真实攻击链
这是 A.I.G 相对较新的功能,用于评估一个完整的 AI Agent 应用。你需要提供一个可以交互的 Agent 端点(例如 Dify 或 Coze 创建的应用的 API)。
配置与扫描:
- 在对应的界面配置 Agent 的访问方式(API URL、认证信息等)。
- 定义扫描策略。A.I.G 的 Agent 扫描框架会模拟多轮对话,尝试利用上下文学习、提示词注入、目标偏移等技巧,诱导 Agent 执行非预期的操作或泄露敏感信息。
- 启动扫描并观察交互过程。
核心价值: 这个功能的价值在于它不是针对单个组件,而是针对由多个组件(LLM、工具、记忆、流程)构成的复杂系统进行测试。它能够发现那些在单元测试中无法暴露的、跨组件的逻辑安全漏洞。例如,一个看似无害的“查询天气”技能,可能因为提示词被注入,而被串联起来执行“读取文件并外发”的恶意操作。
5. 高级技巧与集成方案
当你熟悉了基础操作后,可以探索一些更高级的用法,让 A.I.G 更好地融入你的工作流。
5.1 利用 API 实现自动化扫描
A.I.G 的所有功能都提供了对应的 REST API。这意味着你可以将其集成到 CI/CD 流水线中。
- 场景:每次部署新的 AI 服务(如升级了 vLLM 版本)后,自动触发一次基础设施漏洞扫描。
- 方法:在 Jenkins、GitLab CI 或 GitHub Actions 中,添加一个步骤,调用 A.I.G 的
POST /api/v1/scan/infra接口,传入新服务的地址。根据返回的扫描结果判断是否有高危漏洞,从而决定是否阻断部署流程。
# 一个简单的 curl 示例,用于提交基础设施扫描任务 curl -X POST "http://your-aig-server:8088/api/v1/scan/infra" \ -H "Content-Type: application/json" \ -d '{ "targets": ["http://new-service:8080"], "options": {"speed": "fast"} }'然后,你可以通过GET /api/v1/task/{task_id}轮询或使用 Webhook 来获取扫描结果。
5.2 通过 ClawHub 技能进行交互式扫描
对于安全分析师来说,在聊天界面中直接进行安全调查可能更自然。A.I.G 在 ClawHub 技能市场上发布了aig-scanner等技能。
- 在你的 OpenClaw 或兼容的 AI 安全助手中,安装
aig-scanner技能。 - 配置技能,指向你部署的 A.I.G 服务器地址 (
AIG_BASE_URL)。 - 之后,你就可以在聊天中直接输入指令,如“扫描一下
http://192.168.1.200:7860这个服务”,AI 助手会调用 A.I.G 完成扫描并将结果返回给你。这极大地提升了安全运营的效率。
5.3 规则库的维护与自定义
A.I.G 的强大源于其规则库。作为高级用户或企业安全团队,你应该定期更新规则库。
- 更新规则:项目更新时,通常会更新
data/目录下的规则文件。你可以通过git pull拉取最新代码,然后重启 A.I.G 服务来加载新规则。 - 自定义规则:参考
data/fingerprints/目录下的 YAML 文件格式,为你内部使用的组件编写指纹规则。参考data/vuln/下的格式,添加内部发现的或未公开的漏洞信息。这能让你企业的安全扫描能力始终保持领先。
6. 常见问题与故障排查实录
在实际使用中,我遇到了一些典型问题,这里汇总一下解决方案。
Q1: 启动 Docker 容器后,访问localhost:8088报错或无法连接。
- 检查容器状态:运行
docker compose -f docker-compose.images.yml ps,确保所有服务(server,redis,mysql)的状态都是Up。 - 查看日志:运行
docker compose -f docker-compose.images.yml logs server查看 A.I.G 服务器容器的日志,通常能发现具体的错误原因,比如数据库连接失败。 - 端口冲突:确保本地 8088 端口没有被其他程序占用。可以修改
docker-compose.images.yml文件中的端口映射,例如将8088:8088改为8080:8088,然后通过localhost:8080访问。
Q2: 基础设施扫描任务长时间处于“进行中”或失败。
- 网络可达性:首先确认从运行 A.I.G 的宿主机,能否
ping通或curl到目标服务。如果是扫描内网其他机器,确保网络互通。 - 目标服务响应:目标 AI 服务可能因为负载过高或配置问题,没有及时响应 A.I.G 的探测请求。尝试手动用浏览器或
curl访问一下目标服务的健康检查端点(如 Ollama 的/api/tags)。 - 调整超时设置:在扫描配置或 API 调用时,适当增加
timeout参数的值。
Q3: MCP 扫描对某个仓库失败,提示“Clone error”。
- 仓库权限:如果你扫描的是私有仓库,A.I.G 无法直接克隆。请使用“上传源码”功能。
- 网络问题:GitHub 访问可能不稳定。可以尝试重试,或者将仓库下载到本地再上传。
- 仓库过大:过大的仓库可能导致克隆超时。目前对仓库大小有限制,过大的仓库建议拆分或只上传核心部分进行扫描。
Q4: 越狱评估的请求全部失败,模型没有返回内容。
- API 配置错误:仔细检查“模型配置”中的 Base URL 和 API Key 是否正确。特别是 Base URL,OpenAI 兼容和原生 OpenAI 的端点路径可能不同。
- 模型配额或限流:确认你的 API Key 有足够的余额或额度,并且没有触发速率限制。
- 查看详细日志:在越狱评估的任务详情中,通常会包含每个请求的详细日志,里面可能有模型返回的错误信息,这是排查的关键。
Q5: 如何更新 A.I.G 到最新版本?由于使用 Docker 部署,更新非常简单:
# 进入项目目录 cd AI-Infra-Guard # 拉取最新的代码和镜像 git pull docker compose -f docker-compose.images.yml pull # 重启服务 docker compose -f docker-compose.images.yml up -d重启后,新的规则和功能就会生效。
经过一段时间的深入使用,我认为 A.I.G 是当前 AI 安全领域一个非常务实且强大的工具。它没有追求花哨的概念,而是扎实地解决了 AI 系统在基础设施、组件、应用和模型层面临的核心安全问题。其开源和插件化的特性,使得它具备了强大的生命力和适应性。对于任何正在积极拥抱 AI 技术的团队而言,将 A.I.G 纳入安全开发流程(SDL)和安全运营体系,是一项具有高性价比的投资。它不能替代专业的安全人员,但能极大地提升安全工作的效率和覆盖面,让开发者能更早、更全面地发现并修复 AI 系统中的安全隐患。
