动态扫描流程

ZAP

扫描工具 Web Mobile Local API Extension Serverless 操作说明
OWASP® Zed Attack Proxy (ZAP)

使用 OWASP ZAP ZAP Docker 容器对您的应用执行自动动态扫描 (DAST)。预定义的配置文件中已包含所有必要的 CWE。您只需将其添加到环境和 Docker 运行命令中即可。

如需了解每种类型的定义,请点击此处 应用类型

按照以下步骤可对 Web、移动应用或内部应用进行全面扫描:

  1. 系统将使用 ZAP Docker 映像运行 DAST 和 API 扫描。对于网站、移动应用或内部应用,应在 prod-1 或预演环境中运行完整的 ZAP 扫描。 

  2. 下载 zap-casa-config.conf 配置文件,然后前往其目录。 

  1. 生成要针对其运行扫描的上下文文件。如需了解详情,请参阅下面的身份验证说明。

  1. 运行以下命令:

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
  1. 输出将保存在 XML 文件中(附件中提供了示例:zap-results-full.xml

您可以按照以下步骤执行 API 扫描:

  1. 对于 API 扫描,请使用 zap-casa-api-config.conf 配置文件。 

  1. 前往其目录并运行以下命令

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
  1. 输出将保存在 XML 文件中(示例见附件: zap-results-api.xml

身份验证

应在进行身份验证的情况下执行 ZAP 扫描,以了解用户数据的存储和访问位置。这需要在运行扫描之前进行配置。ZAP Docker 映像允许使用与身份验证相关的两个参数:

-n context_file

在扫描目标之前加载的上下文文件

-U 用户

用于进行经过身份验证的扫描的用户名。用户必须在给定上下文文件中定义。

如需设置这些参数,必须创建上下文文件。最简单的方法是通过 ZAP 桌面界面执行此操作。

zap 上下文
  1. 设置身份验证机制。ZAP 目前支持五种身份验证方法:

    • 手动身份验证

    • 基于表单的身份验证

    • HTTP/NTLM 身份验证

    • 基于脚本的身份验证

    • 基于 JSON 的身份验证

zap 身份验证
  1. 定义 auth 参数。这通常包括登录网址和负载格式(用户名和密码)。必需的参数因所使用的身份验证方法而异。
Zap 配置身份验证
  1. 添加有效的用户名和密码。如果应用根据角色公开不同的功能,请创建多个用户。
zap 配置用户

配置完这些设置后,您可以将上下文导出为文件,以供扫描引用。

zap Export Context

请务必将上下文保存在易于引用的位置,因为您需要将文件路径作为扫描命令的参数包含在内。 现在,您可以使用上下文中指定的用户登录信息运行经过身份验证的扫描。 示例:

zap 创建用户
  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