exetr/zap-cicd-integration

GitHub: exetr/zap-cicd-integration

一个将OWASP ZAP动态安全扫描集成到CI/CD流水线的Python脚本,支持误报抑制、自定义规则和构建门禁控制。

Stars: 10 | Forks: 6

# zap-cicd-集成 一个旨在集成到 CI/CD 流水线中的 Python 脚本,作为漏洞评估阶段的一部分,并结合 OWASP Zed Attack Proxy (ZAP) 使用。 该脚本目前的功能包括: - 能够从警报摘要和报告中抑制误报 - 输出 Team Foundation Server (TFS) 日志记录命令 - 根据警报使 Team Foundation Server (TFS) 构建和发布失败 - 将 HTML 报告附加到 Team Foundation Server (TFS) 日志 ## 环境要求 - Python 3.6 或更高版本 - python-owasp-zap-v2.4 包 - 运行中的 OWASP ZAP 实例 ## 用法 ``` usage: zap.py [-h] -t T [-c C] [-s S] [-r R] [-host HOST] [-port PORT] [-api API] [-tfs] A Python script to perform operations in OWASP Zed Attack Proxy, designed for use in vulnerability assessment stages in CI/CD pipelines. optional arguments: -h, --help show this help message and exit -t T Target of vulnerability assessment -c C ONLY FOR TFS SUMMARY - Ruleset JSON configuration file (default=all rules enabled) -s S JSON file containing list of false positives -r R Name of report to be generated (default=zap- report.html) -host HOST Set host of ZAP instance, (default=127.0.0.1) -port PORT Set port which ZAP instance is listening on, (default=8082) -api API Specify API key of ZAP instance, if any, (default=none) -tfs TFS mode, output summary of results compliant to TFS ``` ## 配置 此 Python 脚本使用 JSON 文件存储以下配置: - 要抑制的警报列表 {"instances": [ {"URL":"http://10.0.0.99/scripts/app.js", "AlertID":"2"}, {"URL":"http://10.0.0.99/scripts/app.js", "AlertID":"3"}, ] } 注意:建议参考以前的报告以获取 URL 列表和相应的警报 ID - 警报严重级别(仅限 TFS) {"alerts": [ {"id": 50001, "level":"WARN", "message": "Script Passive Scan Rules"}, {"id": 50003, "level":"WARN", "message": "Stats Passive Scan Rule"}, {"id": 90022, "level":"WARN", "message": "Application Error Disclosure"}, {"id": 10015, "level":"WARN", "message": "Incomplete or No Cache-control and Pragma HTTP Header Set"}, {"id": 10019, "level":"WARN", "message": "Content-Type Header Missing"}, {"id": 10010, "level":"WARN", "message": "Cookie No HttpOnly Flag"}, {"id": 10011, "level":"WARN", "message": "Cookie Without Secure Flag"}, {"id": 10017, "level":"WARN", "message": "Cross-Domain JavaScript Source File Inclusion"}, {"id": 10016, "level":"WARN", "message": "Web Browser XSS Protection Not Enabled"}, {"id": 10040, "level":"WARN", "message": "Secure Pages Include Mixed Content"}, {"id": 2, "level":"WARN", "message": "Private IP Disclosure"}, {"id": 3, "level":"WARN", "message": "Session ID in URL Rewrite"}, {"id": 10021, "level":"WARN", "message": "X-Content-Type-Options Header Missing"}, {"id": 10020, "level":"WARN", "message": "X-Frame-Options Header Scanner"} ] } 注意:ZAP 扫描的更新警报完整列表可以在 ZAP 本地 API 的 pscan > scanners 中找到 ## 示例 1. 对 http://example.com 执行爬虫扫描 `python zap.py -t http://example.com` 2. 对 http://example.com 执行爬虫扫描,使用指定了 API 密钥的 ZAP 实例,生成名为 zap-results.html 的报告 `python zap.py -api 9l67llmogm1cr6trcu683fqddq -t http://example.com -r zap-results.html ` 3. 对 http://example.com 执行爬虫扫描,抑制 false-positive.json 中包含的警报列表 `python zap.py -t http://example.com -s false-positive.json` 4. 在 TFS 中对 http://example.com 执行爬虫扫描 `python zap.py -tfs -t http://example.com ` 5. 在 TFS 中对 http://example.com 执行爬虫扫描,如果检测到规则 ID 2 则使构建失败,抑制 false-positive.json 中包含的警报列表,生成名为 zap-tfsbuild.html 的报告 `python zap.py -tfs -t http://example.com -c rules.json -s false-positive.json -r zap-tfsbuild.html`
标签:AES-256, Azure DevOps, CI/CD 安全, DAST, DevSecOps, GUI界面, OWASP ZAP, Python, Team Foundation Server, Web 安全, 上游代理, 动态应用程序安全测试, 安全扫描, 安全报告, 应用程序安全, 开源框架, 恶意软件分析, 持续交付, 持续集成, 数据投毒防御, 无后门, 时序注入, 漏洞评估, 管道集成, 误报抑制, 逆向工具