APP下载

移动应用代码保护现状与技术研究

2016-09-26朱洪军华保健

计算机应用与软件 2016年3期
关键词:安卓攻击者逆向

朱洪军 陈 灏 华保健 刘 业 郭 宇

1(中国科学技术大学软件学院 安徽 合肥 230051)2(中国科学技术大学苏州研究院 江苏 苏州 215123)



移动应用代码保护现状与技术研究

朱洪军1,2陈灏1华保健2刘业2郭宇2

1(中国科学技术大学软件学院安徽 合肥 230051)2(中国科学技术大学苏州研究院江苏 苏州 215123)

基于安卓平台应用极易被病毒或恶意软件攻击,除了其平台开源开放等原因外,移动应用自身代码保护强度较弱也是主要因素。针对该问题,以安卓平台应用为研究对象,分析移动应用安全威胁模型及代码安全需求,研究代码混淆、代码隐藏、代码加密及代码签名等代码保护技术机制及优缺点;设计并实现了安卓应用代码保护技术分析引擎,对实验数据进行分析和总结。结果表明,不同规模和类型的样本都存在一定比例应用,其代码保护强度较弱;特别地,应用规模越小,代码保护强度越弱,致使该类应用极其容易被恶意攻击。

代码保护移动应用安卓逆向工程

0 引 言

随着移动网络及智能终端的发展,移动应用近几年呈现高速爆发式增长;谷歌应用商店应用数量在2013年7月已超过100万款[1],苹果应用商店应用数量也超过90万款[2]。移动应用数量增长带来大量商业营收同时,使得恶意软件及版权侵犯也快速增长。据某平台发布的《2013中国移动安全数据报告》中描述[3]:2013全年共检测安卓应用软件39.2亿次,其中检测到恶意软件1122万次;2013年中国安卓手机恶意软件个数约为6.9万,这个数字是2012年的5倍多,其中盗版软件占比为3.7%。恶意软件行为主要有:隐私窃取、资费消耗、诱骗欺诈、系统破坏、远程控制等;给用户及软件开发者带来巨大损失;同时,也对软件保护,特别是代码保护提出很大挑战。

由于安卓平台开源、开放特点,用户设备权限轻易被病毒或恶意软件获取(特别是用户开放操作系统较高权限的情况下),病毒或恶意软件利用获取的权限进行恶意插件下载,分析或截获目标软件关键数据,篡改目标软件执行流程,向目标软件植入后门程序,冒充正版软件等;病毒或恶意软件还可能非法访问移动用户隐私信息,如联系人、短信、地理位置、移动设备国际身份码IMEI号等;软件保护在安卓平台上显得尤为突出。

本文以安卓平台应用为研究对象,阐述移动应用代码面临的安全威胁与安全需求;对常用代码保护技术进行分类分析,对比不同保护技术优缺点及实现成本;设计并实现安卓应用代码保护技术分析模型,采集安卓应用市场样本并分类,分析当前移动应用代码保护现状;最后进行总结。

1 移动应用代码安全

1.1移动应用安全威胁模型

应用安全可分为数据安全、网络安全和软件安全。软件安全是指保护软件(包含代码和数据)为目的,对抗非法访问、篡改、静态或动态分析等攻击威胁。软件安全面临的攻击威胁有网络威胁、内部威胁和恶意主机威胁。网络威胁来自于外部网络,主要攻击方式有缓冲区溢出、协议攻击等;内部威胁来自于内部网络或本地主机,主要攻击方式有提取系统权限、访问用户隐私数据等;恶意主机威胁运行在本地主机上,主要攻击方式有破坏主机系统、窃听或截获软件敏感数据等[4]。

非法复制、逆向工程和篡改是移动应用面临的主要攻击威胁[5]。

