# AI-Infra-Guard **Repository Path**: wheatj/AI-Infra-Guard ## Basic Information - **Project Name**: AI-Infra-Guard - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-29 - **Last Updated**: 2025-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🛡️ AI Infra Guard 腾讯朱雀实验室推出的一款全面、智能、易用且轻量化的AI基础设施漏洞发现与MCP Server安全风险扫描工具。 ## 目录 - [🚀 快速预览](#-快速预览) - [✨ 项目亮点](#-项目亮点) - [📋 功能说明](#-功能说明) - [🤝 MCP安全认证与合作](#mcp安全认证与合作) - [📦 安装与使用](#-安装与使用) - [安装](#安装) - [命令行结构](#命令行结构) - [使用方法](#使用方法) - [WebUI 可视化操作](#webui-可视化操作) - [安全漏洞扫描 (scan)](#安全漏洞扫描-scan) - [MCP Server扫描 (mcp)](#mcp-server扫描-mcp) - [📊 MCP安全风险覆盖](#-mcp安全风险覆盖) - [📊 AI组件漏洞覆盖](#-ai组件漏洞覆盖) - [🔍 AI组件指纹匹配规则](#-ai组件指纹匹配规则) - [示例:Gradio 指纹规则](#示例gradio-指纹规则) - [指纹匹配语法](#指纹匹配语法) - [🤝 贡献](#-贡献) - [📄 许可证](#-许可证) ## 🚀 快速预览 **MCP Server代码检测**
MCP Server 代码检测预览
**基础设施检测**
基础设施检测预览
## ✨ 项目亮点 * **全面的安全检测能力** * 支持9类MCP常见安全风险检测,并持续更新。 * 支持28种AI组件框架识别,涵盖200+漏洞指纹。 * 支持私有化部署,方便集成到内部安全扫描流水线。 * **智能易用的功能体验** * MCP安全检测由AI Agent驱动,一键智能分析。 * AI组件漏洞扫描支持自定义指纹和漏洞YAML规则。 * 开箱即用,无需复杂配置,提供Web界面可视化操作。 * **轻量级设计** * 核心组件简洁高效。 * 二进制体积小,资源占用低。 * 跨平台支持(Windows/MacOS/Linux)。 ## 🤝 MCP安全认证与合作 AI Infra Guard 致力于提供专业的MCP安全检测与安全认证解决方案。我们欢迎MCP市场、开发者平台与托管商将我们的工具集成到MCP Server上架前的安全扫描流程中,并在MCP市场中展示扫描结果,共同打造更安全的MCP生态。 如果您有兴趣与我们合作,欢迎通过 zhuque [at] tencent.com 联系腾讯朱雀实验室。 我们也欢迎您在MCP社区中分享您的实践落地案例。 ## 📋 功能说明 AI Infra Guard 包含三大核心模块: 1. **AI组件安全扫描 (`scan`)**: 在命令行中检测AI基础设施中Web类组件的已知安全漏洞。 2. **MCP安全检测 (`mcp`)**: 在命令行中基于AI Agent检测MCP Server代码的安全风险。 3. **WebUI模式 (`webserver`)**: 启用Web可视化操作界面。 ## 📦 安装与使用 ### 安装 从 [Releases](https://github.com/Tencent/AI-Infra-Guard/releases) 页面下载适合您操作系统的最新版本。 ### 命令行结构 AI Infra Guard 采用子命令结构: ```bash ./ai-infra-guard <子命令> [选项] ``` 主要子命令: * `scan`: 执行AI组件安全漏洞扫描。 * `mcp`: 执行MCP Server代码安全检测。 * `webserver`: 启动Web界面服务器。 ### 使用方法 #### WebUI 可视化操作 启动Web服务器,默认监听 `127.0.0.1:8088`: ```bash ./ai-infra-guard webserver ``` 指定监听地址和端口: ```bash ./ai-infra-guard webserver --ws-addr : ``` *例如: `./ai-infra-guard webserver --ws-addr 0.0.0.0:9090`* #### AI组件安全漏洞扫描 (`scan`) **本地一键检测** (扫描本地常见服务端口): ```bash ./ai-infra-guard scan --localscan ``` **扫描单个目标**: ```bash ./ai-infra-guard scan --target ``` *例如: `./ai-infra-guard scan --target example.com`* **扫描多个目标**: ```bash ./ai-infra-guard scan --target --target ``` *例如: `./ai-infra-guard scan --target 192.168.1.1 --target example.org`* **从文件读取目标**: ```bash ./ai-infra-guard scan --file target.txt ``` *`target.txt` 文件每行包含一个目标URL或IP地址。* **查看 `scan` 子命令完整参数**: ```bash ./ai-infra-guard scan --help ``` **`scan` 子命令参数说明**: ``` Usage: ai-infra-guard scan [flags] Flags: --ai 启用AI分析 (需要配置LLM Token) --check-vul 验证漏洞模板有效性 --deepseek-token string DeepSeek API令牌 (用于 --ai 功能) -f, --file string 包含目标URL的文件路径 --fps string 指纹模板文件或目录 (默认: "data/fingerprints") --header stringArray 自定义HTTP请求头 (可多次指定, 格式: "Key:Value") -h, --help 显示帮助信息 --hunyuan-token string 混元API令牌 (用于 --ai 功能) --lang string 响应语言 (zh/en, 默认: "zh") --limit int 每秒最大请求数 (默认: 200) --list-vul 列出所有可用的漏洞模板 --localscan 执行本地一键扫描 -o, --output string 结果输出文件路径 (支持 .txt, .json, .csv 格式) --proxy-url string HTTP/SOCKS5 代理服务器URL -t, --target stringArray 目标URL (可多次指定) --timeout int HTTP请求超时时间(秒) (默认: 5) --vul string 漏洞数据库目录 (默认: "data/vuln") ``` #### MCP Server安全风险检测 (`mcp`) 此功能基于AI Agent自动检测MCP Server代码中的安全问题。 **基本使用** (默认使用 OpenAI API,需提供 Token): ```bash ./ai-infra-guard mcp --code <源代码路径> --model <模型名称> --token [--base-url ] ``` *例如: `./ai-infra-guard mcp --code /path/to/mcp/server --model gpt-4 --token sk-xxxxxx`* **指定输出格式**: ```bash ./ai-infra-guard mcp --code <源代码路径> --model <模型名称> --token --csv results.csv --json results.json ``` **查看 `mcp` 子命令完整参数**: ```bash ./ai-infra-guard mcp --help ``` **`mcp` 子命令参数说明**: ``` Usage: ai-infra-guard mcp [flags] Flags: --base-url string LLM API基础URL (可选, 覆盖默认 OpenAI URL) --code string 待扫描的MCP Server源代码路径 (必需) --csv string 将结果输出为 CSV 文件路径 -h, --help 显示帮助信息 --json string 将结果输出为 JSON 文件路径 --log string 日志文件保存路径 --model string AI模型名称 (必需, 例如: gpt-4, gpt-3.5-turbo) --plugins string 指定启用的插件列表 (英文逗号分隔, 可选) --token string LLM API令牌 (必需) ``` ## 📊 MCP安全风险覆盖 AI Infra Guard 可检测以下常见的MCP安全风险,并持续更新: | 风险名称 | 风险说明 | |----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 工具投毒攻击 | 恶意MCP Server通过工具描述注入隐藏指令,操纵AI Agent执行未授权操作(例如窃取数据、执行恶意行为)。 | | 地毯式骗局 | 恶意MCP Server在初期表现正常,但在用户批准或运行若干次后改变行为,执行恶意指令,导致难以察觉的恶意行为。 | | 工具覆盖攻击 | 恶意MCP Server通过隐藏指令重新定义其他可信MCP Server工具的行为(例如修改邮件接收者、执行额外操作)。 | | 恶意代码/命令执行 | MCP Server若支持直接执行代码或命令且缺乏沙箱隔离,可能被攻击者利用在服务器或用户本地执行恶意操作。 | | 数据窃取 | 恶意MCP Server诱导AI Agent读取并传输敏感数据(例如API密钥、SSH密钥),或直接将用户授权输入的数据发送至外部服务器。 | | 未授权访问/鉴权不当 | MCP Server缺乏有效授权认证或存在缺陷,导致攻击者可绕过验证访问受限资源或用户数据。 | | 间接提示词注入 | MCP Server将包含恶意指令的外部数据(例如网页、文档)输出给AI Agent,可能影响AI Agent的决策和行为。 | | 包名混淆与抢注攻击 | 恶意MCP Server使用与可信服务相似的名称、工具名或描述,诱导AI Agent错误调用;或第三方抢注官方MCP Server名称,植入后门。 | | 明文存储密钥 | MCP Server在代码或配置文件中硬编码或明文存储敏感密钥,易导致泄露风险。 | ## 📊 AI组件漏洞覆盖 AI Infra Guard 支持检测多种AI相关组件的已知漏洞: | 组件名称 | 漏洞数量 | |--------------------------|----------| | anythingllm | 8 | | langchain | 33 | | Chuanhugpt | 0 | | clickhouse | 22 | | comfy_mtb | 1 | | ComfyUI-Prompt-Preview | 1 | | ComfyUI-Custom-Scripts | 1 | | comfyui | 1 | | dify | 11 | | fastchat-webui | 0 | | fastchat | 1 | | feast | 0 | | gradio | 42 | | jupyterlab | 6 | | jupyter-notebook | 1 | | jupyter-server | 13 | | kubeflow | 4 | | kubepi | 5 | | llamafactory | 1 | | llmstudio | 0 | | ollama | 7 | | open-webui | 8 | | pyload-ng | 18 | | qanything | 2 | | ragflow | 2 | | ray | 4 | | tensorboard | 0 | | vllm | 4 | | xinference | 0 | | triton-inference-server | 7 | | **总计** | **200+** | *注:漏洞库持续更新中。* ## 🔍 AI组件指纹匹配规则 AI Infra Guard 使用基于YAML的规则进行Web指纹识别和漏洞匹配。 * **指纹规则**: 存储在 `data/fingerprints` 目录。 * **漏洞规则**: 存储在 `data/vuln` 目录。 ### 示例:Gradio 指纹规则 (`data/fingerprints/gradio.yaml`) ```yaml info: name: gradio author: Security Team severity: info metadata: product: gradio vendor: gradio http: - method: GET path: '/' matchers: # 匹配响应体中是否包含Gradio特有的JavaScript配置或元素 - body="