10月份,12321举报中心共收到举报手机应用安全问题(APP) 35001件次,较上月上升了47.5%。去重之后涉及约22636个。经网秦、腾讯、金山毒霸等11个安全引擎过滤。从危害风险分析:被举报数据中14389个应用存在安全隐患,其中1258个应用存在高度风险;从恶意行为分析:1867个应用存在恶意行为,其中恶意扣费(33.5%)、流氓行为(18.2%)、隐私窃取(18.7%)。
APP的安全问题并不是一天两天了,只从安卓诞生以来,APP的危险就就没有消失过,安卓也因此总是被他的老对手iOS讽刺。安卓也一直想提升自身的安全性,可是由于安卓本身的特性,这个“梦想”一直没有实现。
安卓的危险主要表现在以下三个方面。
第一个原因就是签名机制问题,安卓上没有中央的签名机制,签名的原因造成现在安卓这个市场上二次打包的现象非常严重。
第二个原因是技术问题,安卓采用JA VA语言开发的,源码很容易泄露。
第三个原因就是安卓的开放性,苹果控制了签名,使下载程序的来源变得单一,而在安卓上你可以在任何地方下载应用程序,其实安卓不安全的真正原因就是这个因素造成的。
在这种情况下,我们还会经常碰到一些问题,现在会暴露一些服务器的漏洞。为了支持手机的客户端,新开发了一套接口,而这套接口没有经过调试,黑客仿编你的客户端,通过未调试的接口就会发现你后台有一些相关的漏洞,从而通过这种方式进行一些入侵。上面展示的数据触目惊心,很大一部分原因是APP市场中存在大量的盗版、翻版APP,看上去和正版一模一样,但是和正版一点关系都没有。如果用户因此而损失利益,这个锅就要正版APP开发者来背。
开发者需要保护APP安全
开发者如何保护自己的APP在网上已经有很多大牛总结了许多方法,APP第三方加密平台爱加密(www.ijiami.cn)也总结了一套APP加密技术保护方案。
第一个就是为移动APP做一次彻底的安全评估。安全评估是指由具备高技能和高素质的安全服务人员发起、并模拟常见黑客所使用的攻击手段对目标系统进行模拟入侵,其目的在于充分挖掘和暴露系统的弱点,从而让管理人员了解其系统所面临的威胁。渗透测试工作往往作为风险评估的一个重要环节,为风险评估提供重要的原始参考数据。
第二个就是基于数据生命周期的安全测试,对手机银行客户端的程序、数据、通信、业务、系统环境等进行全面安全测试,检测数据的输入、处理、输出以及数据运行时的系统环境的安全性。爱加密做了这些工具:反编译及重打包dex2jar、baksmali、IDA pro、apktool;调试工具gdb 等;代码注入工具Xposed、Substrate 等;网络Burp suite等。
爱加密还做了一个测试内容,采用黑盒渗透攻击和白盒代码审计的方式发现APP安全漏洞,它包括七个方面的内容:程序安全,安装与卸载、人机交互、登陆检测、发布规范、第三方SDK安全等方面;代码安全,是否具有防逆向、防动态注入、防篡改等能力;数据安全,应用的数据录入、数据访问、数据存储、数据传输、数据显示是否存在安全风险;组件安全,移动应用暴露的组件是否可以被恶意攻击;通信安全,检查客户端软件和服务器间的通信协议是否安全,能否被攻击;业务安全,移动应用的核心业务是否存在安全缺陷。例如银行客户端,针对转账的过程应进行安全性检测,检测是否有可能进行转账的篡改;系统安全移动应用的运行环境是否安全。
第三个就是代码安全这一块。
反编译测试,将二进制程序转换成人们易读的一种描述语言的形式,是逆向工程中的常见手段。反编译的结果是易读的代码,这样就暴露了客户端的所有逻辑,比如与服务端的通讯方式,加解密算法、密钥、转账业务流程、软键盘技术实现等等。
重打包测试,对客户端程序添加或修改代码,修改客户端资源图片,配置信息,图标等,再生成新的客户端程序,实现应用钓鱼。对金融客户端,可能添加病毒代码、 广告SDK,推广自己的产品;添加恶意代码窃取登录账号密码、支付密码、拦截验证码短信,修改转账目标账号、金额等等。
动态调试测试,指攻击者利用调试器跟踪目标程序运行,查看、修改内存代码和数据,分析程序逻辑,进行攻击和破解等行为。对于金融行业客户端,该风险可修改客户端业务操作时的数据,比如账号、金额等。
代码注入测试,通过OS特定技术,将代码写入到目标进程并让其执行的技术。攻击者可以将一段恶意代码写到目标进程,这段代码可以加载其它可执行程序,进而实施hook,监控程序运行行为、获取敏感信息等。对于金融客户端,可通过代码注入技术,将恶意代码注入到客户端中,窃取输入的登录账号、密码、支付密码, 修改转账的目标账号、金额,窃取通讯数据等。