CN101604364B - 基于文件指令序列的计算机恶意程序分类系统和分类方法 - Google Patents

基于文件指令序列的计算机恶意程序分类系统和分类方法 Download PDF

Info

Publication number
CN101604364B
CN101604364B CN2009100409972A CN200910040997A CN101604364B CN 101604364 B CN101604364 B CN 101604364B CN 2009100409972 A CN2009100409972 A CN 2009100409972A CN 200910040997 A CN200910040997 A CN 200910040997A CN 101604364 B CN101604364 B CN 101604364B
Authority
CN
China
Prior art keywords
family
sample
file
dimension
point
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.)
Active
Application number
CN2009100409972A
Other languages
English (en)
Other versions
CN101604364A (zh
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.)
Beijing Kingsoft Internet Security Software Co Ltd
Original Assignee
Zhuhai Kingsoft Software Co Ltd
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 Zhuhai Kingsoft Software Co Ltd filed Critical Zhuhai Kingsoft Software Co Ltd
Priority to CN2009100409972A priority Critical patent/CN101604364B/zh
Publication of CN101604364A publication Critical patent/CN101604364A/zh
Application granted granted Critical
Publication of CN101604364B publication Critical patent/CN101604364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及基于文件指令序列的计算机恶意程序分类系统及其方法。基于文件指令序列的计算机恶意程序分类系统包括:指令序列特征提取模块,其生成指令片段的集合;样本文件差异度计算模块,其计算两个样本点之间的差异度;维度权值计算模块,其计算每个家族中各个维度的权值及各家族的维度权值向量;样本分家族模块,其调用上述各模块完成对所有样本点进行分家族工作。上述装置可根据文件指令序列对恶意程序样本进行合理分家族。

Description

