科学的规划

PDF
科学的规划/2020年/文章
特殊的问题

大数据管理和分析在科学编程

把这个特殊的问题

研究文章|开放获取

体积 2020年 |文章的ID 5190138 | https://doi.org/10.1155/2020/5190138

徐姜Baolei毛,小君关,日照市兴利黄, Android恶意软件检测使用细粒度特性”,科学的规划, 卷。2020年, 文章的ID5190138, 13 页面, 2020年 https://doi.org/10.1155/2020/5190138

Android恶意软件检测使用细粒度特性

学术编辑器:Zhiang吴
收到了 2019年10月16日
修改后的 2019年11月25日
接受 2019年12月18日
发表 2020年1月25日

文摘

如今,Android应用程序声明尽可能多的权限为用户提供更多的功能,这也给他们带来了严重的安全威胁。尽管许多Android恶意软件检测方法基于权限已经被开发出来,它们是无效的恶意应用程序时宣布一些危险的权限或危险时由恶意应用程序权限声明宣布的良性的应用程序是相似的。这个限制是由于使用分类的信息太少。我们提出一个新的方法命名的细粒度的危险的许可(FDP)方法检测Android恶意应用程序,收集功能,更好地代表恶意应用程序和良性的应用程序之间的区别。在这些特性中,危险的权限的细粒度特征应用于组件首次提出。我们评估1700良性的应用程序和1600恶意应用程序和证明自民党达到TP率为94.5%。此外,与其他相关检测方法相比,自民党可以检测更多的恶意软件的家庭和只需要平均15.205秒来分析一个应用程序,演示了其适用性在实际实现。

1。介绍

智能手机已经成为我们日常生活不可或缺的一部分。新2018年12月的数据显示,Android仍然是最受欢迎的移动操作系统,全球市场份额的75.16%1]。主要应用程序商店的一百万多个Android应用程序,应用程序(如微信,TikTok,移动银行应用程序是用于我们的日常生活中,继续发挥着越来越重要的作用。大多数这些应用程序可以访问用户的私人信息,如位置,信用卡,和联系信息。几乎所有的应用程序访问用户的私人数据,尽管这为用户提供更好的个性化服务(2]。它也可能导致信息泄漏的私人数据和经济损失3]。进一步说,Android恶意应用程序保持新兴没完没了地,这个安全问题已经得到了越来越多的关注在工业和学术领域4]。

大量的研究对Android恶意软件已被提出。目前,静态分析和动态分析是两个主要类型的检测方法。每种方法都有其优点和缺点。静态分析方法如麒麟(5],PApriori [6],DREBIN [7]分析应用程序没有执行程序要求较低的开销。然而,不能抵御antidecompiling和模糊的方法。相反,动态分析方法如TaintDroid [8]和VetDroid [9)执行应用程序实时检测恶意软件,但是很难获得所有的执行路径。恶意软件是快速发展的,机器学习方法是用于执行Android恶意软件检测。因此,收集功能,更好的代表恶意行为作为机器学习的特点有利于提高恶意软件的性能检测。

安卓本身有几个不同层次的安全机制。许可机制应用于应用程序层是一个重要的防御机制,以保护敏感的Android平台上的资源。应用程序必须声明危险的权限访问敏感数据(10,11]。一些研究调查了Android恶意应用程序基于声明的权限,使用基于许可的方法(5- - - - - -7,12- - - - - -14]。虽然这些方法避免高开销,他们认为声明的权限是机器学习的特点,不能真正反映良性的应用程序和恶意应用程序之间的区别。因此,他们不能检测到恶意应用程序声明只有几个,或危险的权限,也总是宣布由良性的应用程序。

相比与权限功能,应用程序编程接口(api)代表整个Android系统提供的应用程序行为的照片(15]。DroidAPIMiner [16)利用数据流分析提取恶意应用程序中使用的api的数量和良性的应用分析它们之间的差异,这是类似于[这些方法17,18]。一般来说,API特性集包含大量的特性,因此,检测方法需要额外的时间来提取API特性和训练检测模型。值得注意的是,有一个相应的权限和api之间的关系。

在本文中,我们目前的自由民主党,一个轻量级的Android恶意软件检测方法挖掘隐藏的恶意软件模式。根据先前的研究,有相当大的区别的恶意应用程序和良性的应用程序的权限声明(19- - - - - -22]。此外,一些危险的不同组件的权限声明反映了开发商的目的(23,24]。它可以用来区分不同的目的相同的危险的许可。因此,自民党利用静态分析从AndroidManifest收集更细粒度的、有代表性的特征。xml和反编译代码;这些特性包括细粒度权限,意图过滤器,和恶意的代码特性的应用。这些特性可以代表良性的应用程序和恶意应用程序之间的区别。

实验1700良性的应用程序从1600年小米市场和恶意应用程序演示自民党的有效性,达到TP率为94.5%,平均只需要15.052 s分析应用程序。我们工作的主要贡献可以概括如下:(1)我们提出一个新的方法来执行Android恶意软件检测基于细粒度权限机制,代表恶意应用程序和良性的应用程序之间的区别作为机器学习的特点,包括危险的信息权限首次使用的组件。(2)我们提出一个彻底研究常用的权限由恶意应用程序和评估许可特征用于分类的重要性恶意应用程序和良性的应用程序。(3)在效率方面,自民党使用静态方法来收集所有功能和分析应用在合理的时间。(4)实验表明,民主党更有效的检测恶意软件的家庭和恶意应用程序声明一些危险的权限或权限声明的良性的应用程序。

本文的其余部分组织如下。部分2介绍了恶意应用程序的特性。部分3涵盖了检测框架,包括特征选择、特征提取和细粒度的处理功能。部分4介绍了回溯的关键点。部分5讨论了实验结果。部分6描述了相关工作,我们总结论文部分7

2。恶意应用程序的特性

