zaproxy/action-full-scan
GitHub: zaproxy/action-full-scan
一个用于在GitHub Actions工作流中自动化运行OWASP ZAP全面扫描以执行动态应用安全测试(DAST)的官方Action。
Stars: 370 | Forks: 71
# ZAP Action Full Scan
一个用于运行 ZAP [Full Scan](https://www.zaproxy.org/docs/docker/full-scan/) 以执行动态应用安全测试 (DAST) 的 GitHub Action。
ZAP full scan action 会针对指定的目标运行 ZAP 爬虫(默认没有时间限制),接着是可选的 ajax 爬虫扫描,然后是完整的主动扫描,最后报告结果。警报将作为 GitHub issue 保存在相应的仓库中。
**警告** 此 action 将对目标网站执行攻击。
您只应扫描您有权限测试的目标。
在运行此 action 之前,您还应与您的托管公司以及任何可能受影响的服务(例如 CDN)进行确认。
ZAP 还会提交表单,这可能会通过例如“联系我们”或“评论”表单产生[大量消息](https://www.zaproxy.org/faq/how-can-i-prevent-zap-from-sending-me-1000s-of-emails-via-a-contact-us-form/)。
## 输入参数
### `target`
**必填** 要扫描的 Web 应用程序的 URL。这可以是公开可用的 Web 应用程序,也可以是本地可访问的 URL。
### `docker_name`
**可选** 要执行的 docker 文件的名称。默认情况下,该 action 运行稳定版本的 ZAP。但您可以配置此参数以使用每周构建版本。
### `rules_file_name`
**可选** 您还可以指定规则文件的相对路径,以忽略 ZAP 扫描的任何警报。确保在相应的仓库中创建规则文件。以下显示了规则文件的示例配置。
确保检出仓库 (actions/checkout@v2) 以将 ZAP 规则提供给扫描 action。
```
10011 IGNORE (Cookie Without Secure Flag)
10015 IGNORE (Incomplete or No Cache-control and Pragma HTTP Header Set)
```
### `cmd_options`
**可选** full scan 脚本的附加命令行选项。
### `allow_issue_writing`
**可选** 默认情况下,该 action 将使用 `issue_title` 输入将报告提交为 GitHub issue。
如果您不希望创建或更新 issue,请将其设置为 false。
### `issue_title`
**可选** 要创建的 GitHub issue 的标题。
### `token`
**可选** ZAP action 使用 GitHub 提供的默认 action token 来创建和更新 full scan 的 issue。
您无需创建专用 token。确保在运行 action 时使用 GitHub 的默认 action token (`secrets.GITHUB_TOKEN`)。
### `fail_action`
**可选** 默认情况下,如果 ZAP Docker 容器识别到任何警报,它将以一个[退出代码](https://github.com/zaproxy/zaproxy/blob/efb404d38280dc9ecf8f88c9b0c658385861bdcf/docker/zap-full-scan.py#L31)失败。如果当 ZAP 在扫描期间识别到任何警报时,您希望将 GitHub 扫描的状态标记为失败,请将此选项设置为 `true`。
### `artifact_name`
**可选** 默认情况下,full scan action 会将报告附加到构建中,名称为 `zap_scan`。将其设置为其他字符串可以为其指定其他名称。有关允许使用的 artifact 名称,请参阅 [GitHub 文档](https://github.com/actions/toolkit/blob/main/packages/artifact/docs/additional-information.md#non-supported-characters)。
## 环境变量
如果设置,以下 [ZAP 身份验证环境变量](https://www.zaproxy.org/docs/authentication/handling-auth-yourself/#authentication-env-vars) 将被复制到 docker 容器中:
- `ZAP_AUTH_HEADER_VALUE`
- `ZAP_AUTH_HEADER`
- `ZAP_AUTH_HEADER_SITE`
## 示例用法
** 基础 **
```
steps:
- name: ZAP Scan
uses: zaproxy/action-full-scan@v0.13.0
with:
target: 'https://www.zaproxy.org/'
```
** 高级 **
```
on: [push]
jobs:
zap_scan:
runs-on: ubuntu-latest
name: Scan the webapplication
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: master
- name: ZAP Scan
uses: zaproxy/action-full-scan@v0.13.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
docker_name: 'ghcr.io/zaproxy/zaproxy:stable'
target: 'https://www.zaproxy.org/'
rules_file_name: '.zap/rules.tsv'
cmd_options: '-a'
```
## 本地化的警报详情
ZAP 是国际化的,警报信息支持多种语言。
您可以通过 `cmd_options` 更改区域设置来更改此 action 使用的语言,例如:`-z "-config view.locale=fr_FR"`
有关当前支持的所有区域设置,请参阅 [https://github.com/zaproxy/zaproxy/tree/develop/zap/src/main/dist/lang](https://github.com/zaproxy/zaproxy/tree/develop/zap/src/main/dist/lang)。
您可以通过 [https://crowdin.com/project/zaproxy](https://crowdin.com/project/zaproxy) 帮助改进 ZAP 的翻译。
标签:Ajax爬虫, CI/CD安全, CISA项目, DAST, DevSecOps, Docker, GitHub Action, Llama, OWASP ZAP, Talos规则, Web安全, 上游代理, 主动扫描, 代码安全, 全量扫描, 动态应用安全测试, 安全测试, 安全防御评估, 恶意软件分析, 攻击性安全, 漏洞枚举, 结构化查询, 自动化安全, 自定义脚本, 蓝队分析, 蜘蛛爬取, 请求拦截, 逆向工具