CN106650443B - 一种基于增量dbscan算法的恶意代码家族识别方法 - Google Patents

一种基于增量dbscan算法的恶意代码家族识别方法 Download PDF

Info

Publication number
CN106650443B
CN106650443B CN201611008309.0A CN201611008309A CN106650443B CN 106650443 B CN106650443 B CN 106650443B CN 201611008309 A CN201611008309 A CN 201611008309A CN 106650443 B CN106650443 B CN 106650443B
Authority
CN
China
Prior art keywords
malicious code
database
vector
cluster
vectors
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
CN201611008309.0A
Other languages
English (en)
Other versions
CN106650443A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201611008309.0A priority Critical patent/CN106650443B/zh
Publication of CN106650443A publication Critical patent/CN106650443A/zh
Application granted granted Critical
Publication of CN106650443B publication Critical patent/CN106650443B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于增量DBSCAN算法的恶意代码家族检测方法,在数据库中保存恶意代码特征向量,其步骤为:A1:当捕捉到一个恶意代码样本,利用IDA Python脚本提取出其特征,并将特征转化为特征向量保存到数据库中;A2:查询数据库中所有与新特征向量相关的特征向量,记为集合S;A3:对集合S做分析处理,根据不同类别情况作出不同的处理;A4:检查数据库中所有的簇,每个簇即为识别出的一个恶意代码家族。本发明具有通用性好、具有高效性、准确度好等优点。

Description

