CN107180190A - 一种基于混合特征的Android恶意软件检测方法及系统 - Google Patents
一种基于混合特征的Android恶意软件检测方法及系统 Download PDFInfo
- Publication number
- CN107180190A CN107180190A CN201610139936.1A CN201610139936A CN107180190A CN 107180190 A CN107180190 A CN 107180190A CN 201610139936 A CN201610139936 A CN 201610139936A CN 107180190 A CN107180190 A CN 107180190A
- Authority
- CN
- China
- Prior art keywords
- msub
- mrow
- dalvik
- api
- authority
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/254—Fusion techniques of classification results, e.g. of results related to same input data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于混合特征的Android恶意软件检测方法及系统,其中,该方法包括:获取Dalvik特征数据、API特征数据、权限特征数据;利用Dalvik指令分类器、API分类器、权限分类器,分别对Dalvik特征数据、API特征数据、权限特征数据采用极限学习机的算法进行分类,建立分类模型,并根据该分类模型计算获得预测标签;基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度,利用线性组合方式进行融合,计算获得预测值,根据该预测值进行恶意软件的判断。利用上述方法及系统可以提高恶意软件的鉴别精度,降低误报率。
Description
技术领域
本发明涉及软件检测领域,尤指一种基于混合特征的Android恶意软件检测方法及系统。
背景技术
智能终端和云计算运用加速推进信息技术和通信技术的融合,促进了移动互联网高速发展。随着移动互联网的发展,移动终端用户群体日益庞大。在经济利益的驱使下,近几年移动恶意软件的数量呈爆炸式增长,各种移动恶意软件家族更是千变万化,严重威胁着移动互联网的健康发展,给用户和智能终端带来了不可忽视的危害。然而,由于我国目前尚无针对移动应用商店安全的要求准则出台,这使得一些应用程序商店安全门槛过低,大量的恶意应用软件可以很轻易进驻应用商店并提供下载,移动互联网安全已经成为制约移动互联网发展的瓶颈。移动恶意软件是指所有能够在智能手机或者平板计算机上执行恶意操作的应用程序,会导致系统崩溃、用户机密信息的损失或泄漏。
目前,很多安全公司都已经开发出移动恶意软件鉴别的技术。例如,Kaspersky,McAfee,奇虎360、腾讯等都在推出安全软件。Kaspersky实验室推出了卡巴斯基手机安全软件,该软件结合了传统的特征码技术和主动的启发式分析技术,并提供云安全扫描的实时保护,确保智能手机不受恶意软件的的侵害。McAfee通过扫描文件、内存卡、应用程序、Internet下载项、文本消息和附件并清除其中的恶意软件来保护移动设备。360手机卫士采用本地和云查杀的方法,本地查杀调用手机卫士内置的杀毒功能,本地扫描已安装软件的信息(包括包名、UID、版本号以及软件证书等),根据软件的包名,UID,版本号和证书,以及特征码,与病毒库进行比对,判断软件的安全性,以便完成查杀。腾讯手机管家采用多引擎查杀,具备双引擎的本地查杀功能和云查杀功能。本地查杀引擎使用QQ手机管家查杀病毒引擎和卡巴斯基查杀病毒引擎,在无需联网的情况下,可以快速的对本地已安装软件和即将安装软件进行病毒查杀。云查杀引擎在用户允许的前提下,终端会联网将本地的软件信息及行为特征上传到云端服务器,服务器根据所上传的信息进行精准的病毒扫描,将最终精确的查杀结果返回给终端。
另外,有很多学者提出了Android恶意软件检测的技术,包括动态分析和静态分析。动态分析是指在安装程序执行的过程中,对软件行为进行分析,静态分析是指在安装程序执行之前,抽取程序的特征,如API和权限特征。静态行为检测通过逆向工程手段,与动态行为检测相比,因无须使用沙盒、虚拟机,静态行为检测能耗更低,风险更小,对实时性要求更低。但是,目前Android恶意软件的静态分析主要对API与权限特征的分类,分类精度不高。
综上来看,由于移动恶意软件的数量呈爆炸式增长,变种层出不穷,给用户和智能终端带来了不可忽视的危害,Android平台由于其开放性成为了攻击者首选的攻击对象,需要一种有效的技术以检测恶意软件。
发明内容
针对分类精度问题,本发明采用静态分析技术,通过混合特征对Android恶意软件进行鉴别。具体来讲,是通过Android恶意软件的多种特征,包括Dalvik,API与权限特征,分别采用极限学习机进行分类,然后使用线性组合方法鉴别恶意软件,相较现有技术可以提高鉴别精度,降低误报率。
为达到上述目的,本发明提出了一种基于混合特征的Android恶意软件检测方法,包括:获取Dalvik特征数据、API特征数据、权限特征数据;利用Dalvik指令分类器、API分类器、权限分类器,分别对Dalvik特征数据、API特征数据、权限特征数据采用极限学习机的算法进行分类,建立分类模型,并根据该分类模型计算获得预测标签;基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度,利用线性组合方式进行融合,计算获得预测值,根据该预测值进行恶意软件的判断。
为达到上述目的,本发明还提出了一种基于混合特征的Android恶意软件检测系统,包括:数据提取模块,用于获取Dalvik特征数据、API特征数据、权限特征数据;分类模块,用于通过Dalvik指令分类器、API分类器、权限分类器,分别对Dalvik特征数据、API特征数据、权限特征数据采用极限学习机的算法进行分类,建立分类模型,并根据该分类模型计算获得预测标签;预测值计算模块,用于基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度,利用线性组合方式进行融合,计算获得预测值,根据该预测值进行恶意软件的判断。
本发明提出的基于混合特征的Android恶意软件检测方法及系统,采用包括Dalvik指令、API与权限的混合特征进行Android恶意软件鉴别,可以有效提高分类精度,降低误报率。并且还采用了极限学习机算法进行分类,该方法无需进行迭代,训练速度快,可以快速建立分类模型。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为本发明一实施例的基于混合特征的Android恶意软件检测方法流程图。
图2为本发明一实施例的基于混合特征的Android恶意软件检测系统结构示意图。
图3为本发明一实施例的数据提取模块结构示意图。
图4为本发明一实施例的分类模块结构示意图。
图5为为本发明一实施例的预测值计算模块结构示意图。
具体实施方式
以下配合图示及本发明的较佳实施例,进一步阐述本发明为达成预定发明目的所采取的技术手段。
图1为本发明一实施例的基于混合特征的Android恶意软件检测方法流程图。如图1所示,该方法包括:
步骤S101,获取Dalvik特征数据、API特征数据、权限特征数据。
具体的,提取Dalvik特征数据是利用baksmali工具,通过反编译dex文件,输出Dalvik汇编文件,提取Dalvik特征数据,使用特征向量表示Android应用软件;如果出现了Dalvik特征数据,设置为1,否则设置为0。
提取API特征数据是利用Dedexer工具,通过操作指令“java-jar Dedexer.jar-d<directory><dex file>”将classes.dex文件反编译成smali文件,在smali文件中提取该应用软件的API特征数据;如果smali中出现了该API特征,设置为1,否则设置为0。
权限特征数据是通过解析AndroidManifest.xml文件提取,并通过权限特征向量来表示;若该软件申请了权限,设置为1;未申请该权限,则设置为0。
步骤S102,利用Dalvik指令分类器、API分类器、权限分类器,分别对Dalvik特征数据、API特征数据、权限特征数据采用极限学习机的算法进行分类,建立分类模型,并根据该分类模型计算获得预测标签。
其中,具体步骤如下:
步骤S1021,在训练阶段,随机给已知样本分配输入权值与偏差,计算隐藏层节点的输出,方法如下:
hij=g(wjxi+bj);i=1,2,…,N;j=1,2,…,k; (1)
其中,hij是第j个隐藏层节点的输出,wj是连接第j个隐藏节点与输入数据的权值,wj=[wj1,wj2,…,wjn]T,n为样本的特征维度,T为在利用Dalvik指令分类器对Dalvik特征数据训练时、利用API分类器对API特征数据训练时或利用权限分类器对权限特征数据训练时对应的已知样本的分类标签,xi为第i个输入样本,bj是第j个隐藏层节点偏差,N是样本数量,k是隐藏层节点数量,g是激活函数。
步骤S1022,根据隐藏层节点的输出,隐藏层输出矩阵记为H={hij}。
步骤S1023,连接隐藏层与输出层节点的权值向量记为计算方法为:
其中,是H的Moore-Penrose的广义逆矩阵。
步骤S1024,在测试阶段,对于未知样本,利用公式1计算未知样本的隐藏层节点输出H',然后分别计算获得未知样本的预测标签,计算方法为:
其中,T'为在利用Dalvik指令分类器、API分类器或权限分类器测试时对应的未知样本的预测标签。其中,在利用Dalvik指令分类器测试时对应的未知样本的预测标签为T'1,在利用API分类器测试时对应的未知样本的预测标签为T'2,为在利用权限分类器测试时对应的未知样本的预测标签为T'3。
步骤S103,基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度,利用线性组合方式进行融合,计算获得预测值,根据该预测值进行恶意软件的判断。
其中,具体步骤如下:
步骤S1031,将训练数据输入至Dalvik指令分类器、API分类器或权限分类器,获得训练数据中每一样本的样本预测标签、样本实际标签。
步骤S1032,对样本预测标签、样本实际标签进行对比后获得正确分类的恶意软件的数量TP、正确分类的正常软件的数量TN、将正常软件误认为恶意软件的数量FP、将恶意软件误认为正常软件的数量FN。
步骤S1033,计算获得分类精度
步骤S1034,基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度计算获得对应的权重w1、w1、w1,方法如下:
其中,w1分别为Dalvik指令分类器的分类精度、权重,w2分别为API分类器的分类精度、权重,w3分别为权限分类器的分类精度、权重。
步骤S1035,利用线性组合方式进行融合,计算获得预测值,方法如下:
f(x)=w1T'1+w2T'2+w3T'3; (7)
其中,f(x)为预测值,T'1为在利用Dalvik指令分类器测试时对应的未知样本的预测标签,T'2为在利用API分类器测试时对应的未知样本的预测标签,T'3为在利用权限分类器测试时对应的未知样本的预测标签。
步骤S1036,根据该预测值进行恶意软件的判断,当f(x)≥0.5时,判定为恶意软件,否则为正常软件。
基于同一发明构思,本发明实施例中还提供了一种基于混合特征的Android恶意软件检测系统,如下面的实施例所述。由于该系统解决问题的原理与上述方法相似,因此该系统的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2为本发明一实施例的基于混合特征的Android恶意软件检测系统结构示意图。如图2所示,该系统包括:
数据提取模块100,用于获取Dalvik特征数据、API特征数据、权限特征数据;
分类模块200,用于通过Dalvik指令分类器、API分类器、权限分类器,分别对Dalvik特征数据、API特征数据、权限特征数据采用极限学习机的算法进行分类,建立分类模型,并根据该分类模型计算获得预测标签;
预测值计算模块300,用于基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度,利用线性组合方式进行融合,计算获得预测值,根据该预测值进行恶意软件的判断。
进一步的,图3为本发明一实施例的数据提取模块结构示意图。如图3所示,数据提取模块100包括:
Dalvik特征数据提取单元110,用于利用baksmali工具获取Android应用软件的Dalvik特征数据,通过反编译dex文件,输出Dalvik汇编文件,提取Dalvik特征数据,并使用特征向量表示该应用软件。
API特征数据提取单元120,用于利用Dedexer工具获取API特征数据,通过操作指令将classes.dex文件反编译成smali文件,在smali文件中提取该应用软件的API特征数据。
权限特征数据获取单元130,用于通过解析AndroidManifest.xml文件获取权限特征数据,并通过权限特征向量来表示该应用软件。
进一步的,图4为本发明一实施例的分类模块结构示意图。如图4所示,分类模块200包括:
训练单元210,用于在训练阶段,随机给已知样本分配输入权值与偏差,计算隐藏层节点的输出,方法如下:
hij=g(wjxi+bj);i=1,2,…,N;j=1,2,…,k; (1)
其中,hij是第j个隐藏层节点的输出,wj是连接第j个隐藏节点与输入数据的权值,wj=[wj1,wj2,…,wjn]T,n为样本的特征维度,T为在利用Dalvik指令分类器对Dalvik特征数据训练时、利用API分类器对API特征数据训练时或利用权限分类器对权限特征数据训练时对应的已知样本的分类标签,xi为第i个输入样本,bj是第j个隐藏层节点偏差,N是样本数量,k是隐藏层节点数量,g是激活函数;
根据隐藏层节点的输出,隐藏层输出矩阵记为H={hij};
连接隐藏层与输出层节点的权值向量记为计算方法为:
其中,是H的Moore-Penrose的广义逆矩阵。
测试单元220,用于在测试阶段,对于未知样本,利用公式1计算未知样本的隐藏层节点输出H',然后分别计算获得未知样本的预测标签,计算方法为:
其中,T'为在利用Dalvik指令分类器、API分类器或权限分类器测试时对应的未知样本的预测标签。
进一步的,图5为本发明一实施例的预测值计算模块结构示意图。如图5所示,预测值计算模块300包括:
权重计算单元310,基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度计算获得对应的权重w1、w1、w1,方法如下:
其中,w1分别为Dalvik指令分类器的分类精度、权重,w2分别为API分类器的分类精度、权重,w3分别为权限分类器的分类精度、权重;
融合单元320,用于利用线性组合方式进行融合,计算获得预测值,方法如下:
f(x)=w1T'1+w2T'2+w3T'3; (7)
其中,f(x)为预测值,T'1为在利用Dalvik指令分类器测试时对应的未知样本的预测标签,T'2为在利用API分类器测试时对应的未知样本的预测标签,T'3为在利用权限分类器测试时对应的未知样本的预测标签;
判断单元330,用于根据该预测值进行恶意软件的判断,当f(x)≥0.5时,判定为恶意软件,否则为正常软件。
再结合图5来看,预测值计算模块300还包括:
样本标签获取单元340,用于将训练数据输入至Dalvik指令分类器、API分类器或权限分类器,获得训练数据中每一样本的样本预测标签、样本实际标签;
对比单元350,用于对样本预测标签、样本实际标签进行对比后获得正确分类的恶意软件的数量TP、正确分类的正常软件的数量TN、将正常软件误认为恶意软件的数量FP、将恶意软件误认为正常软件的数量FN;
分类精度计算单元360,用于计算获得分类精度
本发明提出的基于混合特征的Android恶意软件检测方法及系统,采用包括Dalvik指令、API与权限的混合特征进行Android恶意软件鉴别,可以有效提高分类精度,降低误报率。并且还采用了极限学习机算法进行分类,该方法无需进行迭代,训练速度快,可以快速建立分类模型。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于混合特征的Android恶意软件检测方法,其特征在于,包括:
获取Dalvik特征数据、API特征数据、权限特征数据;
利用Dalvik指令分类器、API分类器、权限分类器,分别对Dalvik特征数据、API特征数据、权限特征数据采用极限学习机的算法进行分类,建立分类模型,并根据该分类模型计算获得预测标签;
基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度,利用线性组合方式进行融合,计算获得预测值,根据该预测值进行恶意软件的判断。
2.根据权利要求1所述的基于混合特征的Android恶意软件检测方法,其特征在于,获取Dalvik特征数据、API特征数据、权限特征数据,包括:
利用baksmali工具获取Android应用软件的Dalvik特征数据,通过反编译dex文件,输出Dalvik汇编文件,提取Dalvik特征数据,并使用特征向量表示该应用软件;
利用Dedexer工具获取API特征数据,通过操作指令将classes.dex文件反编译成smali文件,在smali文件中提取该应用软件的API特征数据;
通过解析AndroidManifest.xml文件获取所述权限特征数据,并通过权限特征向量来表示该应用软件。
3.根据权利要求1所述的基于混合特征的Android恶意软件检测方法,其特征在于,利用Dalvik指令分类器、API分类器、权限分类器,分别对Dalvik特征数据、API特征数据、权限特征数据采用极限学习机的算法进行分类,建立分类模型,并根据该分类模型计算获得预测标签,包括:
在训练阶段,随机给已知样本分配输入权值与偏差,计算隐藏层节点的输出,方法如下:
hij=g(wjxi+bj);i=1,2,…,N;j=1,2,…,k; (1)
其中,hij是第j个隐藏层节点的输出,wj是连接第j个隐藏节点与输入数据的权值,wj=[wj1,wj2,…,wjn]T,n为样本的特征维度,T为在利用Dalvik指令分类器对Dalvik特征数据训练时、利用API分类器对API特征数据训练时或利用权限分类器对权限特征数据训练时对应的已知样本的分类标签,xi为第i个输入样本,bj是第j个隐藏层节点偏差,N是样本数量,k是隐藏层节点数量,g是激活函数;
根据隐藏层节点的输出,隐藏层输出矩阵记为H={hij};
连接隐藏层与输出层节点的权值向量记为计算方法为:
其中,是H的Moore-Penrose的广义逆矩阵;
在测试阶段,对于未知样本,利用公式1计算未知样本的隐藏层节点输出H',然后分别计算获得未知样本的预测标签,计算方法为:
<mrow>
<msup>
<mi>T</mi>
<mo>&prime;</mo>
</msup>
<mo>=</mo>
<msup>
<mi>H</mi>
<mo>&prime;</mo>
</msup>
<mover>
<mi>&beta;</mi>
<mo>^</mo>
</mover>
<mo>;</mo>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,T'为在利用Dalvik指令分类器、API分类器或权限分类器测试时对应的未知样本的预测标签。
4.根据权利要求3所述的基于混合特征的Android恶意软件检测方法,其特征在于,基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度,利用线性组合方式进行融合,计算获得预测值,根据该预测值进行恶意软件的判断,包括:
基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度 计算获得对应的权重w1、w1、w1,方法如下:
<mrow>
<msub>
<mi>w</mi>
<mn>1</mn>
</msub>
<mo>=</mo>
<mfrac>
<msub>
<mo>&part;</mo>
<mn>1</mn>
</msub>
<mrow>
<msub>
<mo>&part;</mo>
<mn>1</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>2</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>3</mn>
</msub>
</mrow>
</mfrac>
<mo>;</mo>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>w</mi>
<mn>2</mn>
</msub>
<mo>=</mo>
<mfrac>
<msub>
<mo>&part;</mo>
<mn>2</mn>
</msub>
<mrow>
<msub>
<mo>&part;</mo>
<mn>1</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>2</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>3</mn>
</msub>
</mrow>
</mfrac>
<mo>;</mo>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>w</mi>
<mn>3</mn>
</msub>
<mo>=</mo>
<mfrac>
<msub>
<mo>&part;</mo>
<mn>3</mn>
</msub>
<mrow>
<msub>
<mo>&part;</mo>
<mn>1</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>2</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>3</mn>
</msub>
</mrow>
</mfrac>
<mo>;</mo>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>6</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,w1分别为Dalvik指令分类器的分类精度、权重,w2分别为API分类器的分类精度、权重,w3分别为权限分类器的分类精度、权重;
利用线性组合方式进行融合,计算获得预测值,方法如下:
f(x)=w1T'1+w2T'2+w3T'3; (7)
其中,f(x)为预测值,T'1为在利用Dalvik指令分类器测试时对应的未知样本的预测标签,T'2为在利用API分类器测试时对应的未知样本的预测标签,T'3为在利用权限分类器测试时对应的未知样本的预测标签;
根据该预测值进行恶意软件的判断,当f(x)≥0.5时,判定为恶意软件,否则为正常软件。
5.根据权利要求4所述的基于混合特征的Android恶意软件检测方法,其特征在于,Dalvik指令分类器、API分类器、权限分类器的分类精度获得方法包括:
将训练数据输入至Dalvik指令分类器、API分类器或权限分类器,获得训练数据中每一样本的样本预测标签、样本实际标签;
对样本预测标签、样本实际标签进行对比后获得正确分类的恶意软件的数量TP、正确分类的正常软件的数量TN、将正常软件误认为恶意软件的数量FP、将恶意软件误认为正常软件的数量FN;
计算获得分类精度
6.一种基于混合特征的Android恶意软件检测系统,其特征在于,包括:
数据提取模块,用于获取Dalvik特征数据、API特征数据、权限特征数据;
分类模块,用于通过Dalvik指令分类器、API分类器、权限分类器,分别对Dalvik特征数据、API特征数据、权限特征数据采用极限学习机的算法进行分类,建立分类模型,并根据该分类模型计算获得预测标签;
预测值计算模块,用于基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度,利用线性组合方式进行融合,计算获得预测值,根据该预测值进行恶意软件的判断。
7.根据权利要求6所述的基于混合特征的Android恶意软件检测系统,其特征在于,所述数据提取模块包括:Dalvik特征数据提取单元、API特征数据提取单元、权限特征数据获取单元;其中,
Dalvik特征数据提取单元,用于利用baksmali工具获取Android应用软件的Dalvik特征数据,通过反编译dex文件,输出Dalvik汇编文件,提取Dalvik特征数据,并使用特征向量表示该应用软件;
API特征数据提取单元,用于利用Dedexer工具获取API特征数据,通过操作指令将classes.dex文件反编译成smali文件,在smali文件中提取该应用软件的API特征数据;
权限特征数据获取单元,用于通过解析AndroidManifest.xml文件获取权限特征数据,并通过权限特征向量来表示该应用软件。
8.根据权利要求6所述的基于混合特征的Android恶意软件检测系统,其特征在于,分类模块包括:训练单元、测试单元;其中,
训练单元,用于在训练阶段,随机给已知样本分配输入权值与偏差,计算隐藏层节点的输出,方法如下:
hij=g(wjxi+bj);i=1,2,…,N;j=1,2,…,k; (1)
其中,hij是第j个隐藏层节点的输出,wj是连接第j个隐藏节点与输入数据的权值,wj=[wj1,wj2,…,wjn]T,n为样本的特征维度,T为在利用Dalvik指令分类器对Dalvik特征数据训练时、利用API分类器对API特征数据训练时或利用权限分类器对权限特征数据训练时对应的已知样本的分类标签,xi为第i个输入样本,bj是第j个隐藏层节点偏差,N是样本数量,k是隐藏层节点数量,g是激活函数;
根据隐藏层节点的输出,隐藏层输出矩阵记为H={hij};
连接隐藏层与输出层节点的权值向量记为计算方法为:
其中,是H的Moore-Penrose的广义逆矩阵;
测试单元,用于在测试阶段,对于未知样本,利用公式1计算未知样本的隐藏层节点输出H',然后分别计算获得未知样本的预测标签,计算方法为:
<mrow>
<msup>
<mi>T</mi>
<mo>&prime;</mo>
</msup>
<mo>=</mo>
<msup>
<mi>H</mi>
<mo>&prime;</mo>
</msup>
<mover>
<mi>&beta;</mi>
<mo>^</mo>
</mover>
<mo>;</mo>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>3</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,T'为在利用Dalvik指令分类器、API分类器或权限分类器测试时对应的未知样本的预测标签。
9.根据权利要求8所述的基于混合特征的Android恶意软件检测系统,其特征在于,预测值计算模块包括:权重计算单元、融合单元、判断单元;其中,
权重计算单元,基于预测标签及Dalvik指令分类器、API分类器、权限分类器的分类精度计算获得对应的权重w1、w1、w1,方法如下:
<mrow>
<msub>
<mi>w</mi>
<mn>1</mn>
</msub>
<mo>=</mo>
<mfrac>
<msub>
<mo>&part;</mo>
<mn>1</mn>
</msub>
<mrow>
<msub>
<mo>&part;</mo>
<mn>1</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>2</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>3</mn>
</msub>
</mrow>
</mfrac>
<mo>;</mo>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>4</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>w</mi>
<mn>2</mn>
</msub>
<mo>=</mo>
<mfrac>
<msub>
<mo>&part;</mo>
<mn>2</mn>
</msub>
<mrow>
<msub>
<mo>&part;</mo>
<mn>1</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>2</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>3</mn>
</msub>
</mrow>
</mfrac>
<mo>;</mo>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>5</mn>
<mo>)</mo>
</mrow>
</mrow>
<mrow>
<msub>
<mi>w</mi>
<mn>3</mn>
</msub>
<mo>=</mo>
<mfrac>
<msub>
<mo>&part;</mo>
<mn>3</mn>
</msub>
<mrow>
<msub>
<mo>&part;</mo>
<mn>1</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>2</mn>
</msub>
<mo>+</mo>
<msub>
<mo>&part;</mo>
<mn>3</mn>
</msub>
</mrow>
</mfrac>
<mo>;</mo>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
<mrow>
<mo>(</mo>
<mn>6</mn>
<mo>)</mo>
</mrow>
</mrow>
其中,w1分别为Dalvik指令分类器的分类精度、权重,w2分别为API分类器的分类精度、权重,w3分别为权限分类器的分类精度、权重;
融合单元,用于利用线性组合方式进行融合,计算获得预测值,方法如下:
f(x)=w1T'1+w2T'2+w3T'3; (7)
其中,f(x)为预测值,T'1为在利用Dalvik指令分类器测试时对应的未知样本的预测标签,T'2为在利用API分类器测试时对应的未知样本的预测标签,T'3为在利用权限分类器测试时对应的未知样本的预测标签;
判断单元,用于根据该预测值进行恶意软件的判断,当f(x)≥0.5时,判定为恶意软件,否则为正常软件。
10.根据权利要求9所述的基于混合特征的Android恶意软件检测系统,其特征在于,所述预测值计算模块还包括:
样本标签获取单元,用于将训练数据输入至Dalvik指令分类器、API分类器或权限分类器,获得训练数据中每一样本的样本预测标签、样本实际标签;
对比单元,用于对样本预测标签、样本实际标签进行对比后获得正确分类的恶意软件的数量TP、正确分类的正常软件的数量TN、将正常软件误认为恶意软件的数量FP、将恶意软件误认为正常软件的数量FN;
分类精度计算单元,用于计算获得分类精度
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610139936.1A CN107180190A (zh) | 2016-03-11 | 2016-03-11 | 一种基于混合特征的Android恶意软件检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610139936.1A CN107180190A (zh) | 2016-03-11 | 2016-03-11 | 一种基于混合特征的Android恶意软件检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107180190A true CN107180190A (zh) | 2017-09-19 |
Family
ID=59829690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610139936.1A Pending CN107180190A (zh) | 2016-03-11 | 2016-03-11 | 一种基于混合特征的Android恶意软件检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107180190A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033834A (zh) * | 2018-07-17 | 2018-12-18 | 南京邮电大学盐城大数据研究院有限公司 | 一种基于文件关联关系的恶意软件检测方法 |
CN109344614A (zh) * | 2018-07-23 | 2019-02-15 | 厦门大学 | 一种Android恶意应用在线检测方法 |
CN109800775A (zh) * | 2017-11-17 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 文件聚类方法、装置、设备及可读介质 |
CN109858250A (zh) * | 2019-02-20 | 2019-06-07 | 哈尔滨工程大学 | 一种基于级联分类器的安卓恶意代码检测模型方法 |
CN110633570A (zh) * | 2019-07-24 | 2019-12-31 | 浙江工业大学 | 面向恶意软件汇编格式检测模型的黑盒攻击的防御方法 |
CN113139598A (zh) * | 2021-04-22 | 2021-07-20 | 湖南大学 | 一种基于改进智能优化算法的入侵检测方法和系统 |
CN114969732A (zh) * | 2022-04-28 | 2022-08-30 | 国科华盾(北京)科技有限公司 | 恶意代码的检测方法、装置、计算机设备和存储介质 |
CN117574364A (zh) * | 2023-07-27 | 2024-02-20 | 广东工业大学 | 一种基于PSEAM-MobileNet神经网络的安卓恶意软件检测方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376262A (zh) * | 2014-12-08 | 2015-02-25 | 中国科学院深圳先进技术研究院 | 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法 |
-
2016
- 2016-03-11 CN CN201610139936.1A patent/CN107180190A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376262A (zh) * | 2014-12-08 | 2015-02-25 | 中国科学院深圳先进技术研究院 | 一种基于Dalvik指令和权限组合的安卓恶意软件检测方法 |
Non-Patent Citations (1)
Title |
---|
彭国军 等: "Android恶意软件检测研究与进展", 《武汉大学学报(理学版)》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800775A (zh) * | 2017-11-17 | 2019-05-24 | 腾讯科技(深圳)有限公司 | 文件聚类方法、装置、设备及可读介质 |
CN109033834A (zh) * | 2018-07-17 | 2018-12-18 | 南京邮电大学盐城大数据研究院有限公司 | 一种基于文件关联关系的恶意软件检测方法 |
CN109344614A (zh) * | 2018-07-23 | 2019-02-15 | 厦门大学 | 一种Android恶意应用在线检测方法 |
CN109858250A (zh) * | 2019-02-20 | 2019-06-07 | 哈尔滨工程大学 | 一种基于级联分类器的安卓恶意代码检测模型方法 |
CN110633570A (zh) * | 2019-07-24 | 2019-12-31 | 浙江工业大学 | 面向恶意软件汇编格式检测模型的黑盒攻击的防御方法 |
CN110633570B (zh) * | 2019-07-24 | 2021-05-11 | 浙江工业大学 | 面向恶意软件汇编格式检测模型的黑盒攻击的防御方法 |
CN113139598A (zh) * | 2021-04-22 | 2021-07-20 | 湖南大学 | 一种基于改进智能优化算法的入侵检测方法和系统 |
CN113139598B (zh) * | 2021-04-22 | 2022-04-22 | 湖南大学 | 一种基于改进智能优化算法的入侵检测方法和系统 |
CN114969732A (zh) * | 2022-04-28 | 2022-08-30 | 国科华盾(北京)科技有限公司 | 恶意代码的检测方法、装置、计算机设备和存储介质 |
CN114969732B (zh) * | 2022-04-28 | 2023-04-07 | 国科华盾(北京)科技有限公司 | 恶意代码的检测方法、装置、计算机设备和存储介质 |
CN117574364A (zh) * | 2023-07-27 | 2024-02-20 | 广东工业大学 | 一种基于PSEAM-MobileNet神经网络的安卓恶意软件检测方法及系统 |
CN117574364B (zh) * | 2023-07-27 | 2024-05-10 | 广东工业大学 | 一种基于PSEAM-MobileNet神经网络的安卓恶意软件检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107180190A (zh) | 一种基于混合特征的Android恶意软件检测方法及系统 | |
Zhang et al. | Classification of ransomware families with machine learning based onN-gram of opcodes | |
CN110233849B (zh) | 网络安全态势分析的方法及系统 | |
CN103782303B (zh) | 对于恶意过程的基于非签名的检测的系统和方法 | |
CN107547555A (zh) | 一种网站安全监测方法及装置 | |
CN104767757B (zh) | 基于web业务的多维度安全监测方法和系统 | |
CN104077396B (zh) | 一种钓鱼网站检测方法及装置 | |
Lopez-Rojas et al. | Money laundering detection using synthetic data | |
CN107659570A (zh) | 基于机器学习与动静态分析的Webshell检测方法及系统 | |
CN108965245A (zh) | 基于自适应异构多分类模型的钓鱼网站检测方法和系统 | |
CN107392025A (zh) | 基于深度学习的恶意安卓应用程序检测方法 | |
CN110266647A (zh) | 一种命令和控制通信检测方法及系统 | |
CN111460446B (zh) | 基于模型的恶意文件检测方法及装置 | |
Lin et al. | Using federated learning on malware classification | |
CN108712448A (zh) | 一种基于动态污点分析的注入式攻击检测模型 | |
CN112231570B (zh) | 推荐系统托攻击检测方法、装置、设备及存储介质 | |
CN106599688A (zh) | 一种基于应用类别的安卓恶意软件检测方法 | |
CN110197389A (zh) | 一种用户识别方法及装置 | |
Zhang et al. | Phishing detection method based on borderline-smote deep belief network | |
CN110830489B (zh) | 基于内容抽象表示的对抗式欺诈网站检测方法及系统 | |
Chen et al. | Backdoor attacks and defenses for deep neural networks in outsourced cloud environments | |
CN109858248A (zh) | 恶意Word文档检测方法和装置 | |
Xiao et al. | A multitarget backdooring attack on deep neural networks with random location trigger | |
CN109543410A (zh) | 一种基于语义映射关联的恶意代码检测方法 | |
CN106778851A (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 |
Application publication date: 20170919 |
|
RJ01 | Rejection of invention patent application after publication |