根据谷歌的定义,权限分为几个保护级别:正常,签名,危险,和特殊权限。正常的权限很少到用户的隐私风险。签名权限颁发Android安装期间。危险的权限是指资源涉及用户的私人信息,如表所示1。特殊权限不像正常的和危险的工作权限,特别敏感;因此,大多数应用程序不使用他们(25]。恶意应用程序必须使用危险的权限执行恶意行为。根据以前的工作,研究关于危险权限发挥重要作用的检测恶意应用程序。


权限组 许可

日历 READ_CALENDAR
WRITE_CALENDAR
相机 相机
联系人 READ_CONTACTS
WRITE_CONTACTS
GET_ACCOUNTS
位置 ACCESS_FINE_LOCATION
ACCESS_COARSE_LOCATION
麦克风 RECORD_AUDIO
电话 READ_PHONE_STATE
CALL_PHONE
READ_CALL_LOG
WRITE_CALL_LOG
ADD_VOICEMAIL
USE_SIP
PROCESS_OUTGOING_CALLS
传感器 BODY_SENSORS
短信 SEND_SMS
RECEIVE_SMS
READ_SMS
RECEIVE_WAP_PUSH
存储 READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE

此外,恶意应用程序有一些代码功能。AndroMalShare [26)持有86798恶意应用程序并提出了样本的统计信息,包括动态加载,本机代码,和反射,如图1

恶意的原因提供了应用程序代码的功能如下:动态加载:Android支持应用程序加载额外的二进制文件在运行时动态加载。为了逃避静态检测、恶意应用程序开发人员独立应用程序的核心功能为独立的库和动态加载它们[27]。因此,恶意应用程序总是使用动态加载隐藏恶意行为。本机代码:很多开发者使用本机代码作为应用程序的一部分来改善代码的执行效率和增加反编译的难度。阿方索et al。28)估计,37%的Android应用程序的本机代码。大多数恶意软件仅限于字节码的检测;因此,恶意软件开发者使用本机代码来实现恶意行为以免应用程序的代码是逆转,这意味着静态分析不能完全分析包括本机代码的应用程序(29日]。反射:因为Android应用程序是由Java代码与本机代码,它们有能力利用反射机制。恶意应用程序利用反射来调用api相应危险权限执行恶意行为,为了逃避静态检测(30.]。

3所示。检测方法

3.1。总体框架

为了提取功能,可以更好地代表应用程序行为,自民党利用静态分析来提取关键特性通过反编译的应用程序和分析他们使用机器学习的最优算法。流程见图2和提供的细节如下:(一)静态分析:自民党雇佣apktool反编译应用程序,获得不同的特性集AndroidManifest文件和反编译源代码。(b)嵌入在向量空间:所有提取的特征映射到一个向量空间,可以分析在机器学习功能。如果应用程序功能,相应的尺寸设置为1。相反,其他功能的相应尺寸设置为0。为了防止过度拟合的问题,我们采取的行动“RemoveDuplicates”删除相同的实例。(c)最优分类器:我们使用J48(决策树算法),再(资讯),天真Beyesian (NB)和支持向量机(SVM)分析相同的训练集和选择最好的指标的分类器作为自民党的最优分类器。

3.2。细粒度的权限

限制访问权限机制的一系列关键api (31日]。本文是指危险权限对应的api作为敏感的api。几项研究选择api作为机器学习的特点。分类信息是相对富裕,所有敏感的api都选为特征。然而,耗费时间与巨大的资源消耗和过程必须存在冗余和毫无意义的功能。然而,敏感的api调用的前提是,应用程序必须声明在AndroidManifest文件权限。例如,应用程序必须声明SEND_SMS允许调用sendTextMessage()和sendMultipartTextMessage()来发送消息。因此,自民党选择权限,而不是api作为机器学习的特点,以确保它是轻量级的。

如何选择权限,这不是合适的选择常用的权限都恶意应用程序和良性的应用程序。如果使用的所有权限,这将不可避免地导致“维数的诅咒。“如前面所示的工作19),恶意应用程序声明危险权限通常良性的应用程序。因此,我们的研究方法认为经常使用的权限通过恶意软件作为我们的研究对象和提取特征从以下方面。

声明权限和意图:调用敏感的api的应用程序必须声明在AndroidManifest文件中相应的权限。我们提取这些声明权限后反编译应用程序。活动、服务和广播接收器被激活的意图和他们注册使用意图过滤器在AndroidManifest文件类型的意图。恶意应用程序可以利用Android系统的公告引发恶意行为。因此,我们的方法提取的意图总是恶意应用程序中使用的特性,例如,BATTERY_CHANGE_ACTION SMS_RECEIVED。

未使用的权限和根特权:一些应用程序申报危险的权限;然而,没有映射Smali代码的api中使用的应用程序,因为危险权限动态加载或被开发人员。

我们的方法首先提取危险权限AndroidManifest中列出的文件。然后,我们遍历反编译源代码基于权限之间的关系和提供的api PScout [32),寻找宣布权限映射的api调用。这样危险的权限被定义为未使用的权限。如果存在敏感api没有映射的危险在AndroidManifest文件权限,我们怀疑,应用程序可能是试图获得根权限。因为根特权给绝对控制设备的应用程序,它可以执行任何恶意行为没有权限(33]。

权限用于组件:权限组件中使用我们的方法的亮点。在这项研究中,敏感的api是作为起点来回溯调用图的生成。根据权限之间的关系和PScout提供的api,我们的方法扫描Smali代码和查找映射的api。接着,随着这些api作为起点,父函数的回溯的过程迭代,直至组件可以通过文件确认父函数的地方。