一种基于增量DBSCAN算法的恶意代码家族识别方法
技术领域
本发明主要涉及到计算机系统安全技术领域,特指一种基于增量DBSCAN算法的恶意代码家族识别方法。
背景技术
现今,安全厂商每天会捕捉到成千上万的新恶意代码样本。这些新样本一部分是已知恶意代码的变种,另一部分则来自于未知恶意代码家族。如何快速检测出这些未知恶意代码家族成为安全厂商最为关注的问题。采用人工分析的方法难以处理如此庞大的样本数量并且效率低下。因此,利用机器学习来完成对恶意代码新家族检测的做法为广大安全厂商所青睐。
恶意代码聚类将具有相似行为或者结构的样本划分到同一个簇中。同时,同一家族的恶意代码通常具有相似特征。因此,通过对聚类结果做进一步分析可以检测到恶意代码新家族的出现。
现有的恶意代码家族识别通常采用“原型聚类”的方法。即:在聚类开始前,需要设定最终得到的簇的数目。同时,从每个簇中挑选出一个参考样本。每加入一个新样本时,计算其与所有的参考样本的距离,并将新样本放到最近的参考样本所属的簇中。最终得到的簇便代表识别出的家族。
虽然原型聚类不需要为每个新样本寻找邻近点,只需要与有限个数的参考样本进行比较,但是聚类前数据集中恶意代码家族的数量未知,需要对其进行估计。当估计值与实际家族数量偏差较大时,原型聚类的效果会受到影响,就会导致恶意样本家族的识别率下降。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种通用性好、具有高效性、准确度好的基于增量DBSCAN算法的恶意代码家族识别方法。
为解决上述技术问题,本发明采用以下技术方案:
一种基于增量DBSCAN算法的恶意代码家族检测方法,在数据库中保存恶意代码特征向量,其步骤为:
A1:当捕捉到一个恶意代码样本,利用IDA Python脚本提取出其特征,并将特征转化为特征向量保存到数据库中;
A2:查询数据库中所有与新特征向量相关的特征向量,记为集合S;
A3:对集合S做分析处理:
A301:如果集合S为空,将新加入的特征向量视为噪音向量,转至步骤A4;其中,所述噪音向量指以自身为中心Eps范围内向量个数少于MinPts的特征向量;
A302:如果集合S不为空,且这些特征向量均不属于任何一个簇,则新建一个簇A,并将集合S中所有的特征向量添加到簇A中;转至步骤A4;
A303:如果集合S不为空,且集合S中只包含属于单一簇A的特征向量,则将新特征向量添加到簇A中;转至步骤A4;
A304:如果集合S不为空,且集合S中包含属于不同簇的多种特征向量,则将这些簇作为一个元组记录在数据库中;转至步骤A4;
A4:检查数据库中所有的簇,每个簇即为识别出的一个恶意代码家族。
作为本发明的进一步改进:所述步骤A2的流程为:查询数据库中所有与新加入的特征向量的欧几里得距离小于Eps的特征向量,记为集合S1;考察集合S1中所有的核心向量在Eps范围内的核心向量,记为集合S2;将集合S1与集合S2合并得到集合S;其中,所述核心向量是指以自身为中心Eps范围内向量个数不少于MinPts的特征向量。
作为本发明的进一步改进:所述步骤A1的流程为:
A101:提取恶意代码样本的Opcode序列;
A102:利用2-gram方法对Opcode序列进行分析,得到一个Opcode二元组集合;
A103:将每个Opcode二元组映射到区间[0,N)内的整数,得到Opcode特征向量,其中特征向量的第i维为映射到整数i的Opcode二元组的数量。
作为本发明的进一步改进:所述步骤A304中,当元组记录在数据库中次数少于K时,转入查看当前数据库中家族检测情况;当记录次数不少于K时,将元组中这些簇合并为一个簇N,并将集合S中所有的特征向量添加到簇N中,查看当前数据库中家族检测情况。
作为本发明的进一步改进:所述数据库在运行进行初始化。
与现有技术相比,本发明的优点在于:本发明的基于增量DBSCAN算法的恶意代码家族检测方法,是基于密度的DBSCAN聚类算法,不需要对家族数目进行预估,其原理是根据定义的范围半径以及范围内样本数目把数据集的高密度区域与低密度区域自动进行区分,为此本发明大大提高了恶意代码家族识别的通用性、高效性、鲁棒性和准确性。
附图说明
图1是本发明方法的流程示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明的一种基于增量DBSCAN算法的恶意代码家族检测方法,步骤为:
A1:初始化数据库用于保存恶意代码特征向量;
A2:如果需要查看当前数据库中家族检测情况,转入步骤A9;
A3:当捕捉到一个恶意代码样本,利用IDA Python脚本(交互式反编译器Python脚本Interactive Disassembler Professional Python Script)提取出其特征,并将特征转化为特征向量保存到数据库中;
A4:查询数据库中所有与新加入的特征向量的欧几里得距离小于Eps的特征向量,记为集合S1;考察集合S1中所有的核心向量其Eps范围内的核心向量,记为集合S2;将集合S1与集合S2合并得到集合S。其中,核心向量是指以自身为中心Eps范围内向量个数不少于MinPts的特征向量;
A5:如果集合S为空,将新加入的特征向量视为噪音向量,并转入步骤A2,其中,噪音向量指以自身为中心距离半径Eps范围内向量个数少于最少相邻点数MinPts的特征向量;
A6:如果集合S不为空,且这些特征向量均不属于任何一个簇,则新建一个簇A,并将集合S中所有的特征向量添加到簇A中。同时,也称集合S中的特征向量属于簇A。转入步骤A2;
A7:如果集合S不为空,且集合S中只包含属于单一簇A的特征向量,则将新特征向量添加到簇A中,并转入步骤A2;
A8:如果集合S不为空,且集合S中包含属于不同簇的多种特征向量,则将这些簇作为一个元组记录在数据库中。
当该元组记录在数据库中次数少于K时,转入步骤A2;当记录次数不少于K时,将元组中这些簇合并为一个簇N,并将集合S中所有的特征向量添加到簇N中,转入步骤A2;
A9:检查数据库中所有的簇。每个簇即为该方法识别出的一个恶意代码家族。
作为较佳的应用实例,上述步骤A3的详细流程为:
A301:提取恶意代码样本的操作码Opcode序列(Operation code);
A302:利用2-gram方法对Opcode序列进行分析,得到一个Opcode二元组集合;
A303:将每个Opcode二元组映射到区间[0,N)内的整数,得到Opcode特征向量,其中特征向量的第i维为映射到整数i的Opcode二元组的数量。
本发明的上述方法是基于密度的DBSCAN聚类算法(Density-Based SpatialClustering of Applications with Noise,基于密度的空间聚类算法),不需要对家族数目进行预估。其原理是根据定义的范围半径以及范围内样本数目把数据集的高密度区域与低密度区域自动进行区分。因此,DBSCAN聚类算法中的参数可以应用到不同的恶意代码数据集中。最终算法形成的簇的数目取决于数据集中样本在特征空间的分布情况,而不是直接通过人为决定,不需要提前设定簇数目的DBSCAN算法能更加贴近于实际需要。DBSCAN算法作为基于密度的聚类算法,通过寻找空间中被低密度区域分隔开的高密度区域完成聚类。该算法利用邻近半径Eps内的样本点数目是否达到MinPts来区分低密度区域与高密度区域。低密度区域中数据点被视为噪音而被丢弃,从而确保簇之间能被很好地分隔开来。DBSCAN算法的优点在于能处理任意形状的簇以及具有抗噪音的能力。同时,恶意代码样本进入到数据库具有时间先后顺序,数据集处于动态变化中。DBSCAN算法并不能对动态数据集进行处理。增量DBSCAN算法被提出用来对动态数据集进行聚类。增量DBSCAN算法中,每当一个样本进入到数据库,便会对其附近的样本点和簇做出相应的调整。本发明采用增量DBSCAN对恶意代码家族进行识别。基于实际应用场景,对于增量DBSCAN算法具体实现上进行了优化和改进。
本发明的上述方法具有对恶意代码家族识别的高效性。当一个新样本进入数据集,只会对其邻近的样本或者簇产生影响。数据集中绝大部分样本及其所属簇不会受到新样本的影响。因此,需要为每个样本查询其近邻样本。利用现有的R树进行查询,找到新样本Eps范围内所有邻近样本的时间复杂度为o(log N),其中N为数据集中所有样本的数目。因此,利用增量DBSCAN聚类算法处理完所有样本的时间复杂度为o(N log N)。可以看到,即使数据集中样本数目增加到较大规模,但处理每个样本的用时呈对数缓慢增长。另一方面,虽然传统非增量DBSCAN聚类算法的时间复杂度也为o(N log N),但是由于只能处理静态数据集,需要每隔一段时间需要对所有样本进行聚类。将每次聚类的耗时累积起来,其总时间要远远超出增量DBSCAN聚类算法的时间。因此,增量DBSCAN聚类算法具有高效性。
本发明的上述方法具有恶意代码家族识别的鲁棒性,如果有噪音样本出现在两个分别属于不同家族的簇的中间并且这两个簇中均有样本在噪音样本的Eps半径内,那么这两个簇会因为该噪音样本而被合并为一个新的簇。针对上述问题,在处理将簇合并的步骤时,本发明要求在有多个样本点触发合并操作的前提下才能最后成功完成簇之间的合并。该做法可以消除位于两个簇中间的噪音点将这两个簇合并的情况,使聚类过程具有良好的鲁棒性。
本发明的上述方法具有恶意代码家族识别的准确性,同一家族的恶意代码样本之间通常具有相似的特征。通过对恶意代码样本的特征进行聚类可以将同一家族的样本划分到同一簇中并且不同家族的样本划分到不同的簇中。根据上述理论依据,基于聚类的恶意代码家族识别能够具有较高的准确性。同时,选取不同的恶意代码特征会对恶意代码家族识别的准确性产生影响。通过对恶意代码的多种特征进行比较,最终选取Opcode序列提取特征向量可以得到较高的识别率。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (4)

