CN115865534B - 一种基于恶意加密流量检测方法、系统、装置及介质 - Google Patents
一种基于恶意加密流量检测方法、系统、装置及介质 Download PDFInfo
- Publication number
- CN115865534B CN115865534B CN202310170652.9A CN202310170652A CN115865534B CN 115865534 B CN115865534 B CN 115865534B CN 202310170652 A CN202310170652 A CN 202310170652A CN 115865534 B CN115865534 B CN 115865534B
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- length
- session
- feature vector
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Image Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种恶意加密流量检测方法、系统、装置及计算机可读存储介质,可以在复杂的网络环境下,提升恶意加密流量的检测性能,保证较高的恶意加密流量数据的检测准确性和快速性,该方法包括:获取加密流量数据集,并基于数据流方向和会话,对加密流量数据集进行数据分割,提取加密流量数据集中的任一加密流量数据的多维特征;基于任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量;对二维变长特征向量进行特征预处理后,构建变长序列特征向量,构建BiGRU_CNN深度学习模型,并将变长序列特征向量输入BiGRU_CNN深度学习模型中进行识别,获得识别结果。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种恶意加密流量检测方法、系统、装置及介质。
背景技术
近年来,随着人们对隐私保护和数据安全的需求日益增长,越来越多的个人和企业选择使用加密机制对流量进行加密传输,以提高流量传输的安全性。但是,攻击者会将恶意流量进行加密,来逃避恶意流量的检测机制,进行恶意攻击。因此,如何准确无误识别恶意加密流量,防止攻击者利用加密技术入侵系统变得十分重要。
面对恶意加密流量,现有的检测方法大致可以分为如下4类:
(1)、基于解密的恶意加密流量检测方法:其本质上是中间人攻击,通过在客户端与服务端之间设置拦截器用于解密、检测、重新加密和转发流量,解密得到的明文流量使用深度包检测技术进行检测。但是,这个检测方法必须使用密钥解密流量提取信息,违背了加密的初衷,造成用户数据隐私的泄露,并且由于需要对流量解密再加密,大大消耗了服务器的资源,增加了处理数据的时间,检测效率低。
(2)、基于签名的恶意加密流量检测方法:通过识别加密流量中与已知恶意行为的签名相匹配的可见模式来检测威胁,包括目的IP、证书、JA3/JA3S指纹等,可用于黑名单识别隐藏在加密流量中的威胁。虽然与基于解密的检测方法相比更简单方便,但是无法应对未知的攻击,攻击者可以改变流量规则以逃避检测。
(3)、基于特征的机器学习的恶意加密流量检测方法:利用未加密的TLS握手消息中的丰富信息(包括版本、密码套件、扩展、证书等)来识别威胁。然而,特征的良好性在很大程度上依赖于人类的专业知识,在高度动态的网终环境中,选择合适的特征集需要专家知识,这严重影响了检测的效率和有效性。
(4)、基于深度学习的恶意加密流量检测方法:目前多使用CNN,将流量的指定字节数据(原数据或者处理后数据)转换成图片或转变为一维数据后使用CNN进行分类。然而,这个检测方法大多是在双向网络流的粒度级别上进行威胁识别,过分关注单个流的统计特征或数据表示,而忽略了流之间的相关关系。面对未知的或伪装得很好的加密恶意流量,仅仅依赖于每个孤立网络流的特征而没有考虑全局流的关联关系,会导致效果不理想。
综上,有必要设计一种可在复杂的网络环境下提高恶意加密流量的检测准确性和快速性的方案。
发明内容
基于此,本发明的目的在于提供一种恶意加密流量检测方法、系统、装置及介质,用于在复杂的网络环境下,提升恶意加密流量的检测性能,以保证较高的检测准确性和快速性。
第一方面,本发明提供了一种恶意加密流量检测方法,包括:
获取加密流量数据集,并基于数据流方向和会话,对所述加密流量数据集进行数据分割,提取所述加密流量数据集中的任一加密流量数据的多维特征;
基于所述任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量;
对所述二维变长特征向量进行特征预处理后,构建变长序列特征向量;
构建BiGRU_CNN深度学习模型,并将所述变长序列特征向量输入所述BiGRU_CNN深度学习模型中进行识别,获得识别结果;所述识别结果包括恶意加密流量和正常加密流量。
在一种可能的设计中,获取加密流量数据集,包括:
通过Wireshark软件捕捉各种恶意加密攻击流量,生成相应的PCAP文件,并对所述PCAP文件进行人工标注,获得流量数据集;
删除所述流量数据集中与恶意加密流量不相关的网络数据包、干扰深度学习模型训练的流量数据和未加密的流量数据,得到初始加密流量数据集;
对所述初始加密流量数据集中的加密流量数据进行数据截断或填充处理,以使任一加密流量数据的长度一致,得到所述加密流量数据集。
在一种可能的设计中,基于数据流方向和会话,对所述加密流量数据集进行数据分割,提取所述加密流量数据集中的任一加密流量数据的多维特征,包括:
基于所述任一加密流量数据的五元组,确定所述加密流量数据集的数据流方向和会话;
按照所述数据流方向,以会话为单位对所述加密流量数据集进行数据分割,获得M个会话对应的L个加密流量数据;M为大于或等于1的整数,L为大于0的整数;
对于所述M个会话中L大于或等于预设阈值Y的第一会话,截取所述第一会话中的前Y个加密流量数据,提取所述Y个加密流量数据中的任一加密流量数据的多维特征;
对于所述M个会话中L小于Y的第二会话,对所述第二会话补零,以使所述第二会话的数据长度达到Y个,提取Y个数据中的任一数据的多维特征。
在一种可能的设计中,所述多维特征包括:元数据特征、包长与时间序列特征、包长与时间分布特征、包长与时间统计特征、侧通道特征、防篡改特征,以及会话中的TCP头部长度、IP头部长度、源IP头部长度、目的IP头部长度、IP包长度、源IP发送数据包的个数、目的IP发送数据包的个数、TTL值、TCP窗口大小以及各自的数字统计特征,所述数字统计特征包括平均值、最大值、最小值、中位值、方差和标准差。
在一种可能的设计中,基于所述任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量,包括:
采用随机森林算法从所述任一加密流量数据的多维特征中选取排名靠前的N个特征;
基于所述N个特征,以会话为单位构建二维变长特征向量。
在一种可能的设计中,对所述二维变长特征向量进行特征预处理后,构建变长序列特征向量,包括:
对所述二维变长特征向量中的变长序列填充补零,使得所述二维变长特征向量的序列长度一致;
对补零后的二维变长特征向量进行归一化处理,再对经过归一化处理的二维变长特征向量进行标准化处理;
基于经过标准化处理后的二维变长特征向量,构建变长序列特征向量。
在一种可能的设计中,构建BiGRU_CNN深度学习模型,包括:
以双向门控循环单元BiGRU度学习模型为数据输入模型,卷积神经网络CNN深度学习模型为数据输出模型,构建所述BiGRU_CNN深度学习模型。
第二方面,本发明还提供了一种恶意加密流量检测系统,包括:
采集单元,用于获取加密流量数据集;
提取单元,用于基于数据流方向和会话,对所述加密流量数据集进行数据分割,提取所述加密流量数据集中的任一加密流量数据的多维特征;
识别单元,用于基于所述任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量;对所述二维变长特征向量进行特征预处理后,构建变长序列特征向量;构建BiGRU_CNN深度学习模型,并将所述变长序列特征向量输入所述BiGRU_CNN深度学习模型中进行识别,获得识别结果;所述识别结果包括恶意加密流量和正常加密流量。
在一种可能的设计中,所述采集单元具体用于:
通过Wireshark软件捕捉各种恶意加密攻击流量,生成相应的PCAP文件,并对所述PCAP文件进行人工标注,获得流量数据集;
删除所述流量数据集中与恶意加密流量不相关的网络数据包、干扰深度学习模型训练的流量数据和未加密的流量数据,得到初始加密流量数据集;
对所述初始加密流量数据集中的加密流量数据进行数据截断或填充处理,以使任一加密流量数据的长度一致,得到所述加密流量数据集。
在一种可能的设计中,所述提取单元具体用于:
基于所述任一加密流量数据的五元组,确定所述加密流量数据集的数据流方向和会话;
按照所述数据流方向,以会话为单位对所述加密流量数据集进行数据分割,获得M个会话对应的L个加密流量数据;M为大于或等于1的整数,L为大于0的整数;
对于所述M个会话中L大于或等于预设阈值Y的第一会话,截取所述第一会话中的前Y个加密流量数据,提取所述Y个加密流量数据中的任一加密流量数据的多维特征;
对于所述M个会话中L小于Y的第二会话,对所述第二会话补零,以使所述第二会话的数据长度达到Y个,提取Y个数据中的任一数据的多维特征。
在一种可能的设计中,所述多维特征包括:元数据特征、包长与时间序列特征、包长与时间分布特征、包长与时间统计特征、侧通道特征、防篡改特征,以及会话中的TCP头部长度、IP头部长度、源IP头部长度、目的IP头部长度、IP包长度、源IP发送数据包的个数、目的IP发送数据包的个数、TTL值、TCP窗口大小以及各自的数字统计特征,所述数字统计特征包括平均值、最大值、最小值、中位值、方差和标准差。
在一种可能的设计中,所述识别单元具体用于:
采用随机森林算法从所述任一加密流量数据的多维特征中选取排名靠前的N个特征;
基于所述N个特征,以会话为单位构建二维变长特征向量。
在一种可能的设计中,所述识别单元具体用于:
对所述二维变长特征向量中的变长序列填充补零,使得所述二维变长特征向量的序列长度一致;
对补零后的二维变长特征向量进行归一化处理,再对经过归一化处理的二维变长特征向量进行标准化处理;
基于经过标准化处理后的二维变长特征向量,构建变长序列特征向量。
在一种可能的设计中,所述识别单元具体用于:
以双向门控循环单元BiGRU深度学习模型为数据输入模型,卷积神经网络CNN深度学习模型为数据输出模型,构建所述BiGRU_CNN深度学习模型。
第三方面,本发明还提供了一种恶意加密流量检测装置,所述恶意加密流量检测装置包括:至少一个存储器和至少一个处理器;
所述至少一个存储器用于存储一个或多个程序;
当所述一个或多个程序被所述至少一个处理器执行时,实现上述第一方面任一种可能设计所涉及的方法。
第四方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个程序;当所述至少一个程序被处理器执行时,实现上述第一方面任一种可能设计所涉及的方法。
本发明的有益效果如下:
相较于现有技术而言,本发明通过获取加密流量数据集,并基于数据流方向和会话,对加密流量数据集进行数据分割,提取加密流量数据集中的任一加密流量数据的多维特征,充分关注到了流量会话中每个流的特征以及会话中不同维度的特征,使得构建的二维变长特征向量的信息更为全面;基于任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量,对二维变长特征向量进行特征预处理后,构建变长序列特征向量,构建BiGRU_CNN深度学习模型,并将变长序列特征向量输入BiGRU_CNN深度学习模型中进行识别,获得识别结果,识别结果包括恶意加密流量和正常加密流量,从而可以在复杂的网络环境下,通过BiGRU_CNN深度学习模型充分挖掘出流量中的时间特征与局部的空间特征,使得提取变长序列特征向量的信息更为全面,进而可以提升恶意加密流量的检测性能,保证较高的恶意加密流量数据的检测准确性和快速性。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1为本发明提供的一种恶意加密流量检测方法的流程示意图;
图2为本发明提供的一种变长序列特征向量的示意图;
图3为本发明提供的一种BiGRU_CNN深度学习模型的结构示意图;
图4为本发明提供的一种恶意加密流量检测系统的结构示意图;
图5为本发明提供的一种恶意加密流量检测装置的结构示意图。
具体实施方式
在本说明书中提到或者可能提到的上、下、左、右、前、后、正面、背面、顶部、底部等方位用语是相对于其构造进行定义的,它们是相对的概念。因此,有可能会根据其所处不同位置、不同使用状态而进行相应地变化。所以,也不应当将这些或者其他的方位用语解释为限制性用语。
以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与本公开的一些方面相一致的实施方式的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本公开中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
除非有相反的说明,本公开提及的“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
请参考图1所示,本发明提供了一种恶意加密流量检测方法,该方法可以包括如下步骤:
S11、获取加密流量数据集,并基于数据流方向和会话,对加密流量数据集进行数据分割,提取加密流量数据集中的任一加密流量数据的多维特征。
在具体实施时,可以先获取后续用于恶意加密流量检测所需的流量数据集,再对流量数据集进行预处理,以得到加密流量数据集。比如,可以通过Wireshark软件(一种网络封包分析软件)捕捉各种恶意加密攻击流量,生成相应的PCAP文件,并对PCAP文件进行人工标注,获得流量数据集。其中,各种恶意加密攻击流量可以包括但不限于洛伊木马、勒索软件、蠕虫病毒、恶意广告、WebShell、暴力破解等恶意加密攻击流量。
在本发明中,通过Wireshark软件捕捉各种恶意加密攻击流量,可以模拟真实的网络环境,有助于提高后续恶意加密流量的检测准确性和快速性。
通常情况下,收集到的流量数据集并不能直接作为机器学习模型的输入,需要对其进行预处理工作。预处理通常包括流量清洗、流量分割、特征集构建和流量转换(下文介绍)。
由于获得的流量数据集的数据是PCAP文件,这些 PCAP文件通常记录原始的流量数据,因此,在步骤S11中,以进行流量清洗处理工作。
比如,在具体实施时,可以删除流量数据集中与恶意加密流量不相关的网络数据包、干扰深度学习模型训练的流量数据和未加密的流量数据,得到初始加密流量数据集。其中,与恶意加密流量不相关的网络数据包,可以理解为不适合恶意加密流量检测的研究的数据包,包括但不限于:地址解析协议(AddressResolution Protocol,ARP)或互联网控制消息协议(Internet ControlMessage Protocol,ICMP)数据包。干扰深度学习模型训练的流量数据,可以理解为可能会干扰深度学习模型训练的重复、损坏、不必要和不完整的流量数据。
在具体实施时,可以对初始加密流量数据集中的加密流量数据进行数据截断或填充处理,以使任一加密流量数据的长度一致,得到加密流量数据集,从而保证加密流量数据集中的加密流量数据的长度一致。
目前,目前常用特征主要是提取传输层中所包含的时空特征、头部特征、负载特征和统计特征,这种特征提取方式,仅限于传输层,不能获得多方面的特征,不便于提升恶意加密流量的检测性能。
基于此,在具体实施时,可以基于任一加密流量数据的五元组(源IP、源端口、目的IP、目的端口、传输层协议),确定加密流量数据集的数据流方向和会话。然后,可以从数据流和会话的层面出发,按照数据流方向,以会话为单位对加密流量数据集进行数据分割,获得M个会话对应的L个加密流量数据,其中,M为大于或等于1的整数,L为大于0的整数,以便于后续提取加密流量数据的多维特征,有助于提升恶意加密流量的检测性能。
由于每个会话通常有多个数据包,为了实现平衡,在本发明中,具体实施时,对于M个会话中L大于或等于预设阈值Y(Y取值可以根据实际需求进行设置,例如取值15)的第一会话,可以截取第一会话中的前Y个加密流量数据,提取Y个加密流量数据中的任一加密流量数据的多维特征;对于M个会话中L小于Y的第二会话,可以对第二会话补零,以使第二会话的数据长度达到Y个,提取Y个数据中的任一数据的多维特征。如此,可以在保证数据包长度统一的同时,进一步减少特征数量。
在具体实施时,多维特征可以包括但不限于:元数据特征、包长与时间序列特征、包长与时间分布特征、包长与时间统计特征、侧通道特征、防篡改特征,以及会话中的TCP头部长度、IP头部长度、源IP头部长度、目的IP头部长度、IP包长度、源IP发送数据包的个数、目的IP发送数据包的个数、TTL值、TCP窗口大小以及各自的数字统计特征。其中,数字统计特征可以包括但不限于:平均值、最大值、最小值、中位值、方差和标准差。
S12、基于任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量。
目前,对于恶意加密流量的检测主要通过提取加密流量的TCP/IP时间统计特征、元数据特征来构建一维特征向量,并通过机器学习或深度学习进行训练,但这种检测方式仅是针对会话中流之间的关系,提取一维特征向量,导致忽略了会话中每个包之间相关联的特征。
基于此,在本发明中,通过基于任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量,充分关注到了流量会话中每个流的特征以及会话中数据包长度序列、数据包到达的时间间隔序列等不同维度的特征,使得构建的二维变长特征向量的信息更为全面,有助于在复杂的网络环境下,提升恶意加密流量的检测性能,保证较高的恶意加密流量数据的检测准确性和快速性。
在本发明提供的一种可适用的场景下,可以采用随机森林算法从任一加密流量数据的多维特征中选取排名靠前的N(可以根据实际需求进行设置)个特征,再基于N个特征,以会话为单位构建二维变长特征向量,进一步有助于提升恶意加密流量的检测性能。
S13、对二维变长特征向量进行特征预处理后,构建变长序列特征向量。
由于构建的二维变长特征向量的序列长度不一,在具体实施时,可以对二维变长特征向量中的变长序列填充补零,使得二维变长特征向量的序列长度一致。
在具体实施时,对补零后的二维变长特征向量进行归一化处理,再对经过归一化处理的二维变长特征向量进行标准化处理。比如,可以对补零后的二维变长特征向量存在的端口等无意义特征进行归一化处理,以将特征映射到[0,1]之间,映射公式可以如下述公式(1)所示。最后对经过归一化处理的二维变长特征向量进行标准化处理,将特征转化为无量纲的纯数值,避免不同的特征之间的数值相差过大,导致采用深度学习模型训练时,算法不收敛等问题。经过处理的特征符合标准正态分布,即均值为0,标准差为1,标准化公式可以如下述公式(2)所示。
(1)
(2)
其中,
x为二维变长特征向量中的特征,和对应端口特征的最小值和最大值[1,65525],和分别代表特征的均值和标准差。
在具体实施时,可以基于经过标准化处理后的二维变长特征向量,构建变长序列特征向量。
示例性的,变长序列特征向量可以如图2所示,其中,图2以每个会话中包含15个流量包为例,对应图2中的session和pkt,而1、2、3、4为提取的流量特征。Label对应每个会话的标签0和1,分别代表正常加密流量和恶意加密流量。
S14、构建BiGRU_CNN深度学习模型,并将变长序列特征向量输入BiGRU_CNN深度学习模型中进行识别,获得识别结果。
在具体实施时,该识别结果包括恶意加密流量和正常加密流量。
在具体实施时,可以以双向门控循环单元(Bidirectional GatedRecurrentUnit,BiGRU)深度学习模型为数据输入模型,以卷积神经网络(ConvolutionNeural Network,CNN)深度学习模型为数据输出模型,构建BiGRU_CNN深度学习模型。比如,如果直接将特征输入至BiGRU深度学习模型中,将会使得填充的数据直接参与深度学习模型的运算,使其具有特殊的含义,因此,可以通过keras(一种由Python编写的开源人工神经网络库)引入Masking(遮盖)层接入到BiGRU深度学习模型,以挖掘出流量中的时间特征,同时引入CNN深度学习模型接入至BiGRU深度学习模型的输出,进一步挖掘出流量中的空间特征,使得提取变长序列特征向量的信息更为全面。
作为一种示例,BiGRU_CNN深度学习模型可以如图3所示,分为6个部分,依次为输入层、BiGRU层、Conv2D(卷积)层、MaxPooling2D(最大池化)层、Flatten(展平)层、Dense(全连接)层,该BiGRU_CNN深度学习模型怼恶意加密流量检测有较高的精度。
在本发明中,通过构建BiGRU_CNN深度学习模型,可以从时间维度和空间维度不断挖掘特征,使得提取变长序列特征向量的信息更为全面,最终实现对恶意加密流量检测的二分类。
在具体实施时,以图3所示的BiGRU_CNN深度学习模型为例,将变长序列特征向量输入BiGRU_CNN深度学习模型中进行识别,获得识别结果的过程可以如下:
将维度为(15,N)的变长序列特征向量作为BiGRU_CNN深度学习模型的输入层的输入,其中,N为通过之后挑选的特征个数。
通过Masking层设置屏蔽值mask_value为0,然后接入到BiGRU层,设置Units(单位)为32、sequence(顺序)为1(正确),再嵌套Bidirectional(双向)使其构成双向BiGRU,输出维度为(15,64)的特征数据。
再然后,接入卷积层,设置滤波器filter为32、卷积核kernel为3,使用rule函数作为激活函数,输出维度为(15,64,32)。
之后,使用最大池化层对特征图进行采样,设置池化大小为2,输出维度为(7,32,32)。
随后,接入Flatten层展开数据变为一维特征向量连接4层Dense全连接层,主要参数为1024、512、256、1。
最后,使用sigmoid激活函数,针对全连接层的输出生成概率值,判断是否为恶意加密流量,输出识别结果。
作为一种示例,为了检验证本发明中的BiGRU_CNN深度学习模型的识别性能,选取CNN深度学习模型、循环神经网络(Recurrent neural network, RNN)模型、长短期记忆(Long short-termmemory, LSTM)模型和门控循环单元(GateRecurrent Unit, GRU)模型,与本发明的BiGRU_CNN深度学习模型做比对,这四个模型与本发明的BiGRU_CNN深度学习模型采用相同方式进行数据预处理,通过随机森林算法对特征进行重要度排序,选取排名前80个特征,以准确率、精确率、召回率、F1值作为模型评价指标。在二分类结果中,本发明中的BiGRU-CNN深度学习模型的准确率、精确率、召回率、F1值分别为0.9461、0.9462、0.9471、0.9467,CNN深度学习模型的准确率、精确率、召回率、F1值分别为0.9229、0.9114、0.9391、0.9250,RNN模型的准确率、精确率、召回率、F1值分别为0.9279、0.9225、0.9364、0.9294,LSTM模型的准确率、精确率、召回率、F1值分别为0.9290、0.9314、0.9282、0.9298,GRU模型的准确率、精确率、召回率、F1值分别为0.9385、0.9400、0.9383、0.9392。
基于上述二分类结果来看,本发明中的BiGRU-CNN深度学习模型的准确率、精确率、召回率、F1值,相比较于其他单一的深度学习模型均有良好的提升,得益于BiGRU-CNN深度学习模型能够充分挖掘出流量中的时间特征与局部的空间特征,避免了细微特征在训练过程中丢失,有效的提高了恶意加密流量检测的准确率与召回率,并且进一步的降低了误报率,解决了单一深度学习模型提取特征不全面问题。
本发明中,针对恶意加密流量的特征,使用了不同维度的特征,包括元数据特征、包长与时间序列特征、包长与时间分布特征、包长与时间统计特征、侧通道特征、防篡改特征,构建二维变长特征向量,同时引入随机森林算法对特征进行重要度排序,挑选排名靠前的特征,并通过BiGRU深度学习模型挖掘出流量中的时间特征,结合CNN深度学习模型充分挖掘出流量中的空间特征,使得提取的变长序列特征向量的信息更为全面,有效地提高了恶意加密流量检测的准确率与召回率,并且进一步地降低了误报率,解决了单一深度学习模型提取特征不全面问题,能够有效识别恶意加密流量。
通过以上描述,相较于现有技术而言,本发明通过获取加密流量数据集,并基于数据流方向和会话,对加密流量数据集进行数据分割,提取加密流量数据集中的任一加密流量数据的多维特征,充分关注到了流量会话中每个流的特征以及会话中不同维度的特征,使得构建的二维变长特征向量的信息更为全面;基于任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量,对二维变长特征向量进行特征预处理后,构建变长序列特征向量,构建BiGRU_CNN深度学习模型,并将变长序列特征向量输入BiGRU_CNN深度学习模型中进行识别,获得识别结果,识别结果包括恶意加密流量和正常加密流量,从而可以在复杂的网络环境下,通过BiGRU_CNN深度学习模型充分挖掘出流量中的时间特征与局部的空间特征,使得提取变长序列特征向量的信息更为全面,进而可以提升恶意加密流量的检测性能,保证较高的恶意加密流量数据的检测准确性和快速性。
基于同一发明构思,本发明实施例还提供了一种恶意加密流量检测系统,如图4所示,恶意加密流量检测系统20可以包括:
采集单元,用于获取加密流量数据集;
提取单元,用于基于数据流方向和会话,对加密流量数据集进行数据分割,提取加密流量数据集中的任一加密流量数据的多维特征;
识别单元,用于基于任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量;对二维变长特征向量进行特征预处理后,构建变长序列特征向量;构建BiGRU_CNN深度学习模型,并将变长序列特征向量输入BiGRU_CNN深度学习模型中进行识别,获得识别结果;识别结果包括恶意加密流量和正常加密流量。
在一种可能的设计中,采集单元21具体用于:
通过Wireshark软件捕捉各种恶意加密攻击流量,生成相应的PCAP文件,并对PCAP文件进行人工标注,获得流量数据集;
删除流量数据集中与恶意加密流量不相关的网络数据包、干扰深度学习模型训练的流量数据和未加密的流量数据,得到初始加密流量数据集;
对初始加密流量数据集中的加密流量数据进行数据截断或填充处理,以使任一加密流量数据的长度一致,得到加密流量数据集。
在一种可能的设计中,提取单元22具体用于:
基于任一加密流量数据的五元组,确定加密流量数据集的数据流方向和会话;
按照数据流方向,以会话为单位对加密流量数据集进行数据分割,获得M个会话对应的L个加密流量数据;M为大于或等于1的整数,L为大于0的整数;
对于M个会话中L大于或等于预设阈值Y的第一会话,截取第一会话中的前Y个加密流量数据,提取Y个加密流量数据中的任一加密流量数据的多维特征;
对于M个会话中L小于Y的第二会话,对第二会话补零,以使第二会话的数据长度达到Y个,提取Y个数据中的任一数据的多维特征。
在一种可能的设计中,多维特征包括:元数据特征、包长与时间序列特征、包长与时间分布特征、包长与时间统计特征、侧通道特征、防篡改特征,以及会话中的TCP头部长度、IP头部长度、源IP头部长度、目的IP头部长度、IP包长度、源IP发送数据包的个数、目的IP发送数据包的个数、TTL值、TCP窗口大小以及各自的数字统计特征,数字统计特征包括平均值、最大值、最小值、中位值、方差和标准差。
在一种可能的设计中,识别单元23具体用于:
采用随机森林算法从任一加密流量数据的多维特征中选取排名靠前的N个特征;
基于N个特征,以会话为单位构建二维变长特征向量。
在一种可能的设计中,识别单元23具体用于:
对二维变长特征向量中的变长序列填充补零,使得二维变长特征向量的序列长度一致;
对补零后的二维变长特征向量进行归一化处理,再对经过归一化处理的二维变长特征向量进行标准化处理;
基于经过标准化处理后的二维变长特征向量,构建变长序列特征向量。
在一种可能的设计中,识别单元23具体用于:
以双向门控循环单元BiGRU深度学习模型为数据输入模型,卷积神经网络CNN深度学习模型为数据输出模型,构建BiGRU_CNN深度学习模型。
需要说明的是,上述采集单元21、提取单元22和识别单元23可以集成设置在同一个设备中,如电脑,也可以独立设置在不同的设备中,本发明对此不作限定。
本发明实施例中的恶意加密流量检测系统20与上述图1所示的恶意加密流量检测方法是基于同一构思下的发明,通过前述对恶意加密流量检测方法的详细描述,本领域技术人员可以清楚的了解本实施例中恶意加密流量检测系统20的实施过程,所以为了说明书的简洁,在此不再赘述。
基于同一发明构思,本发明实施例还提供了一种恶意加密流量检测装置,如图5所示,恶意加密流量检测装置30可以包括:至少一个存储器31和至少一个处理器32。其中:
至少一个存储器31用于存储一个或多个程序。
当一个或多个程序被至少一个处理器32执行时,实现上述图1所示的恶意加密流量检测方法。
恶意加密流量检测装置30还可以可选地包括通信接口,通信接口用于与外部设备进行通信和数据交互传输。
需要说明的是,存储器31可能包含高速RAM存储器,也可能还包括非易失性存储器(nonvolatile memory),例如至少一个磁盘存储器。
在具体的实现过程中,如果存储器31、处理器32及通信接口集成在一块芯片上,则存储器31、处理器32及通信接口可以通过内部接口完成相互间的通信。如果存储器31、处理器32和通信接口独立实现,则存储器31、处理器32和通信接口可以通过总线相互连接并完成相互间的通信。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以存储有至少一个程序,当至少一个程序被处理器执行时,实现上述图1所示的恶意加密流量检测方法。
应当理解,计算机可读存储介质为可存储数据或程序的任何数据存储设备,数据或程序其后可由计算机系统读取。计算机可读存储介质的示例包括:只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带和光学数据存储设备等。
计算机可读存储介质还可分布在网络耦接的计算机系统中使得计算机可读代码以分布式方式来存储和执行。
计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(RadioFrequency,RF)等,或者上述的任意合适的组合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (9)
1.一种恶意加密流量检测方法,其特征在于,包括:
获取加密流量数据集,并基于所述加密流量数据集中的任一加密流量数据的五元组,确定所述加密流量数据集的数据流方向和会话;按照所述数据流方向,以会话为单位对所述加密流量数据集进行数据分割,获得M个会话对应的L个加密流量数据;M为大于或等于1的整数,L为大于0的整数;对于所述M个会话中L大于或等于预设阈值Y的第一会话,截取所述第一会话中的前Y个加密流量数据,提取所述Y个加密流量数据中的任一加密流量数据的多维特征;对于所述M个会话中L小于Y的第二会话,对所述第二会话补零,以使所述第二会话的数据长度达到Y个,提取Y个数据中的任一数据的多维特征;
基于所述任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量;
对所述二维变长特征向量进行特征预处理后,构建变长序列特征向量;
构建双向门控循环单元BiGRU_卷积神经网络CNN深度学习模型,并将所述变长序列特征向量输入所述BiGRU_CNN深度学习模型中进行识别,获得识别结果;所述识别结果包括恶意加密流量和正常加密流量。
2.如权利要求1所述的方法,其特征在于,获取加密流量数据集,包括:
通过Wireshark软件捕捉各种恶意加密攻击流量,生成相应的PCAP文件,并对所述PCAP文件进行人工标注,获得流量数据集;
删除所述流量数据集中与恶意加密流量不相关的网络数据包、干扰深度学习模型训练的流量数据和未加密的流量数据,得到初始加密流量数据集;
对所述初始加密流量数据集中的加密流量数据进行数据截断或填充处理,以使任一加密流量数据的长度一致,得到所述加密流量数据集。
3.如权利要求1所述的方法,其特征在于,所述多维特征包括:元数据特征、包长与时间序列特征、包长与时间分布特征、包长与时间统计特征、侧通道特征、防篡改特征,以及会话中的TCP头部长度、IP头部长度、源IP头部长度、目的IP头部长度、IP包长度、源IP发送数据包的个数、目的IP发送数据包的个数、TTL值、TCP窗口大小以及各自的数字统计特征,所述数字统计特征包括平均值、最大值、最小值、中位值、方差和标准差。
4.如权利要求1所述的方法,其特征在于,基于所述任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量,包括:
采用随机森林算法从所述任一加密流量数据的多维特征中选取排名靠前的N个特征;
基于所述N个特征,以会话为单位构建二维变长特征向量。
5.如权利要求1所述的方法,其特征在于,对所述二维变长特征向量进行特征预处理后,构建变长序列特征向量,包括:
对所述二维变长特征向量中的变长序列填充补零,使得所述二维变长特征向量的序列长度一致;
对补零后的二维变长特征向量进行归一化处理,再对经过归一化处理的二维变长特征向量进行标准化处理;
基于经过标准化处理后的二维变长特征向量,构建变长序列特征向量。
6.如权利要求1-5任一项所述的方法,其特征在于,构建BiGRU_CNN深度学习模型,包括:
以双向门控循环单元BiGRU深度学习模型为数据输入模型,卷积神经网络CNN深度学习模型为数据输出模型,构建所述BiGRU_CNN深度学习模型。
7.一种恶意加密流量检测系统,其特征在于,包括:
采集单元,用于获取加密流量数据集;
提取单元,用于基于所述加密流量数据集中的任一加密流量数据的五元组,确定所述加密流量数据集的数据流方向和会话;按照所述数据流方向,以会话为单位对所述加密流量数据集进行数据分割,获得M个会话对应的L个加密流量数据;M为大于或等于1的整数,L为大于0的整数;对于所述M个会话中L大于或等于预设阈值Y的第一会话,截取所述第一会话中的前Y个加密流量数据,提取所述Y个加密流量数据中的任一加密流量数据的多维特征;对于所述M个会话中L小于Y的第二会话,对所述第二会话补零,以使所述第二会话的数据长度达到Y个,提取Y个数据中的任一数据的多维特征;
识别单元,用于基于所述任一加密流量数据的多维特征,以会话为单位构建二维变长特征向量;对所述二维变长特征向量进行特征预处理后,构建变长序列特征向量;构建双向门控循环单元BiGRU_卷积神经网络CNN深度学习模型,并将所述变长序列特征向量输入所述BiGRU_CNN深度学习模型中进行识别,获得识别结果;所述识别结果包括恶意加密流量和正常加密流量。
8.一种恶意加密流量检测装置,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器用于存储一个或多个程序;
当所述一个或多个程序被所述至少一个处理器执行时,实现如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个程序;当所述至少一个程序被处理器执行时,实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310170652.9A CN115865534B (zh) | 2023-02-27 | 2023-02-27 | 一种基于恶意加密流量检测方法、系统、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310170652.9A CN115865534B (zh) | 2023-02-27 | 2023-02-27 | 一种基于恶意加密流量检测方法、系统、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115865534A CN115865534A (zh) | 2023-03-28 |
CN115865534B true CN115865534B (zh) | 2023-05-12 |
Family
ID=85659105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310170652.9A Active CN115865534B (zh) | 2023-02-27 | 2023-02-27 | 一种基于恶意加密流量检测方法、系统、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115865534B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117792800B (zh) * | 2024-02-28 | 2024-05-03 | 四川合佳科技有限公司 | 一种基于物联网安全评估系统的信息验证方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938291A (zh) * | 2021-09-03 | 2022-01-14 | 华中科技大学 | 一种基于对抗攻击算法的加密流量分析防御方法和系统 |
CN114866310A (zh) * | 2022-04-29 | 2022-08-05 | 厦门服云信息科技有限公司 | 一种恶意加密流量检测方法、终端设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111245860A (zh) * | 2020-01-20 | 2020-06-05 | 上海交通大学 | 一种基于双维度特征的加密恶意流量检测方法和系统 |
CN111683108B (zh) * | 2020-08-17 | 2020-11-17 | 鹏城实验室 | 一种网络流异常检测模型的生成方法和计算机设备 |
CN112839034B (zh) * | 2020-12-29 | 2022-08-05 | 湖北大学 | 一种基于cnn-gru分层神经网络的网络入侵检测方法 |
CN115222014A (zh) * | 2021-04-21 | 2022-10-21 | 阿里巴巴新加坡控股有限公司 | 用于神经网络模型执行的加速单元及服务器 |
CN113542259B (zh) * | 2021-07-12 | 2022-09-13 | 中山大学 | 基于多模态深度学习的加密恶意流量检测方法及系统 |
-
2023
- 2023-02-27 CN CN202310170652.9A patent/CN115865534B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938291A (zh) * | 2021-09-03 | 2022-01-14 | 华中科技大学 | 一种基于对抗攻击算法的加密流量分析防御方法和系统 |
CN114866310A (zh) * | 2022-04-29 | 2022-08-05 | 厦门服云信息科技有限公司 | 一种恶意加密流量检测方法、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115865534A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111865815B (zh) | 一种基于联邦学习的流量分类方法及系统 | |
US20210258791A1 (en) | Method for http-based access point fingerprint and classification using machine learning | |
CN113542253B (zh) | 一种网络流量检测方法、装置、设备及介质 | |
CN110611640A (zh) | 一种基于随机森林的dns协议隐蔽通道检测方法 | |
CN111447232A (zh) | 一种网络流量检测方法及装置 | |
CN113949531B (zh) | 一种恶意加密流量检测方法及装置 | |
US20240064107A1 (en) | System for classifying encrypted traffic based on data packet | |
Liu et al. | Maldetect: A structure of encrypted malware traffic detection | |
CN115865534B (zh) | 一种基于恶意加密流量检测方法、系统、装置及介质 | |
CN111147394A (zh) | 一种远程桌面协议流量行为的多级分类检测方法 | |
CN113676348A (zh) | 一种网络通道破解方法、装置、服务器及存储介质 | |
CN116346418A (zh) | 基于联邦学习的DDoS检测方法及装置 | |
Liu et al. | A survey on encrypted traffic identification | |
CN111182002A (zh) | 基于http首个问答包聚类分析的僵尸网络检测装置 | |
Zheng et al. | Detecting malicious tls network traffic based on communication channel features | |
Hejun et al. | Online and automatic identification and mining of encryption network behavior in big data environment | |
Fan et al. | Identify OS from encrypted traffic with TCP/IP stack fingerprinting | |
Cui et al. | CBSeq: A Channel-level Behavior Sequence For Encrypted Malware Traffic Detection | |
Zhou et al. | Classification of botnet families based on features self-learning under network traffic censorship | |
CN114679307A (zh) | 一种tls加密威胁检测方法和系统 | |
Fu et al. | Network storage covert channel detection based on data joint analysis | |
CN114401112B (zh) | 旁路部署针对tls加密的恶意流量实时深度包检测方法 | |
Su et al. | Understanding the influence of graph Kernels on deep learning architecture: a case study of flow-based network attack detection | |
CN115766204B (zh) | 一种针对加密流量的动态ip设备标识系统及方法 | |
CN114338070B (zh) | 基于协议属性的Shadowsocks(R)识别方法 |
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 |