CN108920953A - 一种恶意软件检测方法及*** - Google Patents
一种恶意软件检测方法及*** Download PDFInfo
- Publication number
- CN108920953A CN108920953A CN201810685060.XA CN201810685060A CN108920953A CN 108920953 A CN108920953 A CN 108920953A CN 201810685060 A CN201810685060 A CN 201810685060A CN 108920953 A CN108920953 A CN 108920953A
- Authority
- CN
- China
- Prior art keywords
- malware
- software
- dalvik
- sample
- algorithm
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000003066 decision tree Methods 0.000 claims abstract description 23
- 238000004458 analytical method Methods 0.000 claims abstract description 19
- 238000000513 principal component analysis Methods 0.000 claims abstract description 14
- 238000013459 approach Methods 0.000 claims abstract description 9
- 238000013507 mapping Methods 0.000 claims abstract description 4
- 239000010410 layer Substances 0.000 claims description 57
- 239000011159 matrix material Substances 0.000 claims description 43
- 230000009466 transformation Effects 0.000 claims description 19
- 238000013528 artificial neural network Methods 0.000 claims description 11
- 230000002155 anti-virotic effect Effects 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 claims description 6
- 238000012880 independent component analysis Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 239000002356 single layer Substances 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 3
- 238000012512 characterization method Methods 0.000 claims description 3
- 230000004927 fusion Effects 0.000 claims description 3
- 239000004615 ingredient Substances 0.000 claims 1
- 210000004218 nerve net Anatomy 0.000 claims 1
- 238000012360 testing method Methods 0.000 claims 1
- 230000005856 abnormality Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
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/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2134—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种恶意软件检测方法,涉及软件检测领域。本发明的方法包括:创建恶意软件数据库和非恶意软件数据库;从恶意软件数据库和非恶意软件数据库中的软件源代码中提取Dalvik指令,通过Dalvik指令相对频率均值之间的差异进行鉴别恶意软件,利用基于Dalvik指令的均值和方差特征选择算法,并使用主成分分析算法、Kaehunen‑Loeve变换算法、独立成分分析算法,将原始的Dalvik指令映射到相应的特征空间,得到新特征。本发明还提供了一种恶意软件检测方法的***。本发明通过提出基于均值和方差的特征选择方法,减少对分类无效的特征,针对软件样本的不平衡数据,本发明提出基于决策树的多级分类集成模型,解决了恶意软件检测准确性差的问题。
Description
技术领域
本发明涉及软件检测领域,尤其涉及一种恶意软件检测方法及***。
背景技术
恶意软件是指所有能够在智能手机或者计算机上执行恶意操作的应用程序,会导致***崩溃、用户机密信息的损失或泄露,恶意软件数据量的快速增长与变种的不断出现给恶意软件自动鉴别带来挑战,只有面向大数据的技术不断发展,才能将大数据时代带来的挑战变成机遇,更好地运用这些不断积累的样本,真正将海量数据变化为有效信息,并有效构建相适应的数据挖掘模型,才能实现对海量恶意软件样本的快速鉴别。
针对恶意软件严峻的发展趋势与庞大的数据量,国内外研究学者提出了许多不同的解决方案;当前恶意软件检测技术主要分为机遇特征码的检测技术和基于行为的检测技术;基于特征码的检测技术和黑名单技术被主要的安全软件厂商广泛使用,但该技术需要对已知的恶意软件样本进行全面的分析,无法抵御位置的或经代码混淆、加壳技术处理过的恶意软件,因此针对上述问题提供一种基于软件行为大数据的恶意软件检测方法及***具有重要意义。
发明内容
本发明为一种恶意软件检测方法及***,通过提出基于均值和方差的特征选择方法,以减少对分类无效的特征,实现了基于不同特征提取技术的集合分类方法,包括主成分分析、Kaehunen-Loeve变换和独立成分分析,针对软件样本的不平衡数据,本发明提出基于决策树的多级分类集成模型,解决了恶意软件检测准确性差的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供一种恶意软件检测方法,下步骤:
S01:创建恶意软件数据库和非恶意软件数据库;
S02:通过使用除Google Play外的其它检测工具、杀毒软件和人工进行检测,确保非恶意应用软件数据库中的非恶意软件均为非恶意软件,不包括可疑的恶意软件;
S03:从恶意软件数据库和非恶意软件数据库中的软件源代码中提取Dalvik指令,通过Dalvik指令相对频率均值之间的差异进行鉴别恶意软件,利用基于Dalvik指令的均值和方差特征选择算法,并使用主成分分析算法、Kaehunen-Loeve变换算法、独立成分分析算法,将原始的Dalvik指令映射到相应的特征空间,得到三个新特征;
S04:针对所提取的软件特征,使用急速学习机算法学习单层神经网络,将其作为其分类器,使用Stacking算法融合每一个分类器,涉嫌特征的集合;
S05:通过采用多层决策树的集成学习方法针对是否为恶意软件进行决策。
进一步,所述恶意软件数据库和非恶意软件数据库的软件所采用的数据集来自Googel Play,其中包含了5560个恶意软件和123453个非恶意软件,并将这些软件使用Java语言改写了Akdeniz的爬虫程序,增加了异常处理、去除、迭代等功能,可以实现从GoogelPlay批量不间断的下载应用软件至PC端。
进一步地,所述基于Dalvik指令的均值和方差特征选择算法的公式为:
其中,μb和μm分别表示正常软件与恶意软件相对频率的平均值;Sb和Sm分别表示正常软件与恶意软件相对频率的方差,J(A)值表示特征选择的目标的最大化值,即最小化两类样本间的方差及最大化两类样本间的平均值之差。
进一步地,本发明对每个Dalvik指令计算J(A)值,J(A)值越大表示特征A的分类能力越强,并按照J(A)值的大小对特征进行降序排序,最终选择前k个Dalvik指令特征作为有效的特征子集,根据以上公式(1)采用的基于Dalvik指令的均值和方差特征选择算法的流程,其特征在于,包括以下步骤:
P01:输入:样本集S,DalVik指令A;
P02:输出:特征子集WK;
P03:开始:
P031:计算正常软件的Dalvik指令相对频率的平均值μb和方差Sb;
P032:计算恶意软件的Dalvik指令相对频率的平均值μm和方差Sm;
P033:按照公式(1)计算指令的权重;
P034:对Dalvik指令进行降序排序;
P035:fork←1 to do//p为Dalvik指令的总数;
(c)取前k个指令作为WK;
(d)不同分类器Cls验证WK结果;
P036:选择该分类器下最优的特征子集;
P04:结束。
进一步地,所述主成分分析算法是一种线性投影,将高维特征映射到低维的一种技术,在投影过程中,数据的方差最大;定义N个样本X={X1,X2,...,XN},其中Xi=[Xi,1,Xi,2,...,Xi,d]T∈Rd,d是特征数量;主成分分析将Xi线性变换成一个新的样本:
yi=UTXi (2)
其中,U是正交矩阵;U的第i列μi是样本协方差矩阵的特征向量;主成分分析首先计算样本的协方差矩阵,然后计算协方差举证的特征向量,根据公式(2)将原始特征进行交换。
进一步地,所述Kaehunen-Loeve变换算法是主要成分分析的扩展,在主要成分分析中,交换矩阵是样本的协方差矩阵,本发明的Kaehunen-Loeve变换中,变换矩阵是类间离散度矩阵记为Sw;
其中,L是样本类别;Pi是第i个类别的概率;E代表数学期望;是第i个类别的均值,计算Sw的特征向量,然后根据公式(2)计算得到新的特征。
进一步地,所述独立成分分析算法是从原始的特种中提取独立的信息,独立成分分析模型记为:
X=As (4)
其中,X为原始数据;A是满秩矩阵;S是独立成分;独立成分的目的就是从X中提取出独立成分S;
其中,表示独立成分s的估计值;U为变换矩阵,本发明使用FastICA算法计算U。
进一步地,所述步骤S04中采用急速学习机算法训练单层神经网络,然后将其作为基分类器,采用Stacking方法组成集合分类器;急速学习方法首先为神经网络随机分配输入权值向量与偏差,然后分析确定神经网络的输出权值,其算法流程如下:
在训练阶段,随机分配输入权值与偏差,计算隐藏层节点的输出:
hij=g(wjXi+bj) i=1,2,3,...,,N; j=1,2,...,k (6)
其中,hij是第j个隐藏层节点的输出;wj=[wj1,wj2,...wjn]T是连续第j个隐藏节点与输入数据的权值;bj是第j个隐藏节点偏差;N是样本数量;K是隐藏层节点数量;g是激活函数;隐藏层输出矩阵记为H={hij},连接隐藏层与输出层节点的权值向量记为β:
其中,是β的估计值;H-1是H的MoorePenrose的广义逆矩阵;T是分类标签;在测试阶段,对于未知样本,首先计算其隐藏层节点输出H,然后预测其标签;
其中,T是未知样本的预测标签;H是未知样本的隐藏层输出,根据公式(6)计算。
进一步地,所述多层决策树的集成学***衡数据达到平衡,能很好地解决数据不平衡问题;第二层集成采用多数投票方法,针对第一层未检测出的样本,结合第一层决策树的多数投票,将第二层集成结果和第一层决策树的多数投票结果不同的样本交给第三层集成方法处理,该技术很发成都降低了恶意软件的误报率;第三层采用少数投票,一般通过上述两层的检测,剩余未检测出的样本比较顽固,在缺少很好的特征刻画的情况下,采用经验的少数投票没能提升一定的准确率。
一种恶意软件检测方法的***,包括软件数据库、预处理模块、Dalvik指令获取模块、Dalvik指令特征矩阵显示模块、特征提取模块、集合学习模块、决策模块;
所述软件数据库包括恶意软件数据库和非恶意软件数据库,所述软件数据库用于为恶意软件监测方法提供样本;
所述预处理模块连接杀毒软件和人工进行检测设备在非恶意软件中进行恶意软件的排除;
所述Dalvik指令获取模块用于获取软件数据库中的恶意软件样本的Dalvik指令信息和特征;
所述Dalvik指令特征矩阵显示模块用于将获取的样本的Dalvik指令特征进行矩阵显示;
所述特征提取模块用于对样本软件进行特征提取,包括主成分析算法、Kaehunen-Loeve变换算法、独立成分分析算法获得的各个特征矩阵;
所述集合学习模块收集Dalvik指令特征矩阵显示模块中的信息并通过三层决策树集成,依次通过全投票的方法、多数投票方法、少数投票的方法对特征矩阵中的软件进行判断是否为恶意软件。
本发明具有以下有益效果:
1、本发明通过创建恶意软件数据库和非恶意软件数据库,软件数据库中的软件数量庞大,软件数据库中的样本数量多,非恶意软件数据库创建通过修改Akdeniz的爬虫程序从Google Play上批量下载应用软件,并使用多种有的检测软件、杀毒软件和人工进行检测,确保了数据库的准确性。
2、本发明通过从源代码的角度分析软件的特征,研究基于Dalvik指令的恶意软件检测技术,包括基于均值和方差的特征选择方法,特征提取算法和多级集成分类算法,以减少对分类无效的特征,实现了基于不同特征提取技术的集合分类方法,包括主成分分析、Kaehunen-Loeve变换和独立成分分析,针对软件样本的不平衡数据,本发明提出基于决策树的多级分类集成模型,提高了恶意软件检测准确性。
附图说明
图1为本发明的一种恶意软件检测方法的流程图;
图2为基于Dalvik指令的均值和方差特征选择算法的流程图;
图3为本发明的一种恶意软件检测***的框架图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明的一种恶意软件检测方法,包括下步骤:
S01:创建恶意软件数据库和非恶意软件数据库;
S02:通过使用除Google Play外的其它检测工具、杀毒软件和人工进行检测,确保非恶意应用软件数据库中的非恶意软件均为非恶意软件,不包括可疑的恶意软件;
S03:从恶意软件数据库和非恶意软件数据库中的软件源代码中提取Dalvik指令,通过Dalvik指令相对频率均值之间的差异进行鉴别恶意软件,利用基于Dalvik指令的均值和方差特征选择算法,并使用主成分分析算法、Kaehunen-Loeve变换算法、独立成分分析算法,将原始的Dalvik指令映射到相应的特征空间,得到三个新特征;
S04:针对所提取的软件特征,使用急速学习机算法学习单层神经网络,将其作为其分类器,使用Stacking算法融合每一个分类器,涉嫌特征的集合;
S05:通过采用多层决策树的集成学习方法针对是否为恶意软件进行决策。
其中,恶意软件数据库和非恶意软件数据库的软件所采用的数据集来自GoogelPlay,其中包含了5560个恶意软件和123453个非恶意软件,并将这些软件使用Java语言改写了Akdeniz的爬虫程序,增加了异常处理、去除、迭代等功能,可以实现从Googel Play批量不间断的下载应用软件至PC端。
其中,基于Dalvik指令的均值和方差特征选择算法的公式为:
其中,μb和μm分别表示正常软件与恶意软件相对频率的平均值;Sb和Sm分别表示正常软件与恶意软件相对频率的方差,J(A)值表示特征选择的目标的最大化值,即最小化两类样本间的方差及最大化两类样本间的平均值之差。
如图2所示,其中,本发明对每个Dalvik指令计算J(A)值,J(A)值越大表示特征A的分类能力越强,并按照J(A)值的大小对特征进行降序排序,最终选择前k个Dalvik指令特征作为有效的特征子集,根据以上公式(1)采用的基于Dalvik指令的均值和方差特征选择算法的流程,包括以下步骤:
P01:输入:样本集S,DalVik指令A;
P02:输出:特征子集WK;
P03:开始:
P031:计算正常软件的Dalvik指令相对频率的平均值μb和方差Sb;
P032:计算恶意软件的Dalvik指令相对频率的平均值μm和方差Sm;
P033:按照公式(1)计算指令的权重;
P034:对Dalvik指令进行降序排序;
P035:fork←1 to do//p为Dalvik指令的总数;
(e)取前k个指令作为WK;
(f)不同分类器Cls验证WK结果;
P036:选择该分类器下最优的特征子集;
P04:结束。
其中,主成分分析算法是一种线性投影,将高维特征映射到低维的一种技术,在投影过程中,数据的方差最大;定义N个样本X={X1,X2,...,XN},其中Xi=[Xi,1,Xi,2,...,Xi,d]T∈Rd,d是特征数量;主成分分析将Xi线性变换成一个新的样本:
yi=UTXi (2)
其中,U是正交矩阵;U的第i列μi是样本协方差矩阵的特征向量;主成分分析首先计算样本的协方差矩阵,然后计算协方差举证的特征向量,根据公式(2)将原始特征进行交换。
其中,所述Kaehunen-Loeve变换算法是主要成分分析的扩展,在主要成分分析中,交换矩阵是样本的协方差矩阵,本发明的Kaehunen-Loeve变换中,变换矩阵是类间离散度矩阵记为Sw;
其中,L是样本类别;Pi是第i个类别的概率;E代表数学期望;是第i个类别的均值,计算Sw的特征向量,然后根据公式(2)计算得到新的特征。
其中,独立成分分析算法是从原始的特种中提取独立的信息,独立成分分析模型记为:
X=As (4)
其中,X为原始数据;A是满秩矩阵;s是独立成分;独立成分的目的就是从X中提取出独立成分S;
其中,表示独立成分s的估计值;U为变换矩阵,本发明使用FastICA算法计算U。
其中,步骤S04中采用急速学习机算法训练单层神经网络,然后将其作为基分类器,采用Stacking方法组成集合分类器;急速学习方法首先为神经网络随机分配输入权值向量与偏差,然后分析确定神经网络的输出权值,其算法流程如下:
在训练阶段,随机分配输入权值与偏差,计算隐藏层节点的输出:
hij=g(wjXi+bj) i=1,2,3,...,,N; j=1,2,...,k (6)
其中,hij是第j个隐藏层节点的输出;wj=[wj1,wj2,...wjn]T是连续第j个隐藏节点与输入数据的权值;bj是第j个隐藏节点偏差;N是样本数量;K是隐藏层节点数量;g是激活函数;隐藏层输出矩阵记为H={hij},连接隐藏层与输出层节点的权值向量记为β:
其中,是β的估计值;H-1是H的MoorePenrose的广义逆矩阵;T是分类标签;在测试阶段,对于未知样本,首先计算其隐藏层节点输出H,然后预测其标签;
其中,T是未知样本的预测标签;H是未知样本的隐藏层输出,根据公式(6)计算。
其中,多层决策树的集成学***衡数据达到平衡,能很好地解决数据不平衡问题;第二层集成采用多数投票方法,针对第一层未检测出的样本,结合第一层决策树的多数投票,将第二层集成结果和第一层决策树的多数投票结果不同的样本交给第三层集成方法处理,该技术很发成都降低了恶意软件的误报率;第三层采用少数投票,一般通过上述两层的检测,剩余未检测出的样本比较顽固,在缺少很好的特征刻画的情况下,采用经验的少数投票没能提升一定的准确率。
如图3所示,一种恶意软件检测方法的***,包括软件数据库、预处理模块、Dalvik指令获取模块、Dalvik指令特征矩阵显示模块、特征提取模块、集合学习模块、决策模块;
软件数据库包括恶意软件数据库和非恶意软件数据库,软件数据库用于为恶意软件监测方法提供样本;
预处理模块连接杀毒软件和人工进行检测设备在非恶意软件中进行恶意软件的排除;
Dalvik指令获取模块用于获取软件数据库中的恶意软件样本的Dalvik指令信息和特征;
Dalvik指令特征矩阵显示模块用于将获取的样本的Dalvik指令特征进行矩阵显示;
特征提取模块用于对样本软件进行特征提取,包括主成分析算法、Kaehunen-Loeve变换算法、独立成分分析算法获得的各个特征矩阵;
集合学习模块收集Dalvik指令特征矩阵显示模块中的信息并通过三层决策树集成,依次通过全投票的方法、多数投票方法、少数投票的方法对特征矩阵中的软件进行判断是否为恶意软件。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料过着特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种恶意软件检测方法,其特征在于,包括下步骤:
S01:创建恶意软件数据库和非恶意软件数据库;
S02:通过使用除Google Play外的其它检测工具、杀毒软件和人工进行检测,确保非恶意应用软件数据库中的非恶意软件均为非恶意软件,不包括可疑的恶意软件;
S03:从恶意软件数据库和非恶意软件数据库中的软件源代码中提取Dalvik指令,通过Dalvik指令相对频率均值之间的差异进行鉴别恶意软件,利用基于Dalvik指令的均值和方差特征选择算法,并使用主成分分析算法、Kaehunen-Loeve变换算法、独立成分分析算法,将原始的Dalvik指令映射到相应的特征空间,得到三个新特征;
S04:针对所提取的软件特征,使用急速学习机算法学习单层神经网络,将其作为其分类器,使用Stacking算法融合每一个分类器,涉嫌特征的集合;
S05:通过采用多层决策树的集成学习方法针对是否为恶意软件进行决策。
2.根据权利要求1所述的一种恶意软件检测方法,其特征在于,所述恶意软件数据库和非恶意软件数据库的软件所采用的数据集来自Googel Play,其中包含了5560个恶意软件和123453个非恶意软件,并将这些软件使用Java语言改写了Akdeniz的爬虫程序,增加了异常处理、去除、迭代等功能,可以实现从Googel Play批量不间断的下载应用软件至PC端。
3.根据权利要求1所述的一种恶意软件检测方法,其特征在于,所述基于Dalvik指令的均值和方差特征选择算法的公式为:
其中,μb和μm分别表示正常软件与恶意软件相对频率的平均值;Sb和Sm分别表示正常软件与恶意软件相对频率的方差,J(A)值表示特征选择的目标的最大化值,即最小化两类样本间的方差及最大化两类样本间的平均值之差。
4.根据权利要求3所述的一种恶意软件检测方法,本发明对每个Dalvik指令计算J(A)值,J(A)值越大表示特征A的分类能力越强,并按照J(A)值的大小对特征进行降序排序,最终选择前k个Dalvik指令特征作为有效的特征子集,根据以上公式(1)采用的基于Dalvik指令的均值和方差特征选择算法的流程,其特征在于,包括以下步骤:
P01:输入:样本集S,DalVik指令A;
P02:输出:特征子集WK;
P03:开始:
P031:计算正常软件的Dalvik指令相对频率的平均值μb和方差Sb;
P032:计算恶意软件的Dalvik指令相对频率的平均值μm和方差Sm;
P033:按照公式(1)计算指令的权重;
P034:对Dalvik指令进行降序排序;
P035:fork←1 to do//p为Dalvik指令的总数
(a)取前k个指令作为WK;
(b)不同分类器Cls验证WK结果;
P036:选择该分类器下最优的特征子集;
P04:结束。
5.根据权利要求1所述的一种恶意软件检测方法,其特征在于,所述主成分分析算法是一种线性投影,将高维特征映射到低维的一种技术,在投影过程中,数据的方差最大;定义N个样本X={X1,X2,...,XN},其中Xi=[Xi,1,Xi,2,...,Xi,d]T∈Rd,d是特征数量;主成分分析将Xi线性变换成一个新的样本:
yi=UTXi (2)
其中,U是正交矩阵;U的第i列μi是样本协方差矩阵的特征向量;主成分分析首先计算样本的协方差矩阵,然后计算协方差举证的特征向量,根据公式(2)将原始特征进行交换。
6.根据权利要求1或5所述的一种恶意软件检测方法,其特征在于,所述Kaehunen-Loeve变换算法是主要成分分析的扩展,在主要成分分析中,交换矩阵是样本的协方差矩阵,本发明的Kaehunen-Loeve变换中,变换矩阵是类间离散度矩阵记为Sw;
其中,L是样本类别;Pi是第i个类别的概率;E代表数学期望;是第i个类别的均值,计算Sw的特征向量,然后根据公式(2)计算得到新的特征。
7.根据权利要求1所述的一种恶意软件检测方法,其特征在于,所述独立成分分析算法是从原始的特种中提取独立的信息,独立成分分析模型记为:
X=As (4)
其中,X为原始数据;A是满秩矩阵;S是独立成分;独立成分的目的就是从X中提取出独立成分S;
其中,表示独立成分s的估计值;U为变换矩阵,本发明使用FastICA算法计算U。
8.根据权利要求1所述的一种恶意软件检测方法,其特征在于,所述步骤S04中采用急速学习机算法训练单层神经网络,然后将其作为基分类器,采用Stacking方法组成集合分类器;急速学习方法首先为神经网络随机分配输入权值向量与偏差,然后分析确定神经网络的输出权值,其算法流程如下:
在训练阶段,随机分配输入权值与偏差,计算隐藏层节点的输出:
hij=g(wjXi+bj) i=1,2,3,...,,N;j=1,2,...,k (6)
其中,hij是第j个隐藏层节点的输出;wj=[wj1,wj2,…wjn]T是连续第j个隐藏节点与输入数据的权值;bj是第j个隐藏节点偏差;N是样本数量;K是隐藏层节点数量;g是激活函数;隐藏层输出矩阵记为H={hij},连接隐藏层与输出层节点的权值向量记为β:
其中,是β的估计值;H-1是H的MoorePenrose的广义逆矩阵;T是分类标签;在测试阶段,对于未知样本,首先计算其隐藏层节点输出H,然后预测其标签;
其中,T是未知样本的预测标签;H是未知样本的隐藏层输出,根据公式(6)计算。
9.根据权利要求1所述的一种恶意软件检测方法,其特征在于,所述多层决策树的集成学***衡数据达到平衡,能很好地解决数据不平衡问题;第二层集成采用多数投票方法,针对第一层未检测出的样本,结合第一层决策树的多数投票,将第二层集成结果和第一层决策树的多数投票结果不同的样本交给第三层集成方法处理,该技术很发成都降低了恶意软件的误报率;第三层采用少数投票,一般通过上述两层的检测,剩余未检测出的样本比较顽固,在缺少很好的特征刻画的情况下,采用经验的少数投票没能提升一定的准确率。
10.如权利要求1-9任意一所述的一种恶意软件检测方法的***,包括软件数据库、预处理模块、Dalvik指令获取模块、Dalvik指令特征矩阵显示模块、特征提取模块、集合学习模块、决策模块;
所述软件数据库包括恶意软件数据库和非恶意软件数据库,所述软件数据库用于为恶意软件监测方法提供样本;
所述预处理模块连接杀毒软件和人工进行检测设备在非恶意软件中进行恶意软件的排除;
所述Dalvik指令获取模块用于获取软件数据库中的恶意软件样本的Dalvik指令信息和特征;
所述Dalvik指令特征矩阵显示模块用于将获取的样本的Dalvik指令特征进行矩阵显示;
所述特征提取模块用于对样本软件进行特征提取,包括主成分析算法、Kaehunen-Loeve变换算法、独立成分分析算法获得的各个特征矩阵;
所述集合学习模块收集Dalvik指令特征矩阵显示模块中的信息并通过三层决策树集成,依次通过全投票的方法、多数投票方法、少数投票的方法对特征矩阵中的软件进行判断是否为恶意软件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810685060.XA CN108920953A (zh) | 2018-06-16 | 2018-06-16 | 一种恶意软件检测方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810685060.XA CN108920953A (zh) | 2018-06-16 | 2018-06-16 | 一种恶意软件检测方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108920953A true CN108920953A (zh) | 2018-11-30 |
Family
ID=64421857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810685060.XA Pending CN108920953A (zh) | 2018-06-16 | 2018-06-16 | 一种恶意软件检测方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920953A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310185A (zh) * | 2020-03-11 | 2020-06-19 | 合肥工业大学 | 一种基于改进stacking算法的Android恶意软件检测方法 |
CN111460444A (zh) * | 2019-01-22 | 2020-07-28 | 国际商业机器公司 | 针对威胁检测***的自动恶意软件签名生成 |
CN111783093A (zh) * | 2020-06-28 | 2020-10-16 | 南京航空航天大学 | 一种基于软依赖的恶意软件分类和检测方法 |
CN111797394A (zh) * | 2020-06-24 | 2020-10-20 | 广州大学 | 基于stacking集成的APT组织识别方法、***及存储介质 |
CN112241530A (zh) * | 2019-07-19 | 2021-01-19 | 中国人民解放军战略支援部队信息工程大学 | 恶意pdf文档的检测方法及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038622A (zh) * | 2017-12-26 | 2018-05-15 | 北京理工大学 | 一种群智感知***推荐用户方法 |
-
2018
- 2018-06-16 CN CN201810685060.XA patent/CN108920953A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038622A (zh) * | 2017-12-26 | 2018-05-15 | 北京理工大学 | 一种群智感知***推荐用户方法 |
Non-Patent Citations (1)
Title |
---|
张巍等: "基于移动软件行为大数据挖掘的恶意软件检测技术", 《集成技术》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460444A (zh) * | 2019-01-22 | 2020-07-28 | 国际商业机器公司 | 针对威胁检测***的自动恶意软件签名生成 |
CN111460444B (zh) * | 2019-01-22 | 2023-09-19 | 国际商业机器公司 | 针对威胁检测***的自动恶意软件签名生成 |
CN112241530A (zh) * | 2019-07-19 | 2021-01-19 | 中国人民解放军战略支援部队信息工程大学 | 恶意pdf文档的检测方法及电子设备 |
CN112241530B (zh) * | 2019-07-19 | 2023-05-30 | 中国人民解放军战略支援部队信息工程大学 | 恶意pdf文档的检测方法及电子设备 |
CN111310185A (zh) * | 2020-03-11 | 2020-06-19 | 合肥工业大学 | 一种基于改进stacking算法的Android恶意软件检测方法 |
CN111310185B (zh) * | 2020-03-11 | 2022-10-04 | 合肥工业大学 | 一种基于改进stacking算法的Android恶意软件检测方法 |
CN111797394A (zh) * | 2020-06-24 | 2020-10-20 | 广州大学 | 基于stacking集成的APT组织识别方法、***及存储介质 |
CN111797394B (zh) * | 2020-06-24 | 2021-06-08 | 广州大学 | 基于stacking集成的APT组织识别方法、***及存储介质 |
CN111783093A (zh) * | 2020-06-28 | 2020-10-16 | 南京航空航天大学 | 一种基于软依赖的恶意软件分类和检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108920953A (zh) | 一种恶意软件检测方法及*** | |
CN103870751B (zh) | 入侵检测方法及*** | |
CN102750475B (zh) | 基于虚拟机内外视图交叉比对恶意代码行为检测方法及*** | |
CN104866763B (zh) | 基于权限的Android恶意软件混合检测方法 | |
CN110378119A (zh) | 一种恶意软件检测方法及*** | |
CN107657175A (zh) | 一种基于图像特征描述子的恶意样本同源检测方法 | |
CN103679030B (zh) | 一种基于动态语义特征的恶意代码分析检测方法 | |
CN109462691A (zh) | 一种基于多传感器数据融合的隐式防护方法及*** | |
CN106803039B (zh) | 一种恶意文件的同源判定方法及装置 | |
CN111639337A (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及*** | |
Kim et al. | Analysis of feature importance and interpretation for malware classification | |
CN108170467A (zh) | 约束限定聚类和信息度量软件胎记特征选择方法、计算机 | |
CN112202718A (zh) | 一种基于XGBoost算法的操作***识别方法、存储介质及设备 | |
Zulhilmi et al. | A comparison of three machine learning algorithms in the classification of network intrusion | |
CN109240807A (zh) | 一种基于vmi的恶意程序检测***和方法 | |
CN112257076B (zh) | 一种基于随机探测算法和信息聚合的漏洞检测方法 | |
CN105787369A (zh) | 基于切片度量的Android软件安全分析方法 | |
CN110334510A (zh) | 一种基于随机森林算法的恶意文件检测技术 | |
Ambika | An economical machine learning approach for anomaly detection in IoT environment | |
Lee et al. | Toward machine learning based analyses on compressed firmware | |
CN108427882A (zh) | 基于行为特征抽取的安卓软件动态分析检测法 | |
Ruisanchez et al. | Classification of energy dispersion X-ray spectra of mineralogical samples by artificial neural networks | |
CN115455407A (zh) | 一种基于机器学习的GitHub敏感信息泄露监控方法 | |
CN109582437A (zh) | 一种基于内存类型感知的恶意进程检测方法和*** | |
CN114579965A (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: 20181130 |
|
RJ01 | Rejection of invention patent application after publication |