zaproxy/action-api-scan

GitHub: zaproxy/action-api-scan

将 OWASP ZAP 的 API 动态安全扫描能力集成到 GitHub Actions 工作流中,实现对 OpenAPI、SOAP 和 GraphQL 接口的自动化安全检测与报告。

Stars: 72 | Forks: 23

# Action API 扫描 一个用于运行 ZAP [API scan](https://www.zaproxy.org/docs/docker/api-scan/) 以执行 动态应用程序安全测试 (DAST) 的 GitHub Action。 **警告** 此 Action 将对目标 API 执行攻击。 您只应扫描您有权限测试的目标。 在运行此 Action 之前,您还应咨询您的托管公司以及任何可能受影响的其他服务(例如 CDN)。 ## 输入参数 ### `target` **必填** 目标 API 定义,OpenAPI 或 SOAP,本地文件或 URL,例如 https://www.example.com/openapi.json 或目标 endpoint URL,GraphQL,例如 https://www.example.com/graphql ### `format` **可选** 定义的格式,`openapi`、`soap` 或 `graphql`。默认值为 `openapi`。 ### `docker_name` **可选** 要执行的 Docker 镜像名称。默认情况下,该 Action 运行稳定版本的 ZAP。但您可以 配置此参数以使用每周构建版本。 ### `rules_file_name` **可选** 您还可以指定 rules 文件的相对路径,以忽略 ZAP 扫描产生的任何警报。确保 在相关仓库内创建 rules 文件。以下展示了 rules 文件配置的示例。 确保检出仓库 (actions/checkout@v2) 以向扫描 Action 提供 ZAP 规则。 ``` 10011 IGNORE (Cookie Without Secure Flag) 10015 IGNORE (Incomplete or No Cache-control and Pragma HTTP Header Set) ``` ### `cmd_options` **可选** 扫描脚本的附加命令行选项 ### `allow_issue_writing` **可选** 默认情况下,该 Action 将使用 `issue_title` 输入将报告提交为 GitHub issue。 如果您不想创建或更新 issue,请将其设置为 false。 ### `issue_title` **可选** 要创建的 GitHub issue 的标题。 ### `token` **可选** ZAP Action 使用 GitHub 提供的默认 Action token 来创建和更新 API 扫描的 issue。 您无需创建专用 token。运行 Action 时,请确保使用 GitHub 的默认 Action token (`secrets.GITHUB_TOKEN`)。 ### `fail_action` **可选** 默认情况下,如果 ZAP Docker 容器识别到任何警报,它将带有一个 [退出代码](https://github.com/zaproxy/zaproxy/blob/7abbd57f6894c2abf4f1ed00fb95e99c34ef2e28/docker/zap-api-scan.py#L35) 而失败。 如果您希望在 ZAP 在扫描期间识别到任何警报时让 GitHub 扫描状态失败,请将此选项设置为 `true`。 ### `artifact_name` **可选** 默认情况下,该 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-api-scan@v0.10.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-api-scan@v0.10.0 with: token: ${{ secrets.GITHUB_TOKEN }} docker_name: 'ghcr.io/zaproxy/zaproxy:stable' format: openapi target: 'https://www.zaproxy.org/' rules_file_name: '.zap/rules.tsv' cmd_options: '-a' ```
标签:API扫描, CISA项目, DAST, DevSecOps, Docker, GitHub Action, GraphQL, OpenAPI, SOAP, Web安全, 上游代理, 代码安全, 动态应用安全测试, 安全测试, 安全防御评估, 密码管理, 开源框架, 恶意软件分析, 持续集成, 攻击性安全, 漏洞枚举, 自定义脚本, 蓝队分析, 请求拦截, 逆向工具