CN112054992B - 恶意流量识别方法、装置、电子设备及存储介质 - Google Patents
恶意流量识别方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112054992B CN112054992B CN202010740209.7A CN202010740209A CN112054992B CN 112054992 B CN112054992 B CN 112054992B CN 202010740209 A CN202010740209 A CN 202010740209A CN 112054992 B CN112054992 B CN 112054992B
- Authority
- CN
- China
- Prior art keywords
- malicious
- keyword
- stream
- specific
- flow
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- 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/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Evolutionary Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
Abstract
本发明实施例提供一种恶意流量识别方法,装置、电子设备及存储介质。所述方法包括:获取待识别流的有效载荷;通过分类器的公共识别部分对有效载荷进行识别,确定待识别流的目标类型为公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定待识别流对应的特定识别部分,其中,每一个恶意聚类流对应分类器中的一个特定识别部分;通过确定的特定识别部分对有效载荷进行识别,确定待识别流的类型为目标类型。本发明实施例通过公共识别部分确定待识别流的目标类型,再通过针对性识别目标类别的特定部分确定待识别流的恶意流量类型,有效提高识别效率,降低对硬件处理性能的依赖。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种恶意流量识别方法、装置、电子设备及存储介质。
背景技术
深度包检测除了对协议类型、源地址、目的地址、源端口和目的端口等进行解析外,还需要对应用层载荷的分析和识别。当数据经过检测点(如防火墙)时,对数据包的载荷部分进行检测,试图检测该数据包足否与应用协议标识匹配,是否包含病毒、垃圾信息、或恶意代码,据此决定数据包是允许通过、丢弃还是转发,并记录信息留作统计。
现有的深度包检测包括端口识别法、字符串匹配法、数值属性法、行为和启发式方法,但都是基于逐包检测、模式匹配,对于网络设备的性能提出很高的要求,对检测设备的处理能力要求较高,并且由于应用层协议的复杂多样,导致系统硬件的处理能力也在很大程度上影响该技术的效果;现有的BM字符串搜索算法(Boyer-Moore字符串搜索算法)中,在模式串移动过程中,有的字符可能已经进行了一次比较,而进入字符比较过程又会再进行一次比较,这样就出现了没必要的重复,降低了算法的性能。
因此,如何提出一种能降低硬件处理性能要求,且具有高识别效率的识别方法,成为亟需解决的问题。
发明内容
本发明实施例提供一种恶意流量识别方法、装置、电子设备及存储介质,用以解决现有技术中深度包检测性能要求高,识别效率低的缺陷,实现降低硬件处理性能要求,且具有高识别效率。
第一方面,本发明实施例提供一种恶意流量识别方法,包括:
获取待识别流的有效载荷;
通过分类器的公共识别部分对所述有效载荷进行识别,确定所述待识别流的目标类型为所述公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定所述待识别流对应的特定识别部分,其中,所述公共识别部分包括至少一个第一关键字,所述第一关键字是其对应的已知类型的恶意聚类流中首次出现的关键字,每一个所述恶意聚类流对应所述分类器中的一个特定识别部分;
通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,确定所述待识别流的类型为所述目标类型,其中,所述待识别流对应的特定识别部分包括至少一个特定关键字,所述特定关键字是所述目标类型对应的恶意聚类流中非首次出现的关键字。
根据本发明一个实施例的恶意流量识别方法,所述通过分类器的公共识别部分对所述有效载荷进行识别,包括:
获取所述分类器的公共识别部分中的第一关键字及各第一关键字分别对应的字节偏移范围;
对于每一个第一关键字,将其与所述有效载荷的公共输入部分的字节偏移范围内的字节,进行匹配,确定匹配成功的第一关键字对应的恶意聚类流的类型为所述目标类型,所述公共输入部分的字节偏移范围根据所述第一关键字对应的字节偏移范围确定,所述有效载荷的公共输入部分根据所述分类器中公共识别部分的所有关键字的最大偏移与最小偏移确定。
根据本发明一个实施例的恶意流量识别方法,所述通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,包括:
获取所述待识别流对应的特定识别部分的特定关键字及各特定关键字分别对应的字节偏移范围;
按照所述特定关键字在所述特定识别部分中的排列顺序,依次对每一个特定关键字,与所述有效载荷的剩余输入部分的字节偏移范围内的字节,进行匹配,所述字节偏移范围根据所述特定关键字对应的字节偏移范围确定。
根据本发明一个实施例的恶意流量识别方法,所述通过分类器的公共识别部分对所述有效载荷进行识别之前,包括:
获取恶意流样本;
对所述恶意流样本进行流重建;
在所述流重建后的恶意流样本中获取至少一个已知类型的所述恶意聚类流;
基于所述恶意聚类流的第一关键字和特定关键字生成分类器。
根据本发明一个实施例的恶意流量识别方法,所述基于所述恶意聚类流的第一关键字和特定关键字生成分类器,包括:
对于每个所述恶意聚类流,基于其有效负载生成对应的词频向量,以提取其第一关键字和特定关键字;
基于所有恶意聚类流的第一关键字和特定关键字生成分类器。
根据本发明一个实施例的恶意流量识别方法,所述基于所有恶意聚类流的第一关键字和特定关键字生成分类器,包括:
对于每一个恶意聚类流,获取其第一关键字及所述第一关键字的字节偏移范围;
基于所有恶意聚类流的所述第一关键字及对应的字节偏移范围,生成所述分类器的公共识别部分;
对于每一个恶意聚类流,基于其特定关键字及所有特定关键字分别对应的字节偏移范围,按照所述特定关键字在所述恶意聚类流中的出现顺序,生成分类器中所述恶意聚类流对应的特定识别部分。
根据本发明一个实施例的恶意流量识别方法,所述获取恶意流样本,包括:
获取已知类型的恶意流量数据集作为恶意流样本;或
从网络中获取通信数据包作为恶意流样本,相应地,所述在所述流重建后的恶意流样本中获取至少一个已知类型的所述恶意聚类流包括:对流重建后的所述通信数据包进行聚类分析,获取至少一个已知类型的所述恶意聚类流。
第二方面,本发明实施例提供一种恶意流量识别装置,包括:
获取模块,用于获取待识别流的有效载荷;
公共识别模块,用于通过分类器的公共识别部分对所述有效载荷进行识别,确定所述待识别流的目标类型为所述公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定所述待识别流对应的特定识别部分,其中,所述公共识别部分包括至少一个第一关键字,所述第一关键字是其对应的已知类型的恶意聚类流中首次出现的关键字,每一个所述恶意聚类流对应所述分类器中的一个特定识别部分;
特定识别模块,用于通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,确定所述待识别流的类型为所述目标类型,其中,所述待识别流对应的特定识别部分包括至少一个特定关键字,所述特定关键字是所述目标类型对应的恶意聚类流中非首次出现的关键字。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的恶意流量识别方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的恶意流量识别方法的步骤。
本发明实施例提供的恶意流量识别方法、装置、电子设备及存储介质,通过基于分类器的公共部分首先确定待识别流的目标类型,再通过分类器中针对性识别目标类别的特定部分确定待识别流的恶意流量类型,采用基于启发式的方法来实现签名匹配,达到次线性时间搜索复杂度。有效提高识别效率,降低对硬件处理性能的依赖。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术提供的一种静态包过滤方法的流程示意图;
图2是现有技术提供的一种BM模式匹配算法示意图;
图3是现有技术提供的一种BM模式匹配算法中坏字符规则示意图;
图4是现有技术提供的一种BM模式匹配算法中另一坏字符规则示意图;
图5是现有技术提供的一种BM模式匹配算法中好后缀规则示意图;
图6是现有技术提供的一种BM模式匹配算法中另一好后缀规则示意图;
图7是现有技术提供的一种BM模式匹配算法中又一好后缀规则示意图;
图8是本发明一实施例提供的恶意流量识别方法的流程示意图;
图9是本发明一实施例提供的公共识别部分匹配的流程示意图;
图10是本发明一实施例提供的分类器的关键字排列示意图;
图11是本发明一实施例提供的特定识别部分匹配的流程示意图;
图12是本发明另一实施例提供的恶意流量识别方法的流程示意图;
图13是本发明一实施例提供的恶意流量识别装置的结构示意图;
图14是本发明另一实施例提供的恶意流量识别装置的结构示意图;
图15是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
深度包检测DPI(Deep packet inspection,深度数据包检测)指通过硬件设备和技术检测数据包的有用载荷,而不是简单的检测数据包的头部。所谓“深度”是和普通报文检测的分析层次相比较而言的,“普通包检测”仅分析数据包的四层以下的内容,包括协议类型、源地址、目的地址、源端口和目的端口等,而深度包检测除了对前面所述的内容进行解析外,还增添了对应用层载荷的分析和识别。
图1是现有技术提供的一种静态包过滤方法的流程示意图,如图1所述,普通的静态包过滤技术仅仅检测到IP(Internet protocol,网络协议)层的包头,状态检测技术则更多的需要依赖于对传输层包头的解析,而深度包检测技术则是除了对每层的数据包头部进行理解之外,还需重点的对应用层的数据载荷进行检测。
DPI可以用几种可能的分析方法来识别和分类数据流量,这些方法包括端口识别法、字符串匹配法、数值属性法、行为和启发式方法。
通过端口分析可能是最简单、最广为人知的特征签名分析形式。这种方法只是利用一个简单的事实,即许多应用程序都使用的默认端口或根据一些特定方式选择的端口一个典型的例子是用于电子邮件应用程序的协议。
然而,这实际上也是一个弱点,因为通过端口来识别检测应用程序很容易,许多当前应用程序可以轻易把自己伪装成其他应用程序。最经典的例子是端口综合症,许多应用程序都利用端口把自己伪装成“纯粹”的流量。
深度包检测技术从作用上能够划分为三个部分:协议还原,模式匹配,数据包操作。其中,模式匹配过程是按照预设的模式特征集合对网络协议各个层还原层传递过来的数据配对并将配对结果提交到更上层协议再执行对应操作,因此一个性能优异的匹配算法会显著提高系统性能。而按照匹配依据的不同,把匹配算法分为基于前缀搜索、后缀搜索、子串搜索的三大类匹配算法。
BM模式匹配算法是一种经典的后缀匹配算法,于上世纪七十年代末产生。该算法是执行速度最快的模式匹配算法之一,是大多数深度包检测系统的首选。
为了使模式串更快更大距离的右移,算法引入了两个规则即好后缀规则和坏字符规则。图2是现有技术提供的一种BM模式匹配算法示意图,好后缀和坏字符的含义如图2所示,当字符出现不匹配时,通过这两个规则将模式串最大限度的右移,接着继续进行下一次模式串匹配,直到文本串匹配结束为止。
坏字符是指在字符串从右向左的匹配过程中,出现不匹配时文本串中的字符;好后缀则是指出现不匹配时,已经匹配好的字符串。坏字符规则可以分为两种情况:
图3是现有技术提供的一种BM模式匹配算法中坏字符规则示意图,如图3所示,坏字符规则中的一种是坏字符没出现在模式串中,这时可以把模式串移动到文本串中坏字符的下一个字符,继续比较。
图4是现有技术提供的一种BM模式匹配算法中另一坏字符规则示意图,如图4所示,坏字符规则中的另一种是坏字符出现在模式串中,这时可以把模式串前部最右边出现的坏字符和文本串的坏字符对齐。
好后缀规则可以分为三种情况:
图5是现有技术提供的一种BM模式匹配算法中好后缀规则示意图,如图5所示,第一种好后缀规则是在模式串中存在子串与好后缀相匹配,此时应通过右移模式串,使该子串与好后缀相对齐,如果超过一个子串匹配上好后缀,则选择最靠左边的子串对齐。
图6是现有技术提供的一种BM模式匹配算法中另一好后缀规则示意图,如图6所示,第一种好后缀规则是在模式串中不存在子串与好后缀相匹配,那么此时需要在模式串寻找一个最长的前缀,并让它等于好后缀的后缀,然后右移模式串使该前缀和好后缀相对齐。
图7是现有技术提供的一种BM模式匹配算法中又一好后缀规则示意图,如图7所示,第一种好后缀规则是在模式串中不存在子串与好后缀相匹配,并且在模式串中找不到任何前缀,使它等于好后缀的后缀。此时,直接右移模式串到好后缀的下一个字符。
BM算法的预处理阶段需要计算坏字符跳转表和好后缀跳转表,因此其时间复杂度为O(m+r),空间复杂度也为O(m+r)。其中,r为与模式串P、文本串T中字符集合的元素个数相关的参数。而在字符串匹配阶段,最坏情况下该算法的时间复杂度为O(mn),最好情况下的时间复杂度为O(n/m)。
为了克服现有技术中存在的缺陷,本发明各实施例中,针对恶意流量分类,提出了一种高效的关键字匹配算法,从网络中抓取实时通信数据,对数据包进行从链路层到应用层的深度解析。且仅需要扫描有效载荷一次,避免了不必要的重复扫描。
图8是本发明一实施例提供的恶意流量识别方法的流程示意图,如图8所示,该方法包括如下步骤:
步骤800,获取待识别流的有效载荷;
具体地,由于深度包检测DPI是对应用层载荷的分析和识别,因此在恶意流量识别前,可以首先获取待识别流的有效载荷。
步骤801,通过分类器的公共识别部分对所述有效载荷进行识别,确定所述待识别流的目标类型为所述公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定所述待识别流对应的特定识别部分,其中,所述公共识别部分包括至少一个第一关键字,所述第一关键字是其对应的已知类型的恶意聚类流中首次出现的关键字,每一个所述恶意聚类流对应所述分类器中的一个特定识别部分;
具体地,首先将获取的待识别流的有效载荷输入分类器的公共识别部分,与公共识别部分中的第一关键词进行匹配,确定匹配成功的第一关键词对应的恶意聚类流,可以理解的是,恶意聚类流是已知类型的聚类流,每一恶意聚类流中首次出现的关键词为第一关键词,所有恶意聚类流的第一关键词共同构成了公共识别部分。
本实施例中,在确定了匹配成功的第一关键词对应的恶意聚类流后,即可确定待识别流的目标类型为匹配成功的第一关键词对应的恶意聚类流的类型,在确定了待识别流的目标类型后,即可确定分类器中用于特定识别待识别流的特定识别部分。可以理解的是,本实施例中,每一恶意聚类流对应分类器中的一个特定识别部分,因此确定了待识别流的目标类型为某一恶意聚类流后,即可确定分类器中用于特定识别待识别流的特定识别部分是这一恶意聚类流对应的特定识别部分。
可以理解的是,本实施例中,第一关键词是目标类型对应的恶意聚类流中首次出现的关键字。
步骤802,通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,确定所述待识别流的类型为所述目标类型,其中,所述待识别流对应的特定识别部分包括至少一个特定关键字,所述特定关键字是所述目标类型对应的恶意聚类流中非首次出现的关键字。
具体地,在确定了分类器中用于特定识别待识别流的特定识别部分后,即可采用这一特定识别部分针对性地识别待识别流。
具体在采用特定识别部分针对性地识别待识别流的有效载荷时,将特定识别部分中的所有特定关键词依次与有效载荷进行匹配,匹配成功即可确定待识别流的类型为目标类型。
可以理解的是,本实施例中,特定关键词是目标类型对应的恶意聚类流中非首次出现的关键字。
本发明实施例提供的恶意流量识别方法,通过基于分类器的公共部分首先确定待识别流的目标类型,再通过分类器中针对性识别目标类别的特定部分确定待识别流的恶意流量类型,采用基于启发式的方法来实现签名匹配,达到次线性时间搜索复杂度。有效提高识别效率,降低对硬件处理性能的依赖。
可选地,在上述各实施例的基础上,所述通过分类器的公共识别部分对所述有效载荷进行识别,包括:
获取所述分类器的公共识别部分中的第一关键字及各第一关键字分别对应的字节偏移范围;
具体地,在通过分类器的公共识别部分的第一关键词与所述有效载荷进行匹配之前,首先可以获取分类器的公共识别部分中的所有第一关键字,同时还要获得每个第一关键字对应的字节偏移范围。
对于每一个第一关键字,将其与所述有效载荷的公共输入部分的字节偏移范围内的字节,进行匹配,确定匹配成功的第一关键字对应的恶意聚类流的类型为所述目标类型,所述公共输入部分的字节偏移范围根据所述第一关键字对应的字节偏移范围确定,所述有效载荷的公共输入部分可以根据所述分类器中公共识别部分的所有第一关键字的最大偏移与最小偏移确定。
具体地,在通过分类器的公共识别部分的第一关键词与所述有效载荷进行匹配时,由于公共识别部分中包括至少一个第一关键词,因此有效载荷的公共输入部分与所有的第一关键词依次进行匹配,要匹配到其中至少一个关键词,才可认为公共部分匹配成功,从而确定待识别流匹配成功的第一关键词对应的恶意聚类流,最后确定待识别流的类型为此恶意聚类流的类型。
可以理解的是,本实施例中,在有效载荷输入进分类器中公共识别部分时,只需要输入公共输入部分,其中公共输入部分的字节范围是分类器中公共识别部分的所有关键字的最大偏移与最小偏移所组成的范围,即可保证有效载荷中所有可能出现第一关键词的位置均可以被匹配得到,同时由于减少输入,仅在固定字节偏移范围进行匹配,提高了匹配的效率。
例如,提取待识别流有效载荷的前K个字节作为分类器FSM(Finite StateMachine,有限状态机)的输入。可以理解的是,K值为预设值,如果大部分的数据流都很大,可以将K值定的大一些,如果数据流很小,就可以将K值定的小一些。
在提取的K个字节中,可以将开始的前n个字节(n<K)将作为公共识别部分FSM的输入,用于定位潜在的特定识别部分,即和公共识别部分进行匹配。
其中,n的值是通过考虑每种恶意流量的第一个关键字的偏移值,并从中选择最大值来确定的。比如来自所有恶意聚类流的第一个关键字的最大偏移量为50字节,则可以选择50字节用于初始的流量筛选。如果在负载的初始n字节中有发现任何关键字(所有恶意流量的第一个关键字),则后续字符串匹配将与该恶意流量的其他相关关键字进行匹配,否则该待识别流将被标记为未分类。
可以理解的是,在有效载荷与所有的第一关键词依次进行匹配时,对于每一个第一关键词,要获取该第一关键词的字节偏移范围,进而确定有效载荷的公共输入部分中要与第一关键词进行匹配的字节偏移范围,可以理解的是,有效载荷中要与第一关键词进行匹配的字节偏移范围与该第一关键词的字节偏移范围相同,即可保证识别结果的准确性。
图9是本发明一实施例提供的公共识别部分匹配的流程示意图,如图9所示,实线表示状态转换,虚线表示失败转换。本实施例构建图9所示的状态转换机,可以基于有效载荷的几个初始字节,快速过滤恶意流量来加快搜索的过程。
例如,一个有效载荷的公共输入部分输入此公共识别部分,从状态0至状态1,匹配成功A,然后从状态1至状态2,匹配成功B,从状态2至状态3,匹配成功C则认为这一有效载荷的目标类型是第一关键词为“ABC”的恶意聚类流的类型,本实施例通过考虑前几个初始字节,使用触发特定于恶意流量的关键字搜索,减少输入,提高识别效率。
可选地,在上述各实施例的基础上,所述通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,包括:
获取所述待识别流对应的特定识别部分的特定关键字及各特定关键字分别对应的字节偏移范围;
具体地,在通过分类器的特定识别部分的特定关键词与所述有效载荷进行匹配之前,首先可以获取分类器的特定识别部分中所有的特定关键词,同时还要获得每个特定关键字对应的字节偏移范围。
按照所述特定关键字在所述特定识别部分中的排列顺序,依次对每一个特定关键字,与所述有效载荷的剩余输入部分的字节偏移范围内的字节,进行匹配,所述字节偏移范围根据所述特定关键字对应的字节偏移范围确定。
具体地,在通过分类器的特定识别部分的特定关键词与所述有效载荷进行匹配时,由于特定识别部分中包括至少一个特定关键词,且所有特定关键词在特定识别部分中按出现的位置顺序进行排列,因此有效载荷的剩余输入部分与所有的特定关键词按照特定关键词的排列顺序,依次进行匹配,要在每一个关键词对应的字节偏移范围中匹配到这一关键词,且与所有关键词成功匹配,才可认为特定部分匹配成功,从而确定待识别流的目标类型为待识别流实际的恶意流量类型。
可以理解的是,本实施例中,在有效载荷输入进分类器中特定识别部分时,只需要输入剩余输入部分,由于减少了输入,且匹配时仅在每一特定关键字对应的字节偏移范围进行匹配,其他部分的字节忽略,提高了匹配的效率,降低硬件处理性能要求。
例如,若某一恶意流量X的第一个关键字为“FTP”,对应的字节偏移范围是1-30字节,且待识别流已经匹配到了恶意流X的第一个关键字。则待识别流很可能为恶意流X,接下来用恶意流X的剩余关键字(特定识别部分)与待识别流进行匹配,若恶意流X的第二个关键字的便宜范围为110-130,则偏移范围为31到109之间的字节就不用于字符串比较,匹配方式也适用于其他关键字,实现了算法的次线性搜索的复杂度。
可以理解的是,在有效载荷依次与特定关键词依次进行匹配时,对于每一个特定关键词,要获取该特定关键词的字节偏移范围,进而确定有效载荷的剩余输入部分中要与特定关键词进行匹配的字节偏移范围,可以理解的是,有效载荷中要与该特定关键词进行匹配的字节偏移范围与该特定关键词的字节偏移范围相同,即可保证识别结果的准确性。
本实施例中,特定识别部分由关键词的剩余部分即特定关键词,即从第二个关键词开始的关键词,和各特定关键词分别对应的字节偏移值生成,并且为单个恶意流量生成特定识别部分FSM。通过使用字节偏移量和关键字出现顺序排列有助于跳过一定数量的不必要的字符串比较,并有助于实现基于有效负载长度的次线性的搜索复杂度。
值得注意的是,公共识别部分FSM的边被标记为字节值关键字中的每个字符,在特定关键词部分的匹配过程中,FSM的边被标记为关键字,而不是每个字符字节。因此,对于这个FSM的每一次状态转换,都会按照后面的关键字描述进行多次字符串比较。
图10是本发明一实施例提供的分类器的关键字排列示意图,如图10所示,列举了N类恶意流量,即对于N个恶意聚类流,对于每一个恶意聚类流,均有关键字1即第一关键词及其字节偏移,用于生成公共识别部分,后续对于每一恶意聚类流,还排列有关键字2至关键字4及各自的字节偏移。
根据图10可知,前述待识别流的公共输入部分匹配成功的模式“ABC”出现在恶意流量2中,因此可以使用剩余的有效载荷只搜索恶意流量2的关键字,从而实现基于单次扫描有效载荷的分类。
可以理解的是,对于前述公共识别部分匹配成功“ABC”的待识别流,是在通过公共识别部分在字节偏移在1-50的范围内匹配成功“ABC”,即认为其目标类型为恶意流量2;
图11是本发明一实施例提供的特定识别部分匹配的流程示意图,如图11所示,在确定前述待识别流目标类型为恶意流量2后,可以将这一待识别流的剩余部分与恶意聚类流2的特定识别部分进行匹配,首先在字节偏移范围100-120之间匹配“XY”,若匹配成功,则继续在字节偏移200-220之间匹配“JK”,以此类推,直至匹配完恶意聚类流2的所有特定关键词,其中若有任一匹配过程匹配失败,则可以认为该待识别流并不是恶意流量类型2,且若其公共识别部分匹配过程中没有其他匹配成功的第一关键词,则可以认为该待识别流不是恶意流量;若其公共识别部分还有匹配成功了其他第一关键词,则将待识别流输入其他第一关键词对应的恶意聚类流对应的特定识别部分进行关键词的匹配。
需要说明的是,如果在有效载荷与公共识别部分匹配时,发现多个模式相匹配,则搜索所有相关的类别的签名。例如,模式“AB”和模式“ABC”有重叠,如果发现“ABC”,也会发现模式“AB”。而模式“AB”和“ABC”分别属于恶意流量1和恶意流量2,可以使用恶意流量1和恶意流量2的所有关键字(带字节偏移)均搜索有效载荷的其余部分,即使用使用恶意流量1和恶意流量2对应的特定识别部分均对有效载荷的剩余输入部分进行匹配。
本实施例中,针对现有的基于DPI的恶意流量分类技术会对有效负载进行多次扫描以进行分类:第一次扫描提取单词,第二次扫描将单词与签名进行匹配的缺陷,提出了一种基于流量有效载荷单扫描的恶意流量分类方法,利用启发式方法实现了次线性搜索复杂度。通过扫描有效负载的几个初始字节,可以快速识别目标类型对应的潜在的恶意聚类流对应的特定识别部分,以便与负载进行比较,并且与现有技术中其他的方法相比,例如在每个测试负载中搜索每个签名的每个关键字,可以极大地减少搜索开销,提高性能;且进一步加强了网络安全。进行包内容逐级检测识别,筛查过滤恶意流量。通过使用多种分析检测技术,根据预先配置好的恶意流量签名,以及源地址合法性过滤、异常报文过滤、协议分析过滤等多层过滤技术,对数据流量进行层层过滤的逐级精准筛查,以防御恶意流量威胁为驱动,从流量内容层面出发,构建恶意流量内容就近识别机制,消除网络中的非法匿名流。
可选地,在上述各实施例的基础上,所述通过分类器的公共识别部分对所述有效载荷进行识别之前,包括:
获取恶意流样本;
具体地,本实施例中,对恶意流量的识别实际上分为两个阶段,第一阶段,使用第一关键字和特定关键字生成可以特定于某种类型流量的分类器;第二阶段,使用这些分类器来识别恶意流量。因此,在通过分类器对有效载荷进行识别之前,可以首先从恶意流量网络流中提取有效负载内容,建立一个分类器。
本实施例中,在建立分类器时,首先获取用于建立分类器的恶意流样本,可以理解的是,获取到的恶意流样本可以是已知恶意流类型的,也可以是未知类型的。
对所述恶意流样本进行流重建;
具体地,获取恶意流样本后要对恶意流样本进行流重建;本实施例中的分类器对属于不同类型的恶意流进行分类,因此需要对网络数据包进行处理,进行单向或者双向流的重建。可以理解的是,本实施例中,属于同一流的数据包共有五个属性(源IP地址、目标IP地址、源端口号、目标端口号和第四层协议TCP(Transmission Control Protocol,传输控制协议)/UDP(User Datagram Protocol,用户数据报协议))。属于同一会话即双向流的数据包源、目的IP地址互换,其他三个属性相同。
在所述流重建后的恶意流样本中获取至少一个已知类型的所述恶意聚类流;
具体地,在对所述恶意流样本进行流重建以后,可以基于流相似性聚类,将相似的流分组或者聚类到同一个簇,可以获得至少一个已知类型的恶意聚类流。
基于所述恶意聚类流的第一关键字和特定关键字生成分类器。
具体地,本实施例中,在获得了至少一个已知类型的恶意聚类流后,为了可以基于恶意聚类流的第一关键字和特定关键字生成分类器,首先可以选取关键字。
具体地,在本实施例中,在选取关键字时,首先可以从每个恶意聚类流的有效负载中提取单词。可以通过基于各种分隔符(如空格、新行字符等)解析有效载荷来实现的,对于每一个恶意聚类流,提取其中的高频词,可以理解的是,本实施例中,对于每一个恶意聚类流,可以根据出现次数对其所有词进行排序,选取出现次数排在前面的词作为高频词,选取排序后的前百分之五十的词作为高频词。
确定高频词后,可以选择若干个高频词及其在有效负载中的字节偏移值,作为关键字,比如首次出现的关键字为用于建立分类器公共识别部分的第一关键字,后面出现的关键字为用于建立分类器特定识别部分的特定关键字,以用于生成分类器识别恶意流量。可以理解的是,这些关键字在生成分类器时,按照它们在有效负载中出现的顺序排列,以使匹配过程中更便于依次与各关键词进行匹配。
存在一种应用场景,即所获取的恶意流样本未带标签,获取其中已知类型的所述恶意聚类流前,需要先对流进行预处理工作,获取其中已知类型的所述恶意聚类流时,首先需要建立一个词典,将所有流中的词去重后合并,得到一个单词集合。可根据需要,设置停用词。将剩下的单词映射为一个标签,用于表示文本内容。如数字映射为[D1、D2、D3、…、Di],单词映射为[S1、S2、S3、…、Sj]。最后得到一个能够代表这一份数据的特征空间[D1,D2,D3,…S1,S2,S3…]。对每一个输入流进行映射操作,最后得到一个n×m的矩阵,其中,n为流个数,m为向量空间维度(词个数)。随后,依次对特征矩阵中的所有元素进行TF-IDF(term frequency–inverse document frequency,词频-逆文档频率)加权处理。最后,得到最新的特征矩阵X'nm,便可以开始使用如K均值聚类算法K-means等对流进行聚类。其中,K值可以选择恶意流量种类个数。具体实施过程中,在计算各个流(不同行向量)之间距离时,可以选择传统欧氏距离计算方法,也可以选择余弦距离等。
在对各种恶意流量进行聚类后,从每种聚类流量中提取出常出现的高频词,将其作为关键词的候选。根据实际需要,从高频词中选择出关键词及其有效负载中的字节偏移值作为分类依据。需要注意的是,这些关键词将按照它们在有效负载中出现的顺序排列,并随后用于生成针对每一类恶意流量特定的分类器。
选择各种类型恶意聚类流的第一个关键词及其字节偏移值作为分类器的公共识别部分。剩余的特定关键字及其字节偏移值作为恶意流量特定识别部分,并用于后续分析。在构建好各种恶意流量的分类器后便可以对输入的待识别流进行分类。
可选地,在上述各实施例的基础上,所述基于所述恶意聚类流的第一关键字和特定关键字生成分类器,包括:
对于每个所述恶意聚类流,基于其有效负载生成对应的词频向量,以提取其第一关键字和特定关键字;
基于所有恶意聚类流的第一关键字和特定关键字生成分类器。
具体地,在获取每一个恶意聚类流的高频词时,对于每一个恶意聚类流,可以生成一个词频向量,然后根据该向量提取出该恶意聚类流中的高频词,并从中确定该恶意聚类流的第一关键字和特定关键字。
在确定所有恶意聚类流的第一关键字和特定关键字后,可以基于恶意聚类流的第一关键字和特定关键字,建立分类器。
可选地,在上述各实施例的基础上,所述基于所有恶意聚类流的第一关键字和特定关键字生成分类器,包括:
对于每一个恶意聚类流,获取其第一关键字及所述第一关键字的字节偏移范围;
具体地,在生成分类器时,可以首先建立分类器的公共识别部分,因此对于每一个恶意聚类流,可以首先获取其用于建立分类器公共识别部分的第一关键字及第一关键字的字节偏移范围;
基于所有恶意聚类流的所述第一关键字及对应的字节偏移范围,生成所述分类器的公共识别部分;
具体地,在获取所有的恶意聚类流的第一关键字及对应的字节偏移范围后,可以基于所有第一关键字及对应的字节偏移范围直接生成分类器的公共识别部分。
对于每一个恶意聚类流,基于其特定关键字及所有特定关键字分别对应的字节偏移范围,按照所述特定关键字在所述恶意聚类流中的出现顺序,生成分类器中所述恶意聚类流对应的特定识别部分。
具体地,在利用所有恶意聚类流的第一关键字及对应的字节偏移范围生成公共识别部分后,对于每一个恶意聚类流,还剩余至少一个非首次出现的关键字,即特定关键字,即可以基于该恶意聚类流的特定关键字及所有特定关键字分别对应的字节偏移范围,生成分类器中该恶意聚类流对应的特定识别部分,即特定用于识别该恶意聚类流的类型的部分。
本实施例中,生成的分类器被表示为状态转换机,不同于其他传统算法,本实施例生成的分类器分为两部分即公共识别部分和特定识别部分进行生成,再进行匹配操作时,可以仅需扫描一次有效载荷就可实现分类。可以理解的是,第一部分即公共识别部分是由每个恶意流量的第一个关键字生成的公共有限状态机FSM(Finite State Machine,有限状态机),第二部分即特定识别部分是每一类恶意流量特定部分。
可以理解的是,本实施例中,一个恶意聚类流的所有特定关键字在该恶意聚类流对应的特定识别部分中,按照它们在有效负载中出现的顺序排列。
可选地,在上述各实施例的基础上,所述获取恶意流样本,包括:
获取已知类型的恶意流量数据集作为恶意流样本;
具体地,用于生成分类器的恶意流样本可以是已知的公开的恶意流数据集,相应地,在后续获取恶意聚类流的过程中,可以十分方便,每一类恶意流量组成一个恶意聚类流即可,该数据集中出现的恶意流量类型与恶意聚类流一一对应。
或从网络中获取通信数据包作为恶意流样本,相应地,所述在所述流重建后的恶意流样本中获取至少一个已知类型的所述恶意聚类流包括:对流重建后的所述通信数据包进行聚类分析,获取至少一个已知类型的所述恶意聚类流。
具体地,本实施例中,用于生成分类器的恶意流样本还可以是从网络中获取通信数据包,可以理解的是,从网络中抓取的通信数据包是无法直接获得其流量类型的,因此,如若事先不知道流的标签,可以需要根据数据包内容,使用如K-means或者DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基于密度的聚类算法)等算法对数据包进行聚类分析,半自动化生成签名,其中相似的流被分组/聚类到同一个簇,每一类恶意流量组成一个恶意聚类流即可,该数据集中出现的恶意流量类型与恶意聚类流一一对应。为此,需要先对数据包进行预处理,将其词进行TF-IDF(词频-逆文档频率)加权,随后用聚类算法对这些流进行聚类。
本发明实施例提供的恶意流量识别方法,通过基于分类器的公共部分首先确定待识别流的目标类型,再通过分类器中针对性识别目标类别的特定部分确定待识别流的恶意流量类型,采用基于启发式的方法来实现签名匹配,达到次线性时间搜索复杂度。有效提高识别效率,降低对硬件处理性能的依赖。
图12是本发明另一实施例提供的恶意流量识别方法的流程示意图,如图12所示,该方法包括如下步骤:
步骤1200,获取恶意流样本;
具体地,首先获取用于建立分类器的恶意流样本。
步骤1201,流重建;
具体地,获取恶意流样本后要对恶意流样本进行流重建;本实施例中的分类器对属于不同类型的恶意流进行分类,因此需要对网络数据包进行处理,进行单向或者双向流的重建。
步骤1202,获取已知类型的恶意聚类流;
具体地,在对恶意流样本进行流重建以后,可以基于流相似性聚类,将相似的流分组或者聚类到同一个簇,可以获得至少一个已知类型的恶意聚类流;例如可以使用如K-means或者DBSCAN等算法对数据包进行聚类分析,本实施例对具体聚类方式不做限定,任何可以实现获得恶意聚类流的方式均可以应用于本实施例。
步骤1203,获取第一关键字和特定关键字;
具体地,在获取每一个恶意聚类流的高频词时,对于每一个恶意聚类流,可以生成一个词频向量,然后根据该向量提取出该恶意聚类流中的高频词,并从中确定该恶意聚类流的第一关键字和特定关键字。
步骤1204,建立分类器的公共识别部分;
具体地,对于每一个恶意聚类流,可以首先获取其用于建立分类器公共识别部分的第一关键字及第一关键字的字节偏移范围;基于所有恶意聚类流的所述第一关键字及对应的字节偏移范围,生成分类器的公共识别部分;
步骤1205,建立分类器的特定识别部分;
具体地,在利用所有恶意聚类流的第一关键字及对应的字节偏移范围生成公共识别部分后,对于每一个恶意聚类流,还剩余至少一个非首次出现的关键字,即特定关键字,即可以基于该恶意聚类流的特定关键字及所有特定关键字分别对应的字节偏移范围,按照特定关键字在有效负载中出现的顺序排列,生成分类器中该恶意聚类流对应的特定识别部分,即特定用于识别该恶意聚类流的类型的部分。
步骤1206,公共识别部分匹配;
具体地,由于深度包检测DPI是对应用层载荷的分析和识别,因此在恶意流量识别前,可以首先获取待识别流的有效载荷;任何将获取的有效载荷的公共输入部分输入分类器的公共识别部分,与公共识别部分中的第一关键词进行匹配,确定匹配成功的第一关键词对应的恶意聚类流,即可确定待识别流的目标类型为匹配成功的第一关键词对应的恶意聚类流的类型,在确定了待识别流的目标类型后,即可确定分类器中用于特定识别待识别流的特定识别部分。
步骤1207,特定识别部分匹配;
具体地,在确定了分类器中用于特定识别待识别流的特定识别部分后,即可采用这一特定识别部分针对性地识别有效载荷的剩余输入部分。
具体地,采用特定识别部分针对性地识别待识别流的有效载荷时,将特定识别部分中的所有特定关键词依次与有效载荷进行匹配,匹配成功即可确定待识别流的类型为目标类型。
下面对本发明实施例提供的恶意流量识别装置进行描述,下文描述的恶意流量识别装置与上文描述的恶意流量识别方法可相互对应参照。
图13是本发明一实施例提供的恶意流量识别装置的结构示意图,如图13所示,该装置包括:获取模块1301,公共识别模块1302,及特定识别模块1303,其中:
获取模块1301用于获取待识别流的有效载荷;
公共识别模块1302用于通过分类器的公共识别部分对所述有效载荷进行识别,确定所述待识别流的目标类型为所述公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定所述待识别流对应的特定识别部分,其中,所述公共识别部分包括至少一个第一关键字,所述第一关键字是其对应的已知类型的恶意聚类流中首次出现的关键字,每一个所述恶意聚类流对应所述分类器中的一个特定识别部分;
特定识别模块1303用于通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,确定所述待识别流的类型为所述目标类型,其中,所述待识别流对应的特定识别部分包括至少一个特定关键字,所述特定关键字是所述目标类型对应的恶意聚类流中非首次出现的关键字。
具体地,恶意流量识别装置通过获取模块1301获取待识别流的有效载荷后,将有效载荷输入公共识别模块1302,公共识别模块1302通过分类器的公共识别部分对所述有效载荷进行识别,确定待识别流的目标类型为公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,从而确定待识别流对应的特定识别部分;最后将有效载荷输入其对应的特定识别部分,通过特定识别模块1303通过分类器中待识别流对应的特定识别部分对有效载荷进行识别,确定所述待识别流的类型为目标类型。
本发明实施例提供的恶意流量识别装置,通过基于分类器的公共部分首先确定待识别流的目标类型,再通过分类器中针对性识别目标类别的特定部分确定待识别流的恶意流量类型,采用基于启发式的方法来实现签名匹配,达到次线性时间搜索复杂度。有效提高识别效率,降低对硬件处理性能的依赖。
图14是本发明另一实施例提供的恶意流量识别装置的结构示意图,如图14所示,该装置包括:恶意流样本获取模块1401,流重建模块1402,恶意聚类流获取模块1403,关键字获取模块1404,公共识别部分建立模块1405,特定识别部分建立模块1406,公共识别部分匹配模块1407,及特定识别部分匹配模块1408。
其中,恶意流样本获取模块1401用于获取恶意流样本;
流重建模块1402用于对恶意流样本获取模块1401获取的恶意流样本进行流重建;可以是单向流也可以是双向流的重建。可以理解的是,流重建是为了便于后续对于恶意流样本的分析。
恶意聚类流获取模块1403用于从流重建后的恶意流样本中获取已知类型的恶意聚类流;如果恶意流样本是无标签的恶意流量,则该模块可以对无标签恶意流样本进行聚类,相同类型的恶意流样本将被聚类到同一个类,具体地,由于输入进来的恶意流样本可能没有标签,是未分类的数据。需要对恶意流样本进行聚类,将相同类别的恶意流量聚集到同一个簇。根据流负载,先建立一个单词词典。将所有出现的词放到字典中,可根据实际情况去除停用词。将剩下的单词映射为一个标签,用于表示文本内容。每个进来的恶意流样本都需要进行映射操作,最后得到一个n×m的词频矩阵。其中,n即为恶意流样本个数,m为向量空间维度(词的个数)。依次对特征矩阵中的所有元素进行TF-IDF加权处理。最后,得到最新的特征矩阵X'nm,随后用如K-means等聚类算法对恶意流样本进行聚类。
关键字获取模块1404用于解析恶意流样本载荷,生成一个词频向量,然后根据该向量提取出每个类中的高频词,从而获取每一个恶意聚类流的第一关键字和特定关键字,即各自分别对应的字节偏移量;
公共识别部分建立模块1405用于根据所有恶意聚类流的第一关键字及各第一关键字对应的字节偏移范围建立分类器的公共识别部分;
特定识别部分建立模块1406用于根据每一个恶意聚类流的特定关键字及各特定关键字对应的字节偏移范围建立分类器中此恶意聚类流对应的特定识别部分;
公共识别部分匹配模块1407用于将待识别流的有效载荷的公共输入部分输入到公共识别部分进行匹配,获得其对应的特定识别部分;该模块对用于待识别流进行初次匹配。使用每种恶意聚类流的第一个关键词及其字节偏移值对待检测流进行匹配。若在字节偏移值范围内匹配到了某种类别恶意流的第一个关键词,则该待识别流可能属于该恶意聚类流的类别。
特定识别部分匹配模块1408用于将待识别流的有效载荷的特定输入部分输入到特定识别部分匹配,确定其类型为目标类型。在进行初次匹配后可以确定待识别恶意流量的潜在类别即目标类型,随后对于该待识别流将其与对应的恶意聚类流的剩余关键词进行匹配,匹配的时候同时要考虑关键词的字节偏移值。需要在有效字节偏移值内匹配关键词。通过在偏移值范围内的跳跃式匹配方式,可以实现算法的次线性搜索时间复杂度。从而有效提高识别效率,对硬件性能的依赖。
图15示例了一种电子设备的实体结构示意图,如图15所示,该电子设备可以包括:处理器(processor)1510、通信接口(Communications Interface)1520、存储器(memory)1530和通信总线1540,其中,处理器1510,通信接口1520,存储器1530通过通信总线1540完成相互间的通信。处理器1510可以调用存储器1530中的逻辑指令,以执行恶意流量识别方法,该方法包括:
获取待识别流的有效载荷;
通过分类器的公共识别部分对所述有效载荷进行识别,确定所述待识别流的目标类型为所述公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定所述待识别流对应的特定识别部分,其中,所述公共识别部分包括至少一个第一关键字,所述第一关键字是其对应的已知类型的恶意聚类流中首次出现的关键字,每一个所述恶意聚类流对应所述分类器中的一个特定识别部分;
通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,确定所述待识别流的类型为所述目标类型,其中,所述待识别流对应的特定识别部分包括至少一个特定关键字,所述特定关键字是所述目标类型对应的恶意聚类流中非首次出现的关键字。
此外,上述的存储器1530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的恶意流量识别方法,该方法包括:
获取待识别流的有效载荷;
通过分类器的公共识别部分对所述有效载荷进行识别,确定所述待识别流的目标类型为所述公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定所述待识别流对应的特定识别部分,其中,所述公共识别部分包括至少一个第一关键字,所述第一关键字是其对应的已知类型的恶意聚类流中首次出现的关键字,每一个所述恶意聚类流对应所述分类器中的一个特定识别部分;
通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,确定所述待识别流的类型为所述目标类型,其中,所述待识别流对应的特定识别部分包括至少一个特定关键字,所述特定关键字是所述目标类型对应的恶意聚类流中非首次出现的关键字。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的恶意流量识别方法,该方法包括:
获取待识别流的有效载荷;
通过分类器的公共识别部分对所述有效载荷进行识别,确定所述待识别流的目标类型为所述公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定所述待识别流对应的特定识别部分,其中,所述公共识别部分包括至少一个第一关键字,所述第一关键字是其对应的已知类型的恶意聚类流中首次出现的关键字,每一个所述恶意聚类流对应所述分类器中的一个特定识别部分;
通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,确定所述待识别流的类型为所述目标类型,其中,所述待识别流对应的特定识别部分包括至少一个特定关键字,所述特定关键字是所述目标类型对应的恶意聚类流中非首次出现的关键字。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种恶意流量识别方法,其特征在于,包括:
获取待识别流的有效载荷;
通过分类器的公共识别部分对所述有效载荷进行识别,确定所述待识别流的目标类型为所述公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定所述待识别流对应的特定识别部分,其中,所述公共识别部分包括至少一个第一关键字,所述第一关键字是其对应的已知类型的恶意聚类流中首次出现的关键字,每一个所述恶意聚类流对应所述分类器中的一个特定识别部分;
通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,确定所述待识别流的类型为所述目标类型,其中,所述待识别流对应的特定识别部分包括至少一个特定关键字,所述特定关键字是所述目标类型对应的恶意聚类流中非首次出现的关键字。
2.根据权利要求1所述的恶意流量识别方法,其特征在于,所述通过分类器的公共识别部分对所述有效载荷进行识别,包括:
获取所述分类器的公共识别部分中的第一关键字及各第一关键字分别对应的字节偏移范围;
对于每一个第一关键字,将其与所述有效载荷的公共输入部分的字节偏移范围内的字节,进行匹配,确定匹配成功的第一关键字对应的恶意聚类流的类型为所述目标类型,所述公共输入部分的字节偏移范围根据所述第一关键字对应的字节偏移范围确定,所述有效载荷的公共输入部分根据所述分类器中公共识别部分的所有关键字的最大偏移与最小偏移确定。
3.根据权利要求1所述的恶意流量识别方法,其特征在于,所述通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,包括:
获取所述待识别流对应的特定识别部分的特定关键字及各特定关键字分别对应的字节偏移范围;
按照所述特定关键字在所述特定识别部分中的排列顺序,依次对每一个特定关键字,与所述有效载荷的剩余输入部分的字节偏移范围内的字节,进行匹配,所述字节偏移范围根据所述特定关键字对应的字节偏移范围确定。
4.根据权利要求1所述的恶意流量识别方法,其特征在于,所述通过分类器的公共识别部分对所述有效载荷进行识别之前,包括:
获取恶意流样本;
对所述恶意流样本进行流重建;
在所述流重建后的恶意流样本中获取至少一个已知类型的所述恶意聚类流;
基于所述恶意聚类流的第一关键字和特定关键字生成分类器。
5.根据权利要求4所述的恶意流量识别方法,其特征在于,所述基于所述恶意聚类流的第一关键字和特定关键字生成分类器,包括:
对于每个所述恶意聚类流,基于其有效负载生成对应的词频向量,以提取其第一关键字和特定关键字;
基于所有恶意聚类流的第一关键字和特定关键字生成分类器。
6.根据权利要求5所述的恶意流量识别方法,其特征在于,所述基于所有恶意聚类流的第一关键字和特定关键字生成分类器,包括:
对于每一个恶意聚类流,获取其第一关键字及所述第一关键字的字节偏移范围;
基于所有恶意聚类流的所述第一关键字及对应的字节偏移范围,生成所述分类器的公共识别部分;
对于每一个恶意聚类流,基于其特定关键字及所有特定关键字分别对应的字节偏移范围,按照所述特定关键字在所述恶意聚类流中的出现顺序,生成分类器中所述恶意聚类流对应的特定识别部分。
7.根据权利要求4所述的恶意流量识别方法,其特征在于,所述获取恶意流样本,包括:
获取已知类型的恶意流量数据集作为恶意流样本;或
从网络中获取通信数据包作为恶意流样本,相应地,所述在所述流重建后的恶意流样本中获取至少一个已知类型的所述恶意聚类流包括:对流重建后的所述通信数据包进行聚类分析,获取至少一个已知类型的所述恶意聚类流。
8.一种恶意流量识别装置,其特征在于,包括:
获取模块,用于获取待识别流的有效载荷;
公共识别模块,用于通过分类器的公共识别部分对所述有效载荷进行识别,确定所述待识别流的目标类型为所述公共识别部分中识别成功的第一关键字对应的恶意聚类流对应的类型,以确定所述待识别流对应的特定识别部分,其中,所述公共识别部分包括至少一个第一关键字,所述第一关键字是其对应的已知类型的恶意聚类流中首次出现的关键字,每一个所述恶意聚类流对应所述分类器中的一个特定识别部分;
特定识别模块,用于通过分类器中所述待识别流对应的特定识别部分对所述有效载荷进行识别,确定所述待识别流的类型为所述目标类型,其中,所述待识别流对应的特定识别部分包括至少一个特定关键字,所述特定关键字是所述目标类型对应的恶意聚类流中非首次出现的关键字。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述恶意流量识别方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述恶意流量识别方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010740209.7A CN112054992B (zh) | 2020-07-28 | 2020-07-28 | 恶意流量识别方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010740209.7A CN112054992B (zh) | 2020-07-28 | 2020-07-28 | 恶意流量识别方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112054992A CN112054992A (zh) | 2020-12-08 |
CN112054992B true CN112054992B (zh) | 2021-06-29 |
Family
ID=73602239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010740209.7A Active CN112054992B (zh) | 2020-07-28 | 2020-07-28 | 恶意流量识别方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112054992B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112910797B (zh) * | 2021-01-20 | 2023-04-11 | 中国科学院计算技术研究所 | 基于特征匹配的i2p流量识别方法及系统 |
CN116471338B (zh) * | 2023-06-20 | 2023-09-05 | 中国电信股份有限公司江西分公司 | 一种基于SPACE6的协议转换技术的IPv6云转换平台 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741744A (zh) * | 2009-12-17 | 2010-06-16 | 东南大学 | 一种网络流量识别方法 |
CN104834739A (zh) * | 2015-05-20 | 2015-08-12 | 成都布林特信息技术有限公司 | 互联网信息存储系统 |
US9438411B1 (en) * | 2015-08-12 | 2016-09-06 | The Boeing Company | Method and apparatus for synchronizing digital messages |
CN108985361A (zh) * | 2018-07-02 | 2018-12-11 | 北京金睛云华科技有限公司 | 一种基于深度学习的恶意流量检测实现方法和装置 |
CN110224891A (zh) * | 2019-06-12 | 2019-09-10 | 武汉绿色网络信息服务有限责任公司 | 一种基于dpi和分流器的智能流量调度方法和系统 |
-
2020
- 2020-07-28 CN CN202010740209.7A patent/CN112054992B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741744A (zh) * | 2009-12-17 | 2010-06-16 | 东南大学 | 一种网络流量识别方法 |
CN104834739A (zh) * | 2015-05-20 | 2015-08-12 | 成都布林特信息技术有限公司 | 互联网信息存储系统 |
US9438411B1 (en) * | 2015-08-12 | 2016-09-06 | The Boeing Company | Method and apparatus for synchronizing digital messages |
CN108985361A (zh) * | 2018-07-02 | 2018-12-11 | 北京金睛云华科技有限公司 | 一种基于深度学习的恶意流量检测实现方法和装置 |
CN110224891A (zh) * | 2019-06-12 | 2019-09-10 | 武汉绿色网络信息服务有限责任公司 | 一种基于dpi和分流器的智能流量调度方法和系统 |
Non-Patent Citations (1)
Title |
---|
应用层协议快速识别的研究与实现;陈佳;《中国优秀硕士学位论文全文数据库 信息科技辑(月刊 )》;20110315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112054992A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8010685B2 (en) | Method and apparatus for content classification | |
Min et al. | TR-IDS: Anomaly-based intrusion detection through text-convolutional neural network and random forest | |
Tongaonkar et al. | Towards self adaptive network traffic classification | |
US8577817B1 (en) | System and method for using network application signatures based on term transition state machine | |
US9781139B2 (en) | Identifying malware communications with DGA generated domains by discriminative learning | |
US8015208B2 (en) | Systems and methods for processing regular expressions | |
US8494985B1 (en) | System and method for using network application signatures based on modified term transition state machine | |
Grimaudo et al. | Select: Self-learning classifier for internet traffic | |
US20150095359A1 (en) | Volume Reducing Classifier | |
EP2485433B1 (en) | A method and apparatus for extracting data | |
WO2017217163A1 (ja) | アクセス分類装置、アクセス分類方法及びアクセス分類プログラム | |
CN112054992B (zh) | 恶意流量识别方法、装置、电子设备及存储介质 | |
US11888874B2 (en) | Label guided unsupervised learning based network-level application signature generation | |
CN105635170A (zh) | 基于规则对网络数据包进行识别的方法和装置 | |
CN112800424A (zh) | 一种基于随机森林的僵尸网络恶意流量监测方法 | |
CN113821793A (zh) | 一种基于图卷积神经网络的多阶段攻击场景构建方法及系统 | |
Hubballi et al. | KeyClass: efficient keyword matching for network traffic classification | |
Machlica et al. | Learning detectors of malicious web requests for intrusion detection in network traffic | |
Weng et al. | Deep packet pre-filtering and finite state encoding for adaptive intrusion detection system | |
CN116915450A (zh) | 基于多步网络攻击识别和场景重构的拓扑剪枝优化方法 | |
US8380795B2 (en) | Method of filtering sections of a data stream | |
US11025650B2 (en) | Multi-pattern policy detection system and method | |
Rana et al. | Automated fast-flux detection using machine learning and genetic algorithms | |
US20240121267A1 (en) | Inline malicious url detection with hierarchical structure patterns | |
Tseng et al. | A feasibility study of stateful automaton packet inspection for streaming application detection systems |
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 |