AI-Infra-Guard

应用程序

Tencent/AI-Infra-Guard

AI 红队平台,全面检测智能体、技能、MCP 与基础设施安全风险。

项目简介

全栈 AI 红队平台,集智能体扫描、技能扫描、MCP 扫描、AI 基础设施漏洞扫描与大模型逃逸评估于一体,提供全面智能的 AI 安全自检能力,支持 Web 界面与独立 CLI 工具。

README 预览

\n    \n\n\n  📖 Documentation  | \n  🌐 🇨🇳 中文 · 🇯🇵 日本語 · 🇪🇸 Español · 🇩🇪 Deutsch · 🇫🇷 Français · 🇰🇷 한국어 · 🇧🇷 Português · 🇷🇺 Русский\n\n\n    \n      \n    \n    \n        \n    \n    \n        \n    \n    \n        \n    \n    \n       \n    \n\n\n    \n       \n    \n    \n       \n    \n    \n       \n    \n\n\n   \n   \n  \n\n\n\n\n\n    🚀 AI Red Teaming Platform by Tencent Zhuque Lab\n\n\nA.I.G (AI-Infra-Guard) integrates capabilities such as ClawScan(OpenClaw Security Scan), Agent Scan,AI infra vulnerability scan, MCP Server & Agent Skills scan, and Jailbreak Evaluation, aiming to provide users with the most comprehensive, intelligent, and user-friendly solution for AI security risk self-examination.\n\n\n  We are committed to making A.I.G(AI-Infra-Guard) the industry-leading AI red teaming platform. More stars help this project reach a wider audience, attracting more developers to contribute, which accelerates iteration and improvement. Your star is crucial to us!\n\n\n  \n      \n  \n\n\n\n\n## 📋 User Feedback Survey\n\nHelp us improve A.I.G! Please take 3-5 minutes to fill out our [User Feedback Survey](https://doc.weixin.qq.com/forms/AJEAIQdfAAoAFkA0QbdAFwCNcKSO0BFLf). Users who provide high-quality feedback and leave a valid email address will receive an exclusive Tencent souvenir gift.\n\n\n\n## 🚀 What's New\n\n- **2026-08-17** · [v4.5.2](https://github.com/Tencent/AI-Infra-Guard/releases/tag/v4.5.2) — Skill-Scan: .pyc bytecode bypass detection + charset smuggling defense; MCP-Scan: RCE prevention via tool whitelisting in dynamic mode; new SkillJack research project; vuln library expanded to 2000+ CVE rules.\n- **2026-07-30** · [v4.5.1](https://github.com/Tencent/AI-Infra-Guard/releases/tag/v4.5.1) — Jailbreak Evaluation: 4 multi-turn jailbreak attacks (Many-Shot, PAIR, GOAT, ActorAttack); Agent-Scan: 5 new OWASP skills + web-exfiltration detection (10 skills total); MCP-Scan: 4 new security rules\n- **2026-07-27** 

常见问题 (5)

故障排除
在 AI-Infra-Guard 中运行 `go test ./...` 时,如何修复 'undefined: TestDemoAgent, BaseUrl, Token' 构建错误以及 websocket 英文/中文断言失败的问题?

将 main 更新为包含 PR #674(提交 51d63e2)和 PR #677(提交 ff82482),然后运行:

git pull --ff-only
go build ./...
go test ./... -count=1

这些更改修复了 common/agent/tasks_test.go 中过时的引用(TestDemoAgent、BaseUrl、Token、Model),使 common/websocket 中的五个断言与返回的英文错误消息保持一致,并让依赖环境的测试从仓库根目录解析路径,或在 Chrome、本地 127.0.0.1:8265 服务或 /mcp-server 不可用时跳过。PR #677 还添加了 .github/workflows/go-test.yml,因此 CI 现在会在推送到 main 以及发起 pull request 时运行 go build ./... 和 go test ./... -count=1。

如果无法立即更新,请在 common/agent/tasks_test.go 中定义或移除过时的测试符号,并更新 websocket 测试的预期值,使其与 API 实际响应的语言一致,而不是将英文响应与中文预期字符串混用。

来源 Issue #672
故障排除
如何修复 aig-skill-scan 的安全绕过问题,即隐藏在 .venv/node_modules 目录中的恶意代码未被检测到?