基于文件指令序列的计算机恶意程序分类系统和分类方法
技术领域
本发明涉及计算机反恶意程序类软件领域,尤其涉及一种基于文件指令序列的计算机恶意程序分类系统及其方法。
背景技术
目前,计算机反恶意程序软件对恶意程序处理的基本原理是:首先对可疑文件进行鉴定,判定其属于正常程序或者恶意程序;对确认为恶意程序的样本文件进行分类(即分家族),然后分析同家族恶意程序的特性,提取其“通杀”特征;剩余无法提取“通杀”特征的样本提取“自动”特征,生成相应的恶意程序特征库。根据所生成的恶意程序特征库,计算机反恶意程序软件扫描客户端计算机中的文件,并判断每个文件是否与特征库中的恶意程序特征相匹配,如果匹配则为恶意程序。这里,“同家族恶意程序”指传播途径、功能、内容或行为相同或相似的恶意程序集合;“通杀”特征指能够匹配同家族所有恶意程序的特征;“自动”特征指匹配单一恶意程序的二进制特征。通常,一个“通杀”特征能查杀的恶意程序要远高于一个“自动”特征所能匹配的恶意程序。
随着技术的发展和安全形势的变化,新的恶意程序成几何级数爆炸增长:据反病毒专家统计,全球恶意程序已超过1100万个,单月样本超过64万,到2015年会有2.33亿个。但是,这些新出现的恶意代码并不是完全没有共性:有部分恶意程序是在原有代码基础上修改生成的,病毒作者根据原有恶意程序的源代码,为了绕过反恶意程序软件的查杀(即“免杀”),在其基础上做出了一定的修改;而且这些新生成的恶意程序之间也是具有共性的。如果能将恶意程序快速、准确地进行分类(分家族),提取“通杀”特征,将极大地提高计算机反恶意程序软件处理这些新恶意程序的效率,从而缩短对新恶意程序的处理时间,同时有利于提高每个特征的查杀能力,从而缩小恶意特征库的大小。
对于计算机反恶意程序软件厂商收集到的大量恶意程序样本,不同的反恶意程序软件给出的分类结果各不相同,命名规则也没有统一的标准,即使名称相同也不一定是同一个家族的样本,因此分类效果不尽人意。而依靠人工对收集到的海量恶意程序样本逐一归类,已不可能。近年来,数据挖掘技术的不断发展在一定程度上解决了人们处理海量数据的难题。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的数据中提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。而聚类算法是数据挖掘领域研究最广泛的问题之一。聚类分析是把数据按照相似性归纳成若干类别,同一类中的数据彼此相似,而不同类中的数据相异。把数据挖掘技术中的聚类算法应用于计算机反恶意程序类软件中,可以自动地把具有共性的同家族恶意程序分成一类,同时把差异较大的恶意程序区分开来。
发明内容
本发明的第一目的是克服现有技术中的不足,提出一种基于文件指令序列的计算机恶意程序分类系统。
本发明的第二目的是提供一种使用上述系统对计算机恶意程序分类的方法。
为了实现上述第一目的,本发明采用如下技术方案:
一种基于文件指令序列的计算机恶意程序分类系统,其包括:
指令序列特征提取模块,其首先将样本文件脱壳,提取样本文件中所包含的所有函数,并剔除函数中的操作数,只保留汇编指令,然后以函数为单位,将每个函数的指令序列隔指定的步长以指定的片长进行切片,统计每个文件出现的指令片段,生成一个指令片段的集合,作为样本文件的特征表征;
样本分家族模块,其通过如下过程完成对所有样本点进行分家族工作:
A.接受用户输入的分类家族数K,K为大于0的自然数,然后从所有样本点中随机选取K个样本点作为K个家族的初始中心点;
B.将每个维度的权值设置成1/d,其中d为样本全集的维度总数;
C.根据公式(1)计算所有K个初始中心点以外的其它样本点(一个恶意程序样本文件即为一个样本点)与K个初始中心点的差异度后,将相应的样本点划分到与之差异度最小的初始中心点所属的家族中;
WJD mn = w m · X m ∪ w n · X n - w m · X m ∩ w n · X n w m · X m ∪ w n · X n ——公式(1)
其中,wm和wn分别指的是样本点m和样本点n所在家族的维度权值向量,Xm与Xn分别表示样本点m和样本点n的特征向量,WJDmn表示样本点m和样本点n之间的差异度(也可以叫做距离);
D.划分结束后,根据公式(1)重新确定K个家族的中心点;确定完中心点后,根据公式(2)重新计算每个维度在各个家族中的权值;
Figure GSB00000675092200041
——公式(2)
从而得到家族i(1≤i≤K,i为自然数)的维度权值向量wi=[wi1,wi2,...,wid]——公式(3);
公式(2)中,wij表示家族i中第j维的权值;d为样本全集的维度总数;
Figure GSB00000675092200042
表示家族i中的所有样本点与该家族的中心点ci在第j维上的偏差;家族i的中心点ci是与同家族所有样本距离和最小的样本点(若有多个这样的样本点,则以标号最小的样本点作为该家族的中心点):
Figure GSB00000675092200043
其中xt代表家族i的第t个样本,ni表示该家族i的样本个数,
Figure GSB00000675092200044
表示样本xt与同家族所有样本的距离和;cij表示家族i的中心点ci第j维的值,xij表示家族i中的样本点xi第j维的值;w′ij为上一次迭代过程中的wij
Figure GSB00000675092200051
表示家族i以外的其它家族中的所有样本点与家族i的中心点ci在第j维上的偏差;xkj表示家族i以外的其它家族的样本点xk第j维的值;
E.所有K个家族的维度权值向量更新完成之后,检查各家族的中心点与上一次迭代的结果相比是否不再发生改变,若不再改变即收敛,则算法结束(或者对样本点的划分到达指定的迭代次数,则算法结束),以此时所划分的K个家族为最后的家族划分结果;否则,以新确定的K个中心点作为新的初始中心点,并返回以上过程C-D,直到算法收敛。
通杀特征生成模块,其根据最后的分家族结果以及所述公式(2)和公式(3)的结果,在每个家族中选择若干维度作为该家族的通杀特征,所述被选择的维度为在本家族中出现频率高于用户设定的高频值,而在其它家族中出现频率低于用户设定的低频值的维度。
为了实现上述第二目的,本发明采用如下技术方案:
使用上述基于文件指令序列的计算机恶意程序分类系统进行分类的方法,包括如下步骤:
(1)提取样本文件的指令序列特征:
首先将样本文件脱壳,提取样本文件中所包含的所有函数,并剔除函数中的操作数,只保留汇编指令,然后以函数为单位,将每个函数的指令序列隔指定的步长以指定的片长进行切片,统计每个样本文件出现的指令片段,生成一个指令片段的集合,作为样本文件的特征表征;
(2)基于文件指令序列特征对恶意程序样本进行分家族:
A.接受用户输入的分类家族数K,K为大于0的自然数,然后从所有样本点中随机选取K个样本点作为K个家族的初始中心点;
B.将每个维度的权值设置成1/d,其中d为样本全集的维度总数;
C.根据公式(1)计算所有K个初始中心点以外的其它样本点与K个初始中心点的差异度后,将相应的样本点划分到与之差异度最小的初始中心点所属的家族中(若某一样本点与多个中心点距离一样且差异度最小,则将其划分到标号最小的中心点所属家族中。当然,也可以将这种样本点划分到标号最大的中心点所述的家族中。只要保证每次都是用同样的划分规则即可。);
WJD mn = w m · X m ∪ w n · X n - w m · X m ∩ w n · X n w m · X m ∪ w n · X n ——公式(1)
其中,wm和wn分别指的是样本点m和样本点n所在家族的维度权值向量,Xm与Xn分别表示样本点m和样本点n的特征向量,WJDmn表示样本点m和样本点n之间的差异度;
D.划分结束后,根据公式(1)重新确定K个家族的中心点:家族中心点ci是与同家族所有样本距离和最小的样本点[若有多个这样的样本点,则以标号最小(或者最大,但规则需要与步骤C中的规则一致)的样本点作为该家族的中心点]:
Figure GSB00000675092200062
其中xt代表家族i的第t个样本,ni表示该家族i的样本个数,
Figure GSB00000675092200071
表示样本xt与同家族所有样本的距离和;确定完中心点后,根据以下公式重新计算每个维度在各个家族中的权值:
——公式(2)
从而得到家族i(i=1,…,K)的维度权值向量为:
wi=[wi1,wi2,...,wid]——公式(3)
公式(2)中,wij表示家族i中第j维的权值;d为样本全集的维度总数;
Figure GSB00000675092200073
表示家族i中的所有样本点与该家族的中心点ci在第j维上的偏差;cij表示家族i的中心点ci第j维的值,xij表示家族i中的样本点xi第j维的值;w′ij为上一次迭代过程中的wij表示家族i以外的其它家族中的所有样本点与家族i的中心点ci在第j维上的偏差;xkj表示家族i以外的其它家族的样本点xk第j维的值;
E.所有K个家族的维度权值向量更新完成之后,检查各家族的中心点与上一次迭代的结果相比是否不再发生改变,若不再改变即收敛,则算法结束,以此时所划分的K个家族为最后的家族划分结果;否则,以新确定的K个中心点作为新的初始中心点,并返回以上过程C-D,直到算法收敛(或者直至对样本点的划分到达指定的迭代次数,则算法结束)。
进一步的技术方案是:
执行完上述步骤(2)中的E后,执行下述步骤(3),
(3)对每个家族的恶意程序生成通杀特征:
基于步骤(2)中E所得到的最后的家族划分结果,在每个家族中选择若干维度(指令片段)作为该家族的通杀特征,所述被选择的维度为在本家族中出现频率高于用户设定的高频值,而在其它家族中出现频率低于用户设定的低频值的维度。
本发明提出了一种基于文件指令频度的计算机恶意程序分类系统及其方法,其基本原理主要包括:(1)以“文件指令序列”作为样本的特征表征:采用基于函数的指令序列片段作为恶意程序的特征表征方法,该方法从恶意程序文件中提取其所有指令序列,然后以函数为单位对指令序列进行切片,最后统计一个样本文件出现了哪些指令序列片段,将这些片段作为该文件的特征。这种特征表征方式相较于传统的二进制或是基于字节内容的N-Grams有着表征较为精准且计算复杂度较低的优点。(2)基于文件指令序列特征对恶意程序样本进行分类:通过第(1)步的处理,将恶意程序文件转换为一个的文件指令片段集合,本发明通过一种新的子空间聚类算法,对恶意程序进行归类,将指令片段相同或类似的恶意程序文件归为一类,该方法能够自动衡量每个指令片段在每个类中的重要性,能够更好地将具有共性的同家族恶意程序分成一类,同时把差异较大的恶意程序加以区分。(3)分类后对每个家族的恶意程序自动生成“通杀”特征:基于(2)的归类结果,每一个恶意程序家族都可以得到在本家族中高频出现、在其它类中低频出现的维度的指令片段集,这些指令片段集经误报测试后,即可作为恶意程序样本文件的“通杀”特征。
附图说明
图1为本发明基于文件指令序列的计算机恶意程序分类方法流程图;
图2为提取样本文件的指令序列特征的流程简图。
具体实施方式
本发明基于文件指令序列的计算机恶意程序分类系统包括:
指令序列特征提取模块,其首先将样本文件脱壳,提取样本文件中所包含的所有函数,并剔除函数中的操作数,只保留汇编指令,然后以函数为单位,将每个函数的指令序列隔指定的步长以指定的片长进行切片,统计每个样本文件出现的指令片段,生成一个指令片段的集合,作为样本文件的特征表征;
样本文件差异度计算模块,其计算两个恶意程序样本文件之间的差异度,其计算公式为:
WJD mn = w m · X m ∪ w n · X n - w m · X m ∩ w n · X n w m · X m ∪ w n · X n ——公式(1)
其中,wm和wn分别指的是样本点m和样本点n所在家族的维度权值向量(这里的维度即指令片段,一种指令片段就是一维,假设一个家族包含d种指令片段,则该家族有d维特征),Xm与Xn分别表示样本点m和样本点n的特征向量,WJDmn表示样本点m和样本点n之间的差异度;
维度权值计算模块,其计算每个家族中各个维度的权值,其计算公式为:
——公式(2)
从而得到家族i的维度权值向量为wi=[wi1,wi2,...,wid]——公式(3)
公式(2)中,wij表示家族i中第j维的权值;d为样本全集的维度总数;
Figure GSB00000675092200102
表示家族i中的所有样本点与该家族的中心点ci在第j维上的偏差;家族i的中心点ci是与同家族所有样本距离和最小的样本点(若有多个这样的样本点,则以标号最小的样本点作为该家族的中心点):其中xt代表家族i的第t个样本,ni表示该家族i的样本个数,
Figure GSB00000675092200104
表示样本xt与同家族所有样本的距离和;cij表示家族i的中心点ci第j维的值,xij表示家族i中的样本点xi第j维的值;w′ij为上一次迭代过程中的wij
Figure GSB00000675092200111
表示家族i以外的其它家族中的所有样本点与家族i的中心点ci在第j维上的偏差;xkj表示家族i以外的其它家族的样本点xk第j维的值。
样本分家族模块,其基于文件指令序列对所有样本点进行分家族,分家族过程如下:
A.接受用户输入的分类家族数K,然后从所有样本点中随机选取K个样本点作为K个家族的初始中心点;
B.将每个维度的权值设置成1/d,其中d为样本全集的维度总数;
C.根据上述样本文件差异度计算模块计算所有K个初始中心点以外的其它样本点与K个初始中心点的差异度后,将相应的样本点划分到与之差异度最小的初始中心点所属的家族中;
D.划分结束后,根据上述样本文件差异度计算模块的公式(1)重新确定K个家族的中心点;确定完中心点后,根据上述维度权值计算模块重新计算每个维度在各个家族中的权值。
E.所有K个家族的维度权值向量更新完成之后,检查各家族的中心点与上一次迭代的结果相比是否不再发生改变,若不再改变即收敛,则算法结束(或者对样本点的划分到达指定的迭代次数,则算法结束),以此时所划分的K个家族为最后的家族划分结果;否则,以新确定的K个中心点作为新的初始中心点,并返回以上过程C-D,直到算法收敛。
通杀特征生成模块,其根据最后的分家族结果,在每个家族中选择若干维度作为该家族的通杀特征,所述被选择的维度为在本家族中出现频率高于用户设定的高频值,而在其它家族中出现频率低于用户设定的低频值的维度。高频值和低频值可以由用户根据需要设定,比如高频值为2/3,低频值为1/3等,但高频值一定是大于低频值的,这样的通杀特征才有应用价值,如果某一维度在本家族中出现的频率非常高,而在其他家族中出现的频率非常低,那么这个维度作为本家族的通杀特征是最好的。所说的在本家族中出现频率等于本家族中含有此维度的样本数量与本家族中全部样本数量的比值,同样,在其他家族中出现频率等于在其他家族中含有此维度的样本数量与其他家族中全部样本数量的比值。因此,这里所说的出现频率与维度的权值是没有关系的。
下面结合附图说明本发明基于文件指令序列的计算机恶意程序分类方法的流程。
图1给出了本发明方法工作过程的简单描述,本发明方法的具体步骤如下:
(1)提取恶意程序样本文件的指令序列特征:
参见图2,首先,将恶意程序样本文件(简称样本文件)脱壳,提取样本文件中所包含的所有函数,并剔除函数中的操作数,只保留汇编指令,然后以函数为单位,将每个函数的指令序列隔一定的步长以指定的片长进行切片,统计每个文件出现的指令片段,生成一个指令片段的集合,作为样本文件的特征表征。需要说明的是,上述步长并无绝对限制可以取1、2甚至10或者更多,而每个切片的长度也并无限制,但步长最好小于或者等于片长。例如:样本文件由两个函数[1:mov,add,cmp,add;2:add,sub,sub,jmp,call]构成,在指定指令片段长为3,步长为1的情况下,其指令序列特征为[1:mov,add,cmp;2:add,cmp,add;3:add,sub,sub;4:sub,sub,jnp;5:sub,jmp,call],该样本文件的指令序列特征向量为[1,2,3,4,5],此处的1、2、3、4、5就作为不同指令片段的名称。由于对于海量的恶意程序样本集,其具有的指令片段集非常庞大,为了进一步降低指令序列片段的数量,降低程序的复杂度和存储开销,可以对指令片段进行过滤筛选,将在全局(所有样本文件)中出现频度过高的库函数调用片段给以去除,仅保留有效的指令片段,生成新的指令片段集。根据经验的积累和试验的比较,提取片长为3~5,步长为1的指令序列片段,并将全局出现频度高于50%或低于1%的指令片段去除。采用该方法所提取的特征能够较好地表征文件,并且降低程序的复杂度和存储开销。
(2)基于文件指令序列特征的对恶意程序的子空间聚类算法(MFWKM):
A.接受用户输入的分类家族数K,然后从所有样本文件中随机选取K个样本点作为K个家族初始中心点;
B.将每个维度的权值设置成1/d,其中d为样本全集的维度总数;需要指出的是,此处和后续所说的维度就是指指令片段[即前述的mov,add,cmp(1);add,cmp,add(2);add,sub,sub(3)等];
C.根据公式(1)计算所有K个初始中心点以外的其它样本点与这K个初始中心点的差异度后,将相应的样本点划分到与之差异度最小的初始中心点所属的家族中;
WJD mn = w m · X m ∪ w n · X n - w m · X m ∩ w n · X n w m · X m ∪ w n · X n ——公式(1)
其中,wm和wn分别指的是样本点m和样本点n所在家族的维度权值向量,Xm与Xn分别表示样本点m和样本点n的特征向量,WJDmn表示样本点m和样本点n之间的差异度;分子表示两个文件的差异部分,分母表示两个文件的相同部分加上差异的部分。公式(1)的差异度(或者叫距离)度量方法既考虑了文件之间的差异,同时避免了文件大小对文件差异衡量构成的干扰。为进一步说明,例如:假设样本全集共有5种指令片段(即维度总数d=5):[1,2,3,4,5],样本点X1有3个指令片段:[1,2,3],样本点X2有3个指令片段:[1,2,4],假设样本点X1和样本点X2所在家族的维度权值向量均为[0.2,0.2,0.2,0.2,0.2],则样本点X1和X2的差异度(距离)为:(0.2+0.2)/((0.2+0.2)+(0.2+0.2)+0.2+0.2)=0.333.
(注释:经过上述步骤C就将全部的样本文件分成了K个家族,可这个分家族的结果未必是最后的分家族结果,需要执行下述步骤,并反复循环迭代后,才能得到最后最佳的分家族结果。)
D.划分结束后,根据公式(1)重新确定K个家族的中心点。所说的家族中心点是与同家族所有样本距离和最小的样本点(本实施例中,若有多个这样的样本点,则以标号最小的样本点作为该家族的中心点),因此,家族的中心点可以通过公式(1)计算而确定。确定完中心点后,根据以下公式(2)重新计算各个维度在各个家族中的权值:
Figure GSB00000675092200151
——公式(2)
从而得到家族i(i=1,...,k)的权值向量为:
wi=[wi1,wi2,...,wid]——公式(3)
其中,wij表示家族i中维度j的权值;
Figure GSB00000675092200152
即,一个家族中,所有维度的权值总和为1;d为样本全集的维度总数;
Figure GSB00000675092200153
表示家族i中的所有样本点与该家族的中心点ci在第j维上的偏差;cij表示家族i的中心点ci第j维的值,xij表示家族i中的样本点xi第j维的值;w′ij为上一次迭代过程中的wij
Figure GSB00000675092200154
表示家族i以外的其它家族中的所有样本点与家族i的中心点ci在第j维上的偏差;xkj表示家族i以外的其它家族的样本点xk第j维的值。
为进一步说明,例如:假设样本全集有5个样本点,共有5种指令片段(即维度总数d=5):[1,2,3,4,5],指定的家族数K=2。样本点如下:X1=[1,2,3],X2=[1,2,4],X3=[1,2,3,5],X4=[1,4,5],X5=[1,4]。假设,样本点X1和X4被选为初始中心点,且初始两个家族的维度权值向量均为[0.2,0.2,0.2,0.2,0.2],根据公式(1)将X2和X3划分到X1所属家族,将X5划分到X4所属家族;重新计算两个家族的中心点:X1和X4与同家族样本点的距离和最小,因此,X1和X4分别为两个家族的中心点;根据公式(2)重新计算得到两个家族的权值向量分别为:w1=[0.6/3.8,1/3.8,0.8/3.8,0.8/3.8,0.6/3.8]=[0.16,0.26,0.21,0.21,0.16],w2=[0.2/2.6,0.8/2.6,0.6/2.6,0.6/2.6,0.4/2.6]=[0.08,0.31,0.23,0.23,0.15]。
根据公式(2)和公式(3),本发明中的MFWKM算法保证了在本家族中高频出现,在其它家族中低频出现的维度权值较高,而其它维度的权值相应较低,确保具有相同或相似特征的恶意程序样本文件能够尽可能地归为一个家族,而具有较大差异性的恶意程序文件会被区分开来。
E.所有K个家族的权值向量更新完成之后,检查各家族的中心点与上一次迭代的结果相比是否不再发生改变,若不再改变即收敛,则算法结束(或者对样本点的划分到达指定的迭代次数,则算法结束),以此时所划分的K个家族为最后的家族划分结果;否则,以新确定的K个中心点文件作为新的初始中心点文件,并返回以上步C,直到算法收敛。
(3)对每个家族的恶意程序生成通杀特征:
基于步骤(2)中E所得到的最后的家族划分结果,可以得到在本家族中高频出现、在其它类中低频出现的维度。这些维度的集合(指令片段集)经误报测试后,即可作为恶意程序样本文件的“通杀”特征。一个家族的通杀特征可以是一个也可以是多个。例如:步骤(2)中D中的5个样本点:X1=[1,2,3],X2=[1,2,4],X3=[1,2,3,5],X4=[1,4,5],X5=[1,4],指定家族数为2,经分类系统分类后,X1、X2和X3被分为一个家族,而X4和X5被分为另一个家族。重新统计每个维度(指令片段)在各个家族中出现的频率:家族1中各个维度的出现频率分别为:1,1,0.67,0.33,0.33,家族2:1,0,0,1,0.5。此处假设用户设定的高频值为0.67,低频值为0.33,所以,家族1中2、3号指令片段可作为该家族的候选“通杀”特征,家族2中4号指令片段可作为该家族的候选“通杀”特征;最后,若这些候选“通杀”特征能通过误报测试,则其将成为对应恶意程序家族的“通杀”特征。
以上实施例描述仅用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,应涵盖在本发明的权利要求范围当中。

