OWASP ZAP:Continuos集成中的主动扫描仪

时间:2016-01-07 14:12:07

标签: java rest security owasp zap

尝试在连续集成(CI)设置中使用ZAP(2.4.3)。我可以将ZAP作为守护进程运行,使用ZAP作为代理运行我的所有Selenium测试(在Java中),然后能够使用REST api调用htmlreport来获取被动扫描程序的最终报告。这很好用,但我也想使用Active Scanner。

在ZAP的文档中多次提到使用CI中的Active Scanner,但是没有找到任何关于它的工作示例或教程......是否存在?

我希望实现的目标是:在Selenium回归套件访问的所有页面上运行Active Scanner,一旦运行完毕,就会运行。

试着查看ZAP的REST api,但大部分都没有记录:

https://github.com/zaproxy/zaproxy/wiki/ApiGen_Index

理想情况下,有这样的东西会很棒:

  • 在所有访问过的网址上异步启动主动扫描
  • 轮询以检查Active Scan运行是否已完成

在REST api中似乎有相关内容,但是:

  • ascan/scan需要一个网址作为输入。可以调用core/urls来查看Selenium测试访问过的内容,但是如何设置正确的身份验证(日志记录凭据)?如果访问网址的顺序很重要怎么办?如果页面只能使用特定凭据访问该怎么办?
  • 有一个ascan/scanAsUser,但不清楚如何从ZAP中检索contextIduserId。一个繁琐的解决方法是修改Selenium测试,在磁盘上写入他们访问的URL以及他们使用的日志/密码凭据,然后,一旦完成所有测试,就从磁盘读取这些信息以调用ZAP。有没有更简单的方法?

1 个答案:

答案 0 :(得分:2)

好的,所以这里有很多问题:)

ZAP通常会扫描网址的层次结构,例如应用程序顶级网址https://www.example.com/app下的所有内容。我们假设你知道那将是什么;)

要处理身份验证非常简单,请参阅https://github.com/zaproxy/zaproxy/wiki/FAQformauth

ascan / status调用返回已完成的%

您可以更好地找到ZAP用户组http://groups.google.com/group/zaproxy-users来解决这些问题。 但是,我们确实需要改进API文档:/

干杯,

Simon(ZAP项目负责人)