顶象技术 · 2022年05月17日

每天有数百人搜索 App 破解,开发者该怎么保护自己的手机应用呢?

百度上搜索 “App 破解”,会出现 1210 万条结果。从 App 破解的入门知识到逆向工具下载,从破解技术视频到全图文教程。

随着黑客技术的普及化平民化,App—— 智能手机的应用软件,这个承载我们移动数字工作和生活的重要工具,不仅是黑客眼中的肥肉,也获得更多网友另类关注。

1.jpg

一旦 App 被破解,不仅使用者的照片、身份证、手机号、联系住址、邮箱和支付密码等敏感信息会泄露,还可能感染手机的操作系统,进而导致手机被入侵篡改,乃至成为攻击者操控的 “僵尸网络” 中的一部分。

对于广大移动开发者来说,如何保障自己 App 的安全、保护 App 使用者的安全呢?在 12 月 26 日今日头条的一个技术沙龙上,顶象技术移动安全负责人详细阐述了 App 存在风险漏洞、App 安全技术及新一代 App 安全防护方案。

2.jpg

App 为什么会被破解入侵呢?

安卓 App 的开发除了部分功能采用 C/C++ 编码外,其余主要都是采用 Java 进行编码开发功能。Java 源码最终编译成 smali 字符码,以 classes.dex 保存在 App 的 APK 中。

Java 是一种解释性语言,功能强大,易用性强。初学者能轻松地学习 Java,并编写简单的应用程序。而且 Java 的基本类库(JDK)是开源的,这就使很多 Java 开发的应用被逆向破解的门槛很低。目前市面上有大量的逆向破解工具,例如:Dex2Jar、JEB、JD-GUI 等等。(打个广告:Dex2Jar 作者泮晓波目前供职于顶象技术移动安全团队;因为 “未知攻焉知放防”,只有了解怎么如何逆向破解才清楚如何有效防御)。只要懂代码编程,利用这些工具就可以破解市面上那些防御薄弱、存在大量安全漏洞的 App。这就很好理解为什么会有如此多人去搜索 “App 破解” 了。

之前曾有媒体报道,有网络黑产专门从各种渠道找到 App 的 apk,然后将 apk 文件逆向破解,再植入广告、病毒代码,最后重新打包投入公开市场,当不明真相的网友将带病毒广告的 App 下载后,会带来巨大经济损失。

App 的安全保护技术

为 App 做安全加固无疑是最便捷、有效的一种防护方式了,通过加固可以对 App 进行安全性强化,一定程度上达到防破解和防止被二次打包的效果。

App 加固主要对源码的保护,混淆、常量字符串加密、指令虚机转换;对汇编插花(防 IDA F5)、控制流扁平化等;抹除二进制 ELF 信息、ELF 壳、自定义 Linker 等;对安卓的可执行文件加壳,抽取可执行文件指定等。此外,还可以对 js、html、图片、自定义资源进行保护,对 anti-debug 等环境进行检查等。

App 安全防护技术已经历了动态加载、不落地加载、指令抽离、指令转换 / VMP、虚机源码保护等五个阶段。每一阶段的安全技术都是一次升级。这五代技术有什么特点呢?详细参见下表 。

3.jpg

新一代 App 安全技术:虚机源码保护

作为下一代 App 安全加固和保护技术 — 顶象虚机源码保护,是用虚机技术保护所有的代码,包括 Java,Kotlin,C/C++,Objective-C,Swift 等多种代码,具备极高的兼容性,能够给与 App 更高安全级别的保护。

顶象虚机源码保护首先把待保护的核心代码编译成二进制文件,然后生成独特的执行环境和只能在该环境下执行的运行程序。生成的虚机源码保护拥有独特的可变指令集,极大的提高了指令跟踪、逆向分析的难度,并提供了反调试能力和监控能力。

同时,虚机源码保护可以通过自身的探针感知到环境的变化,实时探测到外界对本环境的调试、注入等非正常执行流程变化,将调试动作引入程序陷阱,并发出警报,进而进行实时更新,进一步提高安全强度。

由于虚机源码保护在 App 内部隔离出独立的执行环境,因此被保护的核心代码的运行程序在此独立的执行环境里运行。即便 App 本身被破解,这部分核心代码仍然不可见。

虚机源码保护不仅适用于安卓和 iOS,Linux、RTOS、STM32 等嵌入式系统也支持,因此不仅可以防护 App,服务器、物联网固件等均能防护。

推荐阅读
关注数
2
文章数
21
业务安全引领者,让数字世界无风险
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息