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安全, 上游代理, 主动扫描, 代码安全, 全量扫描, 动态应用安全测试, 安全测试, 安全防御评估, 恶意软件分析, 攻击性安全, 漏洞枚举, 结构化查询, 自动化安全, 自定义脚本, 蓝队分析, 蜘蛛爬取, 请求拦截, 逆向工具