一、为什么要做安全测试
(一)背景概述
(二)原因剖析
大家可以稍微留意下,规模稍微大点的公司,一般会有专门的安全测试团队或者请乙方安全公司来进行安全测试。
实际上,安全团队也是利用安全扫描工具进行扫描,扫描出来的漏洞大多是常见的SQL注入,跨站点请求伪造CSRF,跨站点脚本攻击XSS等等。想着工具的学习成本也不高,于是在领导的号召下,在公司内部开启了一轮从0到1的安全测试。
二、安全测试的详细方法
(一)测试工具
简单理解,就是AppScan工具先抓取出所有的接口,接着利用自身的安全用例库,对接口传各种参数,验证接口是否有安全漏洞。
(二)测试步骤
基本思路:自动探索--特殊配置--手动探索--仅测试--导出报告。
以测试一个Web应用为例,介绍一次完整的安全测试流程。
1、打开AppScan,文件--新建--扫描Web应用程序。
2、填写起始URL地址
这里有个坑:填写登录页面的地址,最好是未登录之前,因为有的页面没有做重定向处理,后续测试的时候会一直提示登录。
比如登录页面的地址是https://XXX/Login,最好别填登录进去后的某个地址例如:https://XXX/Login/index
3、填写登录管理信息
登录系统的方式,有三个选项:
①记录:点击“记录”按钮,进行录制登录操作。操作类似于用LR做脚本录制,适用于没有验证码的场景。
②自动:输入用户名和密码,扫描时会自动根据这个凭证登录应用程序,推荐没有验证码时,使用该场景。
③提示:根据扫描地址,每次需要登录时会弹出相应登录页面,如遇后台登录有验证码时推学使用此场景。
记录和自动的差别不大,都是适用于没有验证码的场景,而且都只需要输入一次用户名和密码,不同之处在于「记录」是在浏览器登录页面输入密码,「自动」是直接在AppScan的页面输入密码。
4、测试策略
在实际测试过程中,要完整的测试就选「完成」策略,一般情况下选「缺省值」策略。
简单介绍下7种测试策略:
①缺省值:包含多有测试,但不包含侵入式和端口侦听器
②仅应用程序:包含所有应用程序级别的测试,但不包含侵入式和端口侦听器
③仅基础结构:包含所有基础结构级别的测试,但不包含侵入式和端口侦听器
④侵入式:包含所有侵入式测试(可能影响服务器稳定性的测试)
⑤完成:包含所有的AppScan测试
⑥关键的少数:包含一些成功可能性较高的测试精选,在时间有限时对站点评估可能有用
⑦开发者精要:包含一些成功可能性极高的应用程序测试的精选,在时间有限时对站点评估可能有用。
5、测试优化
默认即可。
6、完成
实际测试项目中一般先选择自动“探索”启动,因为还需要设置后面的排除链接,有些接口是不适合做大量测试的,例如一些外部接口,对接的外部项目的线上接口,如果进行测试后,会产生大量的线上脏数据。
有四个选项:
①启动全面自动扫描:会自动探索URL,而且边探索边扫描页面,也就是边扫描边测试
②仅使用自动“探索”启动:自动探索URL,不做扫描,只是探索出所有的接口,不对接口进行任何操作
③使用“手动探索”:手动去访问页面,AppScan会自动记录你访问页面的url
④我将稍后启动扫描:AppScan不做任何操作,需要自己手动去启动扫描。
7、保存文件
8、进行第一遍的探索结果
9、操作系统参数设置
根据被测系统,在配置--扫描配置~-环境定义,修改操作系统相关参数。
10、屏蔽设置
根据被测系统,在配置-扫描配置--环境定义,可排除不需要测试的接口。
在扫描过程中,有些需要排除的接口,例如登出接口,与外部项目对接产生大量生成脏数据的接口等等,可以设置进行排除。
11、线程设置
在测试过程中,应用服务出现性能过慢的问题,可在配置-扫描配置--.通信和代理中,适当调整线程数为2~5。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理