1.一种基于增量DBSCAN算法的恶意代码家族检测方法,在数据库中保存恶意代码特征向量,其特征在于,步骤为:
A1:当捕捉到一个恶意代码样本,利用IDA Python脚本提取出其特征,并将特征转化为特征向量保存到数据库中;
A2:查询数据库中所有与新特征向量相关的特征向量,记为集合S;
A3:对集合S做分析处理:
A301:如果集合S为空,将新加入的特征向量视为噪音向量,转至步骤A4;其中,所述噪音向量指以自身为中心距离半径Eps范围内向量个数少于最少相邻点数MinPts的特征向量;
A302:如果集合S不为空,且这些特征向量均不属于任何一个簇,则新建一个簇A,并将集合S中所有的特征向量添加到簇A中;转至步骤A4;
A303:如果集合S不为空,且集合S中只包含属于单一簇A的特征向量,则将新特征向量添加到簇A中;转至步骤A4;
A304:如果集合S不为空,且集合S中包含属于不同簇的多种特征向量,则将这些簇作为一个元组记录在数据库中;转至步骤A4;
A4:检查数据库中所有的簇,每个簇即为识别出的一个恶意代码家族;
所述步骤A2的流程为:查询数据库中所有与新加入的特征向量的欧几里得距离小于Eps的特征向量,记为集合S1;考察集合S1中所有的核心向量在Eps范围内的核心向量,记为集合S2;将集合S1与集合S2合并得到集合S;其中,所述核心向量是指以自身为中心Eps范围内向量个数不少于MinPts的特征向量。
2.根据权利要求1所述的基于增量DBSCAN算法的恶意代码家族检测方法,其特征在于,所述步骤A1的流程为:
A101:提取恶意代码样本的操作码Opcode序列;
A102:利用2-gram方法对Opcode序列进行分析,得到一个Opcode二元组集合;
A103:将每个Opcode二元组映射到区间[0,N)内的整数,得到Opcode特征向量,其中特征向量的第i维为映射到整数i的Opcode二元组的数量。
3.根据权利要求1所述的基于增量DBSCAN算法的恶意代码家族检测方法,其特征在于,所述步骤A304中,当元组记录在数据库中次数少于K时,转入查看当前数据库中家族检测情况;当记录次数不少于K时,将元组中这些簇合并为一个簇N',并将集合S中所有的特征向量添加到簇N'中,查看当前数据库中家族检测情况。
4.根据权利要求1所述的基于增量DBSCAN算法的恶意代码家族检测方法,其特征在于,所述数据库在运行时进行初始化。
CN201611008309.0A 2016-11-16 2016-11-16 一种基于增量dbscan算法的恶意代码家族识别方法 Active CN106650443B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611008309.0A CN106650443B (zh) 2016-11-16 2016-11-16 一种基于增量dbscan算法的恶意代码家族识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611008309.0A CN106650443B (zh) 2016-11-16 2016-11-16 一种基于增量dbscan算法的恶意代码家族识别方法

