基于微流量的Android恶意应用下载链接检测技术研究

张二鹏 彭华熹

(中国移动通信研究院安全技术研究所,北京 100053)

摘要:为解决快速检测识别Android应用下载链接的恶意性,提出了Android应用解析、文件还原方法。在此基础上,提出了基于微流量的Android恶意应用下载链接检测技术。

关键词:Android应用;下载链接;文件还原;检测技术

1 引言

随着移动互联网的快速发展,移动智能终端呈爆炸式增长,移动应用的数量和种类得到了空前的提高,用户安装移动应用已十分普及。尤其是基于Android系统的应用程序进入飞速发展的全新阶段,目前已扩展到车载系统、智能电器、智能会议系统等领域。Android是目前最流行的智能手机软件平台[1]。同时,由于Android系统的开放性特点,Android系统面临着严峻的移动恶意应用安全威胁。目前,用户通过移动智能终端进行支付、转账越来越普遍,同时在移动智能终端上存储着大量的用户银行账号、账户密码、系统密钥等敏感信息,用户一旦安装或被植入恶意应用,将面临敏感信息被窃取、账户资金被转移等安全风险,从而导致用户利益受损。手机恶意软件的危害主要有恶意扣费、窃取用户隐私、耗费系统资源、破坏系统、恶意传播等[2]。因此,Android平台的恶意程序检测是信息安全领域的一个重要研究方向[3]。

应用下载链接是用户进行下载、安装Android应用程序的主要途径。用户无法识别下载链接的恶意性,容易下载安装恶意应用。传统的移动智能终端Android恶意应用检测方法主要有两种。

(1)下载样本文件后,在不需要对样本解包的情况下,计算样本MD5值、SHA1等特征值,判断所提取的恶意特征值是否存在于预先构建的恶意特征信息库中,依据判断结果,确定是否为恶意应用。

(2)下载样本文件后,对样本进行解包、反编译代码,之后对生成的代码文件进行解析,提取APK文件特征。APK文件有各种特征,如权限、Java代码、意图过滤器、网络地址、字符串和硬件组件等[4]。再通过静态代码分析、动态行为检测技术,判断是否为恶意应用。

两种方案的共同特点是都需要下载链接对应的样本进行检测。目前,应用样本文件越来越大,有些应用达到几百兆,甚至几千兆。对于这样的应用样本进行下载、解包、反编译代码等进行特征提取,需要较长的时间,检测效率较低,占用较大移动智能终端计算资源及用户流量,用户体验较差。

本文提出了基于微流量的Android恶意应用下载链接检测技术,该方法在不用完整下载应用样本的前提下,下载提取指定的特征数据,依据已有恶意应用特征实现应用样本恶意性的检测,从而能够快速检测Android应用下载链接的恶意性。

2 技术背景与思路

Android恶意应用的恶意特征主要分布在证书文件、AndroidManifest.xml文件、SO文件及Dex文件等关键文件中,提取这些关键文件的恶意特征,可满足恶意应用的检测要求。因此,根据Android应用的文件结构特性,本文恶意下载链接检测思路由原来的全量下载检测转成对应用特定文件下载检测(见图1)。

图1 基于微流量的恶意下载链接检测技术示意图

Android应用其本质是zip压缩文件,即遵循zip文件格式规范。Android应用的文件结构为:[local file header + file data + data descriptor]{1,n} + central directory + end of central directory record,具体参见图2。

图2 Android应用文件结构

local file header为文件头,用于标识该文件的开始,记录了该压缩文件的信息;file data文件数据记录了相应压缩文件的数据;data descriptor数据描述符用于标识该文件压缩结束,紧接在压缩文件源数据后;central directory核心目录记录了压缩文件的目录信息,在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据;end of central directory record(EOCD)目录结束标识存在于整个归档包的结尾,用于标记压缩的目录数据的结束,每个压缩文件必须有且只有一个EOCD记录,文件结构如图3所示。

图3 Android应用文件结构示意图

3 技术检测方案

基于微流量的Android恶意应用下载链接检测主要包括恶意特征选择、恶意特征提取及检测两部分。

3.1 恶意特征选择

Android应用主要由签名证书文件、资源文件、支持库、配置文件、执行程序等文件组成,完整的Android应用文件目录结构如下。

● META-INF(签名证书目录)

——CERT.RSA

——CERT.SF

——MANIFEST.MF

● Libs(so库目录)

● Res(存放资源文件的目录)

● AndroidManifest.xml(程序全局配置文件)

● classes.dex(dalvik字节码文件)

● resources.arsc(编译后的二进制资源文件)

恶意应用检测引擎可通过应用包名、应用证书签名、权限、应用行为、联网、组件等特征或组合特征进行分析研判。这些特征可通过Android应用的文件目录中进行提取。例如,应用证书签名特征可从CERT.RSA文件提取,包名特征、权限特征、组件特征可从AndroidManifest.xml文件提取,应用行为特征可从classes.dex文件提取,资源特征可从Res文件目录提取,从而可以构建应用证书签名特征库、包名特征库、应用行为特征库、应用权限特征库等。检测引擎通过提取应用特征,判断所提取的恶意特征值是否存在于预先构建的恶意特征库中,依据判断结果,确定是否为恶意应用。

以应用证书签名特征为例,介绍如何构建应用证书签名特征。首先对已有的恶意应用及白名单应用进行解压,提取CERT.RSA文件,通过openssl pkcs7 -inform DER -in CERT.RSA -noout -print_certs –text命令进行解析,解析结果如图4所示。

