安卓平台已经逐渐成为最受欢迎的移动终端操作系统,基于安卓系统的软件应用数量众多,同时安全威胁也在不断增加。介绍了Android系统的安全风险及加固的核心技术,据此提出了一种安卓应用程序的安全加固系统,设计和实现了基于代码混淆的加固技术,从而达到了移动应用安全加固的目的。
安卓系统安全风险
在Android应用软件迅速发展的同时,Android用户也面临着许多威胁。常见的恶意威胁如下:
1、恶意扣费
移动应用威胁中最常见的恶意行为是恶意扣费。威胁手段包括用户在不知晓或者不知情的情况下,擅自使用非法手段让用户订购各种收费,活在无意识状态下使用手机支付服务的情况下,它会屏蔽服务短信发送回服务提供商,破坏系统的正常功能。
2、隐私窃取
隐私窃取是近年来流行的一种应用威胁,它是用户不知道的情况下擅自窃取用户的秘密信息。该病毒感染手机后,开始窃取用户隐私信息的背景,包括通话记录、短信内容、地理位置、通讯录、浏览器历史记录信息,然后通过病毒上传信息到远程服务器被黑客控制。如果用户在手机上有网络支付和其他行为,该账户的隐私也将是一个严重的威胁。
3、远程控制
病毒会自动在后台引导载人,并在用户不知道或不授权的情况下与服务器连接。进一步,通过与服务器交互,在没有权限的情况下对受害手机进行控制,从而进一步扣除费用,下载恶意软件和其他恶意行为。
4、资源消耗
在用户不知道或者不授权的情况下,导致用户收费的损失,自动发送短信、多媒体短信、电子邮件、网络连接等。
5、恶意通信
在用户不知道或者不授权的情况下,传播病毒或木马本身,使得它的衍生工具或者其他移动互联网恶意代码可以通过其进行复制、感染或者提供下载。
6、其他
病毒在后台大量下载软件,并消耗用户手机流量,或者执行一些更耗电的操作来消耗手机的功率,从而影响正常手机通信。
几维安全安卓加固系统的实现
1、防逆向保护
针对Android应用的Java、C、C++代码采取混淆、虚拟化、加壳等安全保护措施,防止攻击者通过逆向手段反编译Dex和So文件。同时满足等保2.0中的数据保密性保护要求:应采取加密、混淆等措施,对移动应用程序进行保密性保护,防止被反编译。
2、Dex文件加壳
Dex文件加壳可以防止dex2Jar、Apktool、AndroidKiller、JEB等逆向工具反编译Dex文件,从而避免Java代码被恶意分析、核心技术被窃取。Dex文件加壳基于类加载的方式实现,对Classes.dex文件进行整体加密,并拆解存放在APK的资源中,在APP应用运行时先在内存中解密Classes.dex,并让Dalvik虚拟机动态加载Dex并开始执行。
效果对比:
利用JEB反编译原始Dex文件效果如下,可以清晰看到原始的Java代码。
利用JEB反编译已加密Dex文件效果如下,只能看到kiwivm壳的代码,无法查看原始Java代码。
3、Dex-Java2C保护
Dex-Java2C是针对Java函数进行深度加密,将Java自动化翻译为C代码,并进行Native层的虚拟化加密,相比Dex文件加壳粒度更细,安全更高。攻击者无法还原Java函数,从而避免关键Java代码被恶意分析、核心技术被窃取。
Dex-Java2C基于LLVM编译器实现,利用复杂的处理流程将Android-Dex指令代码转换成LLVM-IR,然后利用LLVM后端编译器直接生成【或者与代码虚拟化配合使用】Native指令。该方案的转换是不可逆的,从根本上让逆向工程不具备可行性,从达到保护关键Java代码的目的。
效果对比:
利用JEB反编译原始Dex文件效果如下,可以清晰看到原始的Java代码的函数体。
4、So文件加壳
So文件加壳可以防止IDA、ghidra等逆向工具的反编译分析,从而避免C/C++代码被恶意分析,核心技术被窃取。So文件加壳技术与Windows平台的加壳技术类似,利用特殊的算法对文件进行加密处理、抹掉ELF格式中的关键节区描述数据,并行文件压缩存储,从而造成IDA等工具解析失败,达到防反编译,保护C/C++代码的目的。
效果对比
采用IDA工具反编译未加壳的So文件,可以看到相关的函数信息。
采用IDA工具反编译已加壳的So文件,出现解析错误,造成反编译失败
几维安全安卓加固技术优势
1、安全覆盖全面
能够保护应用Dex文件和So文件,并且提供主动防御保护机制,全面保护APP安全;
2、安全强度高
独家Dex-Java2C和源码虚拟化技术配合使用,对Java代码进行高强度加密,可抵挡专业黑客的逆向攻击;
3、加密粒度细
以Java/C/C++代码的函数为单位进行加密保护,粒度细、可控性高、隐蔽性强;
4、兼容性高
适配APP内的各种业务逻辑,并且高级版的Java2C通过中间代码进行加密保护,兼容性与原始应用一致;
5、性能损耗低
Dex加壳方案的启动时间增量小于1s,是业界做得最好的方案。Java函数级加密影响非常小,可以忽略不计
。
Android 开发人员已经为广大用户开发出海量的应用程序,这给用户带来方便的同时也带来了巨大的安全隐患。几维安全在长期的攻防实战之中推出了一站式、全生命周期移动安全解决方案,面对中小企业免费提供APP检测与加固服务,登录几维安全官网即可免费申请使用。
相关推荐
通用应用系统安全加固方法
Android应用允许自签名,同时应用市场混乱,导致大量应用被二次打包,植入广告、木马等 Root后,利用调试、Hook等技术手段对应用进行动态攻击 加固功能 代码加壳 反调试 完整性检查 保护对象 Java- AndroidDex C/...
研发团队在移动安全领域有着多年的研究和经验,有成熟...项目实现了Android应用的安全加固功能,包括SDK和加固工具。实现的功能请见《移动安全解决方案介绍》。同类产品请参考:爱加密、梆梆加固、聚安全、360加固宝。
这里实现了安卓移动APP防二次打包、防重签名、防篡改的自动化一键式加固工具。成熟的安全加固方案,均已实现和投入使用,解决了企业和个人的安全问题。针对开发者指定的移动应用(apk),以本地工具的方式,自动完成...
基于Android重打包的应用程序安全策略加固系统设计.pdf
Windows操作系统安全加固Windows操作系统安全加固Windows操作系统安全加固Windows操作系统安全加固Windows操作系统安全加固Windows操作系统安全加固Windows操作系统安全加固Windows操作系统安全加固Windows操作系统...
此工具为bat批处理文件,里面是我收集总结的一套安全加固命令,集成windows系统的所有安全处理项,对于公司服务器,个人pc加固起到非常好的效果,只要双击运行,cmd可视界面,让你的电脑更加安全。更是学习系统安全...
Android 抽取壳原理机实现源码分析,Dex2c VMP加固原理及实现代码分析
基于移动终端软件加固技术,可实现So加载Dex,软件内包含反编译方法.
AIX主机操作系统安全加固规范; Apache系统安全加固规范; Cisco网络设备安全加固规范; HP-UNIX主机操作系统安全加固规范; Huawei网络设备安全加固规范; IIS系统安全加固规范; Juniper网络设备安全加固规范; ...
中国移动信息系统安全加固和实施计划文档 中国移动企业信息化系统安全加固方案和实施计划是移动集团总部信息化办公室和各省公司信息化办公室对其所负责的平台(统一信息平台、OA等)的安全指南。 集团公司信息化...
此工具为bat批处理文件,里面是我收集总结的一套安全加固命令,集成windows系统的所有安全处理项,对于公司服务器,个人pc加固起到非常好的效果,只要双击运行,cmd可视界面,让你的电脑更加安全。更是学习系统安全...
本文档实现了java层和native层的反调试手段 对于学习Android安卓逆向和安全的人来说有非常大的借鉴意义 里面附有详细的实现代码
图文详解,Android App应用安全加固详细步骤
网络设备与操作系统加固和优化服务是实现客户信息系统安全的关键环节。通过使用该项服务,将在客户信息系统的网络层、主机层等层次建立符合客户安全需求的安全状态,并以此作为保证客户信息系统安全的起点。 网络...
移动应用安全加固解决方案.docx
Android加固应用脱壳技术研究,吴博,郭燕慧,随着移动互联网的发展,移动安全加固技术逐步普及,被加固的恶意应用带来的问题日益突出,传统的应用检测在加固应用的逆向分析环
应用中间件系统加固策略
腾讯云移动应用安全白皮书,主要介绍了主流应用加固技术等,dex保护、内存防dump,防篡改,防泄漏等
安卓APP安全加固系统的分析与设计.pdf