非法复制指攻击者在获取目标应用后,在保持原有应用代码或功能相似或相同的基础上,进行代码修改和第三方签名并传播。因此,它具有两个明显特征[6]:(1)代码或功能与目标应用相似或相同;(2)签名与目标应用不同。非法复制攻击具体形式有如下几种[7]:(1)高层代码修改:修改包、类、方法、变量等名称,删除或增加类、方法,新建、删除或修改常量;(2)方法重构:移动方法到不同类中,合并方法,分解方法;(3)控制流重定向:替换分支执行流执行条件布尔值,通过中断(break)指令改变循环执行流循环周期,通过重定向(goto)指令重写循环,对分支执行流进行分支路径替换或重排序;(4)增加或删除代码块:在不改变程序执行结果的条件下,增加新代码块或删除原有代码块;(5)代码块位置变更:对数据与控制流相对独立的代码块进行位置变更。

逆向工程指攻击者在获取到目标应用二进制安装包文件后,借助针对该类应用的逆向工程工具,进行反编译获取二进制级或指令级代码,对目标应用指令级代码进行静态分析或动态分析,以达到攻击目标。逆向工程通常是攻击者进行目标应用攻击的第一步。通过逆向工程,攻击者可以轻易做到程序静态分析、动态分析、恶意代码注入及绕过许可检查等[8]。图1所示为攻击者对安卓应用进行逆向工程攻击的工作流程,其中灰色背景所示流程为可选流程。

图1 安卓应用逆向工程攻击流程

篡改指有时也称代码完整性攻击,通常表现为恶意代码注入和功能植入等[9]。针对安卓平台应用进行代码注入攻击的技术有:内核级、进程级和虚拟机级钩子或代码注入。图2所示为代码注入示例,注入进程P1向目标进程P2注入程序实现对P2的攻击。图2示例的整个攻击过程对用户透明,目标进程虽然遭受攻击,但仍向用户交付正常服务,只是交付服务时间略有延迟;如果攻击代码没有复杂耗时逻辑,目标进程的服务延迟只是毫秒级的,用户根本感知不到这种延迟。

图2 代码注入攻击示例

1.2移动应用代码安全需求

软件攻击者主要是对软件代码(源代码或可执行代码)安全缺陷加以利用,从而达到攻击目的。代码安全是移动应用保护核心,代码保护需要解决以下问题[10]:

1) 身份认证。验证用户可信度。

2) 访问控制。控制访问用户只可以访问授权范围内资源,而不能越权访问。

3) 日志安全。确保日志中不含敏感信息,及不被无权用户或程序访问。

4) 信息加密。对代码中的敏感信息加密,及恰当地使用加密方法。

5) 数据泄漏。保证应用数据不被暴露或被其他程序通过统一资源定位符URL、文件、进程间调用IPC等访问。

6) 数据验证。防止输入验证攻击,如结构化查询语言SQL注入等。

7) 错误报告。当应用程序抛出异常或运行出错后,错误报告中不包含敏感数据及程序运行轨迹。

8) 会话管理。恰当管理包括会话周期、会话标识、令牌使用等。

9)资源预测。防止存在较易推测的令牌或标识生成方法。

2 移动应用代码保护技术研究

2.1移动应用代码特征

移动应用相较于桌面应用或传统网络应用,有其自身特点:

1) 硬件资源有限和多样性

移动应用运行在移动智能设备如手机、平板电脑等上,而这些设备本身内存、中央处理器CPU等核心硬件资源受限。早期消费类移动设备内存空间只有千字节KB[11],同期个人电脑已经达到百兆字节MB或吉字节GB。2007年消费类移动智能设备出现后,其硬件资源性能得到较大提升,但相较于个人电脑设备仍然较小。硬件资源有限造成运行在其之上的程序无法完成复杂功能及业务处理,而必须依赖远程服务器进行协作,这又使得移动应用面临着网络安全威胁。

个人消费类电子设备加入了多种不同的传感设备如加速度计、磁感应计等为用户提供个性化服务。这些传感设备主要用于采集用户个人状态数据,这类数据虽然能够用于为用户提供更好的服务,但也使得用户隐私数据变得易于采集和传输,一旦用户遭受攻击,其损失就会更大。

2) 软件规模小