图4 Android应用证书签名示意图

提取应用证书发行者、证书签名数据,并计算证书签名MD5值,从而分别构建恶意应用证书签名特征库及白名单应用证书签名特征库(见表1、2)。

表1 恶意应用证书签名特征示例

表2 白名单应用证书签特征示例

3.2 恶意特征提取及检测

在构建恶意特征库的前提下,需要明确下载指定的文件并提取特征,如CERT.RSA、AndroidManifest.xml文件等。

在Android应用的下载流中,可通过核心目录确定应用所包含的所有文件名、文件偏移地址、文件大小,从而可通过Http请求指定偏移及大小的数据流,并进行文件还原。图5为应用下载流示意图。

图5 Android应用下载流示意图

(1)文件下载:可通过Http请求下载文件结尾22字节数据,下载目录结束标识数据,其标记为0x06054b50,通过偏移地址获取核心目录数量及大小;基于核心目录数量及大小,通过Http请求下载核心目录文件,其标记为:0x02014b50,通过偏移地址获取所有的文件名、文件数据大小及文件数据的偏移地址;基于上述文件偏移、文件大小信息,通过Http请求,从文件头信息中提取指定文件数据,文件头标记为0x04034b50。

(2)文件还原:所有的提取文件数据形成PART1文件;计算提取的文件数量、大小和偏移地址等信息,重新构造核心目录及目录结束标识,形成PART2文件。合并PART1、PART2文件进行文件还原,形成ZIP格式压缩文件。通过对文件进行解压,还原所有的下载文件。

(3)特征信息提取:针对已还原的文件,提取相应的恶意特征信息。所提取的特征信息包括但不限于以下特征:应用包名特征、应用证书签名特征、权限特征、应用行为特征、联网特征、资源特征、组件特征等,可依据所构建的恶意特征确定所需要提取的特意特征。

(4)恶意性检测:所提取的特征信息如存在于预先构建的恶意特征信息库中,则判定为恶意应用,所对应的下载链接为恶意下载链接;所提取的特征信息如存在于预先构建的白名单特征信息库中,则判定为正常应用软件,所对应的下载链接为正常下载链接;所提取的特征信息均不存在于预先构建的恶意特征信息库、白名单特征信息库,则仍需要下载链接对应的应用样本进行检测。应用样本的相关检测技术已较为成熟。

基于微流量的Android恶意应用下载链接检测流程如图6所示。

图6 基于微流量的Android恶意应用下载链接检测流程

4 试验分析和验证

4.1 试验设置

基于已有的恶意应用及白名单应用,在本地网络环境中构造50条Android应用下载链接,其中20条恶意应用下载链接、30条白名单应用下载链接。网络环境如图7所示。

图7 试验网络环境示意图

4.2 试验结果

通过基于样本下载的恶意应用下载链接检测方案、基于微流量的恶意应用下载链接检测方案,对50条Android应用下载链接进行了分析检测。检测时间及所占存储空间对比如图8所示。

图8 试验结果分析

通过对两种检测方案的对比,基于微流量的Android恶意应用下载链接检测方案节省80.2%的检测时间及99.2%的存储空间,在检测效率、所占存储空间及带宽上,具有较大优势。

5 结束语

本文提出了基于微流量的Android恶意应用下载链接检测技术方法,在不用完整下载应用样本的前提下,只下载提取指定的特征数据,对下载应用软件的恶意性进行检测,从而确定下载链接的恶意性。该技术方案在移动智能终端Android应用下载链接检测及对应用商店进行大规模的应用安全检测等场景下,具有良好的检测效果和推广价值。

参考文献

[1] 魏琴芳, 李林乐, 张峰,等. 一种安卓手机恶意软件链接串行联合检测方法[J]. 重庆邮电大学学报, 2017, 29(2): 251-256.

[2] 边悦, 戴航, 慕德俊. Android恶意软件特征研究[J]. 计算机技术与发展, 2014, 24(11): 178-181.

[3] 严海升, 李强, 孙开伟. 基于特征占比差的恶意软件检测方法[J]. 计算机工程, 2019, 45(8): 309-314.

[4] 李江华, 邱晨. Android恶意软件检测方法研究综述[J]. 计算机应用研究, 2019, 36(1): 1-7.

Research on detection technology of malicious download link of Android application based on micro traffic

ZHANG Erpeng, PENG Huaxi

(Institute of Security Technology, China Mobile Research Institute, Beijing 100053,China)

Abstract: To solve the problem of quickly detecting and identifying the malicious link of the Android application download link, an Android application file parsing and download restoration method is proposed. Based on this, a micro-flow based Android malicious application download link detection technology is proposed.

Key words: Android application; download link; file restore; detect technology

作者简介

张二鹏:中国移动通信研究院安全技术研究所工程师,主要从事智能终端安全、智能终端应用安全等方面的研究工作

彭华熹:中国移动通信研究院安全技术研究所高级工程师,主要从事智能终端安全、智能终端应用安全等方面的研究工作

论文引用格式:

张二鹏,彭华熹. 基于微流量的Android恶意应用下载链接检测技术研究[J]. 信息通信技术与政策, 2020(2):35-40.

本文刊于《信息通信技术与政策》2020年第2期

声明:本文来自信息通信技术与政策,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。