docker OWASP ZAP基线扫描在CI/CD管道中返回意外错误1

cmssoen2  于 2023-11-17  发布在  Docker
关注(0)|答案(3)|浏览(188)

我在我的管道中使用来自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镜像和管道中的行为不同,你能帮助我吗?

pbpqsu0x

pbpqsu0x1#

您需要分享扫描的完整输出(混淆任何敏感内容),以便我们能够提供更多帮助。
顺便说一句,为什么你指定-g gen.conf?这会生成一个配置文件,你似乎没有使用..

kse8i1jr

kse8i1jr2#

当脚本返回1时,Gitlab会自动发送错误,这是因为扫描有警告。添加选项-我修复了错误。

w1jd8yoj

w1jd8yoj3#

下面是zap scan的gitlab工作。

zap-scan:
  stage: owasp
  image:
    name: owasp/zap2docker-stable:latest
  before_script:
    - mkdir -p /zap/wrk
  script:
    - echo "Starting zap-api-scan.py baseline scan"
    - cp ./owasp-zap/warn-levels.config /zap/wrk
    - zap-api-scan.py -t http://webURL.com -c warn-levels.config -w testreport.md -r testreport.html -S -I
    - cp /zap/wrk/testreport.md testreport.md
    - cp /zap/wrk/testreport.html testreport.html
    - grep -Po '\| High \| 0 \|' testreport.md
    - grep -Po '\| Medium \| 0 \|' testreport.md
  artifacts:
    when: always
    paths:
      - zap.out
      - testreport.md
      - testreport.html

字符串
请注意标志-c with warn-levels.config这个额外的配置,您可以提供配置您想要忽略的错误。
在我们的案例中,我们想排除

WARN-NEW: Spring Actuator Information Leak [40042] x 1


因此,文件warn-levels.config如下所示

40042   IGNORE  (Spring Actuator Information Leak - Active/release)


各种标志的参考https://www.zaproxy.org/docs/docker/api-scan/#usage

相关问题