回溯的生成过程的具体步骤如下:(1)遍历所有Smali文件反编译后的文件夹,并找出敏感的API,如Landroid /电话/ TelephonyManager; > getDeviceId Ljava / lang / String ()。然后,寻找包含敏感的API函数,这是最近的功能从底部到顶部。把图3例如,包含敏感的API的功能getDid ()。(2)生成一个新的父函数根据敏感的API和类。我们以新的父函数为起点,再次遍历所有Smali文件夹中的文件,找出调用新生成的父函数的函数。把图3作为一个例子,它意味着我们应该找出getDid (),例如,Lcom / qq / e / v2 /经理/地位/ DeviceStatus; - > get-Did Ljava / lang / String ()。(3)重复步骤1和2的方法,直到我们得到父函数所在的组件信息。迭代的结果getDid ()如图4。”的声明.super”显示组件的信息。“.super Landroid / app /活动“Smali文件中表明父函数调用Landroid /电话/ TelephonyManager; - > getDeviceId Ljava / Lang / String ()属于活动组件。

3.3。本机代码和反思

反编译之后,我们的方法检查是否应用程序存储库的lib文件夹。如果lib文件夹存在,本机代码的功能是设置为1。为了缓解没有反射的情况下,自民党提取有关反射api,如forname ()。特性使我们能够知道隐藏的代码执行。因此,反射的特点设置为1或0取决于反射相关的代码。

4所示。回溯的关键

权限用于组件的特性对自民党有助于提高检测的性能。因此,我们的方法必须回溯父函数调用敏感的API来获得组件的信息。此外,整个回溯过程的关键是构建过程的调用图不能被打断。然而,由于组件之间的通信,回调,和其他原因,Android应用程序有隐含的调用,导致中断的调用图根据传统方法。某些情况下,提出了如下的解决方案。

4.1。注释

注释是一个Java语言的特点广泛用于开发Android应用程序(34]。有两种类型的注释:dalvik。一个nnotation package is not open to the public, which is only used for the core library and code testing, and it is under theDalvik \ src \ \ Java \ Dalvik \注释目录;另一个是android。一个nnotation and the corresponding annotation declaration is under the frameworkandroid \ \基础\ \ Java \核心注释目录中。注释常常出现在回溯的过程。

应用“net.maxicom.android。蛇”作为一个例子,图中所示的代码片段5。当检测回溯父函数时,自民党遇到注释代码,“EnclosingMethod”指定了自己的类的范围。“方法”表明注释作用于一个函数,和价值告诉我们,它位于SnakeService onCreate ()。因此,自民党SnakeService文件打开,第二行是“.Super Landroid /应用程序/服务。“因此,可以推断,敏感的API服务组件。

4.2。多流的通信

Android是消息驱动和消息处理机制的本质是一个线程打开一个循环,不断听取和处理消息发送的其他线程。如果在创建一个新线程运行在主线程,系统会抛出一个异常。因此,异步回调机制提供的处理程序是线程之间的通信(安卓系统35]。

如图6主线程,UI线程。系统初始化一个电影对象并创建一个与之关联的MessageQueue。消息处理程序接收到的对象和过程。MessageQueue消息队列。每个UI线程只能有一个电影,不断地把消息从MessageQueue分发到相应的处理程序。

当电影一个新的消息,handleMessage()来处理新消息。这个Android消息处理机制导致调用图,从而导致回溯的失败。因此,我们的方法构造一个实例初始化方法有特别的名字“< init >,这是由一个编译器。然后,我们使用该方法作为回溯的新起点。

采取“ServiceCommunication1。apk”作为一个例子,我们回溯父函数调用API敏感,直到父函数”handleMessage”,如图7(一)。然后,我们发现类继承“Landroid / os /处理程序”基于代码。如果一个方法构造”以汉/麻省理工学院/ icc_service_message / MessengerService IncomingHandler美元;- > HandleMessage (Landroid / os /消息;)V,”回溯失败。我们的方法构造”以汉/麻省理工学院/ icc_service_messages / MessengerService IncomingHandler美元;- > < init >(以汉/麻省理工学院/ icc_service_messages / MessengerService;) V”作为新起点,寻找它的位置。如图7 (b)第二行“.super Landroid /应用程序/服务;“显示危险权限用于服务组件。

4.3。进程和线程

一个进程可以包含多个线程,可以用作独立操作和独立调度的基本单位。因为线程小于过程和不拥有系统资源,有效地调度成本很低,可以提高程序的并发执行多个程序之间的系统。

有两种方法来实现线程在一个Android系统。一个是扩展“java.lang.threads。”重写”run (),”和单独使用多个线程来完成他们的任务。另一个是实现Runnable接口和实例化类的线程。所不同的是,使用Runnable接口创建的线程可以共享资源,当多个线程访问相同的资源,而线程通过继承创建线程类有自己的资源。


家庭 数量

BaseBridge 60
BaseBird 39
BeanBot 6
KMin 40
GoneSixty 6
Fakeinst 16
DroidDream 45
Lotoor 8
Pjapps 44
SendPay 34
感染 48
Bgserv 8
DDLight 40
HippoSMS 4
GoldDream 10
GingerMaster 7
DroidKungFu1 30.
DroidKungFu2 20.
DroidKungFu3 152年
DroidKungFu4 56

当父函数的敏感API”run ()”,有必要检查关键字”.Super”和“.Implement“在Smali文件。如果存在“.super Ljava / lang /线程”或“.Implement Ljava / lang /可运行,“我们需要遍历所有Smali文件再一次实例化和使用函数,启动线程的线程作为回溯的起点,并向上搜索父函数。注意,线程类的方法”run ()”和“start (),“而实现Runnable接口的只有“run ()”的方法。

