You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Pipeline中OWASP ZAP生成报告失败问题求助

排查Azure Pipeline中OWASP ZAP扫描报告生成失败的问题

核心问题定位

报错明确显示Source file /home/vsts/work/r1/a/wrk/report.xml does not exist,说明Run ZAP scan步骤未成功生成report.xml文件,后续步骤因依赖该文件失败。结合你提到的“6周前正常、本地无变更”,重点排查以下方向:


1. 检查Run ZAP scan步骤的完整日志

虽然该步骤设置了continueOnError: true,但容器运行的输出日志会包含扫描是否成功、报告是否生成的关键信息。需要查看:

  • 容器启动是否正常,有无权限报错
  • ZAP扫描是否完成,是否因目标网站无法访问、扫描超时导致中断
  • 报告文件是否在容器内正常生成,有无输出路径变更的提示

2. 排查GitLab DAST镜像的版本变化

你使用的是registry.gitlab.com/gitlab-org/security-products/dast:latest镜像,latest标签会自动拉取最新版本。6周内该镜像可能有更新,导致:

  • 报告输出路径改变:原镜像将报告输出到/output或/zap/wrk,新版本可能调整了路径
  • 参数兼容性问题:--full-scan False等参数格式是否在新版本中被修改
  • 容器内用户权限变化:之前chmod 777 wrk能解决权限问题,新版本可能使用了不同的用户ID,导致无法写入宿主机目录

临时验证方案:将镜像标签从latest改为固定版本(比如找6周前的稳定版本号),确认是否恢复正常。


3. 验证挂载目录的权限与文件生成情况

在Run ZAP scan步骤的bash脚本末尾添加以下命令,直接检查wrk目录的内容:

ls -la $(Agent.ReleaseDirectory)/wrk
echo "Container exit code: $?"

这能确认:

  • 容器运行结束后,wrk目录下是否有report.xml和report.html
  • 容器的退出码是否为0(正常结束),非0则说明扫描过程出错

4. 排查Azure代理环境的网络变化

可能Azure托管代理的IP段被目标网站https://www.abcxyz.com的防火墙屏蔽,导致ZAP扫描无法完成,自然无法生成报告。可以:

  • 在Run ZAP步骤中添加curl -I ${target}命令,验证代理能否正常访问目标网站
  • 尝试使用自托管代理(IP固定)运行Pipeline,对比结果

5. 检查Saxon下载与路径问题(次要)

虽然当前报错是report.xml不存在,但也可以确认Saxon是否正确下载:

  • 在Generate Report步骤前添加ls -la $(Agent.ReleaseDirectory),确认saxon-he-11.5.jar和OWASPToNUnit3.xslt是否存在

内容的提问来源于stack exchange,提问作者Kev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 20:22:02