Appscan是Web端安全测试工具,它只关心应用层的安全问题,也就是说产品开发好后才可以进入测试,相对来说,测试介入的时间偏晚。
工作原理:
1.对web应用进行安全攻击来检查网站是否存在安全漏洞。攻击对象:每一个页面的每一个参数
2.确定入口url,通过这个入口url,利用爬虫技术,找到整个网站的所有url链接和页面参数,这时候所有的攻击对象已经确定;
3.对页面参数挨个遍历扫描库中的“测试用例”,实际就是利用工具模拟黑客进行攻击,
如实际结果与预期结果一致则判断为存在安全隐患。
工作模式:
延伸出3种工作模式:完全扫描、仅探索、仅测试
全面扫描:探索 测试
仅探索:只找出所有的url和参数,暂时不进行测试;了解被测网站的结构及范围
仅测试:对之前探索出的参数执行“测试用例”,不对新发现的页面进行测试
相关配置:
过滤冗余页面:
Url的地址一致,只是参数的值不一致,这时候就只需要测试一个有代表性的url即可,可以利用正则表达式过滤掉;
因为会进行多轮测试,因此会测试到相同的页面,所以需要设置最大冗余页面
扫描策略:
在进行安全测试之前,要清楚的知道自己关注的是什么安全问题,针对性的测试,如果有明确的安全指标或者安全规则范围,
那么就选择安全类型即可。例如该系统只关注SQL注入类的安全隐患,可以只选择测试SQL注入类的安全问题。
Appscan扫描影响因素:
网站大小(页面个数、参数个数)
扫描策略的选择
扫描配置
相关疑问:
怎么判断是否是一个安全漏洞?
Appscan会有一个扫描规则库,类似于一批“测试用例”,按照测试用例进行攻击,将实际结果与预期结果进行比对,
如一致则认为是一个安全漏洞。
安全漏洞的存在:页面中与用户的交互越多,安全隐患越高。
安全漏洞类型:
Sql注入:攻击者先学习SQL查询结构,知道结构后利用结构篡改原sql语句,实现免密码登录或者直接绕过登录。
Sql盲注:通过猜测的方式得到数据库名称、表、字段和密码等,攻击力更大
跨域脚本攻击(XSS攻击):
重点在于脚本,就是在写入参数的时候加上一段完整的js代码或者是引用一个js文件,
让浏览器去识别并执行它,可以得到cookies等信息。
已解密的登录请求:
Appscan识别了不是通过ssl发送的登录请求
SSL安全登录:安全套接字层。一种加密通讯协议,作用是数据加密和身份认证。当选择“SSL安全登录”后登录网站,
用户名和密码会首先加密,然后通过SSL连接在 Internet 上传送,没有人能够读取或访问到该连接传送的数据。
解决办法:使用ssl协议登录;还有一种方式是,前端使用md5对传输的数据进行加密。
不充分账号封锁:
登录错误次数未限制
解决办法:限制登录错误次数限制,避免蛮力攻击。
Xpath注入:和sql注入类似原理,只是语言不同而已
专有名词:
脆弱性:能够被攻击者利用的弱点,可以直接理解成“漏洞”
AppScan 使用步骤:计划(Plan)、执行(Do)、检查(check)、分析(Analysis and Action)
1.在计划阶段:明确目的,进行策略性的选择和任务分解。
1.1明确目的:选择合适的扫描策略
1.2了解对象:首先进行探索,了解网站结构和规模
1.3确定策略:进行对应的配置
1.4按照目录进行扫描任务的分解
1.5按照扫描策略进行扫描任务的分解
2执行阶段:一边扫描一遍观察
2.1进行扫描
2.2先爬后扫(继续仅测试)
3检查阶段(Check)
3.1检查和调整配置
4结果分析(Analysis)
4.1对比结果
4.2汇总结果(整合和过滤)