采取“net.maxicom.android。蛇”为例,应用程序调用位置/ LocationManager; - > requestLocationUpdates (Ljava / lang / String;JFLandroid /位置/ LocationListener) V ACCESS_FINE_LOCATION对应权限,及其母公司函数Lnet / max-icom / android /蛇/ SnakeService 1美元;- >运行(V),第二行SnakeService $ 1显示了".super Ljava / lang /线程“在”net/maxicom/android/snake/SnakeService 1美元”文件。提供的方法构造类的父类函数,方法,和参数如前所解决,回溯失败。我们把Lnet / maxicom / android /蛇/ SnakeService 1美元;- >开始(V)作为回溯的新起点。最终,扫描和匹配后,父函数Lnet / maxicm / android /蛇/ SnakeService; - > onCreate (),该文件位于net/maxicom/android/snake/snakeService在第二行显示敏感API被称为服务组件,如图8

5。实验结果和讨论

5.1。实验设置

步骤1:建立一个样本数据集。恶意程序样本来自MalGenome和AndroMalShare [26]。MalGenome是被许多研究者广泛使用它帮助我们比较结果与相关方法。作为补救,AndroMalShare提供了最新的恶意软件样本,可以通过恶意软件分类的家庭。我们收集1600份恶意应用程序作为样本,分类根据Android恶意软件的家庭。数据集的优势是,我们可以选择特定的Android恶意软件家庭建立检测模型和分析的能力检测模型检测未知应用程序从其他Android恶意软件的家庭。为了确保平衡的数据集,我们采用爬虫程序下载1700良性从小米App Store应用程序。进一步检查良性的应用程序和恶意应用程序,我们与Virustotal验证这些应用程序,这是网站分析和url来检测可疑文件类型的恶意软件,自动与安全社区分享他们。我们选择20恶意软件家庭表所示2700年,其中包括673恶意应用程序和良性的申请建立检测模型。其余应用程序用作测试将检查检测模型。步骤2:使用反编译应用程序apktool工具得到Smali代码和AndroidManifest文件。然后,我们从Smali中提取所有功能代码和AndroidManifest文件。进一步分析后,细粒度特性。步骤3:使用统一用Python编写的程序步骤2中的特征提取,并统一到飞机救援消防的格式,由WEKA方便机器学习工具。步骤4:比较两组不同的权限功能的分类结果选择功能,可以更好地代表了恶意行为和利用不同的机器学习算法学习数据并选择最优分类器根据TP率,F测量和接受者操作特征曲线(ROC)区域。

所有的实验都进行机16 GB的内存和英特尔(R) (TM)核心i7 - 4720总部2.60 GHz处理器。

5.2。评价指标

在这个工作中,TP率,F测量,中华民国是用来评估的性能检测模型。恶意应用程序正样本和良性的负样本应用程序在我们的评估,我们提出四种类型的值。 是恶意的应用程序的数量正确认定为恶意应用程序; 是恶意应用程序错误的数量确定为良性的应用程序; 是良性的应用程序的数量正确认定为良性的应用程序;和 是良性的应用程序的数量错误地认定为恶意应用程序:

在这些指标,F测量是一个指标指的是精度和召回。中华民国领域是最重要的评价指标之一,检查任何分类模型的性能。中华民国领域越高,分类越好。

5.3。选择的功能

为了达到更好的检测性能,选择丰富,歧视,是分类的关键步骤和独立的特性。我们设计两个实验来比较使用权限集和测试集验证。实验Ι:选择所有危险权限作为机器学习的特点;实验二:选择86798年排名前20位的使用权限的恶意软件样本收集的AndroMalShare作为机器学习的特点,如图9

实验Ι选择927恶意应用程序和1000良性不会导致检测模型的应用程序作为一个测试集。危险权限功能的机器学习的结果如表所示3。资讯和SVM相对比其他分类器,他们恶意软件检测的TP率最高。然而,四个分类器的表现不是很满意。


TP率 FP率 F测量 中华民国领域

J48 0.877 0.149 0.877 0.813
然而, 0.899 0.091 0.901 0.937
支持向量机 0.899 0.099 0.900 0.900
0.888 0.105 0.890 0.946

在实验2中,我们使用相同的训练集建立检测模型和分析相同的测试集的算法。唯一的区别是,特点是使用的前20名86798 AndroMalShare收集的恶意应用程序的权限。实验结果如表所示4


TP率 FP率 F测量 中华民国领域

J48 0.867 0.185 0.847 0.892
然而, 0.895 0.144 0.886 0.946
支持向量机 0.909 0.124 0.909 0.948
0.888 0.103 0.891 0.942

从结果可以看出,支持向量机算法是最好的TP率,达到了90.9%。比较的结果表34有类似的表现,相同的测试集和分类器。很难评估权限集是更好;然而,我们可以识别的特征更重要的分类根据信息增益特性。两组结果如表所示56,分别。


信息增益 许可

0.45761 相机
0.38322 READ_EXTERNAL_STORAGE
0.23817 RECORD_AUDIO
0.18864 ACCESS_COARSE_LOCATION
0.16828 ACCESS_FINE_LOCATION
0.14783 GET_ACCOUNTS
0.12662 WRITE_EXTERNAL_STORAGE
0.09001 READ_CALENDAR
0.07381 READ_CALL_LOG
0.05988 WRITE_CALENDAR
0.02238 READ_PHONE_STATE
0.01669 READ_CONTACTS
0.01604 PROCESS_OUTGOING_CALLS
0.01390 WRITE_CALL_LOG
0.01322 CALL_PHONE
0.01233 READ_SMS
0.00565 SEND_SMS
0.00553 RECEIVE_WAP_PUSH
0.00343 BODY_SENSORS
0.00343 USE_SIP
0.00343 ADD_VOICEMAIL
0.00329 RECEIVE_SMS
0.00001 WRITE_CONTACTS


信息增益 许可

