CN111770053B - 一种基于改进的聚类与自相似性的恶意程序检测方法 - Google Patents
一种基于改进的聚类与自相似性的恶意程序检测方法 Download PDFInfo
- Publication number
- CN111770053B CN111770053B CN202010469345.7A CN202010469345A CN111770053B CN 111770053 B CN111770053 B CN 111770053B CN 202010469345 A CN202010469345 A CN 202010469345A CN 111770053 B CN111770053 B CN 111770053B
- Authority
- CN
- China
- Prior art keywords
- clustering
- malicious program
- malicious
- value
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于改进的聚类与自相似性的恶意程序检测方法,包括:对恶意程序集合,使用改进后的NIKClustering聚类算法来提取出恶意程序中的U2R类型的恶意程序;对利用缓冲区溢出漏洞的恶意程序进行分析,提取出相关特征共性;使用自相似性方法,计算出上述两个步骤提出集合的自相关函数值;提出RSS‑IKClustering算法,对面向缓冲区溢出的恶意程序进行检测;根据上述步骤进行实验测试,依据结果得到检测报告。
Description
技术领域
本发明属于网络流量安全检测领域,涉及一种基于改进的聚类与自相似性的恶意程序检测方法。
背景技术
近年来网络快速发展,给我们生活带来了许多便利,同时其中也充斥着各种漏洞,比如跨站脚本漏洞、SQL注入漏洞、HTTP报头追踪漏洞、私有IP地址泄露漏洞、缓冲区溢出漏洞、敏感信息泄露漏洞、URL重定向等,这些漏洞的出现,攻击者通过利用这些漏洞然后编写一些恶意程序,在网络中进行传输,对用户进行攻击,可能会导致硬盘破坏、系统崩溃、用户数据泄露、用户主机被劫持等一些重大安全隐患,而其中的缓冲区溢出漏洞被利用的概率非常高,所以说对网络流量中面向缓冲区溢出的恶意程序检测有重要意义。
虽然已有不少检测系统和平台出现,但是恶意程序依旧此消彼长,所以说对网络流量中恶意程序的检测是一个迫切的工作且会很有研究意义。到目前为止,已有不少学者对网络中存在的恶意程序进行研究。Ravi等人提出通过提取API调用序列,然后基于三阶马尔可夫链进行建模,相比其他的机器学习算法有更高的精度,而且通过删除冗余的规则,减少了生成规则的数量,实时的动态监视,调高了对恶意程序的检测效率。Chen等人提出以块方式计算各种统计和信息理论特征,量化字节级的文件内容,然后通过数据挖掘算法检测内容是否为恶意程序,实验证明具有较高的精度且优于其他方法。Iglesias等人分析了对于恶意程序的指数级增长导致签名数据库的激增情况,提出使用字符串签名,用以匹配恶意程序可能存在的变体,同时提出一个可伸缩的模型,基于启发式算法,实现对恶意程序的检查和识别,具有较低的漏报率。Bhuyan等人提出使用机器学习基于行为的恶意程序自动检测,在模拟环境中自动分析并生成行为报告,然后将这些报告预处理为稀疏向量模型,来进行分类检测,实验证明决策树获得了较好的总体性能,在漏报率和准确率上表现都不错。但是现有的一些方法其准确率和误报率不是很令人满意,为此提出本发明来解决上述的问题。
发明内容
基于现有技术在对网络流量中面向缓冲区溢出的恶意程序检测的研究较少,且一些方法的误报率和准确率不是很好,因此本发明提出了一种基于改进的聚类与自相似性的恶意程序检测方法来解决上述问题。
本发明提供了一种基于改进的聚类与自相似性的恶意程序检测方法,包括:
步骤1对恶意程序集合,使用改进后的NIKClustering聚类算法来提取出恶意程序中的 U2R类型的恶意程序;
步骤2对利用缓冲区溢出漏洞的恶意程序进行分析,提取出相关特征共性;
步骤3使用自相似性方法,计算出上述两个步骤提出集合的自相关函数值;
步骤4提出RSS-IKClustering算法,对面向缓冲区溢出的恶意程序进行检测;
步骤5根据上述步骤进行实验测试,依据结果得到检测报告。
第一方面,上述步骤1具体包括:
在现有K-MEANS算法的基础上,主要从以下两方面进行改进,一个是无法确定聚类个数的初始值,另一个是优化初始聚类中心的选择,从这两个角度出发来改进K-MEANS 算法。从确定聚类个数K值、优化初始聚类中心以及优化对象的归属三个方面提出了改进后的NIKClustering算法,借助该算法进行聚类分析,最终提取出恶意程序中的U2R类型的恶意程序。
第二方面,上述步骤2具体包括:
对利用缓冲区溢出漏洞的恶意程序进行分析,是完成对恶意程序检测的重要前提。利用缓冲区溢出漏洞的恶意程序,一般都会设置在返回地址出指向一段攻击代码,在运行该攻击代码之后,实现对用户的攻击。通过对许多面向缓冲区溢出漏洞的恶意程序研究发现,一般情况下,利用缓冲区溢出漏洞的恶意程序会有三个步骤,首先是可以定位到缓冲区的覆盖位置,其次是编写攻击代码,最后就是跳转到相应的位置去执行攻击代码。
第三方面,上述步骤3具体包括:
在检测出的U2R类型的恶意程序基础上,进一步进行检测,通过使用下述的自相似性方法,与下一节对利用了缓冲区溢出的恶意程序分析相结合,实现对网络流量中面向缓冲区溢出的恶意程序的检测。通过分析是否利用了缓冲区溢出的恶意程序的长相关性,将输出不同的Hurst值,来进行判断,进而来检测是否为利用了缓冲区溢出漏洞的恶意程序。而Hurst参数是对自相似性程度进行判断的唯一参数,通过在网络流量数据包中提出的恶意程序的特征集合和利用了缓冲区溢出漏洞的恶意程序分析的特征集合中使用自相似性,通过估算得到不同的Hurst参数值来实现对网络流量中面向缓冲区溢出的恶意程序的检测。
第四方面,上述RSS-IKClustering检测算法具体包括:通过借助上述方法,对提取到的恶意程序集合,首先使用改进后的NIKClustering算法进行聚类分析,接着分析现有的面向缓冲区溢出的恶意程序集合,获取其共有的特征属性,通过借助自相似性方法,计算聚类分析后得到的U2R类型的恶意程序集合与上述特征集合之间的自相关函数的值,从而得到RSS-IKClustering检测算法,完成网络流量中对面向缓冲区溢出的恶意程序检测。
改进后的NIKClustering算法进行聚类分析的具体过程为:
(4.1)确定聚类个数K值
首先尝试确定聚类个数的K值,在改进的聚类算法中,通过引入分类阈值,在处理不同数据包集合时,动态更新聚类个数K值,在对恶意程序数据包集合进行聚类分析时,给定一个阈值Fv,其值为对象到初始聚类中心的最大距离,然后计算其余各个对象距离聚类中心的距离,当大于设定的阈值时,我们就动态新增一个聚类中心,并将该对象归属于该聚类中心,具体的计算方法为其中,为上述K-MEANS算法中的欧式距离计算公式,其为样本点a1到an的n维的欧氏距离,取d(a,b)的最大值并开方作为Fv,该阈值也可以表示为某个簇的布局范围,如果某个对象距离聚类中心大于了给定的阈值,那么就需要给该数据选取新的聚类,从而更新聚类个数K值;
(4.2)优化初始聚类中心
在随机选取一些聚类中心之后,首先为了确保聚类结果的稳定性,便从优化初始簇之间的相似度出发,借助最远距离来优化初始聚类中心,具体的实现方式如下所示,选取任意两个数据对象ri和rj:
步骤4.2.1:计算ri和rj的欧式距离值;
步骤4.2.2:将求出的值进行排序;
步骤4.2.3:将ri和rj的之间欧式距离的最大值作为初始聚类中心;
步骤4.2.4:接着把剩余的对象继续计算距离对应的聚类中心的距离;
步骤4.2.5:把当前对象归属于最近的聚类中心,然后继续步骤四;
步骤4.2.6:当聚类中心不变后,停止聚类的距离计算,否则,继续执行步骤四;
(4.3)优化对象的归属
在传统的K-MEANS算法中,在每一次迭代过程中,通常是计算某个对象距离聚类中心的欧式距离,符合要求就归属该簇,不符合要求就得重新计算,为了更加精准的分类,提出归属方法,构造了误差平方和准则函数:
其中vij表示某个样本对象mj是否属于i类型,也就是归属度,当vij=1时,mj就是属于i类型,当vij为0时,mj就不是该i类型了,此时mj取值范围在0到1之间,t表示优化对象的加权指数,然后tvij就表示某一类型加权后的值,得到以自然指数e为底的值在对p个对象进行求和后,在此基础上进一步对k个求和值进一步求和,St则是各个样本对象到聚类中心的加权距离平方和,mj表示某个样本对象,ni是聚类中心,该聚类过程就是在计算各个样本对象的误差平方和准则函数,当St最小时,将该样本对象归属于该聚类中心。
第五方面,所述步骤具体5包括:
通过上述方法,使用公共数据集CAIDA进行测试,与现有的4种检测方法进行比较,观察它们的误报率和准确率,最终得到对应的检测报告。
本发明有益的效果是:
1.从确定聚类个数K值、优化初始聚类中心以及优化对象的归属三个方面得到改进后的NIKClustering算法,在得到的网络流量中的恶意程序数据集基础上,最后输出的是聚类后的集合,通过计算各个对象距离聚类中心的距离,并进行排序,然后不断进行比较,完成对聚类中心的优化,同时借助误差平方和准则函数来优化归属类簇,最终完成聚类分析。
2.对提取到的恶意程序集合,首先使用改进后的NIKClustering算法进行聚类分析,接着分析现有的面向缓冲区溢出的恶意程序集合,获取其共有的特征属性,通过借助自相似性方法,计算聚类分析后得到的U2R类型的恶意程序集合与上述特征集合之间的自相关函数的值,从而得到RSS-IKClustering检测算法,完成了网络流量中对面向缓冲区溢出的恶意程序检测。
3.对恶意程序完成聚类分析,得到U2R类型的恶意程序;对现有的面向缓冲区溢出的恶意程序进行特征分析,可以提取到特征共性;使用自相似性方法,依据自相关函数值和Hurst的值来判断自相似性;使用RSS-IKClustering检测算法判断是否有面向缓冲区溢出的恶意程序,相比现有方法,其误报率和准确率表现的更好,提升了网络安全。
附图说明
图1是被测数据集信息示意图;
图2是本发明的基于改进的聚类与自相似性的恶意程序检测方法流程图;
图3是聚类分析后的结果示意图;
图4RSS-IKClustering检测算法在CAIDA上检测准确率的比较示意图;
图5RSS-IKClustering检测算法在CAIDA上检测误报率的比较示意图。
具体实施方式
下面将结合附图进一步描述,具体的内容如下所示。
本发明的目的是针对网络流量中面向缓冲区溢出的恶意程序,提供一种基于改进的聚类与自相似性的恶意程序检测方法,提出了RSS-IKClustering检测算法判断是否有面向缓冲区溢出的恶意程序,并且进行了充分的实验,最终证明该方法是可行的且有效的。
如图2所示,本发明的基于改进的聚类与自相似性的恶意程序检测方法,包括:
步骤201,对恶意程序集合,使用改进后的NIKClustering聚类算法来提取出恶意程序中的U2R类型的恶意程序。
步骤202,对利用缓冲区溢出漏洞的恶意程序进行分析,提取出相关特征共性。
步骤203,使用自相似性方法,计算出上述两个步骤提出集合的自相关函数值,来判断自相似性。
步骤204,提出RSS-IKClustering算法,对面向缓冲区溢出的恶意程序进行检测。
步骤205,根据上述步骤进行实验测试,依据结果得到检测报告。
上述步骤201,具体的步骤如下所示:
(1)确定聚类个数K值
为了改善K-MEANS算法的分类性能,我们首先尝试确定聚类个数的K值,起初都是无法事先确定的,都是依据自己的经验或感知进行选取,所以最终的分类效果总是时好时坏。基于此,在改进的聚类算法中,通过引入分类阈值,在处理不同数据包集合时,动态更新聚类个数K值。在对恶意程序数据包集合进行聚类分析时,给定一个阈值Fv,其值为对象到初始聚类中心的最大距离,然后计算其余各个对象距离聚类中心的距离,当大于设定的阈值时,我们就动态新增一个聚类中心,并将该对象归属于该聚类中心,具体的计算方法为其中,为上述K-MEANS算法中的欧式距离计算公式,其为样本点a1到an的n维的欧氏距离,取d(a,b)的最大值并开方作为Fv,该阈值也可以表示为某个簇的布局范围,如果某个对象距离聚类中心大于了给定的阈值,那么就需要给该数据选取新的聚类,从而更新聚类个数K值。
(2)优化初始聚类中心
在随机选取一些聚类中心之后,之前的K-MEANS算法的分类性能不是很理想,随机选取的聚类中心将使得分类性能无法预测,因此本研究将尝试优化初始聚类中心来改善K-MEANS算法。首先为了确保聚类结果的稳定性,便从优化初始簇之间的相似度出发,借助最远距离来优化初始聚类中心。该方法可以使得不同的簇集是不相关的,同时使得同一个簇中是彼此相似的,最终避免了K-MEANS可能出现的一些问题。具体的实现方式如下所示,选取任意两个数据对象ri和rj:
步骤一:计算ri和rj的欧式距离值;
步骤二:将求出的值进行排序;
步骤三:将ri和rj的之间欧式距离的最大值作为初始聚类中心;
步骤四:接着把剩余的对象继续计算距离对应的聚类中心的距离;
步骤五:把当前对象归属于最近的聚类中心,然后继续步骤四;
步骤六:当聚类中心不变后,停止聚类的距离计算,否则,继续执行步骤四。
(3)优化对象的归属
在传统的K-MEANS算法中,在每一次迭代过程中,通常是计算某个对象距离聚类中心的欧式距离,符合要求就归属该簇,不符合要求就得重新计算,为了更加精准的分类,参考现有文献中提出的归属方法,构造了误差平方和准则函数:
其中vij表示某个样本对象mj是否属于i类型,也就是归属度,当vij=1时,mj就是属于 i类型,当vij为0时,mj就不是该i类型了,此时mj取值范围在0到1之间,t表示优化对象的加权指数,然后tvij就表示某一类型加权后的值,得到以自然指数e为底的值在对 p个对象进行求和后,在此基础上进一步对k个求和值进一步求和,St则是各个样本对象到聚类中心的加权距离平方和,mj表示某个样本对象,ni是聚类中心,该聚类过程就是在计算各个样本对象的误差平方和准则函数,当St最小时,将该样本对象归属于该聚类中心。
对于步骤202,利用缓冲区溢出漏洞的恶意程序进行分析,提取出相关特征共性,具体的步骤如下所示:
要想实现对缓冲区溢出漏洞的利用,通常需要能够精准定位缓冲区溢出漏洞的返回点,攻击者一般是不能准确的预估执行攻击代码的具体位置,通常会在返回点和溢出点之间预留一些没有实际应用而仅仅是存放占位指令的空间,这些指令被称为sledge,然后在空缺的位置使用NOP指令进行填充,这样攻击者可以利用多个字节指令来代替NOP,来逃避一些检测工具,通过进一步研究发现,正常的网络传输过程中,请求的数据包形成的连续指令都是比较短的,基本都是在五个字节以下,一般不会超过十个字节指令,而含有攻击代码的恶意程序,其有效指令的长度一般都是成百上千个字节长,因此,我们将把连续的有效指令作为面向缓冲区溢出漏洞的恶意程序的特征之间,基于此来进行相应的检测。还有就是,在对一些缓冲区溢出的恶意程序研究发现,通常会利用改写指针来实现控制流的重定向,进而跳转到攻击代码。在此过程中,ELF格式的文件通常会被利用,来改写全局偏移表、过程链接表以及析构函数段中的指针,进行相应指令跳转,以此来改变控制流程,因此选取指令的返回地址作为检测恶意程序的特征。最后就是,发现许多恶意程序中包含一些系统调用,比如利用loadLibrary函数装载库文件ntssy.dll文件等;使用system函数执行一些命令;利用strcat、 strlen、strcpy等函数进行字符串的一些操作,包含了这些函数调用的数据包中都会发生攻击行为,所以这也是一个检测特征。通过基于上述归纳出的一些攻击特征对面向缓冲区溢出漏洞的恶意程序进行检测,采用上一节提出的自相似性方法,进而完成对面向缓冲区溢出的恶意程序进行检测。
对于步骤203,使用自相似性方法,计算出上述两个步骤提出集合的自相关函数值,来判断自相似性,具体的步骤如下所示:
(1)自相似性的定义
对于协方差随机过程,假定其随机过程X(t),其表示在一定时间段内的网络流量的总量,对于随机过程α-HX(αt)和X(t)出现相同的有限维度分布时,也就是X(t)=α-HX(αt),那么称该过程是自相似的,参数α为尺度,参数H为自相似参数,该参数是指随机过程中相关性的指标,用来判断随机过程的长相关性。而长相关性是描述自相似过程的连续性,借助协方差函数来进行表示,当满足下述条件:
1)首先,一个平稳过程Xp和m都是已知的,自协方差函数是不可以累加的,那么就有,Xp和Xp+m的cov函数的和趋近于无穷大,其中m为距离p相近的一个对象,Xp+m是对应的平稳过程。
2)自协方差函数随着双曲线逐渐衰减,也就是满足当|m|→∞时,Xp和Xp+m的cov函数的值约等于|m|-ε,并且使得0<ε<1,则平稳过程Xp是长相关性的。在网络流量模型中,自相关函数都是可和的,也就是在0到无穷大,可以得到当数据特征距离越远,则其自相关性就越低,当超过某个范围,就会变成短相关的,也就是没有关联的。而在使用自相似进行归一化时,其自相关函数是不可和的,表明两个数据之间的相关性不会随着距离改变而改变,也就是说,现在存在着两个数据,尽管它们是相距比较远的,依旧存在相关性,也就是上面的长相关性。
同时,自相似性方法将侧重于时间离散的自相似序列,通过参考现有文献中的自相关性计算方法,然后我们假设c={ci,i∈Z+}是为平稳的随机序列,其中Ci为某一个平稳的随机序列,i为正整数,那么其对应的均值为Cn为n个平稳随机序列,方差为那么其自相关函数如下:
其中,Ci+p为第i+p个平稳随机序列,由此可以得到其自协方差函数为:
通过选取前s阶数据可以得到对应的聚集序列为由此可以得到,在每组前S阶数据中,聚集序列C(s)都是广义平稳的。在这个前提下,当s∈Z+,存在Hurst 指数H,其0<H<1,可得到C(s)=sH-1C在所有维度下都是成立的,将此c={ci,i∈Z+}称为严格自相似过程。当s∈Z+,存在Hurst指数H,其0<H<1,可得到C(s)~sH-1C在所有维度下都是成立的,则此c={ci,i∈Z+}称为渐近自相似过程。
由于网络流量中包含较多的特征属性,为了增强对缓冲区溢出的恶意程序的检测,本研究将在渐近自相似过程下进行。现有研究显示,真实的网络流量存在着自相似性,通过该种方法可以实现对面向缓冲区的恶意程序的检测。
(2)Hurst指数的估算
Hurst指数是衡量某个随机过程是否有自相似性的判别标准,依据该指数可以提取出相似度高的数据,本章就是借助其特性来检测网络流量中的面向缓冲区溢出漏洞的恶意程序。下面来阐述一些该指数与自相似性的关系,当该指数的值为0.5时,表名数据集是一个完全随机序列,彼此之间是没有关联的,如果该值0.5<H<1,则表明该数据集合是长相关的自相似性,并且会随着该值的增大而自相似性越来越高;相反,如果该值0<H<0.5,则之前相反的,波动性较大,没有自相似性,为了提高对恶意程序的检测效率,本研究将参考现有文献提出的小波分析法来选取高效且准确的Hurst指数。
小波分析法是将整个随机序列分为低频和高频两个部分,承担不同的角色,低频主要包含相似的一些数据,而高频则由其他数据构成,给出的具体估算过程如下:
对于随机序列Cn进行分解,则由下面的结果:
而其中,和前者是对尺度函数γ0做平移p和尺度变换Q得到的函数,后者是对小波函数ε0做平移p和尺度变换q得到的函数,而和都是可以内积得到,然后通过引入统计量系数θq:而np是指在尺度变换下的个数,通过对该序列Cn的研究,可以将其转换为对应的小波变换。现在假定Cn是自相似序列,那么其就存在幂率关系,然后通过两边取ln对数就可以得到ln(θq)=mq+c,其中m=2H+1,基于此,可以得到二阶对数尺度图,当该图形是一条直线,则该随机序列Cn时一个自相似过程,然后借助最小二乘法来求出斜率m,最后就可以借助公式m=2H+1求得随机序列Cn的Hurst的值。该方法估算效率比较高,同时所遇到的一些噪声和非平稳趋势都被小波系数所消除掉,因此有比较好的鲁棒性,正在被广泛运用。
通过上述方式可以完成对Hurst指数的估算,而Hurst指数是表明网络流量自相似性程度的重要衡量标准,本文提出使用此参数来判断网络流量的自相似性,进而检测出网络流量中属于U2R类型的缓冲区溢出漏洞的恶意程序,当Hurst指数越大,表明网络流量的恶意程序与缓冲区溢出漏洞的恶意程序特征的自相似程度越高,进而基于此,完成对面向缓冲区溢出恶意程序的检测。
对于步骤204,提出RSS-IKClustering算法,对面向缓冲区溢出的恶意程序进行检测,具体的步骤如下所示:
首先,通过引入分类阈值,来动态更新聚类个数K值,在对恶意程序数据包集合进行聚类分析时,给定一个阈值,然后计算其余各个对象距离聚类中心的距离,当大于设定的阈值时,就动态新增一个聚类中心,并将该对象归属于该聚类中心;接着从优化初始簇之间的相似度出发,借助最远距离来优化初始聚类中心,通过对计算的距离进行排序,然后选取最大距离作为初始聚类中心,不断计算对象到聚类中心的距离,直至聚类中心不变;借助各个样本对象的误差平方和准则函数来优化对象的归属,最终实现对第三章提取到恶意程序进行聚类分析,分离出U2R类型的恶意程序。然后,通过对现有的一些面向缓冲区溢出漏洞的恶意程序进行分析,提取出标志会跳转执行攻击代码的恶意程序的特征,在此基础上利用自相似性方法,也就是先计算自协方差函数的值,在渐近自相似过程下对网络流量进行分析,依据Hurst指数可以提取出相似度高的数据,最终实现检测网络流量中的面向缓冲区溢出漏洞的恶意程序。
对于步骤205,根据上述步骤进行实验测试,依据结果得到检测报告,具体的步骤如下所示:
对本研究提出的RSS-IKClustering算法的可行性进行验证,该算法主要是用来检测网络流量中面向缓冲区溢出的恶意程序。为了验证本章提出算法的可行性,将与现有的GOA-K-MEANS、SwordFuzzer、TaintScope、Dowser四种常用方法进行比较,被测数据集信息如图1所示,对于每组数据集,每个方法执行100次实验,然后取其平均值,最后得到对应的准确率和误报率,在此基础上,将使用本研究提出的NIKClustering算法进行聚类分析,该算法是对K-MEANS从确定聚类个数K值、优化初始聚类中心以及优化对象的归属三个方面进行改进得到的,使用该方法对网络流量中恶意程序集合进行聚类分析,聚类分析后的结果如图3所示,进而实现将数据集中识别出的恶意程序进一步划分为四种恶意程序类型,来提取出U2R类型的恶意程序,然后基于自相似性方法,计算自相关函数的值,然后结合现有的利用缓冲区溢出漏洞的恶意程序的特征,最终得到检测到的网络流量中面向缓冲区溢出漏洞的恶意程序集合。在此基础上,可以得到对应的检测报告。如图4和图5所示,在公共数据集CAIDA上,对五种方法在检测面向缓冲区溢出的恶意程序的准确率和误报率上作对比试验,本文提出的RSS-IKClustering算法在准确率和误报率上,依旧表现的很稳定,分别为96%和1.5%,同时随着检测数量的提升,该算法的检测性能依旧没变,而且所耗费的时间,相比其他方法也用的更少,因此,验证了本方法是有效且可行的。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (5)
1.一种基于改进的聚类与自相似性的恶意程序检测方法,其特征在于,包括:
步骤1对恶意程序集合,使用改进后的NIKClustering聚类算法来提取出恶意程序中的U2R类型的恶意程序;
步骤2对利用缓冲区溢出漏洞的恶意程序进行分析,提取出相关特征共性;
步骤3使用自相似性方法,计算出上述两个步骤提出集合的自相关函数值;
步骤4提出RSS-IKClustering算法,对面向缓冲区溢出的恶意程序进行检测;
步骤5根据上述步骤进行实验测试,依据结果得到检测报告;
所述RSS-IKClustering算法具体包括:
借助RSS-IKClustering算法,对提取到的恶意程序集合,首先使用改进后的NIKClustering算法进行聚类分析,接着分析现有的面向缓冲区溢出的恶意程序集合,获取其共有的特征属性,通过借助自相似性方法,计算聚类分析后得到的U2R类型的恶意程序集合与特征集合之间的自相关函数的值,从而得到RSS-IKClustering检测算法,完成网络流量中对面向缓冲区溢出的恶意程序检测;
改进后的NIKClustering算法进行聚类分析的具体过程为:
(4.1)确定聚类个数K值
首先尝试确定聚类个数的K值,在改进的聚类算法中,通过引入分类阈值,在处理不同数据包集合时,动态更新聚类个数K值,在对恶意程序数据包集合进行聚类分析时,给定一个阈值Fv,其值为对象到初始聚类中心的最大距离,然后计算其余各个对象距离聚类中心的距离,当大于设定的阈值时,动态新增一个聚类中心,并将该对象归属于该聚类中心,具体的计算方法为其中,为K-MEANS算法中的欧式距离计算公式,其为样本点a1到an的n维的欧氏距离,取d(a,b)的最大值并开方作为Fv,该阈值表示为某个簇的布局范围,如果某个对象距离聚类中心大于了给定的阈值,那么就需要给该数据选取新的聚类,从而更新聚类个数K值;
(4.2)优化初始聚类中心
在随机选取一些聚类中心之后,首先为了确保聚类结果的稳定性,便从优化初始簇之间的相似度出发,借助最远距离来优化初始聚类中心,具体的实现方式如下所示,选取任意两个数据对象ri和rj:
步骤4.2.1:计算ri和rj的欧式距离值;
步骤4.2.2:将求出的值进行排序;
步骤4.2.3:将ri和rj的之间欧式距离的最大值作为初始聚类中心;
步骤4.2.4:接着把剩余的对象继续计算距离对应的聚类中心的距离;
步骤4.2.5:把当前对象归属于最近的聚类中心,然后继续步骤四;
步骤4.2.6:当聚类中心不变后,停止聚类的距离计算,否则,继续执行步骤四;
(4.3)优化对象的归属
在传统的K-MEANS算法中,在每一次迭代过程中,通常是计算某个对象距离聚类中心的欧式距离,符合要求就归属该簇,不符合要求就得重新计算,为了更加精准的分类,提出归属方法,构造了误差平方和准则函数:
2.如权利要求1所述方法,其特征在于,所述步骤1具体包括:
在现有K-MEANS算法的基础上,主要从以下两方面进行改进,一个是无法确定聚类个数的初始值,另一个是优化初始聚类中心的选择,从这两个角度出发来改进K-MEANS算法;从确定聚类个数K值、优化初始聚类中心以及优化对象的归属三个方面提出了改进后的NIKClustering算法,借助该算法进行聚类分析,最终提取出恶意程序中的U2R类型的恶意程序。
3.如权利要求1所述方法,其特征在于,所述步骤2具体包括:
对利用缓冲区溢出漏洞的恶意程序进行分析,利用缓冲区溢出漏洞的恶意程序,一般都会设置在返回地址出指向一段攻击代码,在运行该攻击代码之后,实现对用户的攻击;通过对面向缓冲区溢出漏洞的恶意程序研究发现,利用缓冲区溢出漏洞的恶意程序会有三个步骤,首先是定位到缓冲区的覆盖位置,其次是编写攻击代码,最后就是跳转到相应的位置去执行攻击代码。
4.如权利要求1所述方法,其特征在于,所述步骤3具体包括:
在检测出的U2R类型的恶意程序基础上,进行检测,通过使用下述的自相似性方法,与对利用了缓冲区溢出的恶意程序分析相结合,实现对网络流量中面向缓冲区溢出的恶意程序的检测;通过分析是否利用了缓冲区溢出的恶意程序的长相关性,将输出不同的Hurst值,来进行判断,进而来检测是否为利用了缓冲区溢出漏洞的恶意程序;而Hurst参数是对自相似性程度进行判断的唯一参数,通过在网络流量数据包中提出的恶意程序的特征集合和利用了缓冲区溢出漏洞的恶意程序分析的特征集合中使用自相似性,通过估算得到不同的Hurst参数值来实现对网络流量中面向缓冲区溢出的恶意程序的检测。
5.如权利要求1所述方法,其特征在于,所述步骤具体5包括:使用公共数据集CAIDA进行测试,与现有的检测方法进行比较,观察它们的误报率和准确率,最终得到对应的检测报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010469345.7A CN111770053B (zh) | 2020-05-28 | 2020-05-28 | 一种基于改进的聚类与自相似性的恶意程序检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010469345.7A CN111770053B (zh) | 2020-05-28 | 2020-05-28 | 一种基于改进的聚类与自相似性的恶意程序检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111770053A CN111770053A (zh) | 2020-10-13 |
CN111770053B true CN111770053B (zh) | 2022-12-16 |
Family
ID=72719305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010469345.7A Active CN111770053B (zh) | 2020-05-28 | 2020-05-28 | 一种基于改进的聚类与自相似性的恶意程序检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111770053B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102491451B1 (ko) * | 2020-12-31 | 2023-01-27 | 주식회사 이스트시큐리티 | 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 |
CN114417964B (zh) * | 2021-12-10 | 2023-09-12 | 中国卫通集团股份有限公司 | 卫星运营商分类方法、装置及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604363B (zh) * | 2009-07-10 | 2011-11-16 | 珠海金山软件有限公司 | 基于文件指令频度的计算机恶意程序分类系统及分类方法 |
CN105893848A (zh) * | 2016-04-27 | 2016-08-24 | 南京邮电大学 | 一种基于代码行为相似度匹配的Android恶意应用程序防范方法 |
CN106294162B (zh) * | 2016-08-12 | 2019-03-05 | 江苏大学 | 一种基于数据挖掘的第三方构件安全性测试方法 |
CN107657175A (zh) * | 2017-09-15 | 2018-02-02 | 北京理工大学 | 一种基于图像特征描述子的恶意样本同源检测方法 |
CN108769001A (zh) * | 2018-04-11 | 2018-11-06 | 哈尔滨工程大学 | 基于网络行为特征聚类分析的恶意代码检测方法 |
CN109522926A (zh) * | 2018-09-28 | 2019-03-26 | 南京航空航天大学 | 基于信息熵聚类的异常检测方法 |
-
2020
- 2020-05-28 CN CN202010469345.7A patent/CN111770053B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111770053A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111199474B (zh) | 一种基于双方网络图数据的风险预测方法、装置和电子设备 | |
CN111222976B (zh) | 一种基于双方网络图数据的风险预测方法、装置和电子设备 | |
CN109218304B (zh) | 一种基于攻击图和协同进化的网络风险阻断方法 | |
CN111770053B (zh) | 一种基于改进的聚类与自相似性的恶意程序检测方法 | |
CN112615888B (zh) | 一种网络攻击行为的威胁评估方法及装置 | |
CN111552570B (zh) | 物联网数据处理资源的自适应分配方法及云计算服务器 | |
CN105072214A (zh) | 基于域名特征的c&c域名识别方法 | |
CN114238958A (zh) | 一种基于溯源聚类及图序列化的入侵检测方法及系统 | |
CN114490404A (zh) | 一种测试用例确定方法、装置、电子设备及存储介质 | |
CN115225336B (zh) | 一种面向网络环境的漏洞可利用性的计算方法及装置 | |
CN111400713A (zh) | 基于操作码邻接图特征的恶意软件族群分类方法 | |
CN114726823A (zh) | 一种基于生成对抗网络的域名生成方法、装置和设备 | |
CN117240632B (zh) | 一种基于知识图谱的攻击检测方法和系统 | |
CN106611191A (zh) | 基于不确定连续属性的决策树分类器构建方法 | |
CN113242213A (zh) | 一种电力通信骨干网节点脆弱性诊断方法 | |
CN116846612A (zh) | 攻击链补全方法、装置、电子设备及存储介质 | |
CN116595523A (zh) | 基于动态编排的多引擎文件检测方法、系统、设备及介质 | |
CN114201199B (zh) | 基于信息安全大数据的防护升级方法及信息安全系统 | |
CN114238992A (zh) | 基于信息安全大数据的威胁漏洞挖掘方法及信息安全系统 | |
CN113901456A (zh) | 一种用户行为安全性预测方法、装置、设备及介质 | |
CN110401639B (zh) | 网络访问的异常判定方法、装置、服务器及其存储介质 | |
CN109995663B (zh) | 基于长度约束和无重复路径的网络信息传播方法 | |
CN116226673B (zh) | 缓冲区漏洞识别模型的训练方法、漏洞检测方法及装置 | |
CN117195238B (zh) | 一种异构图神经网络代码漏洞检测方法 | |
CN115640577B (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 |