《安卓APP危险分析及APP加密技术详解.docx》由会员分享,可在线阅读,更多相关《安卓APP危险分析及APP加密技术详解.docx(4页珍藏版)》请在三一办公上搜索。
1、安卓APP危险分析及APP加密技术详解凡事都有两面性,各分利弊。科技的发展给人们带来便利的同时,也带来了想不到的隐患。手机越来越多,手机APP也越来越多,但是,你的安全感是否越来越多了呢? 安卓的危险性 Android系统的开源性,手机APP易被黑客攻击、注入恶意代码、二次打包重新上市场。在此,受损失的不仅仅是手机用户,还有手机APP的开发者、开发商等。如今,寻求手机APP加密方案,保护手机APP的安全已迫在眉睫! 安卓的安全性不高是由他特别的体制造成的,主要表现在以下三个方面。 第一个原因就是签名机制问题,安卓上没有中央的签名机制,签名的原因造成现在安卓这个市场上二次打包的现象非常严重。 第
2、二个原因是技术问题,安卓采用JA VA语言开发的,源码很容易泄露。 第三个原因就是安卓的开放性,苹果控制了签名,使下载程序的来源变得单一,而在安卓上你可以在任何地方下载应用程序,其实安卓不安全的真正原因就是这个因素造成的。 在这种情况下,我们还会经常碰到一些问题,现在会暴露一些服务器的漏洞。为了支持手机的客户端,新开发了一套接口,而这套接口没有经过调试,黑客仿编你的客户端,通过未调试的接口就会发现你后台有一些相关的漏洞,从而通过这种方式进行一些入侵。 作为开发者或开发商,是应用程序产生的源头。建议将安全融入到应用开发生命周期当中去,在开发阶段进行安全测试和检测,及时发现应用程序缺陷和安全漏洞,
3、减少不必要的安全风险;在应用发布阶段进行应用安全加固,增加应用安全强度,防止应用被破解和二次打包;在运营阶段进行渠道监测,及时发现盗版应用,保障自身合法权益不受恶意损害。 保护APP安全 爱加密保护安卓APP主要通过以下三点来实现。 第一个就是为移动APP做一次彻底的安全评估。安全评估是指由具备高技能和高素质的安全服务人员发起、并模拟常见黑客所使用的攻击手段对目标系统进行模拟入侵,其目的在于充分挖掘和暴露系统的弱点,从而让管理人员了解其系统所面临的威胁。渗透测试工作往往作为风险评估的一个重要环节,为风险评估提供重要的原始参考数据。 第二个就是基于数据生命周期的安全测试,对手机银行客户端的程序、
4、数据、通信、业务、系统环境等进行全面安全测试, 检测数据的输入、处理、输出以及数据运行时的系统环境的安全性。手机银行客户端安全测试标准依据中国人民银行发布的中国金融移动支付系列技术标准中的中国金融移动支付检测规范第3部分:客户端软件。爱加密做了这些工具:反编译及重打包dex2jar、baksmali、IDA pro、apktool;调试工具gdb 等;代码注入工具Xposed、Substrate 等;网络Burp suite等。 爱加密还做了一个测试内容,采用黑盒渗透攻击和白盒代码审计的方式发现移动应用的安全缺陷及安全漏洞,它包括七个方面的内容:程序安全,安装与卸载、人机交互、登陆检测、发布规
5、范、第三方SDK安全等方面;代码安全,是否具有防逆向、防动态注入、防篡改等能力;数据安全,应用的数据录入、数据访问、数据存储、数据传输、数据显示是否存在安全风险;组件安全,移动应用暴露的组件是否可以被恶意攻击;通信安全,检查客户端软件和服务器间的通信协议是否安全,能否被攻击;业务安全,移动应用的核心业务是否存在安全缺陷。例如银行客户端,针对转账的过程应进行安全性检测,检测是否有可能进行转账的篡改;系统安全移动应用的运行环境是否安全。 第三个就是代码安全这一块。 对于软件开发人员来说,保护代码安全是非常重要的。然而,目前Google Android平台选择了Java Dalvik VM的方式使其
6、程序很容易被破解、修改,首先APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,类似Sun JavaMe的Jar压缩格式一样,此外,Android上的二进制代码被编译成为DEX的字节码,所有的JAVA文件最终会编译进该文件中去,作为托管代码虚拟机可以轻易识别,那么我们就可以很轻松进行反编译。 根据安卓的特性制定了以下四个测试已确保代码安全。 第一,反编译测试,将二进制程序转换成人们易读的一种描述语言的形式,是逆向工程中的常见手段。反编译的结果是易读的代码,这样就暴露了客户端的所有逻辑,比如与服务端的通讯方式,加解密算法、密钥、转账业务流程、软键盘技术
7、实现等等。 第二,重打包测试,对客户端程序添加或修改代码,修改客户端资源图片,配置信息,图标等,再生成新的客户端程序,实现应用钓鱼。对金融客户端,可能添加病毒代码、 广告SDK,推广自己的产品;添加恶意代码窃取登录账号密码、支付密码、拦截验证码短信,修改转账目标账号、金额等等。 第三,动态调试测试,指攻击者利用调试器跟踪目标程序运行,查看、修改内存代码和数据,分析程序逻辑,进行攻击和破解等行为。对于金融行业客户端,该风险可修改客户端业务操作时的数据,比如账号、金额等。 第四,代码注入测试,通过OS特定技术,将代码写入到目标进程并让其执行的技术。攻击者可以将一段恶意代码写到目标进程,这段代码可以
8、加载其它可执行程序,进而实施hook,监控程序运行行为、获取敏感信息等。对于金融客户端,可通过代码注入技术,将恶意代码注入到客户端中,窃取输入的登录账号、密码、支付密码, 修改转账的目标账号、金额,窃取通讯数据等。 APP安全任重而道远 如何帮助更多用户和开发者免受恶意APP的侵害,这需要一个长期的过程。首先需要开发者对Android APP安全的重视;其次需要开发者从技术手段上加强对自身APP的保护,如现在被众多开发人员追捧的第三方免费加密服务平台 爱加密,可对APP进行免费的漏洞分析、应用保护以及渠道监测,更方便有效的对APP做全面的分析和加固保护。同时,也需要*加大对盗版篡改的监测和打击,建立一个良好的产业环境。只有大家共同努力才会让恶意APP应用吸费现象不再“出现”。