0.33442 GET_TASKS
0.32002 SYSTEM_ALERT_WINDOW
0.29962 WRITE_SETTING
0.21801 WAKE_LOCK
0.1655 ACCESS_WIFI_STATE
0.1588 CHANGE_WIFI_STATE
0.14685 ACCESS_COARSE_LOCATION
0.12524 ACCESS_FINE_LOCATION
0.11073 GET_ACCOUNTS
0.09772 ACCESS_NETWORK_STATE
0.07362 振动
0.06159 WRITE_EXTERNAL_STORAGE
0.03961 READ_SMS
0.02997 INSTALL_SHORTCUT
0.00644 READ_CONTACTS
0.00546 READ_PHONE_STATE
0.00531 SEND_SMS
0.00399 RECEIVE_BOOT_COMPLETED
0.00314 RECEIVE_SMS
0.00154 互联网

根据排名功能和权限的实际使用状况,我们选择从两组24权限的功能,如表所示7。我们发现的权限,执行恶意行为的需求可能不是重要的像网络许可,由恶意软件和常用良性的应用程序。


相机 GET_TASKS
WAKE_LOCK READ_SMS
振动 WRITE_CALENDAR
READ_PHONE_STATE READ_CONTACTS
PROCESS_OUTGOING_CALLS WRITE_CALL_LOG
SYSTEM_ALERT_WINDOWS WRITE_SETTING
READ_CALENDAR READ_EXTERNAL_STORAGE
ACCESS_WIFI_STATE ACCESS_COARSE_LOCATION
RECORD_AUDIO WRITE_EXTERNAL_STORAGE
GET_ACCOUNTS READ_CALL_LOG
CALL_PHONE ACCESS_NETWORK_STATE
ACCESS_FINE_LOCATION CHANGE_WIFI_STATE

然后,我们使用所选权限功能作为机器学习的特点,学习训练集和分析相同的应用程序从测试集分类器。结果如表所示8,所有指标优于在上面的实验。在这些算法中,TP率最高达到93.8%,F测量与J48分类器是最好的。


TP率 FP率 F测量 中华民国领域

J48 0.938 0.062 0.938 0.968
然而, 0.921 0.101 0.920 0.970
支持向量机 0.916 0.074 0.916 0.921
0.918 0.107 0.917 0.949

5.4。自由民主党

通过进一步分析分类错误,我们发现大部分的这些应用程序错误分类申报危险权限经常宣称的恶意软件应用程序和良性的应用程序,尤其是READ_PHONE_STATE, ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION SEND_SMS, READ_SMS。虽然这些危险的权限是完全相同的,使用这些权限之间良性的应用程序和恶意应用程序是不同的。例如,READ_PHONE_STATE相对较低的信息增益,但是恶意的应用程序通常使用服务组件为了避免任何用户的注意力从良性的应用程序是不同的。

基于以前的工作(23,24),我们进一步完善上述权限和提取信息的组件在危险的第一次权限的功能。和恶意应用程序的代码特性,意图恶意应用程序经常使用,以及是否应用程序利用本机代码,反射机制,考虑和根,自民党的特点如表所示9,我们添加SEND_SMS和合并ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION到位置,SEND_SMS和READ_SMS SMS的维度的诅咒。


相机 维摄像机 WAKE_LOCK 反射
RECORD_AUDIO D-RECORD_AUDIO GET_TASKS 本机代码
READ_CONTACTS D-READ_CONTACTS 振动
READ_CALL_LOG D-READ_CALL_LOG PROCESS_OUTGOING_CALLS I-BOOT_COMPLETED
CALL_PHONE D-CALL_PHONE SYSTEM_ALERT_WINDOWS I-SMS_RECEIVED
WRITE_CALL_LOG D-WRITE_CALL_LOG WRITE_SETTING I-BATTERY_CHANGE_ACTION
CHANGE_WIFI_STATE D-CHANGE_WIFI_STATE D -短信 一个位置
READ_CALENDAR D-READ_CALENDAR 一个短信 D-LOCATION
ACCESS_WIFI_STATE D-ACCESS_WIFI_STATE B -短信 B-LOCATION
GET_ACCOUNTS D-GET_ACCOUNTS S -短信 S-LOCATION
WRITE_EXTERNAL_STORAGE D-WRITE_EXTERNAL_STORAGE D-READ_PHONE_STATE S-READ_PHONE_STATE
READ_EXTERNAL_STORAGE D-READ_EXTERNAL_STORAGE A-READ_PHONE_STATE B-READ_PHONE_STATE
ACCESS_NETWORK_STATE D-ACCESS_NETWORK_STATE D - WRITE_CALENDAR WRITE_CALENDAR

活动,B:广播接收器,D:未使用或动态加载,我:意图。

自由民主党也使用相同的数据集和分类器进行分析。结果如表所示10。每个算法都有比以前更好的性能。在这些分类器,J48是最好的和TP利率F测量是0.945。它表明,自民党的特点可以更好地代表恶意行为。


TP率 FP率 F测量 中华民国领域

J48 0.945 0.061 0.945 0.939
然而, 0.937 0.078 0.936 0.963
支持向量机 0.929 0.088 0.928 0.920
0.920 0.095 0.919 0.953

此外,自民党的结果也显示为中华民国区域图10。ROC曲线下的面积的价值曲线下的面积(AUC)。面积越大,分类越好。结果是显而易见的,这四个分类器有良好的性能在检测恶意应用程序和所有民国面积都超过0.9。

5.5。评估危险权限用于组件

为了评估的重要性危险权限用于组件的特性,我们收集恶意应用程序从Android恶意软件的家庭,如FakePlayer DroidCoupon, TapSnake和浮游生物。这些应用程序只声明几个危险权限如READ_PHONE_STATE ACCESS_COARSE_LOCATION, READ_SMS由良性常用的应用程序。这意味着如果没有足够的可用信息分类检测方法都是基于声明的权限。

