浅谈安全测试之 AppScan
什么是安全测试?
安全测试是一种软件测试,用于发现软件应用程序中的漏洞、威胁、风险并防止来自入侵者的恶意攻击。目的是确定软件系统的所有可能漏洞和弱点,这些漏洞和弱点可能导致信息,收入损失,因此很多程序在上线发布之前,都会做相应的安全性测试,以确保程序正常无误,不会受外力的风险侵入。
安全测试的目标是识别系统中的威胁并衡量其潜在漏洞,以使系统不会停止运行或被利用。它还有助于检测系统中所有可能的安全风险,并帮助开发人员通过编码解决这些问题,维护程序稳定。
常用的安全测试工具:AppScan、Burpsuite、Nmap、sqlmap。今天我们着重讲解一下 AppScan,并附上实操。
定义:AppScan 是 IBM 的一款 web 安全扫描工具,主要适用于 Windows 系统。该软件内置强大的扫描引擎,可以测试和评估 Web 服务和应用程序的风险检查,根据网站入口自动对网页链接进行安全扫描,扫描之后会提供扫描报告和修复建议等。
工作原理:爬行-通过搜索(爬行)发现整个 Web 应用结构;验证-通过对于 Respone 的分析验证是否存在安全漏洞;分析-根据分析,发送修改的 HTTP Request 进行攻击尝试(扫描规则库)。
安装版本选择:建议安装最新版本,部分版本对电脑的要求会高一些,可能会出现不适配的情况,有 IBM 证书和 HCL 证书两种形式,两种形式对应不同的版本。如果下载的是需要导入 IBM 证书的版本,需要找到 IBM 的证书进行导入;若是 HCL 的,则需要找到 HCL 的进行导入。不同的版本,破解的方式是不同的,需要注意。
话不多说,上实操详解,讲一讲每个系统的第一个安全入口,登录!
无需登录的系统
对无需登录的系统,进行浏览器扫描测试,可以看到仪表板清晰的展示了需要解决的问题,以及问题的严重等级程度。
如严重等级高的问题,修改 api 接口的路径,响应结果是 200,说明这个接口是能访问通畅的,那么会造成什么后果呢?对方可能通过这个接口,无限的访问,增加服务器负荷,可能会导致系统瘫痪。
可以通过什么方式解决该问题呢?开发可在代码中进行设置,除了正确的状态码之外的 api 请求,返回一个统一的状态码即可,使之除了正确访问之外,其他的请求全部统一拦截。
带登录页面的系统
带登录页面的系统进行浏览器安全测试扫描:
配置浏览器参数;
记录登录参数的 cookie 数据,记录登录状态,保持登录态;
配置测试策略;
设置完成后,进行相关安全扫描 。
比如扫描的结果中修改的请求方式:原来请求方式是 post 被修改为了 Delete 类型,但是请求响应是 OK 200,那说明 url 链接是存在一定风险的。
解决方式:通过修改返回状态码,即可解决。
带图形验证码的系统
登录-带图形验证码的系统,如何进行安全扫描?
因为图形验证码会一直更改,appscan 无法记录准确的登录信息,所以目前未找到合适的解决方式,可根据上图进行安全扫描也可以的哈。
若扫描过程中,出现中断,卡顿、电脑宕机的情况,appscan 自带扫描记忆,下次扫描会从中断的地方进行再次扫描,所以不用担心哈~
扫描完成后,可输出相应安全测试报告,报告中详细解读了产生的原因,并给出了解决方案和方式,报告可以说是很详尽了,中英文都有~~
安全测试报告中,从介绍、摘要、问题分类、修订建议、咨询、应用程序数据几个方面详细描述了测试结果。
对于日常系统中,appscan 还是可以很好的解决一部分潜在的安全性问题,可以帮助前端后端同学,更好的设计代码和代码架构,提升 IT 产品的安全质量,尽可能在发布之前找到安全问题予以修补降低成本,度量安全,保证软件系统不被非法入侵,不受各种因素的干扰。
Appscan 还有很多安全测试策略,可供各种安全扫描,总体来说,还是很强大的,感兴趣的小伙伴可进行深层次挖掘,互相学习,共同促进!
版权声明: 本文为 InfoQ 作者【数新网络官方账号】的原创文章。
原文链接:【http://xie.infoq.cn/article/22d19e9cfc1fe612a2644bd4b】。文章转载请联系作者。
评论