我们接触Android App安全测试最早还是在2014年初,当年移动互联网产业快速发展,App井喷式爆发,绝大多数使用的是Android系统。那时大多数开发者没有做好App的安全防护措施,面对移动互联网黑灰产的攻击,App基本上处于“裸奔”状态。那些年,我们可以看到很多真实的App攻击案例:
--针对某款无人机,攻击者通过攻击操作者终端的App,实现对无人机的远程劫持,重现2014年热门科幻电影《星际穿越》中的场景。
--针对特斯拉汽车,攻击者通过攻击车主终端的App,实现对汽车远程开关门等恶意控制。
--针对日本最大马桶公司Laxil生产的智能马桶,攻击者通过攻击App,实现远程控制,比如让坐浴喷水超过1米高、激活各种功能,使用户陷入窘境。
--针对某资产万亿银行的App,攻击者通过破解App程序发现后台系统地址,发掘后台系统漏洞,可将任意账户的资金转走。
当时我们进行安全测试的金融类、网约车类App安全问题还是比较多的,并且做App安全加固的企业也不多,做移动端的App安全测试与PC端、Web端测试不同,移动端没有相关的测试标准,也没有相关资料参考,只能慢慢地摸索、积累。
当时,金融类App暴露出很多安全风险,一套安全测试流程下来,基本上都是不通过的项,例如:
代码层****:代码没有混淆、没有加固,App没有签名校验机制,可以任意修改,然后二次打包,更没有反调试。
用户交互层:弱口令、App没有自带的软键盘、验证码简单,用户敏感界面也没有防录屏/防截屏的措施,界面劫持钓鱼攻击严重。
数据存储层****:调试代码未及时关闭,本地明文存储,Cookie明文暴露。
网络通信层:客户端与服务器交互协议不安全,数据明文数据传输。
漏洞方面:SQL注入,中间人攻击漏洞,组件攻击漏洞等风险非常普遍。
经过几年移动端App反复测试、修复,以上安全风险得到了很大的改观,心细的朋友可能发现,比如:这几年,在使用金融类App输入密码信息时,App都有了自带的安全软件盘让用户使用,不支持复制粘贴功能。同时,键盘按键也没有像“按键阴影”这样的效果。还有,就是当用户正在使用App时,如果突然来了电话或者微信,切换应用时,App会弹出一个类似“程序已进入后台运行”的提示,这些都是我们在安全测试后提出的修复意见,慢慢地这些都成为了基本的安全要求。
再后来,为App提供加固服务的企业越来越多,尤其在2015年,这一年似乎是“App安全加固元年”,各大企业都推出了自己的一套安全加固方案,比如:第一代、第二代、第三代、第四代,现在采用“VMP”虚拟机壳技术,还有就是各大企业举办的重大安全会议,都有关于“Android加壳脱壳”技术分享的议题,并且基本上都是会场爆满的状态,可以说是如火如荼。总的来说,安全企业的加固方案分为两种:一种是免费版,另一种是收费版(定制版)。按照用户的需求功能定制收费,通常也是黑盒测试,各个企业都有自己的加固标准,加固好的App中会嵌入壳的代码,App运行时壳的代码优先执行,然后执行用户自身App的代码。对于用户来说,其实并不非常清楚到底加壳做了什么。
由于目前市场上没有公开、统一的安全测试标准,同时,安全企业又各有各的安全测试标准,这就导致Android开发者和测试人员没有渠道可以全面了解安全测试的标准和规范。因此,我们决定把我们多年积累的安全测试经验整理成册,从而让每个App开发者都可以做一个具有安全经验的开发者,从源头上避免最常见的安全风险点,让爱好者一开始就有一个App安全测试的思维模型雏形。于是,这本书也就应运而生了。
最后,随着5G网络技术的快速发展,未来5G相关垂直行业的App会越来越多(比如:车联网App,物联网App,工业互联网App、在线教育App、微信/支付宝小程序等),出现安全风险的可能性也就越来越高。因此,掌握App安全测试技术和防护技术是非常有必要的,建议Android开发者和安全测试人员都要好好掌握。
在此 感 谢图灵编辑张霞老师 的 帮助和指导!
-------------------------------------------
本书由中国工信出版集团人民邮电出版社(2020年5月)出版,可到各大电商平台(京东、天猫、当当等)购买,搜索书名《Android 应用安全测试与防护》即可。
欢迎关注本书公众号
获取更多App安全知识
本文分享自微信公众号 - App安全红宝书(apphongbaoshu)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。