相比之下,我们雇佣了两组的权限功能。特性表7作为两组之一,另一个是危险的权限应用于组件的功能取代宣布权限基于表的特点7,涉及READ_PHONE_STATE ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION, READ_SMS。例如,READ_PHONE_STATE A-READ_PHONE_STATE所取代,B-READ_PHONE_STATE, S-READ_PHONE_STATE。

通过测试63年恶意应用程序和70年温和的声明类似权限的应用程序,我们使用SVM算法执行10倍交叉验证。检测的准确性为77.8%,声明的权限,而检测的准确性达到92.5%的细粒度的权限。两个数据集的规模相对较小,因为几乎没有合格的良性的应用程序。

此外,我们使用信息增益来评估功能,包括细粒度的权限的重要性。如表所示11危险的权限的,有三个特征用于组件排名在前十四的权限。结果显示权限用于组件的特性有助于分类。


许可 信息增益

S-READ_PHONE_STATE 0.55678
READ_EXTERNAL_STORAGE 0.41997
GET_ACCOUNTS 0.41997
GET_TASKS 0.41997
RECORD_AUDIO 0.41997
B-READ_PHONE_STATE 0.28129
CALL_PHONE 0.28129
CHANGE_WIFI_STATE 0.28129
振动 0.28129
READ_CONTACTS 0.28129
WRITE_SETTING 0.25643
S-READ_SMS 0.17095
PROCESS_OUTGOING_CALLS 0.17095
READ_CALENDAR 0.17095

5.6。检测未知恶意软件的家庭

为了检查自民党的预测能力,我们收集恶意软件的家庭为未知的恶意软件家庭表所示12。这些应用程序不是在训练集构造检测模型,其中包括PApriori和DREBIN无法检测的恶意软件的家庭。


Id 家庭 数量

一个 Asroot 6
B FakePlayer 31日
C DroidCoupon 4
D DroidDeluxe 1
E Tapsnake 4
F Gappusin 21
G JsmsHider 23
H RogueLemon 9
浮游生物 24
J Zsone 15
K YZHC 8
l JiFake 20.

我们使用三种检测模型来识别相同的应用程序从未知恶意的家庭。三种检测模型采用危险权限作为机器学习的特点(即。,Experiment Ι), the top 20 used permissions of malicious applications declared as the features of machine learning (i.e., Experiment II), and FDP, respectively. The experimental results show that FDP can accurately detect more malicious families, especially with few dangerous permissions, which are shown in Figure11。例如,所有的恶意应用程序从DroidCoupon家庭只声明READ_PHONE_STATE和WRITE_EXTERNAL_STORAGE;所有的恶意应用程序从浮游生物的家庭只有READ_PHONE_STATE申报。它表明,自民党可以识别更多的恶意应用程序由于细粒度的权限功能。

5.7。与相关的方法

PApriori使用频繁模式挖掘得到的最大频繁权限49恶意软件的家庭和构造特征库来检测恶意应用程序许可。1260年恶意软件应用程序从MalGenome, PApriori检测恶意软件样本的87%。然而,当恶意应用宣布不那么危险的权限为良性,PApriori失败。PApriori列表恶意软件家庭MalGenome本身未被发现,如Asroot FakePlayer, DroidCoupon DroidDeluxe, Tapsnake,浮游生物。这就是为什么PApriori检测良性的应用程序中有明显的局限性。自民党可以检测上述恶意家庭因为细粒度选择危险的权限,代表良性的应用程序和恶意应用程序之间的区别。

DREBIN检测恶意软件的准确性94%,但它不能检测到恶意应用程序从Gappusin家庭因为有恶意特征识别样本太少。我们使用应用程序从Gappusin家庭作为未知恶意应用程序和TP率100%。同时,有问题的不平衡数据集的数据DREBIN它包含123453个良性5560恶意应用程序和应用程序。如果DREBIN选择平衡的数据集,可以提高准确性。

DroidEnsemble使用字符串功能权限和意图和结构特点等来检测恶意软件的应用。数据集的大小和组成比例的良性的应用程序和恶意应用程序类似于民主党,和准确性达到98.4%。值得注意的是,结构特征在检测未知恶意家庭可能表现不佳,因为它在很大程度上依赖于先前的发现恶意的家庭。因此,它也有同样的问题和PApriori DREBIN检测不能生效,如果没有明显的区别良性的应用程序和恶意应用程序声明的权限。

5.8。运行时性能

为了评估我们的方法的适用性的实际实现,我们计算时间消耗使用50恶意应用程序和50良性的应用程序,和应用程序的规模从12 KB到61 MB。平均而言,自民党可以分析一个应用程序在15.205 s,这表明我们在Android恶意软件检测的方法是有效的,尽管有很多细粒度的信息提取。

有很多相关的研究自由民主党,它利用静态分析来提取特征,如权限,API调用,意图检测。

根据恶意程序和良性的应用程序之间的差异,DroidRanger [36]总结规则许可的特征来检测未知的恶意程序。Enck等人开发的麒麟(5),为安全创造了九个安全规则。些等人提出的偷渡者(37)检测应用程序声明是否过度的权限之间的映射关系分析的基础上权限和api。DREBIN [7)使用静态方法来收集尽可能多的应用程序的功能和使用支持向量机来分析它们。Feizollah et al。38)提出了基于意图和方法来检测恶意应用程序权限。DroidEnsemble [39)使用字符串识别Android恶意应用程序特性和结构特点和优化结果与整体方法。

在这篇文章中,自民党在三个方面不同于以前的工作。首先,我们选择的特性取决于恶意应用程序的特征,以便更好地代表了恶意行为。第二,允许特性进一步细分为细粒度的权限功能,这使自民党能够发现更多的恶意软件的家庭,特别是,当恶意应用程序声明几个权限或危险的恶意应用程序权限声明宣布的良性的应用程序是相似的。第三,自由使用静态分析来提取细粒度的危险的许可和其他特性,和它使用J48最优分类器与TP率和检测恶意应用程序F测量达到94.5%和分析应用在合理的时间。