Claims (6)

1.一种基于文件指令序列的计算机恶意程序分类系统,
其特征在于,包括
指令序列特征提取模块,其首先将样本文件脱壳,提取样本文件中所包含的所有函数,并剔除函数中的操作数,只保留汇编指令,然后以函数为单位,将每个函数的指令序列隔指定的步长进行切片,统计每个样本文件出现的指令片段,生成一个指令片段的集合,作为样本文件的特征表征;
样本分家族模块,其通过如下过程完成对所有样本点进行分家族工作:
A.接受用户输入的分类家族数K,K为大于0的自然数,然后从所有样本点中随机选取K个样本点作为K个家族的初始中心点;
B.将每个维度的权值设置成1/d,其中d为样本全集的维度总数;
C.根据公式(1)计算所有K个初始中心点以外的其它样本点与K个初始中心点的差异度后,将相应的样本点划分到与之差异度最小的初始中心点所属的家族中;
WJD mn = w m · X m ∪ w n · X n - w m · X m ∩ w n · X n w m · X m ∪ w n · X n ——公式(1)
在公式(1)中,wm和wn分别指的是文件m和文件n所在家族的权值向量,WJDmn表示文件m和文件n之间的差异度,Xm与Xn分别表示文件m和文件n的特征向量;
D.划分结束后,根据公式(1)重新确定K个家族的中心点;确定完中心点后,根据公式(2)重新计算每个维度在各个家族中的权值;
Figure FSB00000675092100021
——公式(2)
从而得到家族i(1≤i≤K,i为自然数)的权值向量为:
wi=[wi1,wi2,...,wid]    ——公式(3)
在公式(2)中,wij表示家族i中第j维的权值;d为样本全集的维度总数;
Figure FSB00000675092100022
表示家族i中的所有样本点与该家族的中心点ci在第j维上的偏差;cij表示家族i的中心点ci第j维的值,xij表示家族i中的样本点xi第j维的值;w′ij为上一次迭代过程中的wij
Figure FSB00000675092100023
表示家族i以外的其它家族中的所有样本点与家族i的中心点ci在第j维上的偏差;xkj表示家族i以外的其它家族的样本点xk第j维的值;
E.所有K个家族的维度权值向量更新完成之后,检查各家族的中心点与上一次迭代的结果相比是否不再发生改变,若不再改变即收敛,则算法结束,或者对样本点的划分到达指定的迭代次数,则算法结束,以此时所划分的K个家族为最后的家族划分结果;否则,以新确定的K个中心点作为新的初始中心点,并返回以上过程C-D,直到算法收敛。
2.根据权利要求1所述基于文件指令序列的计算机恶意程序分类系统,其特征在于,还包括:
通杀特征生成模块,其根据最后的分家族结果以及所述公式(2)和公式(3)的结果,在每个家族中选择若干维度作为该家族的通杀特征,所述被选择的维度为在本家族中出现频率高于用户设定的高频值,而在其它家族中出现频率低于用户设定的低频值的维度。
3.一种基于文件指令序列的计算机恶意程序分类方法,其特征在于,包括如下步骤:
(1)提取样本文件的指令序列特征:
首先将样本文件脱壳,提取样本文件中所包含的所有函数,并剔除函数中的操作数,只保留汇编指令,然后以函数为单位,将每个函数的指令序列隔指定的步长进行切片,统计每个样本文件出现的指令片段,生成一个指令片段的集合,作为样本文件的特征表征;
(2)基于文件指令序列特征对恶意程序样本进行分家族:
A.接受用户输入的分类家族数K,K为大于0的自然数,然后从所有样本文件中随机选取K个样本点作为K个家族初始中心点;
B.将每个维度的权值设置成1/d,其中d为全局的维度总量;
C.根据公式(1)计算所有K个初始中心点以外的其它样本点与K个初始中心点的差异度后,将相应的样本点划分到与之差异度最小的初始中心点所属的家族中;
WJD mn = w m · X m ∪ w n · X n - w m · X m ∩ w n · X n w m · X m ∪ w n · X n ——公式(1)
在公式(1)中,wm和wn分别指的是文件m和文件n所在家族的权值向量,WJDmn表示文件m和文件n之间的差异度,Xm与Xn分别表示文件m和文件n的特征向量;
D.划分结束后,根据公式(1)重新确定K个家族的中心点文件,确定完中心点文件后,根据公式(2)重新计算每个维度在各个家族中的权值:
Figure FSB00000675092100042
——公式(2)
从而得到家族i(1≤i≤K,i为自然数)的权值向量为:
wi=[wi1,wi2,...,wid]    ——公式(3)
在公式(2)中,wij表示家族i中第j维的权值;d为样本全集的维度总数;
Figure FSB00000675092100043
表示家族i中的所有样本点与该家族的中心点ci在第j维上的偏差;cij表示家族i的中心点ci第j维的值,xij表示家族i中的样本点xi第j维的值;w′ij为上一次迭代过程中的wij
Figure FSB00000675092100051
表示家族i以外的其它家族中的所有样本点与家族i的中心点ci在第j维上的偏差;xkj表示家族i以外的其它家族的样本点xk第j维的值;
E.所有K个家族的维度权值向量更新完成之后,检查各家族的中心点与上一次迭代的结果相比是否不再发生改变,若不再改变即收敛,则算法结束,以此时所划分的K个家族为最后的家族划分结果;否则,以新确定的K个中心点作为新的初始中心点,并返回以上过程C-D,直到算法收敛或者直至对样本点的划分到达指定的迭代次数,则算法结束。
4.根据权利要求3所述的基于文件指令序列的计算机恶意程序分类方法,其特征在于,
将每个函数的指令序列进行切片时,片长为3~5,步长为1。
5.根据权利要求4所述的基于文件指令序列的计算机恶意程序分类方法,其特征在于,执行完上述步骤(2)中的E后,执行下述步骤(3),(3)对每个家族的恶意程序生成通杀特征:
基于步骤(2)中E所得到的最后的家族划分结果,在每个家族中选择若干维度作为该家族的通杀特征,所述被选择的维度为在本家族中出现频率高于用户设定的高频值,而在其它家族中出现频率低于用户设定的低频值的维度。
6.根据权利要求3-5中任意一项所述的基于文件指令序列的计算机恶意程序分类方法,其特征在于,
在步骤(2)的C中,若某一样本点与多个中心点距离一样且差异度最小,则将其划分到标号最小的中心点所属家族中。
CN2009100409972A 2009-07-10 2009-07-10 基于文件指令序列的计算机恶意程序分类系统和分类方法 Active CN101604364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100409972A CN101604364B (zh) 2009-07-10 2009-07-10 基于文件指令序列的计算机恶意程序分类系统和分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100409972A CN101604364B (zh) 2009-07-10 2009-07-10 基于文件指令序列的计算机恶意程序分类系统和分类方法

