项目简介
ZAP MCP 服务器是一个基于 Model Context Protocol (MCP) 实现的后端服务,旨在将流行的开源Web应用安全测试工具OWASP ZAP的功能暴露给AI助手和支持MCP协议的客户端。它允许AI通过标准化的工具调用接口,执行各种安全扫描(如主动扫描、被动扫描、AJAX扫描、完整扫描),获取实时状态和详细报告,从而在开发生命周期的早期阶段(“左移安全”)集成自动化安全测试。
主要功能点
- AI驱动安全测试: 允许AI助手通过调用预定义的工具来执行安全扫描,并解析扫描结果。
- 多种扫描类型: 支持OWASP ZAP的主动扫描、被动扫描、AJAX Spider和完整扫描。
- 异步执行: 安全扫描在后台异步运行,客户端可以获取实时状态更新。
- 容器化部署: 提供Docker/Podman支持,简化部署和管理。
- 自动化URL转换: 自动将容器环境中的'localhost'或'127.0.0.1'目标URL转换为宿主机网关地址,方便本地开发环境测试。
- 详细报告: 生成包含风险评分和漏洞名称的详细安全报告。
- 会话管理: 管理ZAP扫描会话,支持创建新会话等。
安装步骤
ZAP MCP 服务器提供了灵活的安装和部署方式,包括本地安装和推荐的容器化部署。
- 克隆仓库
git clone https://github.com/LisBerndt/zap-mcp-server.git cd zap-mcp-server - 安装OWASP ZAP 从 OWASP ZAP 下载页面 下载并安装ZAP。安装完成后,请确保ZAP的可执行文件('zap.bat' 在 Windows 上,'zap.sh' 在 Linux/Mac 上)可通过系统的PATH环境变量访问。您可以通过运行 'where zap.bat' (Windows) 或 'which zap.sh' (Linux/Mac) 来验证。
- 安装Python依赖
pip install -r requirements.txt - 启动服务器
- 本地运行 (推荐):
这是最简单的启动方式,服务器会自动检查并启动OWASP ZAP(如果未运行)。
python -m zap_custom_mcp - Docker/Podman (推荐,最简便):
容器化部署提供隔离环境,推荐用于生产环境或简化依赖管理。
Linux/Mac 用户:
Windows 用户:./build.sh ./start.sh
无论哪种方式,服务器启动大约需要 90秒 来完成ZAP的初始化和会话创建。build.bat start.bat
- 本地运行 (推荐):
这是最简单的启动方式,服务器会自动检查并启动OWASP ZAP(如果未运行)。
服务器配置
MCP客户端需要知道ZAP MCP服务器的访问地址才能建立连接。ZAP MCP服务器通过HTTP协议提供JSON-RPC接口。以下是一个通用的MCP客户端配置示例,您可以根据实际的MCP客户端(如Cursor IDE)进行调整:
{ "mcpServers": { "zap-mcp-scanner": { "url": "http://localhost:8082/mcp", "description": "连接到 ZAP MCP 服务器,用于执行自动化Web安全扫描。", "displayName": "ZAP安全扫描器", "capabilities": { "tools": [ "start_active_scan", "start_complete_scan", "start_passive_scan", "start_ajax_scan", "get_scan_status", "cancel_scan", "list_scans", "create_new_session", "start_heartbeat" ] } } } }
- url: 这是MCP服务器的访问地址。默认情况下,ZAP MCP 服务器在 'http://127.0.0.1:8082/mcp' 上监听。如果部署在Docker/Podman容器中,或者部署在不同的主机上,请根据实际情况修改 'localhost' 和端口。例如,如果部署在远程服务器 'your_server_ip' 上,并且防火墙允许端口 '8082' 访问,则 'url' 可能为 'http://your_server_ip:8082/mcp'。
- description: 对此MCP服务器功能的简要描述,帮助MCP客户端用户理解其用途。
- displayName: 在MCP客户端界面中显示的服务名称,便于用户识别。
- capabilities.tools: 列出该MCP服务器向客户端提供的所有工具的名称。LLM客户端可以根据此列表了解服务器可执行的操作,并智能地调用相应的工具。
基本使用方法
一旦ZAP MCP服务器成功启动并被您的MCP客户端识别,AI助手就可以通过调用其暴露的工具来执行安全扫描。
-
启动完整扫描: 您可以通过AI助手指令,让它调用 'start_complete_scan' 工具,对指定URL执行全面的安全测试。 例如,您可以向AI助手提问:“请对我的本地开发中的Web应用 'http://localhost:3000' 执行一次完整的安全扫描,并包含详细的漏洞发现。” AI助手会将这个请求转换为一个MCP工具调用,并发送给ZAP MCP服务器。
-
获取扫描状态: 如果您想了解正在进行的扫描的进度,可以指示AI助手调用 'get_scan_status' 工具,并提供之前扫描启动时返回的唯一 'scan_id'。 例如,您可以向AI助手提问:“我之前启动了一个扫描,ID 是 'abc12345',请告诉我它的最新状态。” AI助手会根据这个指令调用 'get_scan_status' 工具,并返回扫描的实时进度、当前阶段、已用时间等信息。
-
执行被动扫描: 对于不需要对目标应用进行攻击性测试的场景,可以指示AI助手调用 'start_passive_scan' 工具进行快速、无侵扰的被动安全分析。 例如,您可以向AI助手提问:“请对 'https://juice-shop.herokuapp.com/' 执行一次快速的被动安全扫描。”
通过这些工具调用,AI助手能够与OWASP ZAP深度集成,实现智能化的Web应用安全测试和漏洞管理。
信息
分类
开发者工具