我在我的管道中使用来自OWASP的Docker图像来扫描我的Web应用程序并生成HTML报告,我遇到了一个我花了一整天时间试图解决的问题。
当运行扫描作业时,它将成功扫描网站,但在执行扫描命令后,作业将立即停止并返回“error:job failed:exit code 1”。
这种情况发生时没有精确说明命令中的失败原因。
以下是我的工作代码:
zap_scan:
stage: owasp
image:
name: owasp/zap2docker-stable
script:
- mkdir /zap/wrk
- /zap/zap-baseline.py -t http://webURL.com -g gen.conf -r /zap/wrk/report.html
artifacts:
paths:
- /zap/wrk/report.html
字符串
通常情况下,这不应该返回错误,因为我已经通过在本地构建的Docker镜像上运行此命令来测试scan命令,并且我没有遇到任何问题(即扫描和文件都正确生成)。
Here is the open source code of the zap-baseline.py script
通过研究这个问题,我发现如果fail_count不等于0,脚本会返回错误1。
我不明白为什么脚本在本地Docker镜像和管道中的行为不同,你能帮助我吗?
3条答案
按热度按时间pbpqsu0x1#
您需要分享扫描的完整输出(混淆任何敏感内容),以便我们能够提供更多帮助。
顺便说一句,为什么你指定
-g gen.conf
?这会生成一个配置文件,你似乎没有使用..kse8i1jr2#
当脚本返回1时,Gitlab会自动发送错误,这是因为扫描有警告。添加选项-我修复了错误。
w1jd8yoj3#
下面是zap scan的gitlab工作。
字符串
请注意标志
-c with warn-levels.config
这个额外的配置,您可以提供配置您想要忽略的错误。在我们的案例中,我们想排除
型
因此,文件
warn-levels.config
如下所示型
各种标志的参考https://www.zaproxy.org/docs/docker/api-scan/#usage