该漏洞的产生原因是 aig-skill-scan 出于性能考虑,无条件地跳过对 _TREE_SKIP_DIRS 中定义的目录(包括 __pycache__、.git、node_modules、.venv、venv、dist、build、.next、.nuxt)的所有扫描。攻击者可以将恶意脚本放置在这些目录中,并从合法的 Skill 代码中调用它们(例如 subprocess.run(["python", ".venv/hidden.py"])),从而逃避检测。

修复步骤:
1. 不要将 _TREE_SKIP_DIRS 中的目录视为完全可信。
2. 保留对这些目录跳过完整递归扫描的默认行为,以维持性能。
3. 添加针对性的检测逻辑:当扫描器识别到 Skill 代码执行、导入或加载来自被跳过目录的文件时,对被引用的目标文件运行按需安全扫描,或立即触发风险告警。

来源 Issue #631
故障排除
如何修复 AI-Infra-Guard 未扫描 __pycache__ 和 .pyc 文件,并将恶意技能误报为 SAFE 的问题?

此问题影响 AI-Infra-Guard v4.5.1。dir_tree 和静态 pre_scan 扫描会排除 __pycache__ 以及 .pyc/.pyo/.pyd 文件,因此 CPython 字节码可以在导入时执行,同时对扫描器保持不可见。

首选修复方案:升级到包含 PR fix(skill-scan): stop hiding compiled bytecode from audit surface 的版本。该修复会将编译后的字节码同时纳入 LLM 目录树和静态扫描。

如果必须自行修补 v4.5.1:
1. 编辑 skill_scan/tools/dir/dir_actions.py。
2. 从 _IGNORED_DIRS 中移除 '__pycache__'。
3. 从 _IGNORED_EXTS 中移除 '.pyc'、'.pyo' 和 '.pyd'。
4. 对静态 pre_scan 的文件枚举应用相同的纳入更改。
5. 重启扫描器并重新扫描。

针对不可信 skill 的即时缓解措施:

find skill -type d -name __pycache__ -print
find skill -type f \( -name '*.pyc' -o -name '*.pyo' -o -name '*.pyd' \) -print

手动检查或反编译发现的字节码。拒绝包含意外编译文件的 skill。要在安装前移除非原生字节码:
find skill -type d -name __pycache__ -prune -exec rm -rf {} +
find skill -type f \( -name '*.pyc' -o -name '*.pyo' \) -delete

请将 .pyd 文件视为原生 Windows 可执行代码,并单独审查。在未打补丁的扫描器上获得 SAFE 判定和 100/100 评分,并不能证明某个 skill 是安全的。

来源 Issue #531
故障排除
为什么 AI-Infra-Guard MCP 动态扫描只显示 MCP 工具结果的第一个内容块?

这是 MCPTools.call_remote_tool(mcp_scan/utils/mcp_tools.py)中的一个 bug,它只读取 CallToolResult.content[0],丢弃了后续的内容块、structuredContent、isError 以及结果/块的元数据。该问题已由 PR #727 修复(合并为 commit 7b62e47110):请将 AI-Infra-Guard 更新到包含该 commit 的版本。修复后,call_remote_tool 会序列化完整的 CallToolResult——包括所有内容块、结构化内容、错误状态和元数据——因此仅含结构化内容的响应和多块结果都能传达到扫描代理。针对简单单块结果的纯文本快速路径仍然保留,并且在 20,000 字符的历史记录预览中,可读文本优先于不透明的媒体内容,从而避免后续证据被隐藏。

来源 Issue #726
故障排除
为什么 LLM 安全评估在并发数设置为 1 且 QPM 限制为 20 的情况下,每分钟仍发送 80+ 个请求?为什么停止任务后请求仍在继续?

出现此问题的原因是:当目标模型返回 QPM/429 错误时,prompt evaluation 不会应用感知速率限制的退避(backoff)机制。失败的调用可能触发快速重试或额外的任务派发,从而超出配置的并发数和配额。任务关闭时也不会立即终止整个 worker 进程组,因此进行中或排队中的请求仍会继续短暂执行。

修复方法:升级到包含 PR fix(prompt-eval): rate-limit aware backoff, circuit breaker and process-group termination(修复 #633)的版本,然后重启评估服务/worker。该修复增加了 QPM/429 退避机制,在模型触发速率限制时打开熔断器(circuit breaker),并在任务停止时终止进程组。

临时解决方案:在客户端强制执行低于模型 QPM 配额的速率限制,禁用立即重试或对 QPM 错误使用指数退避(exponential backoff),并在取消任务后手动停止/重启 worker 进程,以清除剩余请求。

来源 Issue #633