{{< history >}}
- 基于代理分析器的 DAST 在极狐GitLab 16.6 中被弃用,并在 17.0 中移除。
{{< /history >}}
DAST 版本 5 用基于浏览器的分析器取代了基于代理的分析器。本文档旨在为您从基于代理的分析器迁移到 DAST 版本 5 提供指导。
如果您同时满足以下所有条件,请按照本迁移指南操作:
- 您在 CI/CD 流水线中使用极狐GitLab DAST 运行 DAST 扫描。
- DAST CI/CD 作业通过包含
DAST.gitlab-ci.yml
或DAST.latest.gitlab-ci.yml
这两个 DAST 模板之一进行配置。 - CI/CD 变量
DAST_VERSION
未设置,或设置为4
或更低。 - CI/CD 变量
DAST_BROWSER_SCAN
未设置,或设置为false
。
请阅读以下章节并根据建议进行更改,以迁移到 DAST 版本 5。
DAST 分析器版本
DAST 有两个主要版本:4 和 5。 从 极狐GitLab 17.0 开始,DAST 模板 DAST.gitlab-ci.yml
和 DAST.latest.gitlab-ci.yml
默认使用 DAST 版本 5。 您可以继续使用 DAST 版本 4,但您应该仅在迁移到 DAST 版本 5 期间作为临时措施使用。有关详细信息,请参阅继续使用基于代理的分析器。
每个 DAST 主要版本默认使用不同的分析器:
- DAST 版本 4 使用基于代理的分析器。
- DAST 版本 5 使用基于浏览器的分析器。
DAST 版本 5 使用一组新的 CI/CD 变量。为 DAST 版本 4 变量名创建了别名。
需要进行的更改:
- 要在 极狐GitLab 16.11 及更早版本中使用 DAST 版本 5 测试您的 DAST 扫描,请将 CI/CD 变量
DAST_VERSION
设置为5
。
继续使用基于代理的分析器
您可以使用基于代理的 DAST 分析器直到 极狐GitLab 18.0。此遗留分析器中的错误和漏洞将不会被修复。
需要进行的更改:
- 要继续使用基于代理的分析器,请将 CI/CD 变量
DAST_VERSION
变量设置为4
。
产物
极狐GitLab 17.0 自动将 DAST 版本 5 生成的产物发布到 DAST CI 作业。
需要进行的更改:
- 如果您已覆盖它以公开文件日志、爬网图或身份验证报告,请从 CI 作业定义中删除
artifacts
。 - CI/CD 变量
DAST_BROWSER_FILE_LOG_PATH
和DAST_FILE_LOG_PATH
不再需要。
身份验证
基于代理的分析器和 DAST 版本 5 都使用基于浏览器的分析器进行身份验证。升级到 DAST 版本 5 不会改变身份验证的工作方式。
需要进行的更改:
- 重命名身份验证 CI/CD 变量,请参阅带有
DAST_AUTH
前缀的变量。 - 如果尚未完成,请使用
DAST_SCOPE_EXCLUDE_URLS
从扫描中排除注销 URL。
爬网
DAST 版本 5 在浏览器中爬网目标应用程序以提供更好的爬网覆盖率。这可能需要比等效的基于代理的分析器爬网更多的资源来运行。
需要进行的更改:
- 使用
DAST_TARGET_URL
代替DAST_WEBSITE
。 - 使用
DAST_CRAWL_TIMEOUT
代替DAST_SPIDER_MINS
。 - CI/CD 变量
DAST_USE_AJAX_SPIDER
、DAST_SPIDER_START_AT_HOST
、DAST_ZAP_CLI_OPTIONS
和DAST_ZAP_LOG_CONFIGURATION
不再支持。 - 如果 DAST 需要处理大于 10 MB 的响应体,请配置
DAST_PAGE_MAX_RESPONSE_SIZE_MB
。 - 考虑为执行 DAST 作业的 极狐GitLab Runner 提供更多 CPU 资源。
范围
DAST 版本 5 提供了比基于代理的分析器更多的范围控制。
需要进行的更改:
- 使用
DAST_SCOPE_ALLOW_HOSTS
代替DAST_ALLOWED_HOSTS
。 -
DAST_TARGET_URL
的域名会自动添加到DAST_SCOPE_ALLOW_HOSTS
,请考虑为目标应用程序 API 和资产端点添加域名。 - 通过将域名添加到
DAST_SCOPE_EXCLUDE_HOSTS
(身份验证期间除外)来从扫描中删除域名。
漏洞检查
需要进行的更改
DAST 版本 5 使用 极狐GitLab 构建的漏洞定义,这些定义不直接映射到基于代理的分析器定义。
需要进行的更改:
- 使用
DAST_CHECKS_TO_RUN
代替DAST_ONLY_INCLUDE_RULES
。将使用的 ID 更改为 极狐GitLab DAST 漏洞检查 ID。 - 使用
DAST_CHECKS_TO_EXCLUDE
代替DAST_EXCLUDE_RULES
。将使用的 ID 更改为 极狐GitLab DAST 漏洞检查 ID。 - 请参阅漏洞检查文档以了解 极狐GitLab DAST 漏洞检查的描述和 ID。
- CI/CD 变量
DAST_AGGREGATE_VULNERABILITIES
和DAST_MAX_URLS_PER_VULNERABILITY
不再支持。
为什么迁移会产生不同的漏洞
基于代理的扫描和基于浏览器的 DAST 版本 5 扫描不会产生相同的结果,因为它们使用不同的漏洞检查集。
DAST 版本 5 没有基于代理的检查等效项,这些检查会产生过多的误报、不值得运行,因为现代浏览器不允许漏洞被利用,或者不再被认为是相关的。DAST 版本 5 包含基于代理的分析器没有的检查。
DAST 版本 5 扫描提供了更好的应用程序覆盖率,因此它们可能会识别更多漏洞,因为您的网站被扫描的部分更多。
覆盖率
一个基于代理的主动检查尚未在基于浏览器的 DAST 分析器中实现。如果您希望在最后一个检查迁移之前保持在 DAST 版本 4 上,请参阅继续使用基于代理的分析器。
剩余检查:
- CWE-79:跨站脚本(XSS)
按需扫描
按需扫描使用 极狐GitLab 17.0 中的 DAST 版本 5 进行基于浏览器的扫描。
疑难解答
请参阅 DAST 版本 5 疑难解答 文档。
CI/CD 变量的更改
下表概述了每个基于代理的分析器 CI/CD 变量所需的迁移操作。有关配置 DAST 版本 5 的更多信息,请参阅配置。
基于代理分析器的 CI/CD 变量 | 需要的操作 | 注释 |
---|---|---|
DAST_ADVERTISE_SCAN |
重命名 | 改为DAST_REQUEST_ADVERTISE_SCAN
|
DAST_ALLOWED_HOSTS |
重命名 | 改为DAST_SCOPE_ALLOW_HOSTS
|
DAST_API_HOST_OVERRIDE |
移除 | 不支持 |
DAST_API_SPECIFICATION |
移除 | 不支持 |
DAST_AUTH_EXCLUDE_URLS |
重命名 | 改为 DAST_SCOPE_EXCLUDE_URLS
|
DAST_AUTO_UPDATE_ADDONS |
移除 | 不支持 |
DAST_BROWSER_FILE_LOG_PATH |
移除 | 不再需要 |
DAST_DEBUG |
移除 | 不支持 |
DAST_EXCLUDE_RULES |
重命名,更新检查 ID | 改为 DAST_CHECKS_TO_EXCLUDE
|
DAST_EXCLUDE_URLS |
重命名 | 改为 DAST_SCOPE_EXCLUDE_URLS
|
DAST_FILE_LOG_PATH |
移除 | 不再需要 |
DAST_FULL_SCAN_ENABLED |
重命名 | 改为 DAST_FULL_SCAN
|
DAST_HTML_REPORT |
移除 | 不支持 |
DAST_INCLUDE_ALPHA_VULNERABILITIES |
移除 | 不支持 |
DAST_MARKDOWN_REPORT |
移除 | 不支持 |
DAST_MASK_HTTP_HEADERS |
移除 | 不支持 |
DAST_MAX_URLS_PER_VULNERABILITY |
移除 | 不支持 |
DAST_ONLY_INCLUDE_RULES |
重命名,更新检查 ID | 改为DAST_CHECKS_TO_RUN
|
DAST_PATHS |
None | Supported |
DAST_PATHS_FILE |
None | Supported |
DAST_PKCS12_CERTIFICATE_BASE64 |
None | Supported |
DAST_PKCS12_PASSWORD |
None | Supported |
DAST_SKIP_TARGET_CHECK |
None | Supported |
DAST_SPIDER_MINS |
Change | 改为使用持续时长的 DAST_CRAWL_TIMEOUT 。比如,对于 5 ,使用 5m
|
DAST_SPIDER_START_AT_HOST |
移除 | 不支持 |
DAST_TARGET_AVAILABILITY_TIMEOUT |
Change | To DAST_TARGET_CHECK_TIMEOUT using a duration. For example, instead of 60 , use 60s
|
DAST_USE_AJAX_SPIDER |
移除 | 不支持 |
DAST_XML_REPORT |
移除 | 不支持 |
DAST_WEBSITE |
重命名 | To DAST_TARGET_URL 极狐GitLab 私有化部署: 在删除 DAST_WEBSITE 之前将您的实例升级到版本 17.0 或更高版本。 如果您使用与 极狐GitLab 预 17.0 版本一起包含的 DAST.gitlab-ci.yml 文件,则需要此变量。 |
DAST_ZAP_CLI_OPTIONS |
移除 | 不支持 |
DAST_ZAP_LOG_CONFIGURATION |
移除 | 不支持 |
SECURE_ANALYZERS_PREFIX |
None | Supported |