ZAP
扫描工具 | Web |
Mobile |
Local |
API |
Extension |
Serverless |
操作说明 |
---|---|---|---|---|---|---|---|
OWASP® Zed Attack Proxy (ZAP) |
使用 OWASP ZAP ZAP Docker 容器对您的应用执行自动动态扫描 (DAST)。预定义的配置文件中已包含所有必要的 CWE。您只需将其添加到环境和 Docker 运行命令中即可。 |
如需了解每种类型的定义,请点击此处
按照以下步骤可对 Web、移动应用或内部应用进行全面扫描:
-
系统将使用 ZAP Docker 映像运行 DAST 和 API 扫描。对于网站、移动应用或内部应用,应在 prod-1 或预演环境中运行完整的 ZAP 扫描。
-
下载 zap-casa-config.conf 配置文件,然后前往其目录。
-
生成要针对其运行扫描的上下文文件。如需了解详情,请参阅下面的身份验证说明。
-
运行以下命令:
docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-full-scan.py -t https://example.com -P 8080 -c zap-casa-config.conf -x results-full.xml -n example.context -U username
-
输出将保存在 XML 文件中(附件中提供了示例:zap-results-full.xml)
您可以按照以下步骤执行 API 扫描:
-
对于 API 扫描,请使用 zap-casa-api-config.conf 配置文件。
-
前往其目录并运行以下命令
docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-api-scan.py -t https://example.com -f openapi-P 8080 -c zap-casa-api-config.conf -x results-full.xml
-
输出将保存在 XML 文件中(示例见附件: zap-results-api.xml)
身份验证
应在进行身份验证的情况下执行 ZAP 扫描,以了解用户数据的存储和访问位置。这需要在运行扫描之前进行配置。ZAP Docker 映像允许使用与身份验证相关的两个参数:
-n context_file |
在扫描目标之前加载的上下文文件 |
-U 用户 |
用于进行经过身份验证的扫描的用户名。用户必须在给定上下文文件中定义。 |
如需设置这些参数,必须创建上下文文件。最简单的方法是通过 ZAP 桌面界面执行此操作。
-
设置身份验证机制。ZAP 目前支持五种身份验证方法:
-
手动身份验证
-
基于表单的身份验证
-
HTTP/NTLM 身份验证
-
基于脚本的身份验证
-
基于 JSON 的身份验证
-
- 定义 auth 参数。这通常包括登录网址和负载格式(用户名和密码)。必需的参数因所使用的身份验证方法而异。
- 添加有效的用户名和密码。如果应用根据角色公开不同的功能,请创建多个用户。
配置完这些设置后,您可以将上下文导出为文件,以供扫描引用。
请务必将上下文保存在易于引用的位置,因为您需要将文件路径作为扫描命令的参数包含在内。 现在,您可以使用上下文中指定的用户登录信息运行经过身份验证的扫描。 示例:
docker run -p 8080:8080 -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap-full-scan.py -t https://example.com -P 8080 -c zap-casa-config.conf -x results-full.xml -n /Users/DemoUser/Documents/Context.context -U test@example.com