测试开发之安全篇-使用禅道ZTF执行OWASP安全扫描

原创
陈琦
2023-05-29 10:00:00
3158
摘要:开放Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个开源、非盈利、全球性的安全组织,致力于应用软件的安全性方面的研究。

开放Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个开源、非盈利、全球性的安全组织,致力于应用软件的安全性方面的研究。OWASP安全标准被视为Web应用安全领域的权威参考。美国国家和国际立法、标准、准则、委员会和行业实务守则参考引用了OWASP,美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP十大WEB弱点防护守则,国际信用卡数据安全技术PCI标准更是将其列为必要组件。

OWAPS TOP 10是该组织定期发布的10项最严重Web应用安全风险列表,该列表总结并更新Web应用程序中最可能、最常见、最危险的十大漏洞。它是安全渗透测试工作的一个参考,成为IBM APPSCAN、HP WEBINSPECT等漏洞扫描器的主要标准。

ZAP(Zed Attack Proxy)是OWASP旗下的一款开源Web应用安全漏洞扫描工具。它通过代理的方式,拦截同被测系统间的请求和响应,进行模拟攻击和分析来寻找安全性漏洞。本文给大家分享,如何使用ZTF调用ZAP执行安全扫描,并将结果提交到禅道项目管理系统。

首先,我来简单了解下ZAP客户端工具的使用方法。

  • 官网下载所需操作系统的、以Installer结尾的安装文件;
  • 完成ZAP客户端软件的安装;
  • 第一次打开ZAP应用,在弹出窗口中选择第3项“No, I do not want to persist this session at this moment in time.”,意为之后需要时再手动保存会话;
    image.png
  • 打开的客户端中,界面中包含如下的6个功能区域;

    1. 菜单栏
    2. 工具栏
    3. 站点、脚本树状结构
    4. 工作区
    5. 信息窗口
    6. 状态栏

    image.png

  • 在Quick Start的标签页,点击 Automated Scan按钮;
    image.png
  • 在文本框 URL to attack中填入需要扫描的网站地址;
  • 安装所选择的浏览器(此处为Firefox),其他和上图保持一致;
  • 点击 Attack按钮,开始扫描;
  • 扫描结束后进入以下报告页面。
    image.png

在前面的Quick Start的标签页中:

  • 您可以通过点击 Manual Explore按钮,给扫描工作一个基于URL的站点地图指引,以提高扫描效率;
  • 点击Lean More可获得更多的帮助信息,如站点登录认证等方面的高级功能。

有了对ZAP基本功能的了解,接下来我们分享,如何在禅道ZTF中集成ZAP,开展安全漏洞的扫描工作。

  1. 参照以上步骤,创建一个ZAP安全扫描的Session会话,并保存;
  2. 完成需要的配置,如站点地图指引、登录认证、扫描规则等设置;
  3. 官网下载ZAP名为 Cross Platform Package的跨平台JAR包;
  4. 使用以下命令启动ZAP服务,其中参数-daemon设置不显示客户端界面;

    java -jar zap-2.12.0.jar -config api.key=my_api_key -daemon -session /Users/aaron/rd/project/testing/zap_deeptest.session
  5. 执行下列ZTF命令,使用上面创建的Session,启动安全扫描任务。

     zap -p 1 -t task-zap --verbose -options server=http://localhost:8080,apiKey=api_key,site=https://httpbin.org/

    其中参数:
    -p: 禅道产品编号
    -t: 禅道测试单编号
    -options: 以逗号分隔字符串的方式,指定了ZAP的扫描参数

    • server:ZAP服务器的访问地址
    • apiKey:ZAP服务访问凭证,同启动服务时参数一致
    • site:所要扫描的站点URL,报告也会基于此URL过滤

ZTF会等待安全扫描的结束,获取扫描结果,并提交到禅道。

最后,给大家列一下本文相关的ZAP启动命令和API接口,具体Go语言的封装可以参考这里

# 启动ZAP服务
java -jar zap-2.12.0.jar -config api.key=my_api_key -daemon -session /Users/aaron/rd/project/testing/zap_deeptest.session
# 执行扫描任务,该命令会返回一个唯一的识别号ScanId。
http://localhost:8080/JSON/core/view/alerts/?apikey=my_api_key&baseurl=https://httpbin.org/&start=0&count=10000
# 获取扫描任务进度
http://localhost:8080/JSON/spider/view/status/?apikey=my_api_key&scanId=1
# 获取扫描结果
http://localhost:8080/JSON/core/view/alerts/?apikey=my_api_key&baseurl=https://deeptest.org/&start=0&count=10000
# 停止指定扫描任务,ScanId来源于开始命令的返回。
http://localhost:8080/JSON/ascan/action/stop/?apikey=my_api_key&scanId=10
# 停止服务器上的所有扫描任务
http://localhost:8080/JSON/ascan/action/stopAllScans/?apikey=my_api_key



Q: 什么是ZAP在OWASP安全测试中的作用?

A: ZAP是OWASP提供的开源安全漏洞扫描工具,用于检测Web应用程序中的安全漏洞。


Q: 如何使用ZTF执行ZAP的自动化安全扫描?

A: 可通过ZTF命令,结合ZAP会话和API配置,自动执行安全扫描任务并提交结果至禅道系统。


Q: OWASP TOP 10在Web应用安全测试中的重要性是什么?

A: OWASP TOP 10是Web应用程序中最常见和最危险漏洞的列表,是安全测试的主要参考标准。

  • owasp.png

推荐阅读

测试开发之网络篇-常用服务协议

介绍常用的网络服务协议。
陈琦 2021-05-25

测试开发之网络篇-问题定位

我们在测试工作中,时常遇到某个产品网站或服务连不上的问题。借助前面了解的网络相关知识,可以从以下几个视角进行初步的问题排查。 ping网站域名,确认是否是DNS解析的问题; 通过域名访问内网服务时,先确认hosts文件是否配置了域名映射; ping网站IP地址,检查到目标服务器的网络连通性; telnet IP+端口,确认远程服务是否可达; 有条件的去服务器上执行...
aaronchen2k 2021-05-25

测试开发之前端篇-HTML超文本标记语言

前面的文章中,给大家介绍了一个标准HTML页面的组成部分。为更好地掌握这些内容,建议大家阅读HTML标签参考手册,并使用其中的”动手试一试“的功能,直观地体验下这些元素所展示的内容。 HTML是Web自动化测试和网页设计的一个基础,上述教程已经做的很完善,大家阅读一遍,有个基本的了解即可。后续学习中如遇到不明白的地方,可当做手册来查询。Q: 什么是禅道? A: 禅道是一款开源的项目管理软件,...
aaronchen2k 2021-09-03

测试开发之源码篇-代码分支策略

本文介绍了常见的代码分支策略,包括主干开发、Git Flow、Github Flow和Gitlab Flow。每种策略都有其适用场景和优势,可以根据项目需求选择合适的代码分支策略。
💍
陈琦
2023-05-31
返回顶部
客服头像
金娟
高级客户经理
客服微信
18562856230
1826606239
统一服务热线 4006-8899-23
我要提问提问有任何问题,您都可以在这里提问。问题反馈反馈点击这里,让我们聆听您的建议与反馈。