7所示。结论和未来的工作

在本文中,我们提出一个新方法基于细粒度权限检测Android恶意应用程序,收集功能,更好地代表恶意应用程序和良性的应用程序之间的区别。实验结果证明我们的自民党方法的有效性,表明自民党比存在方法可以检测更多的Android恶意的家庭。此外,自民党方法足够高效的Android恶意软件检测的实际实现。

虽然自民党突破与以前的工作相比,它仍然不能从动态加载中提取更多的信息,反射机制,因为静态分析固有的局限性和加密。如果自民党认为这些限制,它必须使用动态分析方法提取相关特性,这就增加了检测显著的开销。此外,越来越多的android应用程序试图保护自己免受反编译,使用我们的方法也增加了困难。

因此,在效率的前提下,如何从动态分析中提取有价值的特性和克服antidisassemble问题是我们未来工作的方向。此外,我们只使用经典的机器学习算法在本文中,我们将尝试优化这些机器学习算法来构造一个更好的检测模型在我们未来的工作。与此同时,训练数据是一个重要的因素影响机器学习算法来识别模式的特性。我们试图收集更多的恶意应用程序和恶意软件的家庭为了解决过度拟合的问题和underfitting未来的工作。

数据可用性

使用的数据来支持本研究的发现可以从AndroMalShare [26)和MalGenome。应用程序从MalGenome可从相应的作者。

的利益冲突

作者宣称没有利益冲突。

作者的贡献

徐姜提出想法和实施和实验系统。毛Baolei负责思想的阐述和评价研究。小君关、日照市兴利黄负责基本的仿真来验证提出的想法。

确认

这项工作是支持部分由中国国家自然科学基金(61672433)。