导致移动应用软件规模小的原因有两个:首先是有限的硬件资源,其次是应用服务逻辑单一。移动应用服务逻辑通常比较单一,没有复杂的业务处理或算法实现,如天气查看、快递查询等都不像桌面应用有着复杂的业务逻辑和庞大的功能聚合。一般安卓应用可执行包规模在几兆字节,远小于多数桌面应用几百兆字节或吉字节。软件规模较小,使得针对可执行包的逆向工程及指令级的静态或动态分析变得容易,攻击者所花费的攻击成本较小;因此,移动应用更加容易成为攻击目标。

3) 隐私数据多、安全威胁大

移动设备特别是消费类移动智能设备通常服务于个人用户,设备中存储和管理用户大量的隐私数据,如电话簿、私人相册等。无论是桌面应用、网络应用还是移动应用,攻击者的攻击目标主要是获取用户隐私数据。因为,用户隐私数据是攻击者挖掘攻击价值的主要途径,如用户金融帐号或密码、涉密文件或数据等。此外,不同类型传感器对用户状态数据的采集,可能给用户财产或生命安全带来巨大威胁。如,利用全球定位系统GPS传感器采集移动设备位置数据,就能相对精确地对设备使用者进行定位。2013年中国安卓应用市场前1400位应用中,66.9%移动应用有隐私获取权限,手机隐私泄露严重[12]。

对于安卓应用,由于其平台开源特性,攻击者更容易对系统缺陷进行研究和利用,采用不同攻击手段对其进行攻击。

2.2保护技术

安卓应用中常使用代码混淆、代码隐藏等技术对抗攻击者静态分析,使用代码完整性检测、加密等技术对抗篡改,使用调试器检测等技术对抗动态分析[8]。

(1) 代码混淆

代码混淆是指将正常的程序代码、数据或控制流通过变换达到难以逆向分析的目的[13]。根据混淆目标不同,代码混淆技术可分为[14]:样式混淆,控制混淆,数据混淆,预防变换。表1分别对不同混淆技术的作用、混淆实现方式及混淆效果强度等作对比分析,结果表明样式混淆的强度最低,只能用于对抗静态分析。

表1 各种混淆技术对比

基于安卓平台的移动应用开发,多采用代码混淆器为ProGuard[15]。图3所示为ProGuard输入-处理-输出IPO(InputProcessOutput)模型,其混淆过程分为:代码压缩,代码优化,代码混淆及预验证四个步骤。ProGuard在代码混淆步骤主要进行包、类及类成员重命名、类分割等[16]。

图3 代码混淆器ProGuard输入-处理-输出模型

(2) 代码隐藏

代码隐藏是指将程序可执行代码或源代码与公开发布代码包进行存储位置或文件格式分离,达到隐藏和保护代码目的。代码隐藏方式可以是本地隐藏和远程隐藏。本地隐藏是将受保护代码随可执行软件包一起发布,但受保护代码文件格式不同于正常的发布代码格式,如在安卓应用中将代码隐藏在以.png、.mp3格式的资源文件中。远程隐藏则是将受保护代码的存储和执行过程放在远端机器完成,通过网络与本地代码进行交互,如公共对象请求代理体系结构CORBA、远程过程调用RPC等。

基于安卓平台的应用代码隐藏可以采用本地和远程隐藏两种方式。实现本地隐藏主要通过类加载器动态加载字节码(.class或.dex字节码)文件,或通过Java本地接口JNI静态加载机器码(.so)文件。Java语言提供远程方法调用RMI作为远程过程调用实现机制[17]。图4所示为JavaRMI工作模型,客户端通过RMI协议向服务器发送任务请求,服务器接受请求,执行相应任务,并返回任务执行结果。因此,需要保护的代码仅在服务端存储和执行,通过RMI和客户端协作。本地隐藏或远程隐藏都能很好地保护代码,使攻击者无法轻易获得目标代码。代码隐藏需要花费一定时间进行代码加载,直接影响代码运行效率;此外,远程代码隐藏还以网络连通为必要工作条件。

图4 Java RMI工作模型

(3) 代码加密

加密是指利用数学算法将数据转换成难以理解的形式,数据的转换和恢复依赖于算法和密钥[18],加密前的数据称为明文,加密后的数据称为密文;加密对象可以是代码或数据。加密算法主要有四种类型:对称加密、非对称加密、数据完整性保护和数字签名认证。对称加密使用同一密钥进行加密和解密,常用的有数据加密标准DES、高级加密标准AES等;而非对称加密则在加密时使用公共密钥和解密时使用私有密钥,两个密钥是不同的,常用的有RSA、D-H等。数据完整性保护是使用被加密数据的哈希函数值作为该数据的信息摘要信息,常用的有安全哈希算法SHA、信息摘要五MD5等,也常用来作为数字签名认证算法。

安卓平台继承了Java语言安全和密码技术开发接口规范[19]。Java语言实现并提供RSA、DES、MD5等加密/解密技术开发者接口[20]。基于安卓平台应用对数据和代码使用加密技术,例如使用加密壳对需要保护的代码进行加固等,可以使代码安全得到很好的保护。图5和图6所示为安卓应用使用本地代码(NativeCode)方式进行加壳与解壳的工作模型。

使用加密技术保护代码安全性很高,只要攻击者无法获取密钥或解密算法,就不能轻易破解。加密和解密提高了代码复杂度,同时需要花费时间完成加密或解密过程,这又影响了代码执行效率。

图5 安卓应用加壳工作模型

图6 安卓应用解壳工作模型

(4) 代码签名

数字签名是一种授权认证机制,通过获取目标信息哈希值和使用作者私钥对目标信息加密实现签名[18]。数字签名信息可以用来:1)认证作者身份;2)检测目标信息是否被篡改;3)防止抵赖。数字签名通常分签名和认证两个阶段[21]。图7所示签名阶段中,原始代码通过哈希运算抽取特征值,随后使用签名证书和作者私钥对哈希特征值加密生成签名信息,再将签名信息和签名证书与原始代码进行关联打包发布签名后代码。图8所示认证阶段中,从签名后代码中分离原始代码与加密的签名信息,之后对原始代码做哈希运算获取特征值,同时通过公钥解密签名信息抽出被加密哈希特征值,最后对两个哈希值做对比认证。

安卓平台要求所有应用在安装之前,必须由持有私钥的开发者进行签名发布;其特殊之处在于签名证书不需要签名认证机构CA颁发,采用自签证书方式[22]。安卓应用签名除了具有认证作者身份、防止抵赖和检测篡改作用外,还可用于不同应用之间开放权限进行数据共享和进程通信(签名相同的安卓应用之间具有基于签名的接口访问权限)[23]。

图7 签名阶段

图8 认证阶段

代码签名能够很好地实现身份认证、防止抵赖和代码篡改,但重打包和影子签名等攻击方式很容易破解该保护方法,因此需要配合其他代码保护技术一起对目标代码进行保护。

2.3技术对比

不同代码保护技术保护程度、实现成本、对抗攻击目标等各有不同,如表2所示。代码混淆主要用来对抗逆向工程和静态分析,保护程度最弱,但开发者有现成的工具可以使用,因此实现成本可以忽略;代码加密主要用来对抗逆向工程、静态分析、动态分析和篡改,保护强度强,但实现时以牺牲代码运行效率和增大代码复杂度为代价;代码隐藏同样用来对抗逆向工程、静态分析、动态分析和篡改,也有很好的保护强度,实现成本主要是降低代码运行效率;代码签名防护目标是篡改和非法复制,但对抗威胁能力较弱,可以很容易被攻击者破解。

表2 代码保护技术对比

3 安卓应用代码保护现状

3.1样本数据与分析模型

样本数据按应用市场分类下载排名从高到低收集,分别来自4个不同的安卓官方或第三方应用市场,应用样本总数为1000例。样本数据采集完毕后,根据样本应用类型,我们对金融支付、社交通信、系统工具、浏览器和游戏等注重代码安全保护的应用进行单独分类,将剩余应用类型划分为其他。各类应用在目标中所占比重如图9所示。

图9 样本应用分类占比

样本数据收集整理完成之后,使用安卓应用反编译工具对目标样本进行逆向工程。如果反编译成功,进入代码保护特征分析引擎;否则,认定该应用采用了预防变换代码混淆策略对抗逆向工程,将其统计为代码混淆保护技术。代码保护特征分析引擎加载代码保护特征库,对样本反编译后代码进行特征匹配,匹配结果分类统计为代码混淆、代码隐藏、代码加密和代码签名。如果代码特征匹配输出无保护,则进行人工复核方式,重新将其统计到对应类别。

3.2样本分析

作者分别对不同类型和规模的样本应用进行分析,统计使用一种、两种及以上代码保护技术和无任何代码保护技术的样本比例。如表3所示为不同类型应用代码保护现状,可以得出:(1)采用代码保护技术的应用比例都超过样本数量的90%以上;(2)社交通信类和浏览器类应用代码保护比例最高,系统工具类应用代码保护比例最低;(3)金融支付类应用中只使用一种代码保护技术和无代码保护技术的比例很高。

表3 不同类型应用代码保护现状

需要特别注意的是,金融支付类应用虽然有高达98.21%样本采用代码保护技术,但仍然有11.31%和1.79%的样本属于弱保护和无保护状态,这类应用明显违反了支付类行业数据安全标准[24]:开发和维护安全的系统或应用。没有任何代码保护或弱保护的应用更加容易被攻击者攻击,造成用户损失。因此,对于金融支付类、系统工具类、游戏类及其他等应用,仍然需要加强代码保护,进行主动防御,保护用户利益。

表4所示为不同规模应用代码保护现状。表中分别对1MB以下(不含1MB)、1至5MB(不含5MB)、5至10MB(不含10MB)和10MB以上规模应用分类统计,得出:(1)5至10MB样本应用代码保护比例最高,1MB(不含1MB)以下样本应用代码保护最低;(2)1MB(含1MB)以上样本应用代码保护比例都超过95%以上;(3)不同规模的样本应用中,都存在无任何代码保护技术的样本;(4)10MB及以上样本应用采用两种及以上代码保护技术比例最高。

表4 不同规模应用代码保护现状

不同规模应用代码保护趋势如图10所示。当应用规模越大时,代码保护比例越高,而采用一种或以下代码保护技术的应用比例越低;对于规模较小的应用,开发者采用较少或不采用代码保护技术进行应用保护。但对于攻击者,规模较小应用更加容易进行逆向工程和静态分析;因此,规模较小应用被攻击者攻破的可能性更大,也更容易给用户带来安全损失。综上,所有应用开发者,无论是开发大规模应用还是小规模应用,都需要为用户安全使用其软件提供保证,对软件代码进行保护。

图10 不同规模应用代码保护趋势

随着Android系统的不断更新,软件保护的强度也在增加,多种保护技术互补使用频率增大。图11所示为AndroidAPI版本软件保护趋势。图中对采用两种及以上保护措施的移动应用进行了统计分析;特别地,以金融类应用和其他类型应用进行对比分析。分析结果表明,AndroidAPI1~4版本(不含4)的金融类和其他类型应用采用两种保护措施的应用比例仅有10%;随着AndroidAPI版本的上升,保护强度不断上升,在AndroidAPI13版本之后,这一比例已经达到88%。

图11 不同API版本的软件保护趋势

同时,图11软件保护趋势线中有两个明显拐点:1)AndroidAPI8拐点;2)AndroidAPI13拐点。通过分析得出:1)AndroidAPI4之前Android系统特征处于不稳定发布状态,多数Android应用开发以功能实现为主,代码保护强度较弱;之后,代码保护强度增强;2)自AndroidAPI11开始,Android平台发布平板开发新特性,已有Android应用针对这一变化,进行了工程重构或重新发布,重新转向功能开发为主,特别是金融类应用表现特别突出;致使趋势线AndroidAPI13拐点的出现。作者对采集样本中多款金融类和非金融类移动应用进行了人工逆向分析,并证实了以上结论。如,样本中某款金融类应用在AndroidAPI17版本中采用了代码签名保护技术,而在之后却没有使用该代码保护技术。

4 结 语

随着移动应用技术快速发展,移动应用市场规模越来越大,移动应用对人们的生活、生产方式产生越来越重要影响。对移动应用用户及应用开发者利益进行保障,对抗和防止攻击者进行非法复制、篡改、用户隐私数据盗取等安全攻击,是移动应用开发者必须承担的职责。采用什么样的软件代码保护技术,需要根据产品安全需求、技术不同保护作用以及实现成本进行选择和实现。移动支付将成为移动互联网发展的一个新亮点,这类移动应用直接关系到用户财产或金融安全,对软件安全需求更高。实验结果表明,规模较小类应用缺少代码保护;特别地,应用市场上仍然存在没有任何代码保护技术的金融支付类软件,这类应用极易被攻击者利用,进行恶意攻击。

在进行大量调研、文献阅读及实验样本分析的基础上,文章对移动应用代码保护技术及当前应用市场中移动应用代码保护现状进行研究与分析,主要贡献有:(1)总结并对比分析不同代码保护技术特点及保护机制;(2)调研分析当前市场中移动应用代码保护现状;(3)结合实验结果分析指出开发者,特别是金融支付类等对软件用户切身利益影响较大的应用开发者,应当加强该类应用代码保护。由于实验样本分类及规模没有完全覆盖应用市场,以及样本分析模型采用静态代码特征匹配的局限性;因此,实验结果只反映出当前应用代码保护基本现状;样本分析模型还需完善和优化。

[1]Wiki.GooglePlay[EB/OL]. [2014-04-16].http://en.wikipedia.org/wiki/Google_Play.

[2]Wiki.AppStore(iOS)[EB/OL]. [2014-04-21].http://en.wikipedia.org/wiki/App_Store_(iOS).

[3] 艾瑞. 2013年中国移动安全数据报告[R/OL]. [2014-01-16].http://report.iresearch.cn/2103.html.

[4]MainA,VanOorschotPC.SoftwareProtectionandApplicationSecurity:UnderstandingtheBattleground[C].Springer-VerlagLNCS,2003.

[5]SasirekhaN,HemalathaM.ASurveyonSoftwareProtectionTechniquesagainstVariousAttacks[J].GlobalJournalofComputerScienceandTechnology,2012,12(1):53-58.

[6]ZhouWu,ZhouYajin,JiangXuxian,etal.DroidMOSS:DetectingRepackagedSmartphoneApplicationsinThird-PartyAndroidMarketplaces[C].CODASPY, 2012.

[7]JonathanCrussell,ClintGibler,HaoChen.AttackoftheClones:DetectingClonedApplicationsonAndroidMarkets[C].ESORICS,2012.

[8]PatrickSchulz,FelixMatenaar.AndroidReverseEngineering&Defenses[R/OL]. [2013].http://www.bluebox.com.

[9]MikhailJAtallah,EricDBryant,MartinRStytz.ASurveyofAnti-TamperTechnologies[J].CROSSTALK:TheJournalofDefenseSoftwareEngineering,2004,17(11):12-16.

[10]AbhishekDubey,AnmolMisra.AndroidSecurity:AttacksandDefenses[M].BocaRaton:CRCPress,2013:112-114.

[11]JamesKeogh.J2ME:TheCompleteReference[M].California:McGraw-Hill, 2003:12-15.

[12]DCCI互联网数据中心. 2013移动应用隐私安全测评报告[R/OL]. [2013].http://www.dcci.com.cn.

[13]CappaertJ.CodeObfuscationTechniquesforSoftwareProtection[D].Leuven:KatholiekeUniversiteitLeuven-FacultyofEngineering, 2012.