Publications (2)

Publication Number Publication Date
CN101604364A CN101604364A (zh) 2009-12-16
CN101604364B true CN101604364B (zh) 2012-08-15

Family

ID=41470091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100409972A Active CN101604364B (zh) 2009-07-10 2009-07-10 基于文件指令序列的计算机恶意程序分类系统和分类方法

Country Status (1)

Country Link
CN (1) CN101604364B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622302B (zh) * 2011-01-26 2014-10-29 中国科学院高能物理研究所 碎片数据类型的识别方法
CN102737186B (zh) * 2012-06-26 2015-06-17 腾讯科技(深圳)有限公司 恶意文件识别方法、装置及存储介质
CN103632091B (zh) * 2012-08-21 2017-08-25 腾讯科技(深圳)有限公司 恶意特征提取方法、装置及存储介质
CN103679012A (zh) * 2012-09-03 2014-03-26 腾讯科技(深圳)有限公司 一种可移植可执行文件的聚类方法和装置
CN104008333B (zh) * 2013-02-21 2017-12-01 腾讯科技(深圳)有限公司 一种安装包的检测方法和设备
CN103761476B (zh) * 2013-12-30 2016-11-09 北京奇虎科技有限公司 特征提取的方法及装置
CN104318158A (zh) * 2014-07-09 2015-01-28 北京邮电大学 基于挖掘的网络智能平台恶意数据检测方法和装置
CN106909839B (zh) * 2015-12-22 2020-04-17 北京奇虎科技有限公司 一种提取样本代码特征的方法及装置
CN106127044A (zh) * 2016-06-20 2016-11-16 武汉绿色网络信息服务有限责任公司 一种函数恶意程度的检测方法和装置
CN105975854B (zh) * 2016-06-20 2019-06-28 武汉绿色网络信息服务有限责任公司 一种恶意文件的检测方法和装置
CN108694319B (zh) * 2017-04-06 2021-04-16 武汉安天信息技术有限责任公司 一种恶意代码家族判定方法及装置
CN107657175A (zh) * 2017-09-15 2018-02-02 北京理工大学 一种基于图像特征描述子的恶意样本同源检测方法
CN112084502B (zh) * 2020-09-18 2024-06-21 珠海豹趣科技有限公司 一种软件识别方法、装置、电子设备及存储介质
CN114254317B (zh) * 2021-11-29 2023-06-16 上海戎磐网络科技有限公司 基于软件基因的软件处理方法、装置以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101213555A (zh) * 2005-06-30 2008-07-02 普瑞维克斯有限公司 用于处理恶意软件的方法和装置
US7430308B1 (en) * 2002-11-26 2008-09-30 University Of South Florida Computer aided diagnosis of mammographic microcalcification clusters

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430308B1 (en) * 2002-11-26 2008-09-30 University Of South Florida Computer aided diagnosis of mammographic microcalcification clusters
CN101213555A (zh) * 2005-06-30 2008-07-02 普瑞维克斯有限公司 用于处理恶意软件的方法和装置

