代码克隆检测技术的Android 应用重打包检测

2014-05-30 13:01:50陈其龙
电脑知识与技术 2014年8期
关键词:检测技术安全

陈其龙

摘要:随着我国科学技术的不断发展,移动设备得到了全面的普及。人们利用移动设备中的应用,实现了大量的功能,为人们的生活、工作等提供了许多的便利。但是恶意的软件开发者,将正版的应用破译,并进行相应的增减改操作,将应用程序进行重新打包后发布到市场中。重打包应用在法律意义上损害了原来开发者的利益,侵犯了其版权权益,而且对重打包应用程序的使用者带来了隐私信息的安全问题。该文对重打包应用进行分析,并提出了一种基于代码克隆检测技术的Android应用重打包检测技术。

关键词:代码克隆;检测技术;Android;重打包;安全

中图分类号:TP311 文献标识码:A文章编号:1009-3044(2014)08-1698-02

随着移动设备的普及,智能手机、平板电脑等移动设备为人们提供了许多的便利,这些便利的实现主要是通过应用程序来实现的,目前这些移动设备中Android平台是移动市场中主要的部分。经过对Android平台系统的应用,人们实现了友好的体验,现在已发展成为人们生活中必不可少的一部分。但是Android应用很容易被恶意的开发者所利用,他们首先将应用进行破译,然后进行增删改等操作,将应用进行重新打包,最后投入市场以谋取利益。

1 Android应用程序以及重打包应用概述

Android应用程序一般都是由开发者将相关的源码以及资源进行打包,压缩成APK文件,这样用户就能够进行下载使用。

将APK文件进行解压后,可以得到很多内容,主要包括UI资源以及布局、配置文件、签名信息、应用的具体DK(Dalvik,下同)字节码等。利用Java编程语言来实现应用程度,将其编写成DK字节码。Android应用程序中一般不包含本地代码,但实际上本地代码是可以包含在应用程序中的,对于恶意的重打包操作中,开发者也很少对包含在应用中的本地代码进行变动。应用签名是每一个开发者独有的,每一个签名配有一个独有的密钥,在应用程序进行打包前以及发布过程中都需要进行签名。

根其他的应用程序相比,Android平台上的应用程序有一些独特的性质,这也是其能得到广泛推广应用的主要原因之一。其特性主要表现在以下几个方面:1)Android应用的入口点很多,这主要是由于组成Android应用程序的构件很多,并且每一个构件都需要至少一个入口点,Android应用中的构件间通过intent就可以实现相互通信的功能;2)在Android应用程序中的代码库中,有一部分为第三方库,第三方库所占代码库的比重一般较大。常见的第三方库有Admob、Facebook、Google Analytics等;3)大部分的Android应用程序在发布到市场之前,都进行了代码混淆,这样做得目的是增加逆向操作的难度,维护开发者的版权等权益。进行应用代码的混淆操作,一般都是用Proguard工具,通过这一工具,可以将原先应用程序代码中的方法名、类名等进行更改,将原先那些无用的代码去除,这样达到代码混淆的目的。

应用重打包就是恶意的开发者将原先应用程序进行破译,对非核心的代码资料进行恶意的改动,并对应用进行重新的打包,发布到市场中,我们将应用重新打包后产生的应用称为重打包应用。如果将重打包应用进行分类,可以根据其重打包的目的以及其它因素将其分为替换广告库版、汉化版、功能扩充版。

2 基于代码克隆检测技术的Android应用重打包检测

Android应用重打包检测技术对应用程序的检测,主要包括预处理、提取特征、分析相似度三个阶段。

在应用程序的预处理阶段,主要工作就是通过相应的技术手段,将应用程序进行反编译,并且进行过滤操作,从而可以得到被检测应用的核心代码。由于Android应用程序一般都具有第三方代码库,并且都进行了代码的混淆,所以给预处理阶段带来了很大的困难。比如第三方库中的有些代码与核心代码相似度较高,进行过滤操作中不容易进行区别等。利用Android应用重打包检测技术,可以事先列举第三方库白名单,这样就能避免很多的麻烦。

特征提取阶段是整个Android应用重打包检测中最关键的步骤,特征提取的准确性,关系着对特征的描述,关系着后续的对比分析结果的准确性。基于克隆代码检测方法的Android应用重打包检测中的特征提取,主要是对不同的计数环境下变量出现次数当做特征,然后通过相关的计算,得到每一个变量的特征向量,通过矩阵的构建,将应用程序的特征表示出来,然后就能进行抽象的描述。

在分析相似度阶段,主要是通过对正版的应用程序以及检测的应用程序之间的相似代码所占比重进行计算,通过两个应用程序代码块特征技术矩阵的比对,判断两者代码块的相似途径。其中,计算特征向量间的相似度,可以实现对特征矩阵的比对。对于每一个变量的特征计数向量相似度的计算,一般都是对向量余弦值的计算比对得到的,向量余弦值就是两个向量之间的夹角余弦。对于代码块相似度的分析就是对于两个代码块,通过计数矩阵以及最大匹配度等的计算、对比得到。通过对特征向量以及代码块的相似度分析,就能够对应用程序的相似度进行分析,判断重打包应用程序的存在,并分析其进行恶意改动的内容。

通过Android应用重打包检测技术,可以实现对重打包应用程序的检测,很大程度上净化了移动市场,确保了移动用户使用应用程序时的信息、隐私等的安全。相信随着我国科学技术的不断发展,这项检测技術会不断的被完善,发挥其更大的作用,为我国应用程序的发展提供更优越的环境。

3 总结

随着我国社会经济的快速发展,特别是科学技术水平的提高,移动设备已经逐渐成为人类生活、工作等方面必不可少的一部分,为人类活动提供了很大的便利。移动设备中各项功能的实现使用是通过应用程序,目前Android应用程序在移动市场中所占的比重很大。由于Android应用程序的特征以及优越性,很多恶意的开发者,对应用进行了重新打包,并将重打包应用发布到市场中,影响了原来开发者的版权利益的同时,也给应用使用者的信息等隐私带来了安全隐患。该文提出的基于克隆代码检测方法的Android应用重打包检测技术,可以准确的检测出移动市场中的重打包应用,对维护市场稳定具有重大的意义。

参考文献:

[1] 王浩宇,王仲禹,郭耀,等.基于代码克隆检测技术的Android应用重打包检测[J].软件维护与演化技术专刊,2014,44(1):142-157.

[2] 任浩,史庆庆,张丽萍,等.克隆代码检测方法综述[J].软件开发与设计,2011,25(11):19-20.

[3] 王菲飞.基于Android平台的手机恶意代码检测与防护技术研究[J].北京交通大学学报,2012,29(5):326-327.

猜你喜欢
检测技术安全
公路工程试验检测存在的问题及措施
价值工程(2016年30期)2016-11-24 16:39:03
煤矿机电产品检测技术
锅炉检测应用压力管道无损检测技术的分析
浅谈现代汽车检测技术与安全管理
科技视界(2016年20期)2016-09-29 12:55:31