?安全测试应该是测试中非常重要的一部分,但他常常最容易被忽视掉。
尽管国内经常出现各种安全事件,但没有真正的引起人们的注意。不管是开发还是测试都不太 一本书值《web安全测试》,这应该是安全测试领域维数不多又被大家熟知的安全测试书,我曾看过前面几个章节,唉,鄙视一下自己,做事总喜欢虎头蛇尾。写得非常好,介绍了许多安全方面的工具和知识。我觉得就算你不去做专业的安全开发\测试人员。起码可以开阔你的视野,使你在做开发或测试时能够考虑到产品安全方面的设计。防患于未然总是好的,如果你想成为一个优秀的人。
一个工具,其实本文也只是想介绍一下,这个工具----AappScan,IBM的这个web安全扫描工具被许多人熟知,相关资料也很多,因为我也摸了摸它的皮毛,所以也来人说两句,呵呵!说起sappScan,对它也颇有些感情,因为,上一份工作的时候,我摸过于测试相关的许多工具,AappScan是其它一个,当时就觉得这工具这么强大,而且还这么傻瓜!!^_^!于是,后面在面试的简历上写了这个工具,应聘现在的这家公司,几轮面试下来都问到过这个工具,因为现在这家公司一直在使用这个工具做安全方面的扫描。我想能来这家公司和我熟悉AappScan应该有一点点的关系吧!呵呵
AappScan下载与安装IBM官方下载; AppScan其实是一个产品家族,包括众多的应用安全扫描产品,从开发阶段的源代码扫描的AppScansourceedition,到针对WEB应用进行快速扫描的AppScanstandardedition.以及进行安全管理和汇总整合的AppScanenterpriseEdition等,我们经常说的AppScan就是指的桌面版本的AppScan,即AppScanstandardedition.其安装在Windows操作系统上,可以对网站等WEB应用进行自动化的应用安全扫描和测试。
使用AppScan来进行扫描我们按照PDCA的方法论来进行规划和讨论;建议的AppScan使用步骤:PDCA:Plan,Do,check,ActionandAnalysis.
计划阶段:明确目的,进行策略性的选择和任务分解。
1)明确目的:选择合适的扫描策略
)了解对象:首先进行探索,了解网站结构和规模
3)确定策略:进行对应的配置
a)按照目录进行扫描任务的分解
b)按照扫描策略进行扫描任务的分解
执行阶段:一边扫描一遍观察
4)进行扫描
5)先爬后扫(继续仅测试)
检查阶段(Check)
6)检查和调整配置
结果分析(Analysis)
7)对比结果
8)汇总结果(整合和过滤)
AppScan的工作原理
当我们单击“扫描”下面的小三角,可以出现如下的三个选型“继续完全扫描”,“继续仅探索”,“继续仅测试“,有木有?什么意思?理解了这个地方,就理解了AppScan的工作原理,我们慢慢展开:
还没有正式开始,所以先不管“继续“,直接来讨论’完全扫描”,“仅探索”,“仅测试”三个名词:
AppScan是对网站等WEB应用进行安全攻击,通过真刀真枪的攻击,来检查网站是否存在安全漏洞;既然是攻击,肯定要有明确的攻击对象吧,比如北约现在的对象就是卡扎菲上校还有他的军队。对网站来说,一个网站存在的页面,可能成千上万。每个页面也都可能存在多个字段(参数),比如一个登陆界面,至少要输入用户名和密码吧,这就是一个页面存在两个字段,你提交了用户名密码等登陆信息,网站总要有地方接受并且检查是否正确吧,这就可能存在一个新的检查页面。这里的每个页面的每个参数都可能存在安全漏洞,所有都是被攻击对象,都需要来检查。
这就存在一个问题,你领命来检查一个网站的安全性,这个网站有多少个页面,有多少个参数,页面之间如何跳转,你可能很不明确,如何知道这些信息?看起来很复杂,盘根错节;那就更需要找到那个线索,提纲挈领;那就想一想,访问一个网站的时候,我们需要知道的最重要的信息是哪个?网站主页地址吧?从网站地址开始,很多其他频道,其他页面都可以链接过去,对不对,那么可不可以有种技术,告诉了它网站的入口地址,然后它“顺藤摸瓜”,找出其他的网页和页面参数?OK,这就是”爬虫”技术,具体说,是”网站爬虫“,其利用了网页的请求都是用 在使用AppScan的时候,要配置的第一个就是要检查的网站的地址,配置了以后,AppScan就会利用“探索”技术去发现这个网站存在多少个目录,多少个页面,页面中有哪些参数等,简单说,了解了你的网站的结构。
“探索”了解了,测试的目标和范围就大致确定了,然后呢,利用“军火库”,发送导弹,进行安全攻击,这个过程就是“测试”;针对发现的每个页面的每个参数,进行安全检查,检查的弹药就来自AppScan的扫描规则库,其类似杀毒软件的病毒库,具体可以检查的安全攻击类型都在里面做好了,我们去使用即可。
那么什么是“完全测试呢”,完全测试就是把上面的两个步骤整合起来,“探索”+“测试”;在安全测试过程中,可以先只进行探索,不进行测试,目的是了解被测的网站结构,评估范围;然后选择“继续仅测试”,只对前面探索过的页面进行测试,不对新发现的页面进行测试。“完全测试”就是把两个步骤结合在一起,一边探索,一边测试。
上图更容易理解:
步骤1:探索(爬行,爬网)
步骤:真对找到的页面进行测试,生成安全攻击
(作者:虫师来源: