CN110263539A - 一种基于并行集成学习的安卓恶意应用检测方法及*** - Google Patents

一种基于并行集成学习的安卓恶意应用检测方法及*** Download PDF

Info

Publication number
CN110263539A
CN110263539A CN201910400771.2A CN201910400771A CN110263539A CN 110263539 A CN110263539 A CN 110263539A CN 201910400771 A CN201910400771 A CN 201910400771A CN 110263539 A CN110263539 A CN 110263539A
Authority
CN
China
Prior art keywords
android
static behavior
behavior feature
malicious application
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910400771.2A
Other languages
English (en)
Inventor
苏欣
刘绪崇
鄢喜爱
其他发明人请求不公开姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Police Academy
Original Assignee
Hunan Police Academy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hunan Police Academy filed Critical Hunan Police Academy
Priority to CN201910400771.2A priority Critical patent/CN110263539A/zh
Publication of CN110263539A publication Critical patent/CN110263539A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于并行集成学习的安卓恶意应用检测方法及其***,该方法包括通过对待检测安卓应用进行逆向工程获取所述待检测安卓应用的源码文件和配置文件,并从所述源码文件和配置文件中提取静态行为特征;对静态行为特征进行筛选;根据筛选后的静态行为特征构建行为特征向量;根据所述行为特征向量和机器学习算法构建并行集成学习模型以及根据所述并行集成学习模型对安卓恶意应用进行检测。本发明提供的***包括:提取模块、过滤模块、第一处理模块、第二处理模块和检测模块。本发明提供方法和***,通过全面提取静态行为特征以及对静态行为特征进行筛选以及构建并行集成学习模型能够全面、高效、准确的对安卓恶意应用进行检测。

Description

一种基于并行集成学习的安卓恶意应用检测方法及***
技术领域
本发明涉及网络安全技术领域,尤其涉及一种基于并行集成学习的安卓恶意应用检测方法及其***。
背景技术
安卓平台及其应用凭借着功能多样、使用灵活等特点逐渐取代PC成为人们日常工作、生活、娱乐首选的电子设备。然而,由于安卓智能手机上存储了大量的用户隐私数据,比如机密文档、联系人信息、银行卡账户等,以及安卓平台的开源性,使得制造恶意应用的技术门槛降低,安卓恶意应用的数量急剧增长,类型也呈多样化。全球领先的网络安全公司McAfee(迈克菲)2017年11月公布的《McAfee实验室威胁报告》中显示上一年有超过1200万Android恶意样本,包括250万新的恶意样本被检测出来。360烽火实验室在《2017年安卓恶意软件专题报告》中指出2017年全年网络安全中心新增收录757.3万个安卓恶意程序,平均每天出现2.1万个恶意样本。虽然相比2016年的1403.3万恶意软件下降了46.0%,但安卓设备感染恶意应用数目庞大,不容小觑。安卓恶意应用通过一些恶意行为、比如隐私信息窃取、恶意扣费、流氓行为等,给政府、企业、个人用户带来危害,甚至会造成巨大的经济损失。已有的研究工作为安卓恶意应用检测奠定了坚实的基础,然而在具体的模型应用中,大多数研究往往集中于使用单类型行为特征对安卓恶意应用进行分析和检测,或者仅考虑使用几种静态行为特征结合进行分析,缺乏全面的、有效的分析,导致检测准确率不高。同时,一些研究工作虽然使用了动态行为特征结合的安卓恶意应用检测方法,但是动态行为特征的获取需要消耗大量的时间,精力,存在一定的困难。
发明内容
为解决上述技术问题,本发明的目的在于提供一种能够全面、高效、准确的安卓恶意应用的检测方法。
第一方面,本发明实施例提供一种基于并行集成学习的安卓恶意应用检测方法,包括:
通过对待检测安卓应用进行逆向工程获取所述待检测安卓应用的源码文件和配置文件,并从所述源码文件和配置文件中提取静态行为特征;
对静态行为特征进行筛选;
根据筛选后的静态行为特征构建行为特征向量;
根据所述行为特征向量和机器学习算法构建并行集成学习模型;
根据所述并行集成学习模型对安卓恶意应用进行检测。
优选的,所述静态行为特征包括基于平台定义的静态行为特征和应用独立的静态行为特征,所述对静态行为特征进行筛选的步骤包括:
采用信息增益算法对应用独立的静态行为特征进行筛选;
采用基于使用频次的特征选择算法对基于平台定义的静态行为特征进行筛选;
其中,所述基于平台定义的静态行为特征包括请求的权限、硬件信息、API调用、受保护的API、使用的权限、源码模式和负载信息,应用独立的静态行为特征包括应用组件、Intents、认证信息和字符串。
优选的,所述根据筛选后的静态行为特征构建行为特征向量的步骤,包括:
将所述每个筛选后的静态行为特征作为一个维度加入到特征向量中,如果待检测安卓应用具备所述筛选后的静态行为特征,则所述特征向量中的对应位置置1,反之置0;
其中,0表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的一种,1表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的另一种。
优选的,所述构建并行集成学习模型的步骤包括:
使用基于GPU的并行算法来创建多分类器模型;
创建分类算法,构建并行集成学习模型,所述分类算法包括K个最近邻(KNN)、决策树(J48)和随机森林(RandomForest)三种机器学习算法。
优选的,所述根据所述并行集成学习模型对安卓恶意应用进行检测的步骤包括:
使用多线程并行的算法对所述集成学习模型中的多个分类器进行并行训练和分类,得到不同分类器的结果;
使用基于概率分析的集成方法和基于DS证据理论的集成方法来对所述不同分类器的结果进行集成得到最终分类结果,实现对安卓恶意应用的检测。
第二方面,本发明实施例提供一种基于并行集成学习的安卓恶意应用检测***,包括:
提取模块,用于通过对待检测安卓应用进行逆向工程后获取所述待检测安卓应用的源码文件和配置文件,并从所述源码文件和配置文件中提取静态行为特征;
过滤模块,用于对静态行为特征进行筛选;
第一处理模块,用于根据筛选后的静态行为特征构建行为特征向量;
第二处理模块,用于根据所述行为特征向量和机器学习算法构建并行集成学习模型;
检测模块,根据所述并行集成学习模型对安卓恶意应用进行检测。
优选的,所述静态行为特征包括基于平台定义的静态行为特征和应用独立
的静态行为特征,所述过滤模块包括:
第一提取模块,用于采用信息增益算法对应用独立的静态行为特征进行筛选;
第二提取模块,用于采用基于使用频次的特征选择算法对基于平台定义的静态行为特征进行筛选;
其中,所述基于平台定义的静态行为特征包括请求的权限、硬件信息、API调用、受保护的API、使用的权限、源码模式和负载信息,应用独立的静态行为特征包括应用组件、Intents、认证信息和字符串。
优选的,所述第一处理模块包括:
转化模块,用于将所述每个筛选后的静态行为特征作为一个维度加入到特征向量中;
判断模块,用于判断待检测安卓应用是否具备所述筛选后的静态行为特征,如果是则所述特征向量中的对应位置置1,反之置0;
其中,0表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的一种,1表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的另一种。
优选的,所述第二处理模块包括:
分类模型创建模块,用于使用基于GPU的并行算法来创建多分类器模型;
学习模型创建模块,用于创建分类算法并构建并行集成学习模型,所述分类算法包括K个最近邻(KNN)、决策树(J48)和随机森林(RandomForest)三种机器学习算法。
优选的,所述检测模块包括:
训练模块,用于使用多线程并行的算法对所述集成学习模型中的多个分类器进行并行训练和分类,得到不同分类器的结果;
判定模块,使用基于概率分析的集成方法和基于DS证据理论的集成方法来对所述不同分类器的结果进行集成得到最终分类结果,实现对安卓恶意应用的检测。
因此,本发明实施例提供的方法和***,通过全面提取静态行为特征以及对静态行为特征进行筛选能够剔除掉无价值的与安卓恶意应用无关的静态行为特征,全面保留与安卓恶意应用有关的静态行为特征,节约了计算机资源,提高了效率;通过将筛选后的静态行为特征构建行为特征向量,能够使机器学习算法自动识别并学习,降低了内存的使用率;通过构建并行集成学习模型使其能够同时适用不同的静态行为特征,提高了对安卓恶意应用检测的效率和准确率。此外,通过使用基于GPU的并行算法来创建多分类器模型,能够进一步提高对安卓恶意应用检测的效率和速度,且能够适应大数据环境下数据量大,训练集规模大的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于并行集成学习的安卓恶意应用检测方法的一种实施方式的流程图;
图2为并行集成学习模型;
图3为本发明基于并行集成学习的安卓恶意应用检测***的一种实施方式的结构图。
具体实施方式
为了使本领域技术人员更好地理解本发明的技术方案,下面结合附图对本发明进行详细描述,本部分的描述仅是示范性和解释性,不应对本发明的保护范围有任何的限制作用。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的***或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
此外,术语“水平”、“竖直”、“悬垂”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本实施方式提供一种基于并行集成学习的安卓恶意应用检测方法,请参考图1-2,所述方法包括如下步骤:
步骤S1O2,通过对待检测安卓应用进行逆向工程获取所述待检测安卓应用的源码文件和配置文件,并从所述源码文件和配置文件中提取静态行为特征;
步骤S1O4,对静态行为特征进行筛选;
步骤S1O6,根据筛选后的静态行为特征构建行为特征向量;
步骤S1O8,根据所述行为特征向量和机器学习算法构建并行集成学习模型;
步骤S110,根据所述并行集成学习模型对安卓恶意应用进行检测。
其中,对待检测安卓应用进行逆向工程可以通过反编译工具实现,如APKTOOL反编译工具,随后得到安卓应用配置文件AndroidManifest.xml和源代码文件.dex。从所述源码文件和配置文件中提取静态行为特征可以通过Java编写提取规则进行提取,也可以通过其他语言编写的提取规则进行提取。规则是指通过何种方式来获取所需特征。大部分类别的特征提取规则可通过编写正则表达式对反编译后的文件自动匹配,并将匹配结果以“类别名::匹配出来的结果”形式保存起来,方便后期统计分析。通过对提取后的匹配结果进行合并,去掉重复的,形成静态行为特征集。
其中,提取的静态行为特征可以是待检测安卓应用中存在恶意风险较高或容易出现恶意风险的特征,比如,提取的静态行为特征可以是应用组件、Intents、请求的权限、硬件信息、API调用、受保护的API、使用的权限、源码模式、字符串、认证信息和负载信息11类静态行为特征。进一步的,静态行为特征可以包括基于平台定义的静态行为特征和应用独立的静态行为特征,其中,基于平台定义的静态行为特征是由安卓平台提供的,而应用独立的静态行为特征是对每个安卓应用可能都不同的特征。基于平台定义的静态行为特征可以包括请求的权限、硬件信息、API调用、受保护的API、使用的权限、源码模式和负载信息,应用独立的静态行为特征可以包括应用组件、Intents、认证信息和字符串。
其中,对静态行为特征进行筛选是为了去除那些在安卓正常应用和恶意应用都普遍存在的静态行为特征,由于提取后的静态行为特征数量十分庞大。但是其中有些静态行为特征,如记录日志的API、创建activity、MAIN action等,它们在恶意应用和非恶意应用中都用的十分广泛,一些静态行为特征(如PACKAGEUSAGE STATS)仅在极少一部分应用中出现,这些静态行为特征对区别恶意应用与非恶意应用存在干扰作用。但是,如果不将这些无价值的静态行为特征剔除掉,高维度的静态行为特征向量会需要极大的计算资源并会导致分类模型的低效,对分类带来负面影响。
进一步的,可以采用信息增益算法对应用独立的静态行为特征进行筛选,信息增益的方法是通过计算静态行为特征的信息熵获取增益值,增益值的大小,表示这个静态行为特征对于分类的作用大小。可以采用基于使用频次的特征选择算法对基于平台定义的静态行为特征进行筛选,对特征数据集进行统计,分别获取特征值在恶意应用和良性应用中出现的次数,计算特征在恶意应用中出现的次数占该特征出现的总次数的比例和在恶意应用中出现的次数与恶意应用总数的比例,并与事先设定的阈值进行比较,如果出现频率大于阈值,那么选择该特征用于分类。
其中,根据筛选后的静态行为特征构建行为特征向量的步骤,包括:
将每个筛选后的静态行为特征作为一个维度加入到特征向量中,如果待检测安卓应用具备筛选后的静态行为特征,则特征向量中的对应位置置1,反之置0;
其中,0表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的一种,1表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的另一种。
具体的,对静态行为特征进行筛选后,得到了能独特表示安卓恶意应用和非恶意应用的特征集合。但是每个安卓应用的静态行为特征信息均使用文本形式存储,机器学习算法无法识别并学习。为了解决这个问题,这些信息需要转化成特征向量的形式。本实施方式使用F表示所有特征的集合,其定义为:F={f1,f2,f3,...,fn}。其中,n表示行为特征个数,fi表示某个特定的行为特征。随后,在特征集合F的基础上,定义一个n+1维的特征向量,使用前n维表示该安卓应用具有的行为特征的情况,第n+1维表示该安卓应用的类别。因此,对于一个安卓应用a,其向量使用V表示,具体为:
其中,vn+1表示安卓应用的类别,0可以表示该应用为安卓恶意应用,1可以表示为非恶意应用,“?”可以表示未知类别的应用。
至此,每个安卓应用都被转化为形如V={1,0,1,1,...,0,1,1,0,0}的空间向量,0表示当前应用没有该列对应的特征,1则表示该列对应的特征出现。但是向量V中出现的0次数可能更多,是一个稀疏向量,为了减少存储开销和读取文件的内存开销,将V变换形式为:V*={0,2,3,7...}。特征向量中出现的数字对应V向量中1的位置。变换成这种形式后,加载文件的内存使用率大大降低。最后根据两个不同的特征集,每个应用都会被映射成一个安卓应用独立的特征向量和平台定义的特征向量。众多应用的特征向量集合在一起形成了分类所需的训练集和测试集。
其中,构建并行集成学习模型的步骤包括:
使用基于GPU图形处理器(Graphics Processing Unit)的并行算法来创建多分类器模型;
创建分类算法,构建并行集成学习模型,分类算法包括K个最近邻(KNN)、决策树(J48)和随机森林(RandomForest)三种机器学习算法。
传统的机器学习方法普遍从训练集中获取一个假设,很难发现同时适用于不同行为特征的理想算法。为了解决这个问题,本发明实施方式的方法将多种机器学习算法进行集成来构建集成学习模型对安卓恶意应用进行检测。然而,多个分类器的使用会增加检测时间的消耗,因此本发明实施方式的方法引入了并行算法来加速模型分类过程。
具体的,在GPU图形处理器平台上使用数据和模型混合的并行化技术来加速模型建立的速度,以适应大数据环境下数据量大,训练集规模大的需求。在GPU的平台上,每一个GPU负责一个分类器,同时将训练的数据集划分到不同的GPU上进行训练。由于不同的GPU使用了不同的训练数据,为了最终得到一个包含所有训练数据的模型,在训练过程中,需要对不同的GPU上的模型进行同步。采用一直环形结构将所有GPU节点进行组织来保证同步的一致性和并行的效率。在该结构的基础上,借鉴异步随机梯度下降算法中的延时更新的思想。每个GPU先使用当前模型训练出一个权重值Wi,然后用其更新该GPU最新收到的模型。完成更新操作后,将新的模型传送给下一个GPU,并使用该模型进行下一次前后向计算。在这种同步模式下,较新的模型会使用之前训练出来的Wi进行更新。因此,一个GPU上的模型训练完后,不需要收集所有其他节点的训练更新,而是将自身的更新结果加入到在环形结构中不断传递的统一的模型。
如图2所示,创建分类算法首先使用了三种机器学***台定义的行为特征和应用独立的行为特征)作为变量输入。接着,该算法使用上述的并行算法,创建了六个线程,给每个线程分配了一种算法和一个特征数据集,之后并发运行六个线程构建分类器,这个反映在图2中的KNN with platform、RandomForest with appSpecial这一行,表示了使用KNN算法和平台定义的特征集共同构建的分类器和使用APP独立的特征集与RandomForest算法构建的分类器。对于每个分类器,输出对应用预测的概率并计算本地置信度,对应图2的概率输出和本地置信度。
其中,根据并行集成学习模型对安卓恶意应用进行检测的步骤包括:
使用多线程并行的算法对集成学习模型中的多个分类器进行并行训练和分类,得到不同分类器的结果;
使用基于概率分析的集成方法和基于DS证据理论的集成方法来对不同分类器的结果进行集成得到最终分类结果,实现对安卓恶意应用的检测。
由于并行集成学习模型集成了多个分类器来进行分类。因此,需要对每个分类器的结果进行集成从而得到最终的分类结果。本发明实施方式使用基于概率集成算法和基于DS证据理论来完成这个任务。基于概率集成算法将每个分类器的输出结果全部相加,预测一个样本实例属于非恶意应用的概率。之后,将概率与事先设定的阈值进行比较,如果大于阈值,那么分类模型认为该实例属于合法应用,反之,小于阈值则被认为是恶意应用。由于每个分类器的结果只包含0(判定该安卓应用为恶意)和1(判定该安卓应用为非恶意),基于DS证据理论通过使用mass函数对不同分类器的分类结果进行合成,得到最终的分类结果。
具体的,基于概率分析的集成方法将每个分类器的输出结果全部相加,算法如下,首先,预测一个样本实例属于非恶意应用的概率。然后,将其与事先设定的阈值进行比较,如果大于阈值,那么分类模型认为该实例属于合法应用,反之,小于阈值则被认为是恶意应用。
在上述分类模型中,使用0或者1来标识安卓应用的分类,0代表恶意应用,1标识非恶意应用。那么在识别框架中,安卓应用类型检测的识别空间就是:该应用为0(属于恶意应用)、该应用为1(属于非恶意应用)、该应用既不为0也不为1(属于空)、该待检测安卓应用属于0或者1(不确定情况)。使用θ标识识别空间,那么需要满足以下的条件:其中,M(mass函数)为基本概率分配,M(0),M(1)分别根据上述本地置信度计算得到。多分类器就可以转换为在识别框架中有多个M,使用m1,m2,...,mn表示。因此,结果的集成可以通过下述公式来计算:
其中K是归一化常数,计算方法为:
其中,K是反映冲突程度的冲突因子,在0-1的区间范围内。K越接近1,表示证据之间的冲突越大;相反的,K越接近与0,冲突就越小。在本发明实施方式的方法中,设计了6个分类器,可以使用m1,m2,...,m6来表示,A1∩A2∩...∩A6=A可以同时预测为0或同时预测为1的情况。
因此,本发明实施例提供的方法,通过全面提取静态行为特征以及对静态行为特征进行筛选能够剔除掉无价值的与安卓恶意应用无关的静态行为特征,全面保留与安卓恶意应用有关的静态行为特征,节约了计算机资源,提高了效率;通过将筛选后的静态行为特征构建行为特征向量,能够使机器学习算法自动识别并学习,降低了内存的使用率;通过构建并行集成学习模型使其能够同时适用不同的静态行为特征,提高了对安卓恶意应用检测的效率和准确率。此外,通过使用基于GPU的并行算法来创建多分类器模型,能够进一步提高对安卓恶意应用检测的效率和速度,且能够适应大数据环境下数据量大,训练集规模大的需求。
另一方面,基于同一发明构思,本实施例还提供了一种基于并行集成学习的安卓恶意应用检测***,请参考图3,所述***包括:
提取模块10,用于通过对待检测安卓应用进行逆向工程后获取所述待检测安卓应用的源码文件和配置文件,并从所述源码文件和配置文件中提取静态行为特征;
过滤模块20,用于对静态行为特征进行筛选;
第一处理模块30,用于根据筛选后的静态行为特征构建行为特征向量;
第二处理模块40,用于根据所述行为特征向量和机器学习算法构建并行集成学习模型;
检测模块50,根据所述并行集成学习模型对安卓恶意应用进行检测。
其中,对待检测安卓应用进行逆向工程可以通过反编译工具实现,如APKTOOL反编译工具,随后得到安卓应用配置文件AndroidManifest.xml和源代码文件.dex。从所述源码文件和配置文件中提取静态行为特征可以通过Java编写提取规则进行提取,也可以通过其他语言编写的提取规则进行提取。规则是指通过何种方式来获取所需特征。大部分类别的特征提取规则可通过编写正则表达式对反编译后的文件自动匹配,并将匹配结果以“类别名::匹配出来的结果”形式保存起来,方便后期统计分析。通过对提取后的匹配结果进行合并,去掉重复的,形成静态行为特征集。
其中,提取的静态行为特征可以是待检测安卓应用中存在恶意风险较高或容易出现恶意风险的特征,比如,提取的静态行为特征可以是应用组件、Intents、请求的权限、硬件信息、API调用、受保护的API、使用的权限、源码模式、字符串、认证信息和负载信息11类静态行为特征。进一步的,静态行为特征可以包括基于平台定义的静态行为特征和应用独立的静态行为特征,其中,基于平台定义的静态行为特征是由安卓平台提供的,而应用独立的静态行为特征是对每个安卓应用可能都不同的特征。基于平台定义的静态行为特征可以包括请求的权限、硬件信息、API调用、受保护的API、使用的权限、源码模式和负载信息,应用独立的静态行为特征可以包括应用组件、Intents、认证信息和字符串。
其中,对静态行为特征进行筛选是为了去除那些在安卓正常应用和恶意应用都普遍存在的静态行为特征,由于提取后的静态行为特征数量十分庞大。但是其中有些静态行为特征,如记录日志的API、创建activity、MAIN action等,它们在恶意应用和非恶意应用中都用的十分广泛,一些静态行为特征(如PACKAGEUSAGE STATS)仅在极少一部分应用中出现,这些静态行为特征对区别恶意应用与非恶意应用存在干扰作用。但是,如果不将这些无价值的静态行为特征剔除掉,高维度的静态行为特征向量会需要极大的计算资源并会导致分类模型的低效,对分类带来负面影响。
进一步的,所述过滤模块20可以包括第一提取模块201和第二提取模块202,第一提取模块201用于采用信息增益算法对应用独立的静态行为特征进行筛选,信息增益的方法是通过计算静态行为特征的信息熵获取增益值,增益值的大小,表示这个静态行为特征对于分类的作用大小。第二提取模块202用于采用基于使用频次的特征选择算法对基于平台定义的静态行为特征进行筛选,对特征数据集进行统计,分别获取特征值在恶意应用和良性应用中出现的次数,计算特征在恶意应用中出现的次数占该特征出现的总次数的比例和在恶意应用中出现的次数与恶意应用总数的比例,并与事先设定的阈值进行比较,如果出现频率大于阈值,那么选择该特征用于分类。
其中,第一处理模块30可以包括转化模块301和判断模块302。转化模块301,用于将所述每个筛选后的静态行为特征作为一个维度加入到特征向量中;判断模块302用于判断待检测安卓应用是否具备所述筛选后的静态行为特征,如果是则所述特征向量中的对应位置置1,反之置0。
其中,0表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的一种,1表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的另一种。
具体的,对静态行为特征进行筛选后,得到了能独特表示安卓恶意应用和非恶意应用的特征集合。但是每个安卓应用的静态行为特征信息均使用文本形式存储,机器学习算法无法识别并学习。为了解决这个问题,这些信息需要转化成特征向量的形式。本实施方式使用F表示所有特征的集合,其定义为:F={f1,f2,f3,...,fn}。其中,n表示行为特征个数,fi表示某个特定的行为特征。随后,在特征集合F的基础上,定义一个n+1维的特征向量,使用前n维表示该安卓应用具有的行为特征的情况,第n+1维表示该安卓应用的类别。因此,对于一个安卓应用a,其向量使用V表示,具体为:
其中,vn+1表示安卓应用的类别,0可以表示该应用为安卓恶意应用,1可以表示为非恶意应用,“?”可以表示未知类别的应用。
至此,每个安卓应用都被转化为形如V={1,0,1,1,...,0,1,1,0,0}的空间向量,0表示当前应用没有该列对应的特征,1则表示该列对应的特征出现。但是向量V中出现的0次数可能更多,是一个稀疏向量,为了减少存储开销和读取文件的内存开销,将V变换形式为:V*={0,2,3,7...}。特征向量中出现的数字对应V向量中1的位置。变换成这种形式后,加载文件的内存使用率大大降低。最后根据两个不同的特征集,每个应用都会被映射成一个安卓应用独立的特征向量和平台定义的特征向量。众多应用的特征向量集合在一起形成了分类所需的训练集和测试集。
其中,所述第二处理模块40可以包括分类模型创建模块401和学习模型创建模块402,分类模型创建模块401用于使用基于GPU图形处理器(GraphicsProcessing Unit)的并行算法来创建多分类器模型;学习模型创建模块402用于创建分类算法,构建并行集成学习模型,分类算法包括K个最近邻(KNN)、决策树(J48)和随机森林(RandomForest)三种机器学习算法。
传统的机器学习方法普遍从训练集中获取一个假设,很难发现同时适用于不同行为特征的理想算法。为了解决这个问题,本发明实施方式的方法将多种机器学习算法进行集成来构建集成学习模型对安卓恶意应用进行检测。然而,多个分类器的使用会增加检测时间的消耗,因此本发明实施方式的方法引入了并行算法来加速模型分类过程。
具体的,在GPU图形处理器平台上使用数据和模型混合的并行化技术来加速模型建立的速度,以适应大数据环境下数据量大,训练集规模大的需求。在GPU的平台上,每一个GPU负责一个分类器,同时将训练的数据集划分到不同的GPU上进行训练。由于不同的GPU使用了不同的训练数据,为了最终得到一个包含所有训练数据的模型,在训练过程中,需要对不同的GPU上的模型进行同步。采用一直环形结构将所有GPU节点进行组织来保证同步的一致性和并行的效率。在该结构的基础上,借鉴异步随机梯度下降算法中的延时更新的思想。每个GPU先使用当前模型训练出一个权重值Wi,然后用其更新该GPU最新收到的模型。完成更新操作后,将新的模型传送给下一个GPU,并使用该模型进行下一次前后向计算。在这种同步模式下,较新的模型会使用之前训练出来的Wi进行更新。因此,一个GPU上的模型训练完后,不需要收集所有其他节点的训练更新,而是将自身的更新结果加入到在环形结构中不断传递的统一的模型。
如图2所示,创建分类算法首先使用了三种机器学***台定义的行为特征和应用独立的行为特征)作为变量输入。接着,该算法使用上述的并行算法,创建了六个线程,给每个线程分配了一种算法和一个特征数据集,之后并发运行六个线程构建分类器,这个反映在图2中的KNN with platform、RandomForest with appSpecial这一行,表示了使用KNN算法和平台定义的特征集共同构建的分类器和使用APP独立的特征集与RandomForest算法构建的分类器。对于每个分类器,输出对应用预测的概率并计算本地置信度,对应图2的概率输出和本地置信度。
其中,检测模块50可以包括训练模块501和判定模块502,训练模块501用于使用多线程并行的算法对集成学习模型中的多个分类器进行并行训练和分类,得到不同分类器的结果;判定模块502用于使用基于概率分析的集成方法和基于DS证据理论的集成方法来对不同分类器的结果进行集成得到最终分类结果,实现对安卓恶意应用的检测。
由于并行集成学习模型集成了多个分类器来进行分类。因此,需要对每个分类器的结果进行集成从而得到最终的分类结果。本发明实施方式使用基于概率集成算法和基于DS证据理论来完成这个任务。基于概率集成算法将每个分类器的输出结果全部相加,预测一个样本实例属于非恶意应用的概率。之后,将概率与事先设定的阈值进行比较,如果大于阈值,那么分类模型认为该实例属于合法应用,反之,小于阈值则被认为是恶意应用。由于每个分类器的结果只包含0(判定该安卓应用为恶意)和1(判定该安卓应用为非恶意),基于DS证据理论通过使用mass函数对不同分类器的分类结果进行合成,得到最终的分类结果。
具体的,基于概率分析的集成方法将每个分类器的输出结果全部相加,算法如下,首先,预测一个样本实例属于非恶意应用的概率。然后,将其与事先设定的阈值进行比较,如果大于阈值,那么分类模型认为该实例属于合法应用,反之,小于阈值则被认为是恶意应用。
在上述分类模型中,使用0或者1来标识安卓应用的分类,0代表恶意应用,1标识非恶意应用。那么在识别框架中,安卓应用类型检测的识别空间就是:该应用为0(属于恶意应用)、该应用为1(属于非恶意应用)、该应用既不为0也不为1(属于空)、该待检测安卓应用属于0或者1(不确定情况)。使用θ标识识别空间,那么需要满足以下的条件:其中,M(mass函数)为基本概率分配,M(0),M(1)分别根据上述本地置信度计算得到。多分类器就可以转换为在识别框架中有多个M,使用m1,m2,...,mn表示。因此,结果的集成可以通过下述公式来计算:
其中K是归一化常数,计算方法为:
其中,K是反映冲突程度的冲突因子,在0-1的区间范围内。K越接近1,表示证据之间的冲突越大;相反的,K越接近与0,冲突就越小。在本发明实施方式的方法中,设计了6个分类器,可以使用m1,m2,...,m6来表示,A1∩A2∩...∩A6=A可以同时预测为0或同时预测为1的情况。
因此,本发明实施例提供的***,通过过滤模块全面提取静态行为特征以及对静态行为特征进行筛选能够剔除掉无价值的与安卓恶意应用无关的静态行为特征,全面保留与安卓恶意应用有关的静态行为特征,节约了计算机资源,提高了效率;通过第一处理模块将筛选后的静态行为特征构建行为特征向量,能够使机器学习算法自动识别并学习,降低了内存的使用率;通过第二处理模块构建并行集成学习模型使其能够同时适用不同的静态行为特征,提高了对安卓恶意应用检测的效率和准确率。此外,通过分类模型创建模块使用基于GPU的并行算法来创建多分类器模型,能够进一步提高对安卓恶意应用检测的效率和速度,且能够适应大数据环境下数据量大,训练集规模大的需求。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实例的说明只是用于帮助理解本发明的方法及其核心思想。以上仅是本发明的优选实施方式,应当指出,由于文字表达的有限性,而客观上存在无限的具体结构,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进、润饰或变化,也可以将上述技术特征以适当的方式进行组合;这些改进润饰、变化或组合,或未经改进将发明的构思和技术方案直接应用于其它场合的,均应视为本发明的保护范围。

Claims (10)

1.一种基于并行集成学习的安卓恶意应用检测方法,其特征在于,包括:
通过对待检测安卓应用进行逆向工程获取所述待检测安卓应用的源码文件和配置文件,并从所述源码文件和配置文件中提取静态行为特征;
对静态行为特征进行筛选;
根据筛选后的静态行为特征构建行为特征向量;
根据所述行为特征向量和机器学习算法构建并行集成学习模型;
根据所述并行集成学习模型对安卓恶意应用进行检测。
2.根据权利要求1所述的基于并行集成学***台定义的静态行为特征和应用独立的静态行为特征,所述对静态行为特征进行筛选的步骤包括:
采用信息增益算法对应用独立的静态行为特征进行筛选;
采用基于使用频次的特征选择算法对基于平台定义的静态行为特征进行筛选;
其中,所述基于平台定义的静态行为特征包括请求的权限、硬件信息、API调用、受保护的API、使用的权限、源码模式和负载信息,应用独立的静态行为特征包括应用组件、Intents、认证信息和字符串。
3.根据权利要求1所述的基于并行集成学习的安卓恶意应用检测方法,其特征在于,所述根据筛选后的静态行为特征构建行为特征向量的步骤,包括:
将所述每个筛选后的静态行为特征作为一个维度加入到特征向量中,如果待检测安卓应用具备所述筛选后的静态行为特征,则所述特征向量中的对应位置置1,反之置0;
其中,0表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的一种,1表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的另一种。
4.根据权利要求1所述的基于并行集成学习的安卓恶意应用检测方法,其特征在于,所述构建并行集成学习模型的步骤包括:
使用基于GPU的并行算法来创建多分类器模型;
创建分类算法,构建并行集成学习模型,所述分类算法包括K个最近邻(KNN)、决策树(J48)和随机森林(RandomForest)三种机器学习算法。
5.根据权利要求1所述的基于并行集成学习的安卓恶意应用检测方法,其特征在于,所述根据所述并行集成学习模型对安卓恶意应用进行检测的步骤包括:
使用多线程并行的算法对所述集成学习模型中的多个分类器进行并行训练和分类,得到不同分类器的结果;
使用基于概率分析的集成方法和基于DS证据理论的集成方法来对所述不同分类器的结果进行集成得到最终分类结果,实现对安卓恶意应用的检测。
6.一种基于并行集成学习的安卓恶意应用检测***,其特征在于,包括:
提取模块,用于通过对待检测安卓应用进行逆向工程后获取所述待检测安卓应用的源码文件和配置文件,并从所述源码文件和配置文件中提取静态行为特征;
过滤模块,用于对静态行为特征进行筛选;
第一处理模块,用于根据筛选后的静态行为特征构建行为特征向量;
第二处理模块,用于根据所述行为特征向量和机器学习算法构建并行集成学习模型;
检测模块,根据所述并行集成学习模型对安卓恶意应用进行检测。
7.根据权利要求6所述的基于并行集成学***台定义的静态行为特征和应用独立的静态行为特征,所述过滤模块包括:
第一提取模块,用于采用信息增益算法对应用独立的静态行为特征进行筛选;
第二提取模块,用于采用基于使用频次的特征选择算法对基于平台定义的静态行为特征进行筛选;
其中,所述基于平台定义的静态行为特征包括请求的权限、硬件信息、API调用、受保护的API、使用的权限、源码模式和负载信息,应用独立的静态行为特征包括应用组件、Intents、认证信息和字符串。
8.根据权利要求6所述的基于并行集成学习的安卓恶意应用检测***,其特征在于,所述第一处理模块包括:
转化模块,用于将所述每个筛选后的静态行为特征作为一个维度加入到特征向量中;
判断模块,用于判断待检测安卓应用是否具备所述筛选后的静态行为特征,如果是则所述特征向量中的对应位置置1,反之置0;
其中,0表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的一种,1表示待检测安卓应用为安卓恶意应用或非恶意应用两者中的另一种。
9.根据权利要求6所述的基于并行集成学习的安卓恶意应用检测***,其特征在于,所述第二处理模块包括:
分类模型创建模块,用于使用基于GPU的并行算法来创建多分类器模型;
学习模型创建模块,用于创建分类算法并构建并行集成学习模型,所述分类算法包括K个最近邻(KNN)、决策树(J48)和随机森林(RandomForest)三种机器学习算法。
10.根据权利要求6所述的基于并行集成学习的安卓恶意应用检测***,其特征在于,所述检测模块包括:
训练模块,用于使用多线程并行的算法对所述集成学习模型中的多个分类器进行并行训练和分类,得到不同分类器的结果;
判定模块,使用基于概率分析的集成方法和基于DS证据理论的集成方法来对所述不同分类器的结果进行集成得到最终分类结果,实现对安卓恶意应用的检测。
CN201910400771.2A 2019-05-15 2019-05-15 一种基于并行集成学习的安卓恶意应用检测方法及*** Pending CN110263539A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910400771.2A CN110263539A (zh) 2019-05-15 2019-05-15 一种基于并行集成学习的安卓恶意应用检测方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910400771.2A CN110263539A (zh) 2019-05-15 2019-05-15 一种基于并行集成学习的安卓恶意应用检测方法及***

