安全性测试:OWASPZAP使⽤⼊门指南
免责声明:
本⽂意在讨论使⽤⼯具来应对软件研发领域中,⽇益增长的安全性质量测试需求。本⽂涉及到的⼯具不可被⽤于攻击⽬的。
1. 安全性测试
前些天,⼀则12306⽤户账号泄露的新闻迅速发酵,引起了购票⽤户的⼀⽚恐慌。
且不论这次账号泄露的漏洞究竟是发⽣在哪⾥,⽹络安全性这个话题再次引起了我们的关注。
做为IT从业⼈员,我们的研发产品是否具有⾜够的安全性,是不是能够在亿万⽤户的?我们是不是应该更多的关注产品安全性,投⼊更多的安全性测试资源?
从⾏业发展的趋势来看,答案是肯定的。
2. OWASP
OWASP是⼀个开源的、⾮盈利的全球性安全组织,致⼒于应⽤软件的安全研究。其使命是使应⽤软件更
加安全,使企业和组织能够对应⽤安全风险作出更清晰的决策。⽬前OWASP全球拥有220个分部近六万名会员,共同推动了安全标准、安全测试⼯具、安全指导⼿册等应⽤安全技术的发展。
近⼏年,OWASP峰会以及各国OWASP年会均取得了巨⼤的成功,推动了数以百万的IT从业⼈员对应⽤安全的关注以及理解,并为各类企业的应⽤安全提供了明确的指引。OWASP被视为web应⽤安全领域的权威参考。2009年发布的美国国家和国际⽴法、标准、准则、委员会和⾏业实务守则参考引⽤了OWASP。美国联邦贸易委员会(FTC)强烈建议所有企业需遵循OWASP⼗⼤WEB弱点防护守则。
OWASP 颁布并且定期维护更新的web安全漏洞TOP 10,也成为了web安全性领域的权威指导标准,同时也是IBM APPSCAN、HP WEBINSPECT等扫描器漏洞参考的主要标准。
3. ZAP
OWASP ZAP,全称:OWASP Zed Attack Proxy攻击代理服务器是世界上最受欢迎的免费安全⼯具之⼀。ZAP可以帮助我们在开发和测试应⽤程序过程中,⾃动发现 Web应⽤程序中的安全漏洞。另外,它也是⼀款提供给具备丰富经验的渗透测试⼈员进⾏⼈⼯安全测试的优秀⼯具。
3.1 ZAP的⼯作原理
在安全性测试领域,安全性测试主要可以由以下⼏种测试策略来覆盖:
漏洞分析 - 对系统进⾏扫描来发现其安全性隐患
渗透测试 - 对系统进⾏模拟攻击和分析来确定其安全性漏洞
运⾏时测试 - 终端⽤户对系统进⾏分析和安全性测试(⼿⼯安全性测试分析)
代码审计 - 通过代码审计分析评估安全性风险(静态测试,评审)
ZAP主要是⽤于应⽤上述的第⼆种测试,即渗透性测试。
ZAP以架设代理的形式来实现渗透性测试,类似于fiddler抓包机制。他将⾃⼰置于⽤户浏览器和服务器中间,充当⼀个中间⼈的⾓⾊,浏览器所有与服务器的交互都要经过ZAP,这样ZAP就可以获得所有这些交互的信息,并且可以对他们进⾏分析、扫描,甚⾄是改包再发送。
3.2 ZAP下载
下载地址:github:
现在的稳定版本是2.7.0版,推荐下载windows64位安装包来初试安全性扫描机制。
3.3 ZAP安装
本⽂推荐的windows64位版的ZAP安装⾮常简单,跟普通的安装程序过程没有太⼤不同,本⽂不再赘述。
当然遗憾的是,现阶段ZAP的中⽂⽀持做得还不是很好,基本的操作界⾯以英⽂为主。
spider软件3.4 初步使⽤ZAP
进程保留:
初次打开ZAP时,会看到以下对话框,询问是否要保持ZAP进程。
保存进程则可以让你的操作得到保留,下次只要打开历史进程就可以取到之前扫描过的站点以及测试结果等。⼀般来说,如果对固定的产品做定期扫描,应该保存⼀个进程做为长期使⽤,选第⼀或者第⼆个选项都可以。如果只是想先简单尝试ZAP功能,可以选择第三个选项,那么当前进程暂时不会被保存。
设置代理:
打开ZAP以后看到的是如下界⾯:
在开始使⽤他进⾏渗透测试之前,如前⽂所述,⾸先需要将他设为我们的浏览器代理。
ZAP的默认地址和端⼝是标准的localhost:8080,如下图:
如果端⼝可⽤,接下来我们只需要去修改浏览器代理,以⽕狐为例:
在设置-常规-连接设置⾥,选择⼿动代理,并将http代理设为与ZAP⼀致:
完成这⼀设置以后,我们再⽤这个浏览器去访问站点时,都会通过ZAP这个中间⼈,于是这就给ZAP提供了抓包、分析、渗透测试的可能性。
快速测试:
ZAP右上⽅区域是快速测试窗⼝,可以开启⾮常傻⽠式的渗透测试:
输⼊⽹址,点击‘Attack’,搞定,so easy。
在快速攻击过程中,ZAP做了以下⼏件事:
使⽤爬⾍抓取被测站点的所有页⾯
在页⾯抓取的过程中被动扫描所有获得的页⾯
抓取完毕后⽤主动扫描的⽅式分析页⾯,功能和参数
结果分析:
等待上述快速测试完成以后,我们就可以拿到ZAP提供的测试结果进⾏分析。
快速测试中,ZAP会产出以下⼀些产物:
被测站点地图及页⾯资源
所有请求、反馈记录
安全性风险项⽬列表
其中我们最关注的当然是安全性风险项,ZAP将做出以下标识:
由上到下分别为:⾼、中、低、信息、通过
在窗⼝最底部,切换到Alert界⾯,可以看到所有扫描出的安全性风险:
其中的所有风险项可以展开,ZAP在右侧窗⼝会对该风险项提供说明和解释,并且在右上部response区域⾼亮展⽰具体风险项由来(从反馈中分析得出的)。如果只是简单的安全性测试需求,或者只是为了学习安全性测试知识,到这⼀步为⽌ZAP给出的风险项分析和报告,已经可以⼀定程度满⾜要求了。
通过主菜单Report选项,可以选择输出HTML、XML等多种格式安全性测试报告。
主动爬取⽹站
之前介绍了使⽤ZAP做为浏览器代理,配置好代理的情况下,使⽤浏览器进⾏任何站点的访问都会经过ZAP,这时就会在ZAP的context记录⾥留下该站点记录,如图:
右键点击需要测试的站点,选择Attack->Spider,弹出的选项窗⼝点击Start Scan,则会开始⼿动爬取⽹站。
主动扫描
与节操作类似,右键点击⽬标站点,选择Attack->Active Scan,就可以触发主动扫描:
扫描完毕后,同样可以切换到Alert界⾯,查看安全风险项,或者输出测试报告。
关于ZAP的⼊门使⽤就介绍到这⾥,学会以上使⽤技巧,就已经可以应付初级的安全测试需求了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论