引用

  1. 世界上最受欢迎的移动操作系统(Android和IOS:市场份额2012年- 2018年),2019年6月,https://ceoworld.b iz/2019/01/18/worlds -最受欢迎-移动-操作系统- ms - android - vs - ios -市场-分享- 2012 - 2018
  2. x Liu j .刘朱,w . Wang和x张“隐私风险分析和缓解android生态系统,分析图书馆的“IEEE移动计算,p . 2019。视图:出版商的网站|谷歌学术搜索
  3. 研究和分析报告在线隐私和网络欺诈在2018年,2019年6月,https://m.qq.com/security_lab/news_deta-il_473.html
  4. İ。Doğru和O。Kiraz”的基于web的android恶意软件检测和分类系统”,应用科学,8卷,不。9,1622年,页2018。视图:出版商的网站|谷歌学术搜索
  5. w . Enck、m . Ongtang和p•麦克丹尼尔“轻量级的移动电话应用程序认证”学报》第16届ACM关于计算机和通信安全的会议美国芝加哥,页235 - 245,2009年11月。视图:出版商的网站|谷歌学术搜索
  6. h·杨,y, y胡锦涛et al .,“Android恶意软件检测方法基于许可的序列模式挖掘算法,”杂志在通信34卷,第115 - 106页,2013年。视图:谷歌学术搜索
  7. d . Arp m . Spreitzenbarth m大et al .,“Drebin: android恶意软件的有效和可辩解的检测在口袋里,”诉讼的2014网络和分布式系统安全座谈会(nds)美国圣地亚哥,页23日,2014年2月。视图:出版商的网站|谷歌学术搜索
  8. w·Enck·吉尔伯特美国汉et al .,“TaintDroid:信息流跟踪系统实时隐私监控智能手机上,“ACM交易计算机系统,32卷,不。2、1至29,2014页。视图:出版商的网站|谷歌学术搜索
  9. 张y、m .杨许b . et al .,“审查不可取行为与许可使用android应用程序分析,”学报2013年ACM SIGSAC计算机与通信安全会议上(CCS),页611 - 622年,柏林,德国,2013年11月。视图:出版商的网站|谷歌学术搜索
  10. 库马尔,r .夏克尔,美国Verma“环境意识到动态权限模型:回顾android系统的隐私和安全”智能电路和系统的国际会议(ICICS)Phagwara,页324 - 329年,印度,2018年4月。视图:出版商的网站|谷歌学术搜索
  11. 美国罗森、z .钱和z . m .毛”AppProfiler:一个灵活的方法暴露隐私相关行为的android应用程序的最终用户,”第三ACM程序数据和应用程序安全会议上和Privacy-CODASPY 13圣安东尼奥,页221 - 232年,美国2013年2月。视图:出版商的网站|谷歌学术搜索
  12. o . Yildiz和中情局Doğru”,采用android恶意软件检测系统使用遗传算法的特征选择,”软件工程和知识工程的国际期刊卷,29号2、245 - 262年,2019页。视图:出版商的网站|谷歌学术搜索
  13. r·s·亚斯兰,İ。答:Doğru: Barişci, n . Barişci”采用android恶意软件检测系统使用机器学习技术,”软件工程和知识工程的国际期刊卷,29号1,页43 - 61,2019。视图:出版商的网站|谷歌学术搜索
  14. x w . Wang Wang f .支韩z . j . Liu和x张,“探索permission-induced android应用程序为恶意程序检测的风险,”IEEE取证和安全信息,9卷,不。11日,第1882 - 1869页,2014年。视图:出版商的网站|谷歌学术搜索
  15. 刘马z h .通用电气、y et al .,“android恶意软件检测方法结合基于控制流图和机器学习算法,”IEEE访问7卷,第21245 - 21235页,2019年。视图:出版商的网站|谷歌学术搜索
  16. y赵、w·杜和h .阴”DroidAPIMiner:矿业在android api级功能强大的恶意软件检测”国际会议程序通信系统的安全和隐私澳大利亚悉尼,页86 - 103,,2013年9月。视图:谷歌学术搜索
  17. a·k·辛格·c·d·Jaidhar和m·a·a·库马拉”android恶意软件检测的实验分析基于权限和api调用的组合,”计算机病毒和黑客技术杂志》上,15卷,不。4、1 - 10,2019页。视图:出版商的网站|谷歌学术搜索
  18. 诉Avdiienko k .“库兹涅佐夫”a Gorla et al .,“矿业异常敏感数据的使用,应用”《软件工程国际会议(ICSE)436年,页426 -佛罗伦萨,意大利,2015年5月。视图:出版商的网站|谷歌学术搜索
  19. l . j . Li太阳,燕,z, w . Srisa-an h .你们,“重大权限识别machine-learning-based android恶意软件检测,”IEEE工业信息,14卷,不。7,3216 - 3225年,2018页。视图:出版商的网站|谷歌学术搜索
  20. h·拉索尔教授s . k .刚刚p .查图尔维迪et al .,“Android恶意应用程序分类使用集群”程序智能系统设计与应用国际会议Vellore,页659 - 667年,印度,2018年12月。视图:谷歌学术搜索
  21. p . Rovelli诉伊米尔,“pmd:基于许可的恶意软件检测系统”国际会议信息系统安全程序,页338 - 357,海得拉巴,印度,2014年12月。视图:谷歌学术搜索
  22. 诉Moonsamy、j .荣和s .刘“采矿许可模式对比清洁和恶意的android应用程序,”未来一代计算机系统36卷,第132 - 122页,2014年。视图:出版商的网站|谷歌学术搜索
  23. 毛c·h·d·j . Wu, h . m . Lee et al .,“DroidMat: android恶意软件检测通过清单和API调用跟踪”诉讼国际会议第七届亚洲联席会议信息安全,页62 - 69,东京,日本,2012年8月。视图:出版商的网站|谷歌学术搜索
  24. g .道z郑、郭z和m . r .律”MalPat:采矿模式的恶意和善意的android应用程序通过permission-related api,”IEEE可靠性,卷67,不。1,第369 - 355页,2018。视图:出版商的网站|谷歌学术搜索
  25. 概述许可,2019年6月,https://developer.android.com/guide/topics/permissions/overview
  26. AndroMalShare, 2019年6月,http://andromalshare.org: 8080 / #概述
  27. 瞿z s·阿拉姆,c .严et al .,“DyDroid:测量动态代码加载和android应用程序的安全影响,”学报2017年第47届IEEE /联合会国际会议上可靠的系统和网络(DSN)美国丹佛,页415 - 426,2017年6月。视图:出版商的网站|谷歌学术搜索
  28. 诉m·阿方索·m·f·德阿莫林,a . r . a . Gregio g . b . Junquera和p . l . de Geus“识别android恶意软件使用获得的动态特性,计算机病毒和黑客技术杂志》上,11卷,不。1,上行线,2015页。视图:出版商的网站|谷歌学术搜索
  29. f (x, x或者et al .,“JN-SAF:精确和高效的NDK / JNI-aware语际语静态分析框架的安全审查与本机代码,android应用程序”学报2018年ACM SIGSAC计算机和通信安全会议上(CCS)加拿大多伦多,页1137 - 1150,,2018年10月。视图:出版商的网站|谷歌学术搜索
  30. l·李·t·f . Bissyande d Octeau et al .,“DroidRA:驯服反射来支持android应用程序的全程序分析,”学报》第25届国际研讨会软件测试和分析萨尔布吕肯,页318 - 329年,德国,2016年7月。视图:出版商的网站|谷歌学术搜索
  31. 郭k . y . Liu,黄x, z,和y,“android malwares高效混合分析方法,检测”移动信息系统卷,2018篇文章ID 1649703, 12页,2018。视图:出版商的网站|谷歌学术搜索
  32. 周k . w . y . Au y . f . z黄et al .,“PScout:分析android规范许可,”学报2012年ACM关于计算机和通信安全的会议美国罗利,第228 - 217页,2012年10月。视图:出版商的网站|谷歌学术搜索
  33. x胡、习问:和z,“android内核,监测根特权升级”《云计算和安全海口,页491 - 503年,中国,2018年6月。视图:谷歌学术搜索
  34. 问:杨,g .彭,p . Gasti et al .,”梅格:内存和节能的电路评估在智能手机上,“IEEE取证和安全信息,14卷,不。4、913 - 922年,2019页。视图:出版商的网站|谷歌学术搜索
  35. 美国汉,y Yun, y . h . Kim“Profiling-based任务图提取在多处理器芯片系统,”学报2016年IEEE亚太会议电路和系统,页510 - 513,济州岛,韩国,2016年10月。视图:出版商的网站|谷歌学术搜索
  36. w . y, z . Wang周et al .,“嘿,你,我的市场:检测恶意程序在官方和替代安卓市场,”《网络和分布式系统安全座谈会美国圣地亚哥,页百分比较,2012年2月。视图:谷歌学术搜索
  37. a p, e .下巴,美国汉娜et al .,“Android权限启发”学报18 ACM关于计算机和通信安全的会议美国芝加哥,页627 - 638,2011年10月。视图:出版商的网站|谷歌学术搜索
  38. a . Feizollah n . b . Anuar r . Salleh g . Suarez-Tangil和s . Furnell”AndroDialysis: android意图有效性的分析恶意软件检测,”电脑与安全卷,65年,第134 - 121页,2017年。视图:出版商的网站|谷歌学术搜索
  39. w·魏z高,m .赵et al .,“DroidEnsemble:检测android恶意应用程序与合奏字符串和结构的静态特性,”IEEE访问》第六卷,第31807 - 31798页,2018年。视图:出版商的网站|谷歌学术搜索

版权©2020徐姜等。这是一个开放的分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。


更多相关文章

PDF 下载引用 引用
下载其他格式更多的
订单打印副本订单
的观点2271年
下载935年
引用

相关文章