Publications (1)

Publication Number Publication Date
CN110263539A true CN110263539A (zh) 2019-09-20

Family

ID=67913148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910400771.2A Pending CN110263539A (zh) 2019-05-15 2019-05-15 一种基于并行集成学习的安卓恶意应用检测方法及***

Country Status (1)

Country Link
CN (1) CN110263539A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111105016A (zh) * 2019-12-06 2020-05-05 浪潮电子信息产业股份有限公司 一种数据处理方法、装置、电子设备及可读存储介质
CN111814147A (zh) * 2020-06-03 2020-10-23 武汉科技大学 基于模型库的安卓恶意软件检测方法
CN112100621A (zh) * 2020-09-11 2020-12-18 哈尔滨工程大学 一种基于敏感权限和api的安卓恶意应用检测方法
CN112966741A (zh) * 2021-03-05 2021-06-15 北京理工大学 一种可防御拜占庭攻击的联邦学习图像分类方法
CN113468524A (zh) * 2021-05-21 2021-10-01 天津理工大学 基于rasp的机器学习模型安全检测方法
CN113779579A (zh) * 2021-09-14 2021-12-10 西安电子科技大学 面向安卓应用的多模型联合检测***和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138913A (zh) * 2015-07-24 2015-12-09 四川大学 一种基于多视集成学习的恶意软件检测方法
CN107294993A (zh) * 2017-07-05 2017-10-24 重庆邮电大学 一种基于集成学习的web异常流量监测方法
CN108985060A (zh) * 2018-07-04 2018-12-11 中共中央办公厅电子科技学院 一种大规模安卓恶意软件自动化检测***及方法
CN109033839A (zh) * 2018-08-10 2018-12-18 天津理工大学 一种基于动态多特征的恶意软件检测方法
CN109543406A (zh) * 2018-09-29 2019-03-29 广东工业大学 一种基于XGBoost机器学习算法的Android恶意软件检测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138913A (zh) * 2015-07-24 2015-12-09 四川大学 一种基于多视集成学习的恶意软件检测方法
CN107294993A (zh) * 2017-07-05 2017-10-24 重庆邮电大学 一种基于集成学习的web异常流量监测方法
CN108985060A (zh) * 2018-07-04 2018-12-11 中共中央办公厅电子科技学院 一种大规模安卓恶意软件自动化检测***及方法
CN109033839A (zh) * 2018-08-10 2018-12-18 天津理工大学 一种基于动态多特征的恶意软件检测方法
CN109543406A (zh) * 2018-09-29 2019-03-29 广东工业大学 一种基于XGBoost机器学习算法的Android恶意软件检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
胡彬等: "基于机器学习的移动终端高级持续性威胁检测技术研究", 《计算机工程》 *
黄伟等: "基于集成分类的恶意应用检测方法", 《南京理工大学学报》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111105016A (zh) * 2019-12-06 2020-05-05 浪潮电子信息产业股份有限公司 一种数据处理方法、装置、电子设备及可读存储介质
CN111814147A (zh) * 2020-06-03 2020-10-23 武汉科技大学 基于模型库的安卓恶意软件检测方法
CN112100621A (zh) * 2020-09-11 2020-12-18 哈尔滨工程大学 一种基于敏感权限和api的安卓恶意应用检测方法
CN112100621B (zh) * 2020-09-11 2022-05-20 哈尔滨工程大学 一种基于敏感权限和api的安卓恶意应用检测方法
CN112966741A (zh) * 2021-03-05 2021-06-15 北京理工大学 一种可防御拜占庭攻击的联邦学习图像分类方法
CN112966741B (zh) * 2021-03-05 2022-08-02 北京理工大学 一种可防御拜占庭攻击的联邦学习图像分类方法
CN113468524A (zh) * 2021-05-21 2021-10-01 天津理工大学 基于rasp的机器学习模型安全检测方法
CN113468524B (zh) * 2021-05-21 2022-05-24 天津理工大学 基于rasp的机器学习模型安全检测方法
CN113779579A (zh) * 2021-09-14 2021-12-10 西安电子科技大学 面向安卓应用的多模型联合检测***和方法
CN113779579B (zh) * 2021-09-14 2024-04-09 西安电子科技大学 面向安卓应用的多模型联合检测***和方法