Publications (2)

Publication Number Publication Date
CN106650443A CN106650443A (zh) 2017-05-10
CN106650443B true CN106650443B (zh) 2021-03-02

Family

ID=58806990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611008309.0A Active CN106650443B (zh) 2016-11-16 2016-11-16 一种基于增量dbscan算法的恶意代码家族识别方法

Country Status (1)

Country Link
CN (1) CN106650443B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829302B (zh) * 2018-12-28 2021-01-22 中国科学院信息工程研究所 Android恶意应用家族分类方法、装置与电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104751055A (zh) * 2013-12-31 2015-07-01 北京启明星辰信息安全技术有限公司 一种基于纹理的分布式恶意代码检测方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050089923A9 (en) * 2000-01-07 2005-04-28 Levinson Douglas A. Method and system for planning, performing, and assessing high-throughput screening of multicomponent chemical compositions and solid forms of compounds

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104751055A (zh) * 2013-12-31 2015-07-01 北京启明星辰信息安全技术有限公司 一种基于纹理的分布式恶意代码检测方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
恶意代码聚类中的特征选取研究;王毅等;《信息网络安全》;20161104;第2016年卷(第9期);摘要,第0-4节 *

Also Published As

Publication number Publication date
CN106650443A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
Du et al. Computer-aided plant species identification (CAPSI) based on leaf shape matching technique
CN111800430B (zh) 一种攻击团伙识别方法、装置、设备及介质
CA2865761C (en) Time series analytics
CN112732748B (zh) 一种基于自适应特征选择的非侵入式家电负荷识别方法
CN110493221B (zh) 一种基于聚簇轮廓的网络异常检测方法
JP6708043B2 (ja) データ検索プログラム、データ検索方法およびデータ検索装置
EP3905084A1 (en) Method and device for detecting malware
CN115600194A (zh) 一种基于XGBoost和LGBM的入侵检测方法、存储介质及设备
CN111488919A (zh) 目标识别方法及装置,电子设备以及计算机可读存储介质
CN109286622B (zh) 一种基于学习规则集的网络入侵检测方法
Wang et al. A Fast and Robust Ellipse‐Detection Method Based on Sorted Merging
CN114266046A (zh) 网络病毒的识别方法、装置、计算机设备及存储介质
CN106650443B (zh) 一种基于增量dbscan算法的恶意代码家族识别方法
CN111428064B (zh) 小面积指纹图像快速索引方法、装置、设备及存储介质
CN113987243A (zh) 一种图像聚档方法、图像聚档装置和计算机可读存储介质
CN115982722B (zh) 一种基于决策树的漏洞分类检测方法
CN112422546A (zh) 一种基于变邻域算法和模糊聚类的网络异常检测方法
CN116939661A (zh) Sim卡异常检测方法和系统、电子设备及存储介质
CN108108625B (zh) 基于格式异构的溢出漏洞检测方法、系统及存储介质
CN113742730B (zh) 恶意代码检测方法、系统及计算机可读存储介质
CN114266045A (zh) 网络病毒的识别方法、装置、计算机设备及存储介质
CN109739840A (zh) 数据空值处理方法、装置及终端设备
CN112163217B (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质
CN110135155B (zh) 一种基于模糊K近邻的Windows恶意软件识别方法
CN114048344A (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
GR01 Patent grant
GR01 Patent grant