[14]CollbergCS,ThomborsonC.Watermarking,tamper-proofing,andobfuscation-toolsforsoftwareprotection[J].IEEETransactionsonSoftwareEngineering,2002,28(8):735-746.

[15]Google.ToolsHelp[EB/OL].[2014].http://developer.android.com.

[16]MIT.ProGuardManual[EB/OL]. [2014].http://stuff.mit.edu/afs/sipb/project/android/sdk/android-sdk-linux/tools/proguard/docs/index.html.

[17]Oracle.JavaRemoteMethodInvocation-DistributedComputingforJava[EB/OL]. [2014].http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138781.html.

[18]WilliamStallings.CryptographyandNetworkSecurity:PrinciplesandPractice[M].5thed.NewJersey:PrenticeHall,2010: 8-25,396-407.

[19]AndroidAPIs[EB/OL]. [2014].http://developer.android.com.

[20]JonathanBKnudsen.JavaCryptography[M].California:O’ReillyMedia,1998:89-187.

[21]Digcert.CodeSigningCertificates[EB/OL]. [2014].http://www.digicert.com/ppc/code-signing-certificate.htm.

[22]Google.SigningYourApplications[EB/OL]. [2014].http://developer.android.com/tools/publishing/app-signing.html.

[23]IBMCEnriqueOrtiz.UnderstandingSecurityonAndroid[EB/OL].[2010].http://www.ibm.com/developerworks/library/x-androidsecurity/.

[24]Wiki.PaymentCardIndustryDataSecurityStandard[EB/OL].[2014].http://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard.

STUDYONMOBILEAPPLICATIONSCODEPROTECTIONSTATUSANDTECHNIQUES

ZhuHongjun1,2ChenHao1HuaBaojian2LiuYe2GuoYu2

1(School of Software Engineering, University of Science and Technology of China, Hefei 230051, Anhui, China)2(Suzhou Institute for Advanced Study, University of Science and Technology of China, Suzhou 215123, Jiangsu, China)

Androidplatform-basedapplicationsareeasilytobeattackedbyvirusesormalware.Apartfromthecausesoftheplatformsbeingopensourceandopeningandsoon,theweakerprotectionabilityofthemobileapplicationscodeitselfisalsoamainfactor.Forthisproblem,inthepaperwetakeAndroidplatformapplicationsastheresearchobjects,analysethesecuritythreatsmodelandthecodessecuritydemandsofthemobileapplications,studythemechanismsofcodeprotectiontechniques,suchascodeobfuscation,code-behind,codeencryptionandcodesignature,anddescribetheiradvantagesanddisadvantages;Then,wedesignandimplementanAndroidapplicationcodeprotectiontechnologyanalysisengine,andanalyseandsummarisetheexperimentaldata.ResultshowsthatallthesamplesindifferentsizesandtypeshavetheAndroidapplicationstocertainproportion,theircodeprotectionstrengthsarenotstrong;inparticular,thesmallerthescaleoftheapplications,theweakerthecodeprotectionstrength,andthisresultsinsuchclassofapplicationsbeingmaliciouslyattackedmucheasier.

CodeprotectionMobileapplicationAndroidReverseengineering

2014-07-24。中国计算机学会-腾讯科研基金项目(CCF-TencentAGR20130105);苏州市科技计划应用基础研究项目(SYG201406)。朱洪军,讲师,主研领域:软件测试,移动安全。陈灏,硕士生。华保健,讲师。刘业,讲师。郭宇,副教授。

TP3

ADOI:10.3969/j.issn.1000-386x.2016.03.074

猜你喜欢

安卓攻击者逆向
iPhone不卡的秘密曝光:安卓也能享受
逆向而行
机动能力受限的目标-攻击-防御定性微分对策
文物表情包
正面迎接批判
一种基于安卓系统的手机侧抓包分析方法
有限次重复博弈下的网络攻击行为研究
安卓L未至安卓M来了!安卓首泄漏M系统
逆向工程技术及应用