Similar Documents

Publication Publication Date Title
CN110263539A (zh) 一种基于并行集成学习的安卓恶意应用检测方法及***
US20210141897A1 (en) Detecting unknown malicious content in computer systems
CN108965245A (zh) 基于自适应异构多分类模型的钓鱼网站检测方法和***
US10021123B2 (en) Customized network traffic models to detect application anomalies
CN109379377A (zh) 加密恶意流量检测方法、装置、电子设备及存储介质
US11409642B2 (en) Automatic parameter value resolution for API evaluation
CN111460446B (zh) 基于模型的恶意文件检测方法及装置
CN102291392A (zh) 一种基于Bagging算法的复合式入侵检测方法
CN109886016B (zh) 用于检测异常数据的方法、设备和计算机可读存储介质
CN111866004B (zh) 安全评估方法、装置、计算机***和介质
Martin et al. Anomaly detection in blockchain using network representation and machine learning
Pan et al. Dynamic classifier ensemble for positive unlabeled text stream classification
Chen et al. DGA-based botnet detection toward imbalanced multiclass learning
CN112183652A (zh) 一种联邦机器学习环境下的边缘端偏见检测方法
Saheed et al. An efficient hybridization of k-means and genetic algorithm based on support vector machine for cyber intrusion detection system
CN117155771B (zh) 一种基于工业物联网的设备集群故障溯源方法及装置
CN110019820A (zh) 一种病历中主诉与现病史症状时间一致性检测方法
Xu et al. Reentrancy vulnerability detection of smart contract based on bidirectional sequential neural network with hierarchical attention mechanism
CN108985052A (zh) 一种恶意程序识别方法、装置和存储介质
CN112001424A (zh) 基于对抗训练的恶意软件开放集家族分类方法和装置
CN106933924A (zh) 一种信息识别方法及***
CN110472416A (zh) 一种网页恶意代码检测方法及相关装置
Finder et al. A time-interval-based active learning framework for enhanced PE malware acquisition and detection
CN112733144B (zh) 一种基于深度学习技术的恶意程序智能检测方法
CN115964478A (zh) 网络攻击检测方法、模型训练方法及装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190920