rht-labs/owasp-zap-openshift
GitHub: rht-labs/owasp-zap-openshift
为 OpenShift 定制的 OWASP ZAP Docker 镜像,解决官方镜像需要特权容器的问题,便于在 CI/CD 流水线中集成动态应用安全测试。
Stars: 30 | Forks: 38
# 本仓库已**废弃**
请使用位于[此处](https://github.com/redhat-cop/containers-quickstarts/tree/master/jenkins-agents/jenkins-agent-zap)的 ZAP 实现
## 适用于 OpenShift 的 OWASP [ZAP](https://github.com/zaproxy/zaproxy) 镜像
## 概述
OWASP Zed Attack Proxy (ZAP) 的公共 Docker 注册表版本若不使用特权容器,则无法在 OpenShift 上兼容。此 Docker 镜像解决了该问题。
## 运行
运行此镜像的语义与公共 OWASP ZAP Docker 镜像相同,因此请参阅[此处](https://github.com/zaproxy/zaproxy/wiki/Docker)的 Wiki 页面。
## 在 OpenShift 中部署
```
oc new-build -l 'role=jenkins-slave' https://github.com/rht-labs/owasp-zap-openshift.git
```
## 在 OpenShift Jenkins 中配置
1. 使用有权管理 Jenkins 实例的账户登录 Jenkins
2. 安装以下插件:
1. HTML Publisher Plugin
3. 重启 Jenkins
4. 重新登录 Jenkins 并导航至 `Manage Jenkins -> Configure System`
5. 向下滚动到 `Kubernetes` 云配置
6. 添加一个新的“Pod Template”,如下所示: 
## 在 Jenkinsfile 中使用
```
stage('Get a ZAP Pod') {
node('zap') {
stage('Scan Web Application') {
dir('/zap') {
def retVal = sh returnStatus: true, script: '/zap/zap-baseline.py -r baseline.html -t http://'
publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: true, reportDir: '/zap/wrk', reportFiles: 'baseline.html', reportName: 'ZAP Baseline Scan', reportTitles: 'ZAP Baseline Scan'])
echo "Return value is: ${retVal}"
}
}
}
}
```
## 在 Jenkinsfile 中配合 Sonarqube ZAP 插件使用(特别是 -x 报告,无目录,名称中无特殊字符)
```
stage('Get a ZAP Pod') {
node('zap') {
stage('Scan Web Application') {
sh "/zap/zap-baseline.py -d -m 5 -x zaprpt.xml -t http://"
//no mvn, so stash it and unstash later in pipeline on a maven node instead of ZAP node...
//sh "mvn sonar:sonar -Dsonar.zaproxy.reportPath=/zap/wrk/zaprpt.xml"
stash name: "zaproxyreport", includes: "/zap/wrk/zaprpt.xml"
}
}
}
```
从以下位置 stash/copy/pull 文件:
/zap/wrk/zaprpt.xml
标签:CISA项目, Cutter, DAST, DevSecOps, Docker, Jenkins, OpenShift, OWASP ZAP, Web应用扫描, Web截图, 上游代理, 人体姿态估计, 动态应用安全测试, 安全测试, 安全防御评估, 容器安全, 恶意软件分析, 攻击性安全, 结构化查询, 自动化安全, 请求拦截, 逆向工具