Also Published As

Publication number Publication date
CN101604364A (zh) 2009-12-16

Similar Documents

Publication Publication Date Title
CN101604364B (zh) 基于文件指令序列的计算机恶意程序分类系统和分类方法
Liu et al. Automatic malware classification and new malware detection using machine learning
CN102346829B (zh) 基于集成分类的病毒检测方法
Islam et al. Classification of malware based on string and function feature selection
Tixier et al. A graph degeneracy-based approach to keyword extraction
CN107315954B (zh) 一种文件类型识别方法及服务器
CN102779249B (zh) 恶意程序检测方法及扫描引擎
Chakrabarty et al. Navo minority over-sampling technique (NMOTe): a consistent performance booster on imbalanced datasets
CN101604363A (zh) 基于文件指令频度的计算机恶意程序分类系统及分类方法
CN103257957B (zh) 一种基于中文分词的文本相似性识别方法及装置
Tuarob et al. Automatic detection of pseudocodes in scholarly documents using machine learning
Dal Bianco et al. A practical and effective sampling selection strategy for large scale deduplication
Tan et al. Time series classification for varying length series
CN103886077B (zh) 短文本的聚类方法和系统
Mohan et al. Data mining classification techniques for intrusion detection system
CN106685964A (zh) 基于恶意网络流量词库的恶意软件检测方法及系统
CN104504334A (zh) 用于评估分类规则选择性的系统及方法
Karampidis et al. File type identification-computational intelligence for digital forensics
CN103744964A (zh) 一种基于局部敏感Hash函数的网页分类方法
KR102367859B1 (ko) 특징 벡터를 이용하여 데이터를 분류하는 장치 및 방법
CN114676431A (zh) 一种基于api增强顺序的安卓恶意代码检测方法
CN109716660A (zh) 数据压缩装置和方法
Patri et al. Multivariate time series classification using inter-leaved shapelets
Seideman et al. Identifying malware genera using the Jensen-Shannon distance between system call traces
KR102110523B1 (ko) 문서 분석 기반 주요 요소 추출 시스템 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: KINGSOFT CORPORATION LIMITED

Free format text: FORMER OWNER: ZHUHAI KINGSOFT SOFTWARE CO., LTD.

Effective date: 20140903

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 519015 ZHUHAI, GUANGDONG PROVINCE TO: 100085 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20140903

Address after: Kingsoft No. 33 building, 100085 Beijing city Haidian District Xiaoying Road

Patentee after: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

Address before: Jinshan computer Building No. 8 Jingshan Hill Road, Lane 519015 Zhuhai Jida Lianshan Guangdong city of Zhuhai Province

Patentee before: Zhuhai Kingsoft Software Co.,Ltd.

EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20091216

Assignee: Zhuhai Kingsoft Software Co.,Ltd.

Assignor: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

Contract record no.: 2014990000778

Denomination of invention: Classification system and classification method of computer rogue programs based on file instruction sequence

Granted publication date: 20120815

License type: Common License

Record date: 20140926

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model