百度上搜索“App破解”,会出现1210万条结果。从App破解的入门知识到逆向工具下载,从破解技术视频到全图文教程。
随着黑客技术的普及化平民化,App——智能手机的应用软件,这个承载我们移动数字工作和生活的重要工具,不仅是黑客眼中的肥肉,也获得更多网友另类关注。
百度搜索“App破解”找到1210万条结果
一旦App被破解,不仅使用者的照片、身份证、手机号、联系住址、邮箱和支付密码等敏感信息会泄露,还可能感染手机的操作系统,进而导致手机被入侵篡改,乃至成为攻击者操控的“僵尸网络”中的一部分。
对于广大移动开发者来说,如何保障自己App的安全、保护App使用者的安全呢?在12月26日今日头条的一个技术沙龙上,顶象技术移动安全负责人梁家辉详细阐述了App存在风险漏洞、App安全技术及新一代App安全防护方案。
顶象技术移动安全负责人梁家辉在今日头条的技术沙龙上讲解App安全保护
App为什么会被破解入侵呢?
安卓App的开发除了部分功能采用C/C++编码外,其余主要都是采用Java进行编码开发功能。Java源码最终编译成smali字符码,以classes.dex保存在App的APK中。
Java是一种解释性语言,功能强大,易用性强。初学者能轻松地学习Java,并编写简单的应用程序。而且Java的基本类库(JDK)是开源的,这就使很多Java开发的应用被逆向破解的门槛很低。目前市面上有大量的逆向破解工具,例如:Dex2Jar、JEB、JD-GUI等等。只要懂代码编程,利用这些工具就可以破解市面上那些防御薄弱、存在大量安全漏洞的App。这就很好理解为什么会有如此多人去搜索“App破解”了。
之前曾有媒体报道,有网络黑产专门从各种渠道找到App的apk,然后将apk文件逆向破解,再植入广告、病毒代码,最后重新打包投入公开市场,当不明真相的网友将带病毒广告的App下载后,会带来巨大经济损失。
App的安全保护技术
为App做安全加固无疑是最便捷、有效的一种防护方式了,通过加固可以对App进行安全性强化,一定程度上达到防破解和防止被二次打包的效果。
App加固主要对源码的保护,混淆、常量字符串加密、指令虚机转换;对汇编插花(防IDA F5)、控制流扁平化等;抹除二进制ELF信息、ELF壳、自定义Linker等;对安卓的可执行文件加壳,抽取可执行文件指定等。此外,还可以对js、html、图片、自定义资源进行保护,对anti-debug等环境进行检查等。
App安全防护技术已经历了动态加载、不落地加载、指令抽离、指令转换/VMP、虚机源码保护等五个阶段。每一阶段的安全技术都是一次升级。这五代技术有什么特点呢?详细参见下表 。
五代App安全保护技术比较
新一代App安全技术:虚机源码保护
作为下一代App安全加固和保护技术—顶象虚机源码保护,是用虚机技术保护所有的代码,包括Java,Kotlin,C/C++,Objective-C,Swift等多种代码,具备极高的兼容性,能够给与App更高安全级别的保护。
顶象虚机源码保护首先把待保护的核心代码编译成二进制文件,然后生成独特的执行环境和只能在该环境下执行的运行程序。生成的虚机源码保护拥有独特的可变指令集,极大的提高了指令跟踪、逆向分析的难度,并提供了反调试能力和监控能力。
同时,虚机源码保护可以通过自身的探针感知到环境的变化,实时探测到外界对本环境的调试、注入等非正常执行流程变化,将调试动作引入程序陷阱,并发出警报,进而进行实时更新,进一步提高安全强度。
由于虚机源码保护在App内部隔离出独立的执行环境,因此被保护的核心代码的运行程序在此独立的执行环境里运行。即便App本身被破解,这部分核心代码仍然不可见。
虚机源码保护不仅适用于安卓和iOS,Linux、RTOS、STM32等嵌入式系统也支持,因此不仅可以防护App,服务器、物联网固件等均能防护。