从 DAST 版本 4 基于浏览器的分析器迁移到 DAST 版本 5
- Tier: Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
DAST 版本 5 替代了 DAST 版本 4。本文档作为从 DAST 版本 4 基于浏览器的分析器迁移到 DAST 版本 5 的指南。
如果满足以下所有条件,请遵循此迁移指南:
- 您使用 GitLab DAST 在 CI/CD 管道中运行 DAST 扫描。
- DAST CI/CD 作业通过包含 DAST 模板
DAST.gitlab-ci.yml或DAST.latest.gitlab-ci.yml进行配置。 - CI/CD 变量
DAST_VERSION未设置或设置为4或更小。 - CI/CD 变量
DAST_BROWSER_SCAN设置为true。
通过阅读以下部分并进行推荐更改来迁移到 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 时作为临时措施使用。详情请参见继续使用版本 4。
每个 DAST 主要版本运行不同的分析器:
- DAST 版本 4 可以运行基于代理或基于浏览器的分析器,默认使用基于代理的分析器。
- DAST 版本 5 仅运行基于浏览器的分析器。
DAST 版本 5 使用一组新的 CI/CD 变量。已为 DAST 版本 4 变量名称创建了别名。
在 GitLab 16.11 及更早版本中需要进行的更改:
- 要测试 DAST 版本 5,请将 CI/CD 变量
DAST_VERSION设置为 5。 - 为避免作业失败,不要删除或重命名
DAST_WEBSITE。DAST.gitlab-ci.yml模板版本 16.11 及更早版本仍然使用DAST_WEBSITE变量。
在 GitLab 17.0 及更晚版本中需要进行的更改:
- 升级到 GitLab 17.0 后,将
DAST_WEBSITE重命名为DAST_TARGET_URL。 - 当您开始使用设置
DAST_VERSION为 5 的新模板时,确保未设置 CI/CD 变量DAST_VERSION。
继续使用版本 4
您可以使用 DAST 版本 4 基于代理的分析器直到 GitLab 18.0。此遗留分析器中的错误和漏洞将不会被修复。
需要进行的更改:
- 要继续使用 DAST 版本 4,请将 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 版本 4 使用基于代理的分析器检查来执行基于浏览器的分析器中未包含的主动检查。 基于浏览器的 DAST 版本 5 不包括基于代理的分析器,因此在迁移到版本 5 时存在检查覆盖率缺口。
有一个基于代理的主动检查是基于浏览器的分析器无法覆盖的。其余主动检查的迁移已在 史诗 13411 中提出。如果您更喜欢在最后一个检查迁移完成前继续使用 DAST 版本 4,请参见继续使用版本 4。
剩余检查:
- CWE-79: 跨站脚本 (XSS)
在史诗基于浏览器的 DAST 剩余主动检查中跟踪剩余检查的进展。
CI/CD 变量的更改
下表概述了每个基于浏览器的分析器 DAST 版本 4 CI/CD 变量所需的迁移操作。 有关配置基于浏览器的分析器的更多信息,请参见配置。
| DAST 版本 4 CI/CD 变量 | 所需操作 | 备注 |
|---|---|---|
DAST_ADVERTISE_SCAN |
重命名 | 为 DAST_REQUEST_ADVERTISE_SCAN |
DAST_AFTER_LOGIN_ACTIONS |
重命名 | 为 DAST_AUTH_AFTER_LOGIN_ACTIONS |
DAST_AUTH_COOKIES |
重命名 | 为 DAST_AUTH_COOKIE_NAMES |
DAST_AUTH_DISABLE_CLEAR_FIELDS |
重命名 | 为 DAST_AUTH_CLEAR_INPUT_FIELDS |
DAST_AUTH_REPORT |
无需操作 | |
DAST_AUTH_TYPE |
无需操作 | |
DAST_AUTH_URL |
无需操作 | |
DAST_AUTH_VERIFICATION_LOGIN_FORM |
重命名 | 为 DAST_AUTH_SUCCESS_IF_NO_LOGIN_FORM |
DAST_AUTH_VERIFICATION_SELECTOR |
重命名 | 为 DAST_AUTH_SUCCESS_IF_ELEMENT_FOUND |
DAST_AUTH_VERIFICATION_URL |
重命名 | 为 DAST_AUTH_SUCCESS_IF_AT_URL |
DAST_BROWSER_PATH_TO_LOGIN_FORM |
重命名 | 为 DAST_AUTH_BEFORE_LOGIN_ACTIONS |
DAST_BROWSER_ACTION_STABILITY_TIMEOUT |
替换 | 为 DAST_PAGE_DOM_READY_TIMEOUT |
DAST_BROWSER_ACTION_TIMEOUT |
移除 | 不支持 |
DAST_BROWSER_ALLOWED_HOSTS |
重命名 | 为 DAST_SCOPE_ALLOW_HOSTS |
DAST_BROWSER_CACHE |
重命名 | 为 DAST_USE_CACHE |
DAST_BROWSER_COOKIES |
重命名 | 为 DAST_REQUEST_COOKIES |
DAST_BROWSER_CRAWL_GRAPH |
重命名 | 为 DAST_CRAWL_GRAPH |
DAST_BROWSER_CRAWL_TIMEOUT |
重命名 | 为 DAST_CRAWL_TIMEOUT |
DAST_BROWSER_DEVTOOLS_LOG |
重命名 | 为 DAST_LOG_DEVTOOLS_CONFIG |
DAST_BROWSER_DOM_READY_AFTER_TIMEOUT |
重命名 | 为 DAST_PAGE_DOM_STABLE_WAIT |
DAST_BROWSER_ELEMENT_TIMEOUT |
重命名 | 为 DAST_PAGE_ELEMENT_READY_TIMEOUT |
DAST_BROWSER_EXCLUDED_ELEMENTS |
重命名 | 为 DAST_SCOPE_EXCLUDE_ELEMENTS |
DAST_BROWSER_EXCLUDED_HOSTS |
重命名 | 为 DAST_SCOPE_EXCLUDE_HOSTS |
DAST_BROWSER_EXTRACT_ELEMENT_TIMEOUT |
重命名 | 为 DAST_CRAWL_EXTRACT_ELEMENT_TIMEOUT |
DAST_BROWSER_FILE_LOG |
重命名 | 为 DAST_LOG_FILE_CONFIG |
DAST_BROWSER_FILE_LOG_PATH |
移除 | 不再需要 |
DAST_BROWSER_IGNORED_HOSTS |
重命名 | 为 DAST_SCOPE_IGNORE_HOSTS |
DAST_BROWSER_INCLUDE_ONLY_RULES |
重命名 | 为 DAST_CHECKS_TO_RUN |
DAST_BROWSER_LOG |
重命名 | 为 DAST_LOG_CONFIG |
DAST_BROWSER_LOG_CHROMIUM_OUTPUT |
重命名 | 为 DAST_LOG_BROWSER_OUTPUT |
DAST_BROWSER_MAX_ACTIONS |
重命名 | 为 DAST_CRAWL_MAX_ACTIONS |
DAST_BROWSER_MAX_DEPTH |
重命名 | 为 DAST_CRAWL_MAX_DEPTH |
DAST_BROWSER_MAX_RESPONSE_SIZE_MB |
重命名 | 为 DAST_PAGE_MAX_RESPONSE_SIZE_MB |
DAST_BROWSER_NAVIGATION_STABILITY_TIMEOUT |
重命名 | 为 DAST_PAGE_DOM_READY_TIMEOUT |
DAST_BROWSER_NAVIGATION_TIMEOUT |
重命名 | 为 DAST_PAGE_READY_AFTER_NAVIGATION_TIMEOUT |
DAST_BROWSER_NUMBER_OF_BROWSERS |
重命名 | 为 DAST_CRAWL_WORKER_COUNT |
DAST_BROWSER_PAGE_LOADING_SELECTOR |
重命名 | 为 DAST_PAGE_IS_LOADING_ELEMENT |
DAST_BROWSER_PAGE_READY_SELECTOR |
重命名 | 为 DAST_PAGE_IS_READY_ELEMENT |
DAST_BROWSER_PASSIVE_CHECK_WORKERS |
重命名 | 为 DAST_PASSIVE_SCAN_WORKER_COUNT |
DAST_BROWSER_SCAN |
移除 | 不再需要 |
DAST_BROWSER_SEARCH_ELEMENT_TIMEOUT |
重命名 | 为 DAST_CRAWL_SEARCH_ELEMENT_TIMEOUT |
DAST_BROWSER_STABILITY_TIMEOUT |
重命名 | 为 DAST_PAGE_READY_AFTER_ACTION_TIMEOUT |
DAST_EXCLUDE_RULES |
重命名 | 为 DAST_CHECKS_TO_EXCLUDE |
DAST_EXCLUDE_URLS |
重命名 | 为 DAST_SCOPE_EXCLUDE_URLS |
DAST_FF_ENABLE_BAS |
移除 | 不支持 |
DAST_FILE_LOG_PATH |
移除 | 不再需要 |
DAST_FIRST_SUBMIT_FIELD |
重命名 | 为 DAST_AUTH_FIRST_SUBMIT_FIELD |
DAST_FULL_SCAN_ENABLED |
重命名 | 为 DAST_FULL_SCAN |
DAST_PASSWORD |
重命名 | 为 DAST_AUTH_PASSWORD |
DAST_PASSWORD_FIELD |
重命名 | 为 DAST_AUTH_PASSWORD_FIELD |
DAST_PATHS |
重命名 | 为 DAST_TARGET_PATHS |
DAST_PATHS_FILE |
重命名 | 为 DAST_TARGET_PATHS_FROM_FILE |
DAST_PKCS12_CERTIFICATE_BASE64 |
无需操作 | |
DAST_PKCS12_PASSWORD |
无需操作 | |
DAST_REQUEST_HEADERS |
无需操作 | |
DAST_SKIP_TARGET_CHECK |
重命名 | 为 DAST_TARGET_CHECK_SKIP |
DAST_SUBMIT_FIELD |
重命名 | 为 DAST_AUTH_SUBMIT_FIELD |
DAST_TARGET_AVAILABILITY_TIMEOUT |
重命名 | 为 DAST_TARGET_CHECK_TIMEOUT |
DAST_USERNAME |
重命名 | 为 DAST_AUTH_USERNAME |
DAST_USERNAME_FIELD |
重命名 | 为 DAST_AUTH_USERNAME_FIELD |
DAST_WEBSITE |
重命名 | 为 DAST_TARGET_URLGitLab Self-Managed:在移除 DAST_WEBSITE 之前,请将您的实例升级到 17.0 或更高版本。如果您使用 GitLab 17.0 之前版本附带的 DAST.gitlab-ci.yml 文件,则需要此变量。 |