移动互联网时代,我们的生活、工作、娱乐等都越来越离不开各式各样的App。据了解,全球移动用户数量大约超过37亿。Google Play 上大约有220万个App,苹果App Store上大约有20亿多个App。同时,根据Flurry 统计数据表明,现在,每个人每天会在移动设备上花费近5个小时的时间。
伴随移动App的广泛应用,越来越多的App遭受到黑客攻击,比如数据库被篡改,数据被泄露,手机号、姓名以及密码等重要资料被盗取。有些App上甚至连银行卡,充值通道,支付接口也被黑客修改过,导致App运营者经济损失惨重。目前,我们鲸钱包平台的App测试还是以发现Bug为主,主要测试流程就是服务器接口测试、客户端功能测试,以及需要自动化协助的性能测试,适配测试和压力测试等。而对于App安全测试一直没有一套系统、全面、统一的标准和流程。
其实,安全Bug也属于Bug的一种,只不过更加隐秘,难以发现。那么,我们还有办法给我们的App套上一把安全锁,让我们的App免受那些层出不穷的漏洞攻击吗?由于移动互联网的App大部分是采用Web方式开发的,所以App的安全测试可以从以下几个漏洞检测开始:检测是否存在查看、编辑用户资料等越权操作,比如普通用户是否可以使用管理员权限去查看任意用户的资料,包括手机号,银行卡等重要信息,越权修改其他账号的头像。检测头像,留言反馈等可以上传图片的功能里是否存在绕过文件格式校验,上传PHP,JAVA,JSP,WAR等脚本木马文件到App目录里。检测在注册,设置密码,找回密码,修改银行卡等重要操作的时候获取手机短信验证码的功能里是否存在短信多次发送,重复发送,1分钟不限制发送次数的漏洞。SQL注入漏洞
检测在登录,充值,修改银行卡,提交留言反馈,购买,提现等功能里是否存在将恶意的SQL注入代码植入到APP里,并发送到后端数据库服务器进行查询,写入,删除等SQL操作。有些App未对提交返回的内容进行加密,导致返回的数据中包含了用户的信息,包括账号,密码等都是明文显示,通过修改ID值可以任意的查看到其他用户的信息。检测意见反馈,头像上传地址功能里是否可以插入XSS跨站代码,导致后台管理员查看留言的时候可以触发XSS跨站攻击,导致后台的登录地址, Cookies等被攻击者获取到。检测服务器的Root账号密码,以及Redis密码,后台管理员账号密码是否可能存在弱密码。随着鲸钱包App的产品越来越丰富,功能越来越全面,用户使用量越来越大,鲸钱包App的安全测试也变得日益重要。我选择了IBM Rational AppScan这款工具来对我们的鲸钱包App进行安全测试,一起来了解一下这款工具吧~IBM Rational AppScan是一款面向 Web 应用安全检测的自动化工具,使用它可以自动化检测 Web 应用的安全漏洞。比如跨站点脚本攻击(Cross Site Scripting Flaws)、注入式攻击(Injection Flaws)、失效的访问控制(Broken Access Control)、缓存溢出问题(Buffer Overflows)等等。IBM Rational AppScan有自己的用例库,版本越新用例库越全,针对漏洞的检测也越全面。IBM Rational AppScan除了可以对Web应用安全漏洞进行检测,还能对App安全漏洞进行检测,这就是我为何选择这款工具的主要原因。除此以外,IBM Rational AppScan还能根据CVSS或自定义的严重性评分,将发现的漏洞分为高,中,低三个级别。查找具有最大影响和最容易执行的漏洞,包括跨站点脚本编写,SQL注入和路径遍历等。查找在执行过程中影响较小或更高难度的漏洞,包括跨站点请求伪造,HTTP响应拆分和蛮力攻击等。查找可能收集信息或泄漏信息,例如路径披露,目录列表或信用卡模式等。现在,让我们一起开始鲸钱包App的安全测试之旅吧~~打开IBM Rational AppScan,选择手动探索-外部设备。端口设置完毕后,打开手机WiFi设置页面进行代理设置,将代理IP设置为电脑IP,将端口设置为IBM Rational AppScan上面设置的代理端口。
手机代理设置完毕后,在IBM Rational AppScan代理设置页面会收到传入连接提示,点击“允许”会自动把手机IP加入白名单。我们也可以手动点击外部连接选择接收白名单,然后点击下方的“+”号将手机的IP加入白名单。
尽量清理手机后台,尽量在局域网进行(减少一些杂包影响),然后开始运行鲸钱包App。如果能在IBM Rational AppScan记录页面看到流量包,即为代理设置成功,接下来就是尽量点击到每一个菜单(最好有增删改过程)。点击完毕后,剩下的操作就是导入抓取到的流量包,然后点击扫描/继续仅测试即可。扫描完成后,会根据不同严重级别显示所有可能存在的漏洞,并提出一些改进建议等。可以根据需要,生成PDF测试报告。至此,本轮鲸钱包App的安全测试之旅愉快结束啦~~由于IBM Rational AppScan主要通过自动探索或者手动探索扫描爬取到URL等表单参数进行分析,得出可能存在问题的参数点,并对参数点进行脚本替换,然后提交服务器,并根据服务器的响应进行问题判断,最后得出结果。所以,扫描过程中可能会对系统功能菜单的增删改数据存在影响,且扫描过程会向服务器提交大量数据包,所以强烈不建议在生产环境中进行扫描,否则可能导致系统数据紊乱、系统宕机等高风险事故。进行该扫描请保证系统性能良好,因为扫描过程中会向服务器发送几十万甚至上百万的请求,如果服务器性能较差可能会宕机。 小网站不建议选择自动扫描,因为自动扫描可能会因为系统页面的耦合性关系导致爬虫找不到一些页面,所以建议采用手动探索后继续仅测试,大网站建议采用完全自动扫描。
总之,安全测试也不是绝对的,只能是尽全力把安全测试做到最大化。只有真正了解自己的App,以及存在的漏洞,才能把安全测试做好,做到极致。