CN115834097B - 基于多视角的https恶意软件流量检测系统及方法 - Google Patents
基于多视角的https恶意软件流量检测系统及方法 Download PDFInfo
- Publication number
- CN115834097B CN115834097B CN202210733908.8A CN202210733908A CN115834097B CN 115834097 B CN115834097 B CN 115834097B CN 202210733908 A CN202210733908 A CN 202210733908A CN 115834097 B CN115834097 B CN 115834097B
- Authority
- CN
- China
- Prior art keywords
- packets
- stream
- flow
- length
- extracting
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000000605 extraction Methods 0.000 claims abstract description 52
- 238000001914 filtration Methods 0.000 claims abstract description 22
- 238000005520 cutting process Methods 0.000 claims abstract description 15
- 238000007781 pre-processing Methods 0.000 claims abstract description 8
- 230000011218 segmentation Effects 0.000 claims abstract description 8
- 239000013598 vector Substances 0.000 claims description 36
- 238000004422 calculation algorithm Methods 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 28
- 238000009826 distribution Methods 0.000 claims description 28
- 230000006399 behavior Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 16
- 238000007637 random forest analysis Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 230000004083 survival effect Effects 0.000 claims description 5
- 230000001502 supplementing effect Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000012549 training Methods 0.000 description 28
- 238000002474 experimental method Methods 0.000 description 25
- 238000011156 evaluation Methods 0.000 description 12
- 238000007635 classification algorithm Methods 0.000 description 11
- 230000000052 comparative effect Effects 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 6
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012731 temporal analysis Methods 0.000 description 1
- 238000000700 time series analysis Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于多视角的HTTPS恶意软件流量检测系统及方法,属于恶意软件流量检测技术领域,解决现有技术无法对HTTPS加密技术掩盖的攻击行为进行检测的问题。本发明包括流量采集模块:从客户主机网卡捕获HTTPS流量,并对捕获的HTTPS流量进行初步过滤;数据预处理模块:对过滤后得到的HTTPS流量数据以流为单位进行切分,切分后得到多个流;多视角特征提取模块:基于切分后得到的流提取多视角特征;分类检测模块:将多视角特征直接输入各特征对应的已训练好的检测模型进行检测,并将各检测结果输入投票模块,得到最终的检测结果。本发明用于恶意软件流量检测。
Description
技术领域
一种基于多视角的HTTPS恶意软件流量检测系统及方法,用于恶意软件流量检测,属于恶意软件流量检测技术领域。
背景技术
恶意软件是一种专门设计的侵入型软件,旨在破坏计算机及其系统和计算机网络造成十分严重的后果,比如:泄露个人隐私,未经授权的访问信息或系统,锁定计算机进行勒索等,给个人或企业造成巨大的经济损失。
在互联网早期普遍采用超文本传输协议(HTTP)协议作为服务端与客户端的通信协议,由于HTTP的传输过程是明文传输的,很容易造成信息泄露等问题。伴随着用户的隐私和安全保护意识不断提升,以及Google等主流浏览器提供商开始将基于未加密的HTTP协议传输的网站定义为“不安全”网站,越来越多的数字化企业,开始升级部署HTTPS加密协议以满足浏览器的要求。
加密技术为企业和个人用户提供了隐私和安全的保护。但是,受益于加密的不仅仅是企业,恶意软件作者同样利用加密技术来隐藏其恶意活动进而逃避安全检测。在 2020年,有超过70%的恶意软件活动使用某种类型的加密协议来隐藏恶意软件的传播,C&C通信,以及数据传输活动。60%的企业或者组织因无法有效解密HTTPS,从而错过最佳的检测时间。
由于加密技术的应用,传统的检测方法因此而失效。许多研究人员借助机器学习和深度学习算法,将其应用在加密流量检测,形成了当前的主流检测方法。在文献《Amethod of detecting the abnormal encrypted traffic based on machine learningand behavior characteristics》中提出了一种基于机器学习行为特征的异常加密流量检测方法,基于行为的流量识别技术致力于分析网络应用的宏观行为特征进行网络流量分类,可以预先避免传统流量识别技术所要求的特征提取的困难。该方法不仅可以识别未知的异常流量,而且可以预先消除特定的特征提取,可以有效提高异常加密流量检测系统的准确性,但是该方法非常依赖对于分析应用所得到的行为特征,而无法做到很好的泛化性。
文献《Time series analysis for encrypted traffic classification: Adeep learning approach》提出的方法更加注重对于流特性的特征提取。其包括两个主要步骤。首先,通过分析客户端数据包的时间序列以此来分析流量在时间上表现出的行为特性,第二步,采用 LSTM 带有记忆的循环神经网络来保留接受网络流量的时间依赖性,从而对采集到的特征进行训练分析。但是该方法其只考虑了 TCP, UDP 上的特征工程技术,而忽略了加密流量中加密部分的时间特征分析,从而无法对异常加密流量进行检测。
文献《Trojan traffic detection based on meta-learning》提出了基于元学习的木马流量检测方法,该方法模型可以学习在多个元任务上计算不同类型样本之间差异的能力,可以根据先验知识,利用少量样本快速完成训练和分类。在面对木马流量的多分类情况下表现的比传统学习方法优秀。该方法所提取的字节数较少,同时完全忽略了加密流量中可观察部分的特征,从而无法对异常加密流量进行检测。
综上所述,现有技术存在如下技术问题:
1.依赖分析应用所得到的行为特征,从而造成泛化性差,易造成无法对异常加密流量(即HTTPS加密技术掩盖的攻击行为)进行检测的问题;或
忽略了对加密流量中加密部分的时间特征分析,从而无法对异常加密流量进行检测的问题;或
完全忽略了加密流量中可观察部分的特征(如包长分布,流统计信息,TLS握手和证书信息等),从而无法对异常加密流量进行检测的问题;
2.现有技术采用深度学习需要大量数据,但能获取的加密恶意流量数据相对较少,从而使得训练后得到的模型的识别准确率低的问题。
发明内容
针对上述研究的问题,本发明的目的在于提供一种基于多视角的HTTPS恶意软件流量检测系统及方法,解决现有技术无法对HTTPS加密技术掩盖的攻击行为进行检测的问题。
为了达到上述目的,本发明采用如下技术方案:
一种基于多视角的HTTPS恶意软件流量检测系统,包括:
流量采集模块:从客户主机网卡捕获HTTPS流量,并对捕获的HTTPS流量进行初步过滤,其中,捕获的HTTPS流量包括多个流,每1000个流存储为一个pcap文件,流表示从一个源地址到目的地址通信的整个过程,此过程包含多个正方向和反方向的数据包;
数据预处理模块:对过滤后得到的HTTPS流量数据以流为单位进行切分,切分后得到多个流;
多视角特征提取模块:基于切分后得到的流提取多视角特征;
分类检测模块:将多视角特征直接输入各特征对应的已训练好的检测模型进行检测,并将各检测结果输入投票模块,得到最终的检测结果。
进一步,所述流量采集模块通过wireshark流量捕获工具从客户主机网卡捕获HTTPS流量,并通过wireshark内置的过滤器对捕获的HTTPS流量进行过滤;
所述数据预处理模块通过SplitCap工具对HTTPS流量数据以流为单位进行切分,切分后得到多个流。
进一步,所述多视角特征提取模块包括:
包长分布特征提取模块:提取所有流中各包的方向和长度,并根据包的方向,依次将包的长度存入向量数组,并基于不同方向统计向量数组中包的数量,并计算各个方向的包在总包中的占比,即得到包长分布特征,其中,包的方向包括正方向和反方向,正方向的包为从客户主机到目的地址的包,即从源地址到目的地址的包,反方向的包为从目的地址到客户主机的包,包的长度为具体位置的下标,具体位置指向量数组的位置,向量数组中存储的包的长度大于3000;
流统计特征提取模块:提取过滤后得到的HTTPS流量数据的TCP协议中的标志位作为特征,标志位包括Ack、Syn、Fin、Psh、Urg和Rst,其中,Ack表示响应,Syn表示建立连接,Fin表示关闭连接,Psh表示有数据传输,Urg表示有紧急数据,Rst表示连接重置;
提取各流的TCP、UDP和DNS协议中的OverIp作为特征,OverIp表示TCP、UDP和DNS协议对应的数据包在整个流中的比例;
提取描述所有流的整体行为的信息作为特征,描述所有流的整体行为的信息包括MaxLen、MinLen、AvgLen、StdDevLen、MaxIAT、MinIAT、AvgIAT、AvgDeltaTime、MaxLenRx、MinLenRx、AvgLenRx、 StdDevLenRx、MaxIATRx、MinIATRx、AvgIATRx、StartFlow、 EndFlow、DeltaTime、 FlowLen和FlowLenRx,其中,MaxLen表示流的最大长度,MinLen表示流的最小长度,AvgLen表示流的平均长度,StdDevLen表示发送流长度的标准差,MaxIAT表示最大发送流间隔时间,MinIAT表示最小发送流间隔时间,AvgIAT表示平均发送流间隔时间,AvgDeltaTime表示平均偏移时间,MaxLenRx表示接收流的最大长度,MinLenRx表示接收流的最小长度,AvgLenRx表示接收流的平均长度,StdDevLenRx表示接收流长度的标准差,MaxIATRx表示最大接收流间隔时间,MinIATRx表示最小接收流间隔时间,AvgIATRx表示平均接收流时间,StartFlow表示流开始时间,EndFlow表示流结束时间,DeltaTime表示流间隔时间,FlowLen表示发送流总长度,FlowLenRx表示接收流总长度;
提取各流中第一个包的长度FirstPktLen 作为特征;
统计各流的DNS协议中字段的值作为特征,字段中的值包括DNSQDist、DNSADist、DNSRDist和 DNSSDist,DNSQDist表示DNS 协议中的问题计数,DNSADist表示DNS 协议中的回答资源记录数,DNSRDist表示示DNS 协议中的权威名称服务器计数,DNSSDist表示DNS协议中的附加资源记录数;
选择各流中重复包出现的比例RepeatedPktLenRatio和SmallPktRatio 作为特征,其中,RepeatedPktLenRatio表示各流中重复长度的数据包出现的比例,SmallPktRatio表示各流中最小长度数据包长度占比;
对各流的DNS出现的域名进行特征提取,提取后得到的特征包括AvgDomainChar 、AvgDomainDot、AvgDomainHyph、AvgDoainDigit和ValidUrl-Ratio,其中,AvgDomainChar表示发送包含DNS问题记录的数据流中字符的平均值,AvgDomainDot表示发送包含DNS问题记录的数据流中点的平均值,AvgDomainHyph表示发送包含DNS问题记录的数据流中连字符的平均值,AvgDoainDigit表示发送包含DNS问题记录的数据流中数字的平均值,ValidUrl-Ratio表示真实链接比例;
选择平均存活时间AvgTTL 作为特征,TTL表示IP数据包在计算机网络中能转发的最大跳数,AvgTTL表示所有流的平均最大跳数;
得到的上述特征即为流统计特征;
TLS握手和证书特征提取模块:在各流的TLS.version字段中选择出现次数最多的值作为该流的TLS特征,TLS.version字段为客户端提供的TLS 扩展信息,TLS.version表示TLS版本号;
提取各流中最终所选择的加密套件的字节码作为CipherSuites特征;
在各流中,对于Extension扩展模块,记录Extension扩展模块的长度和出现的服务器域名作为特征;
在遍历过程中,对包含tls的layer进行计数,计数后并进行计算,得到tls在layer中的比例,并作为特征;
提取证书特征;
得到的上述特征即为TLS握手和证书特征;
元学习特征提取模块:用于基于据ResNet网络进行元学习特征提取。
进一步,所述元学习特征提取模块的具体实现步骤为:
首先截取每个流的前八个数据包,其中,包即为数据包;
提取八个数据包的字节码,其中,八个数据包的最大长度为3136字节;
基于提取的各流的字节码,创建长度为3136的十六进制字节数组,并将其转换为十进制数组向量,数组内每个数的取值范围在0-255之间,数组的长度不够时,填充0进行补充;
最后,将数组向量输入ResNet网络的输入进行元学习特征提取。
进一步,所述分类检测模块中已训练好的检测模型包括对包长分布特征进行检测的包长分布分类器、对流统计特征进行检测的流统计特征分类器、对TLS握手和证书特征进行检测的TLS和证书分类器、对元学习特征进行检测的ResNet-MAML分类器;
所述包长分布分类器和流统计特征分类器为随机森林算法;
所述TLS和证书分类器为朴素贝叶斯算法;
ResNet-MAML分类器为ResNet-MAML算法。
一种基于多视角的HTTPS恶意软件流量检测方法,包括如下步骤:
步骤1:从客户主机网卡捕获HTTPS流量,并对捕获的HTTPS流量进行初步过滤;
步骤2:对过滤后得到的HTTPS流量数据以流为单位进行切分,切分后得到多个流;
步骤3:基于切分后得到的流提取多视角特征;
步骤4:将多视角特征直接输入各特征对应的已训练好的检测模型进行检测,并将各检测结果输入投票模块,得到最终的检测结果。
进一步,所述步骤1通过wireshark流量捕获工具从客户主机网卡捕获HTTPS流量,并通过wireshark内置的过滤器对捕获的HTTPS流量进行过滤;
所述数据预处理模块通过SplitCap工具对HTTPS流量数据以流为单位进行切分,切分后得到多个流。
进一步,所述步骤2的具体步骤为:
包长分布特征提取:提取所有流中各包的方向和长度,并根据包的方向,依次将包的长度存入向量数组,并基于不同方向统计向量数组中包的数量,并计算各个方向的包在总包中的占比,即得到包长分布特征,其中,包的方向包括正方向和反方向,正方向的包为从客户主机到目的地址的包,即从源地址到目的地址的包,反方向的包为从目的地址到客户主机的包,包的长度为具体位置的下标,具体位置指向量数组的位置,向量数组中存储的包的长度大于3000;
流统计特征提取:提取过滤后得到的HTTPS流量数据的TCP协议中的标志位作为特征,标志位包括Ack、Syn、Fin、Psh、Urg和Rst,其中,Ack表示响应,Syn表示建立连接,Fin表示关闭连接,Psh表示有数据传输,Urg表示有紧急数据,Rst表示连接重置;
提取各流的TCP、UDP和DNS协议中的OverIp作为特征,OverIp表示TCP、UDP和DNS协议对应的数据包在整个流中的比例;
提取描述所有流的整体行为的信息作为特征,描述所有流的整体行为的信息包括MaxLen、MinLen、AvgLen、StdDevLen、MaxIAT、MinIAT、AvgIAT、AvgDeltaTime、MaxLenRx、MinLenRx、AvgLenRx、 StdDevLenRx、MaxIATRx、MinIATRx、AvgIATRx、StartFlow、 EndFlow、DeltaTime、 FlowLen和FlowLenRx,其中,MaxLen表示流的最大长度,MinLen表示流的最小长度,AvgLen表示流的平均长度,StdDevLen表示发送流长度的标准差,MaxIAT表示最大发送流间隔时间,MinIAT表示最小发送流间隔时间,AvgIAT表示平均发送流间隔时间,AvgDeltaTime表示平均偏移时间,MaxLenRx表示接收流的最大长度,MinLenRx表示接收流的最小长度,AvgLenRx表示接收流的平均长度,StdDevLenRx表示接收流长度的标准差,MaxIATRx表示最大接收流间隔时间,MinIATRx表示最小接收流间隔时间,AvgIATRx表示平均接收流时间,StartFlow表示流开始时间,EndFlow表示流结束时间,DeltaTime表示流间隔时间,FlowLen表示发送流总长度,FlowLenRx表示接收流总长度;
提取各流中第一个包的长度FirstPktLen 作为特征;
统计各流的DNS协议中字段的值作为特征,字段中的值包括DNSQDist、DNSADist、DNSRDist和 DNSSDist,DNSQDist表示DNS 协议中的问题计数,DNSADist表示DNS 协议中的回答资源记录数,DNSRDist表示示DNS 协议中的权威名称服务器计数,DNSSDist表示DNS协议中的附加资源记录数;
选择各流中重复包出现的比例RepeatedPktLenRatio和SmallPktRatio 作为特征,其中,RepeatedPktLenRatio表示各流中重复长度的数据包出现的比例,SmallPktRatio表示各流中最小长度数据包长度占比;
对各流的DNS出现的域名进行特征提取,提取后得到的特征包括AvgDomainChar 、AvgDomainDot、AvgDomainHyph、AvgDoainDigit和ValidUrl-Ratio,其中,AvgDomainChar表示发送包含DNS问题记录的数据流中字符的平均值,AvgDomainDot表示发送包含DNS问题记录的数据流中点的平均值,AvgDomainHyph表示发送包含DNS问题记录的数据流中连字符的平均值,AvgDoainDigit表示发送包含DNS问题记录的数据流中数字的平均值,ValidUrl-Ratio表示真实链接比例;
选择平均存活时间AvgTTL 作为特征,TTL表示IP数据包在计算机网络中能转发的最大跳数,AvgTTL表示所有流的平均最大跳数;
得到的上述特征即为流统计特征;
TLS握手和证书特征提取:在各流的TLS.version字段中选择出现次数最多的值作为该流的TLS特征,TLS.version字段为客户端提供的TLS 扩展信息,TLS.version表示TLS版本号;
提取各流中最终所选择的加密套件的字节码作为CipherSuites特征;
在各流中,对于Extension扩展模块,记录Extension扩展模块的长度和出现的服务器域名作为特征;
在遍历过程中,对包含tls的layer进行计数,计数后并进行计算,得到tls在layer中的比例,并作为特征;
提取证书特征;
得到的上述特征即为TLS握手和证书特征;
元学习特征提取:用于基于据ResNet网络进行元学习特征提取。
进一步,所述步骤3的具体步骤为:
首先截取每个流的前八个数据包,其中,包即为数据包;
提取八个数据包的字节码,其中,八个数据包的最大长度为3136字节;
基于提取的各流的字节码,创建长度为3136的十六进制字节数组,并将其转换为十进制数组向量,数组内每个数的取值范围在0-255之间,数组的长度不够时,填充0进行补充;
最后,将数组向量输入ResNet网络的输入进行元学习特征提取。
本发明同现有技术相比,其有益效果表现在:
一、目前对 HTTPS 恶意软件流量的检测方法往往只是单独的关注流量某一方面的行为特征进行算法研究,没有充分考虑恶意软件流量在各个方面表现出的特征,本发明从多个视角对流量样本进行分析,最大程度分析恶意软件样本的特点,大大提高了恶意软件的检测准确率;
二、本发明对加密负载部分,采用 ResNet 残差网络对原始流量数据包进行特征提取工作,以解决深度学习需要大量数据,但加密恶意流量数据相对较少的问题,能够进行深层次的深度学习特征提取,并且同时保证模型的效果不会变差;
三、本发明对加密负载部分,将元学习算法应用到HTTPS恶意软件流量检测中,可以快速完成训练和分类,解决了小样本训练的问题。
附图说明
图1是本发明的总体架构图,其中,Wireshark表示流量捕获工具,可以实时捕获和离线分析流量数据,Winpcap/libpacp是wireshark底层使用的库文件,也就是底层驱动,SplitCap表示将大的数据包切分为流的工具,Tshark表示wireshark的内部工具,能够对流量包进行初步筛选;
图2是在已知训练集上,对流级视角的三类算法(SVM、XGBoot和Random Forest)进行了模型性能评估得到的ROC曲线图;
图3是在已知训练集上CNN、 BiLSTM和 ResNet对元学习特征进行分析的性能指标图;
图4是在已知训练集上对K=10、K=20 个样本时,元学习分类器(即ResNet-MAML算法)的实验结果图;
图5是对本发明的4 个分类器、CNN、 BiLSTM和 ResNet在已知训练数据集上进行训练得到的结果与采用未知验证集进行验证的实验对比结果图;
图6是本发明与对比实验1和对比实验2在已知训练集上的性能评估图;
图7是本发明与对比实验1、对比实验2和ResNet-MAML算法在未知验证集上的性能评估图。
具体实施方式
下面将结合附图及具体实施方式对本发明作进一步的描述。
一种基于多视角的HTTPS恶意软件流量检测系统,包括以下器件:
流量采集模块:从客户主机网卡捕获HTTPS流量,并对捕获的HTTPS流量进行初步过滤,其中,捕获的HTTPS流量包括多个流,每1000个流存储为一个pcap文件,流表示从一个源地址到目的地址通信的整个过程,此过程包含多个数据包;
数据预处理模块:对过滤后得到的HTTPS流量数据以流为单位进行切分,切分后得到多个流,为之后以流为单位进行特征提取工作做准备,同时减少了需要处理的数据数量,对没有完成握手通信的数据进行删除;
多视角特征提取模块:基于切分后得到的流提取多视角特征,即在拿到一个流数据后,会形成四份特征文件以供给接下来的分类器使用,这其中包括包长分布特征提取,流级统计特征提取,TLS握手和证书特征提取,以及ResNet对LTS加密流的前3136个字节进行特征提取;
分类检测模块:将多视角特征直接输入各特征对应的已训练好的检测模型进行检测,并将各检测结果输入投票模块,得到最终的检测结果。
整个系统启动时,首先流量采集模块通过wireshark流量捕获工具,从客户主机网卡捕获HTTPS流量,并通过wireshark内置的过滤器对大量的流量进行初步的过滤;采用SplitCap工具对HTTPS流量数据以流为单位进行切分,为之后以流为单位进行特征提取工作做准备;多视角特征提取模块会将流处理形成四份特征文件以供给接下来的分类器使用,包括包长分布特征提取、流级统计特征提取、TLS握手和证书特征提取、以及ResNet对LTS加密流的前3136个字节进行特征提取得到的元学习特征;分类检测模块对输入的特征文件进行检测,并结合最后的投票模块输出最终的检测结果。
上述技术方案中,多视角特征提取模块的包括:
包长分布特征提取模块:提取过滤后得到的HTTPS流量数据中各包的方向和长度,并根据包的方向,依次将包的长度存入向量数组,并基于不同方向统计向量数组中包的数量,并计算各个方向的包在总包中的占比,即得到包长分布特征(得到包长概率分布特征),其中,包的方向包括正方向和反方向,正方向的包为从客户主机到目的地址的包,即从源地址到目的地址的包,反方向的包为从目的地址到客户主机的包,包的长度为具体位置的下标,具体位置指向量数组的位置,向量数组中存储的包的长度大于3000;
即提取包长分布分类器所需特征,从过滤后得到的HTTPS流量数据中提取包的方向和包的长度,依次保存长度为3015的向量数组中来统计数量,保存方式为,从客户机到目的地址的包为正方向,在1500-3028区间,反之为反方向,在0-1514区间,包的长度为具体位置的下标,在保存时的措施是,当然长度在上一个长度或是第一个时,在初始值(初始值为0)的基础上加一,即下标加一,按照上述措施依次对该流中的数据包进行统计;
流统计特征提取模块:提取过滤后得到的HTTPS流量数据的TCP协议中的标志位作为特征,标志位包括Ack、Syn、Fin、Psh、Urg和Rst,其中,Ack表示响应,Syn表示建立连接,Fin表示关闭连接,Psh表示有数据传输,Urg表示有紧急数据,Rst表示连接重置;提取各流的TCP、UDP和DNS协议中的OverIp作为特征,OverIp表示TCP、UDP和DNS协议对应的数据包在整个流中的比例;提取描述所有流的整体行为的信息作为特征,描述所有流的整体行为的信息包括MaxLen、MinLen、AvgLen、StdDevLen、MaxIAT、MinIAT、AvgIAT、AvgDeltaTime、MaxLenRx、MinLenRx、AvgLenRx、 StdDevLenRx、MaxIATRx、MinIATRx、AvgIATRx、StartFlow、EndFlow、 DeltaTime、 FlowLen和FlowLenRx,其中,MaxLen表示流的最大长度,MinLen表示流的最小长度,AvgLen表示流的平均长度,StdDevLen表示发送流长度的标准差,MaxIAT表示最大发送流间隔时间,MinIAT表示最小发送流间隔时间,AvgIAT表示平均发送流间隔时间,AvgDeltaTime表示平均偏移时间,MaxLenRx表示接收流的最大长度,MinLenRx表示接收流的最小长度,AvgLenRx表示接收流的平均长度,StdDevLenRx表示接收流长度的标准差,MaxIATRx表示最大接收流间隔时间,MinIATRx表示最小接收流间隔时间,AvgIATRx表示平均接收流时间,StartFlow表示流开始时间,EndFlow表示流结束时间,DeltaTime表示流间隔时间,FlowLen表示发送流总长度,FlowLenRx表示接收流总长度;提取各流中第一个包的长度FirstPktLen 作为特征;统计各流的DNS协议中字段的值作为特征,字段中的值包括DNSQDist、DNSADist、DNSRDist和 DNSSDist,DNSQDist表示DNS 协议中的问题计数,DNSADist表示DNS 协议中的回答资源记录数,DNSRDist表示示DNS 协议中的权威名称服务器计数,DNSSDist表示DNS 协议中的附加资源记录数;选择各流中重复包出现的比例RepeatedPktLenRatio和SmallPktRatio 作为特征,其中,RepeatedPktLenRatio表示各流中重复长度的数据包出现的比例,SmallPktRatio表示各流中最小长度数据包长度占比;对各流的DNS出现的域名进行特征提取,提取后得到的特征包括AvgDomainChar 、AvgDomainDot、AvgDomainHyph、AvgDoainDigit和ValidUrl-Ratio,其中,AvgDomainChar表示发送包含DNS问题记录的数据流中字符的平均值,AvgDomainDot表示发送包含DNS问题记录的数据流中点的平均值,AvgDomainHyph表示发送包含DNS问题记录的数据流中连字符的平均值,AvgDoainDigit表示发送包含DNS问题记录的数据流中数字的平均值,ValidUrl-Ratio表示真实链接比例;选择平均存活时间AvgTTL 作为特征,TTL表示IP数据包在计算机网络中能转发的最大跳数,AvgTTL表示所有流的平均最大跳数;得到的上述特征即为流统计特征(即指图1中的流级统计特征);以上特征提取依据的是正常流量中的各个标志位的值和数量等均具有一定的随机性,但是恶意流量的这些计数会很高并具有一个固定的规律或是周期性。
TLS握手和证书特征提取模块:在各流的TLS.version字段中选择出现次数最多的值作为该流的TLS特征,TLS.version字段为客户端提供的TLS 扩展信息,TLS.version表示TLS版本号;提取各流中最终所选择的加密套件的字节码作为CipherSuites特征;在各流中,对于Extension扩展模块,记录Extension扩展模块的长度和出现的服务器域名作为特征;在遍历过程中,对包含tls的layer进行计数,计数后并进行计算,得到tls在layer中的比例,并作为特征;得到的上述特征即为TLS握手和证书特征;
即对TLS握手和证书特征进行提取,这里主要关注的是其额外扩展字段,包括提取特征所需要的各项字段。根据以上提取到的字段值进行特征的计算,在提取过程中,其中一些字段值是以接收序列的形式得到的,根据对其进行了进一步处理,在TLS.version字段中,我们提取到该流中使用的TLS版本号,体现出客户机与主机沟通采用一致版本号的过程,将选择TLS版本号出现次数最多的值作为该流的TLS字段。对于CipherSuites特征,我们提取该流中最终所选择的加密套件的字节码作为CipherSuites特征。对于Extension扩展模块的处理,选择记录扩展模块的长度,和其中出现的服务器域名作为特征值。对于最后一个特征所需要的比例,需要在遍历过程中,对包含tls的layer进行计数,便可以计算得到tls在layer中的比例;
元学习特征提取模块:用于基于据ResNet网络进行元学习特征提取,即对加密原始字节提取。具体为:最后是对于元学习特征提取,根据ResNet网络进行特征提取,首先截取每个流的前八个数据包,提取他们的字节码,这八个数据包的最大长度为3136字节,因此,基于提取的各流的字节码创建长度为3136的十六进制字节数组,并将其转换为十进制数组向量,数组内每个数的取值范围了0-255之间,对于数组长度不够填充0进行补充,将数组向量作为ResNet网络的输入进行特征提取作为元学习算法的输入。
上述技术方案中,所述分类检测模块中已训练好的检测模型包括对包长分布特征进行检测的包长分布分类器、对流统计特征进行检测的流统计特征分类器、对TLS握手和证书特征进行检测的TLS和证书分类器、对元学习特征进行检测的ResNet-MAML分类器;:
首先,我们针对包长分布和流级统计特征的数据特点,即数字向量特征来选择分类算法。根据实验结果,最终选择随机森林算法作为该部分的分类算法;
其次,针对TLS握手和证书特征,由于这两部分的特征中包含字段描述性信息比如域名,Subject,Issuer,有效时间等特征的存在,与前面两个特征(包长分布特征和流统计特征)在结构上是不同的,因此我们选择采用词袋模型中的bagging方法来对这些字段进行特征提取,将这些包含字段的特征视作一个独立的单词,即subject和Issuer。那么在一个流量样本中,这些特征便会组成了一个句子,然后我们将这些单词出现的频率编码成特征向量,并结合数值形式的特征,形成最终的特征向量,并采用朴素贝叶斯分类算法; 即TLS字段、CipherSuites特征、扩展模块的长度、服务器域名和tls在layer中的比例是根据TLS握手提取的特征,证书中可以很容易的提取得到证书号、证书版本号、扩展列表和有效期时间段。针对TLS握手和证书特征,这两部分的特征中包含字段描述性信息比如域名、Subject、Issuer和有效时间等特征。通过bagging方法对这些提取出的特征进行了特征提取,形成了特征向量,然后再采用朴素贝叶斯分类算法。
最后,本系统选择采用基于优化器的元学习基础算法MAML(Model-agnosticmeta-learning),即指指的是ResNet-MAML分类器,针对恶意软件流量的检测模型需要有潜力的,在面对新任务也就是面对新的恶意软件流量样本可以快速学习并完成收敛。
本发明中流的特征都是人为选择的,提取采用wireshark内置的过滤器进行筛选,在需要计算的情况下通过人工计算处理得到。
分类检测模块是将多视角特征直接输入各特征对应的已训练好的检测模型进行检测,并将各检测结果输入投票模块,得到最终的检测结果。即包长分布分类器、流统计特征分类器、TLS和证书分类器和ResNet-MAML分类器,每个分类器都会对流量进行二分类,并输出一个预测结果。假设四个分类器预测的结果分别为:恶意、良性、恶意、恶意,被预测为恶意流量的次数最多,所以我们选择恶意作为最终分类器的预测输出结果。
本发明还提供了一种基于多视角的HTTPS恶意软件流量检测方法,分成四个部分流量采集模块、数据预处理模块、多视角特征提取模块和分类检测模块,该方法主要包括以下步骤:
步骤1:从客户主机网卡捕获HTTPS流量,并对捕获的HTTPS流量进行初步过滤;
步骤2:对过滤后得到的HTTPS流量数据以流为单位进行切分,切分后得到多个流;
步骤3:基于过滤后得到的HTTPS流量数据和切分后得到的流提取多视角特征;
步骤4:将多视角特征直接输入各特征对应的已训练好的检测模型进行检测,并将各检测结果输入投票模块,得到最终的检测结果。
实验环境搭建:本发明所设计的系统涉及到网络流量采集(HTTPS流量),特征采集(上述四个特征),机器学习训练等工作,因此对实验设备有一定的要求。本实验具体采用的硬件设备和软件环境如表1和表2所示。
项目 | 配置 |
CPU | Intel(R)Core(TM)i7-10710U cpu@1.1Ghz 1.61 |
内存 | 16G DDR4-2400Hz |
硬盘 | 512G |
网卡 | 千兆以太网卡 |
GPU | GrForce GTX 1080Ti |
表1
项目 | 配置 |
OS | windows10, Ubuntu18 |
python | 3.7.4 |
tensorflow | 1.15.5 |
wireshark | 3.2.4 |
表2
下面对系统的检测性能进行评估:
分类器性能评估:在已知训练数据集实验中,我们采用三种分类算法进行效果对比,三个算法经过参数调优之后的准确率表现如表3所示。
包长分布视角准确率 | 流级统计视角准确率 | |
SVM | 85.7% | 94.7% |
Random Forest | 93.5% | 98.5% |
XGBoost | 92.1% | 97.1% |
表3
可以看出随机森林算法(Random ForestRandom Forest)在准确率上表现的更好,流级统计视角分类器的准确率也相对更高。因此,对流级视角的三类算法进行了模型性能的评估,其ROC曲线图如图2所示,可以看出随机森林在识别能力上是更强的,因此,本系统最终采用随机森林算法来作为这两个视角的分类算法。
而对于一个模型在实际场景下的效果评估,最终的模型的误报率不能太高,在大量数据的场景下,哪怕是万分之一的误报率也会产生大量的错误警报,因此,我们通过调优参数来使其在训练集下的误报率不超过万分之一。
对于随机森林算法的调参过程我们采用 GridSearchCV 寻找最佳模型参数,两个分类器的最佳参数如下表4所示:
参数 | 包长分布分类器最佳值 | 流级分类器最佳值 |
n_estimators | 70 | 80 |
max_depth | 7 | 15 |
min_samples_split | 80 | 120 |
min_samples_leaf | 10 | 40 |
max_features | 9 | 35 |
表4
其中,n_estimators表示森林里树的个数,max_depth表示树的最大深度,min_samples_split表示分割内部节点所需的最小样本数,min_samples_leaf表示叶节点处所需的最小样本数,max_features表示每个决策树的随机选择的特征数目。
最后,可以确定所有取得的最佳参数,并确定我们的模型。将模型进行保存,以供之后的使用。
同时,我们对流级分类器中所有的特征的重要性进行了评估,其中,最重要的 6个为, AvgIAT, DeltaTime, MaxLen, MiniAtrx,Stratflow, DNSqDist。这些特征上表现出来的异常值有极大的可能是恶意软件流量。在行为上可以体现出一个恶意软件在成功感染之后,发起的网络活动特征。
对于 TLS 握手和证书特征分类器(即指TLS 和证书特征分类器),采用的是朴素贝叶斯分类算法,最终可以达到的准确率为: 95.51。
元学习分类算法性能评估:本系统构建了 CNN, BiLSTM, ResNet 这三个神经网络直接对原始加密字节流进行分析,以此来验证深度神经网络对原始流量的识别能力,其结果性能指标如图3所示。
这三个网络是在已知训练集上进行二分类训练所得的性能评价结果,可以看出ResNet50 残差网络可以在加密恶意软件流量样本上具有高准确率的识别效果,说明ResNet50 可以很好的从原始加密流量中提取特征,这是由于 ResNet50 的网络深度比CNN 和 BiLSTM 更深,同时可以保证网络结构不会退化为浅层网络,从而最大限度的提取特征,因此,在识别能力上,比 CNN 和 BiLSTM 更加优秀。
本系统采用任务转换算法将特征向量转化为包含 K 个样本的任务,然后输入MAML 元学习模型(即ResNet-MAML分类器)进行训练,由于本系统的检测目标为是否恶意的二分类,因此在针对 N-way,K-shot的小样本问题中,我们首先可以确定 N=2,样本数目 K的大小选择 K=10,以及 K=20 进行训练,实验结果如下图4所示:可以看出在单个任务中,所包含的样本数 K=20 的情况下准确率表现的更好,准确率可达 97.9%。
最终结合四个分类器的检测,四个检测器的准确率均在 95% 以上,通过投票机制进行投票综合决定后准确率进一步提升可达 98.5%。
以上实验均是在已知训练集上进行的模型训练以及性能评估工作,可以看出在已知训练集上模型可以表现出很高的准确率,初步验证了本方法可以在有充足数据量的情况下可以对 HTTPS 恶意软件流量进行检测并保持较高的准确率。
接下来,将通过实验验证本方法在面对未知验证集数据的表现情况与在已知训练集的性能评估进行对比。本系统采用预先划分出来的未知验证集来模拟新出现的未知流量样本和小样本,首先与前面已经训练完成的三个神经网络进行对比,观察神经网络对新出现的未知流量的识别能力,预测准确率结果如下表5所示:
CNN | BiLSTM | ResNet | |
已知训练集 | 94.7 | 96.4 | 99 |
未知验证集 | 75.4 | 78.8 | 80.1 |
表5
可以看出,在面对未经过训练的数据时,深度神经网络的识别能力出现明显下降,这是由于在恶意软件的家族和类型改变之后,其流量特点发生了改变,从而导致以往的神经网络的识别能力下降。
同时,针对本系统提出的多视角检测方法,对其中 4 个分类器进行未知验证集的实验对比结果如图5所示:
可以看出在使用模型未见过的恶意软件流量样本进行检测时,包长分类器和流级分类器以及 TLS 握手与证书分类器的准确率均出现了大幅度的降低,平均降低了约 15%,而对于神经网络模型 CNN, BiLSTM, ResNet 也出现了大幅度的下降,而对于 ResNet—Maml 分类器的准确率下降约5%左右。该实验很好的验证了将元学习在面对新的没有见过的样本时表现出的高准确率,而经过四个分类器综合投票后,在验证集上的准确率可达95.4%。
对比实验评估:本系统根据文献《Ssl malicious traffic detection based onmulti-view features》和文献《Trojan traffic detection based on meta-learning》提出的分类方法,设计了两个对比实验(对比实验1和对比实验2),对比实验1:是基于机器学习的分类方法,《Ssl malicious traffic detection based on multi-view features》提出从两个视角出发,对流级统计特征与 SSL 握手特征进行提取并采用了三种分类算法进行训练采取分类效果最好的 XGBoost 分类算法。本系统根据论文中所提出的算法和最佳实验参数设置对比实验。
对比实验2:是基于深度学习的元学习算法,《Trojan traffic detection basedon meta-learning》提出使用基于度量的元学习算法对木马流量进行检测的方法,其提取了每个流的前 3-5 个数据包的 TCP 加密负载部分共 784 个字节,放入 ResNet-BiLSTM组合网络进行特征提取,并使用基于度量的元学习算法进行检测。
具体为:
使用已经划分完成的已知训练集和未知验证集进行训练。
在已知训练集的性能评估如图6所示:
可以看出本系统多视角方法与对比实验 2 在各个评估指标上均优于对比实验1,这是由于本方法与对比实验2均采用了深度神经网络进行特征提取,而本方法同时考虑到了 HTTPS 恶意软件流量的多方面的特征,在对比实验2的基础上各个评估指标约有 1% 的提升。
然后使用未知验证数据集对刚训练完成的模型进行性能评估,结果如图7所示:
可以看出各个方法在面对未知训练集数据时的性能表现情况。对比实验1,单纯的利用从两个视角进行特征提取的对比实验1的性能大幅度下降,这主要是由于模型结构固定,在面对新的未训练过的 HTTPS 恶意软件流量样本时,准确率会大幅下降。验证说明了机器学习分类算法应用在对象特征变化迅速的恶意软件流量检测领域存在的弊端。但是其准确率仍在 70% 以上,说明其仍具备一定的检测能力,因此不能完全摒弃基于特征提取的机器学习算法。
而从与对比实验 2 的比较中可以看出,本方法与对比实验 2 均结合采用了元学习的算法以解决面对未知样本的小样本训练问题,但是对比实验 2 采用的是ResNet34 网络,并仅提取了 784 个字节,而本系统采用的网络深度更深,提取的字节数更多,同时采用了收敛速度更快的基于优化器的 MAML 算法以此希望在准确率上获得进步。从图5-7可以看出,仅使用 ResNet—MAML 算法比对比实验2 提升了约 1% 的准确率。
通过对可观察部分的和加密部分特征的检测结果综合考虑,可以看出在原有的基础上提上了约4%的准确率。
以上的实验结果表明,本系统所使用的从多视角进行 HTTPS 恶意软件流量检测方法是有效的。同时,实验表明,在有限的数据集下,在面对未知流量样本的检测上,依然可以保持较高的准确率。
以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。
Claims (4)
1.一种基于多视角的HTTPS恶意软件流量检测系统,其特征在于,包括:
流量采集模块:从客户主机网卡捕获HTTPS流量,并对捕获的HTTPS流量进行初步过滤,其中,捕获的HTTPS流量包括多个流,每1000个流存储为一个pcap文件,流表示从一个源地址到目的地址通信的整个过程,此过程包含多个正方向和反方向的数据包;
数据预处理模块:对过滤后得到的HTTPS流量数据以流为单位进行切分,切分后得到多个流;
多视角特征提取模块:基于切分后得到的流提取多视角特征;
分类检测模块:将多视角特征直接输入各特征对应的已训练好的检测模型进行检测,并将各检测结果输入投票模块,得到最终的检测结果;
所述多视角特征提取模块包括:
包长分布特征提取模块:提取所有流中各包的方向和长度,并根据包的方向,依次将包的长度存入向量数组,并基于不同方向统计向量数组中包的数量,并计算各个方向的包在总包中的占比,即得到包长分布特征,其中,包的方向包括正方向和反方向,正方向的包为从客户主机到目的地址的包,即从源地址到目的地址的包,反方向的包为从目的地址到客户主机的包,包的长度为具体位置的下标,具体位置指向量数组的位置,向量数组中存储的包的长度大于3000;
流统计特征提取模块:提取过滤后得到的HTTPS流量数据的TCP协议中的标志位作为特征,标志位包括Ack、Syn、Fin、Psh、Urg和Rst,其中,Ack表示响应,Syn表示建立连接,Fin表示关闭连接,Psh表示有数据传输,Urg表示有紧急数据,Rst表示连接重置;
提取各流的TCP、UDP和DNS协议中的OverIp作为特征,OverIp表示TCP、UDP和DNS协议对应的数据包在整个流中的比例;
提取描述所有流的整体行为的信息作为特征,描述所有流的整体行为的信息包括MaxLen、MinLen、AvgLen、StdDevLen、MaxIAT、MinIAT、AvgIAT、AvgDeltaTime、MaxLenRx、MinLenRx、AvgLenRx、 StdDevLenRx、MaxIATRx、MinIATRx、AvgIATRx、StartFlow、 EndFlow、DeltaTime、 FlowLen和FlowLenRx,其中,MaxLen表示流的最大长度,MinLen表示流的最小长度,AvgLen表示流的平均长度,StdDevLen表示发送流长度的标准差,MaxIAT表示最大发送流间隔时间,MinIAT表示最小发送流间隔时间,AvgIAT表示平均发送流间隔时间,AvgDeltaTime表示平均偏移时间,MaxLenRx表示接收流的最大长度,MinLenRx表示接收流的最小长度,AvgLenRx表示接收流的平均长度,StdDevLenRx表示接收流长度的标准差,MaxIATRx表示最大接收流间隔时间,MinIATRx表示最小接收流间隔时间,AvgIATRx表示平均接收流时间,StartFlow表示流开始时间,EndFlow表示流结束时间,DeltaTime表示流间隔时间,FlowLen表示发送流总长度,FlowLenRx表示接收流总长度;
提取各流中第一个包的长度FirstPktLen 作为特征;
统计各流的DNS协议中字段的值作为特征,字段中的值包括DNSQDist、DNSADist、DNSRDist和 DNSSDist,DNSQDist表示DNS 协议中的问题计数,DNSADist表示DNS 协议中的回答资源记录数,DNSRDist表示示DNS 协议中的权威名称服务器计数,DNSSDist表示DNS协议中的附加资源记录数;
选择各流中重复包出现的比例RepeatedPktLenRatio和SmallPktRatio 作为特征,其中,RepeatedPktLenRatio表示各流中重复长度的数据包出现的比例,SmallPktRatio表示各流中最小长度数据包长度占比;
对各流的DNS出现的域名进行特征提取,提取后得到的特征包括AvgDomainChar 、AvgDomainDot、AvgDomainHyph、AvgDoainDigit和ValidUrl-Ratio,其中,AvgDomainChar表示发送包含DNS问题记录的数据流中字符的平均值,AvgDomainDot表示发送包含DNS问题记录的数据流中点的平均值,AvgDomainHyph表示发送包含DNS问题记录的数据流中连字符的平均值,AvgDoainDigit表示发送包含DNS问题记录的数据流中数字的平均值,ValidUrl-Ratio表示真实链接比例;
选择平均存活时间AvgTTL 作为特征,TTL表示IP数据包在计算机网络中能转发的最大跳数,AvgTTL表示所有流的平均最大跳数;
得到的上述特征即为流统计特征;
TLS握手和证书特征提取模块:在各流的TLS.version字段中选择出现次数最多的值作为该流的TLS特征,TLS.version字段为客户端提供的TLS 扩展信息,TLS.version表示TLS版本号;
提取各流中最终所选择的加密套件的字节码作为CipherSuites特征;
在各流中,对于Extension扩展模块,记录Extension扩展模块的长度和出现的服务器域名作为特征;
在遍历过程中,对包含tls的layer进行计数,计数后并进行计算,得到tls在layer中的比例,并作为特征;
提取证书特征;
得到的上述特征即为TLS握手和证书特征;
元学习特征提取模块:用于基于ResNet网络进行元学习特征提取;
所述元学习特征提取模块的具体实现步骤为:
首先截取每个流的前八个数据包,其中,包即为数据包;
提取八个数据包的字节码,其中,八个数据包的最大长度为3136字节;
基于提取的各流的字节码,创建长度为3136的十六进制字节数组,并将其转换为十进制数组向量,数组内每个数的取值范围在0-255之间,数组的长度不够时,填充0进行补充;
最后,将数组向量输入ResNet网络的输入进行元学习特征提取。
2.根据权利要求1所述的一种基于多视角的HTTPS恶意软件流量检测系统,其特征在于,所述流量采集模块通过wireshark流量捕获工具从客户主机网卡捕获HTTPS流量,并通过wireshark内置的过滤器对捕获的HTTPS流量进行过滤;
所述数据预处理模块通过SplitCap工具对HTTPS流量数据以流为单位进行切分,切分后得到多个流。
3.根据权利要求2所述的一种基于多视角的HTTPS恶意软件流量检测系统,其特征在于,所述分类检测模块中已训练好的检测模型包括对包长分布特征进行检测的包长分布分类器、对流统计特征进行检测的流统计特征分类器、对TLS握手和证书特征进行检测的TLS和证书分类器、对元学习特征进行检测的ResNet-MAML分类器;
所述包长分布分类器和流统计特征分类器为随机森林算法;
所述TLS和证书分类器为朴素贝叶斯算法;
ResNet-MAML分类器为ResNet-MAML算法。
4.一种基于多视角的HTTPS恶意软件流量检测方法,其特征在于,包括如下步骤:
步骤1:从客户主机网卡捕获HTTPS流量,并对捕获的HTTPS流量进行初步过滤;
步骤2:对过滤后得到的HTTPS流量数据以流为单位进行切分,切分后得到多个流;
步骤3:基于切分后得到的流提取多视角特征;
步骤4:将多视角特征直接输入各特征对应的已训练好的检测模型进行检测,并将各检测结果输入投票模块,得到最终的检测结果;
所述步骤2的具体步骤为:
包长分布特征提取:提取所有流中各包的方向和长度,并根据包的方向,依次将包的长度存入向量数组,并基于不同方向统计向量数组中包的数量,并计算各个方向的包在总包中的占比,即得到包长分布特征,其中,包的方向包括正方向和反方向,正方向的包为从客户主机到目的地址的包,即从源地址到目的地址的包,反方向的包为从目的地址到客户主机的包,包的长度为具体位置的下标,具体位置指向量数组的位置,向量数组中存储的包的长度大于3000;
流统计特征提取:提取过滤后得到的HTTPS流量数据的TCP协议中的标志位作为特征,标志位包括Ack、Syn、Fin、Psh、Urg和Rst,其中,Ack表示响应,Syn表示建立连接,Fin表示关闭连接,Psh表示有数据传输,Urg表示有紧急数据,Rst表示连接重置;
提取各流的TCP、UDP和DNS协议中的OverIp作为特征,OverIp表示TCP、UDP和DNS协议对应的数据包在整个流中的比例;
提取描述所有流的整体行为的信息作为特征,描述所有流的整体行为的信息包括MaxLen、MinLen、AvgLen、StdDevLen、MaxIAT、MinIAT、AvgIAT、AvgDeltaTime、MaxLenRx、MinLenRx、AvgLenRx、 StdDevLenRx、MaxIATRx、MinIATRx、AvgIATRx、StartFlow、 EndFlow、DeltaTime、 FlowLen和FlowLenRx,其中,MaxLen表示流的最大长度,MinLen表示流的最小长度,AvgLen表示流的平均长度,StdDevLen表示发送流长度的标准差,MaxIAT表示最大发送流间隔时间,MinIAT表示最小发送流间隔时间,AvgIAT表示平均发送流间隔时间,AvgDeltaTime表示平均偏移时间,MaxLenRx表示接收流的最大长度,MinLenRx表示接收流的最小长度,AvgLenRx表示接收流的平均长度,StdDevLenRx表示接收流长度的标准差,MaxIATRx表示最大接收流间隔时间,MinIATRx表示最小接收流间隔时间,AvgIATRx表示平均接收流时间,StartFlow表示流开始时间,EndFlow表示流结束时间,DeltaTime表示流间隔时间,FlowLen表示发送流总长度,FlowLenRx表示接收流总长度;
提取各流中第一个包的长度FirstPktLen 作为特征;
统计各流的DNS协议中字段的值作为特征,字段中的值包括DNSQDist、DNSADist、DNSRDist和 DNSSDist,DNSQDist表示DNS 协议中的问题计数,DNSADist表示DNS 协议中的回答资源记录数,DNSRDist表示示DNS 协议中的权威名称服务器计数,DNSSDist表示DNS协议中的附加资源记录数;
选择各流中重复包出现的比例RepeatedPktLenRatio和SmallPktRatio 作为特征,其中,RepeatedPktLenRatio表示各流中重复长度的数据包出现的比例,SmallPktRatio表示各流中最小长度数据包长度占比;
对各流的DNS出现的域名进行特征提取,提取后得到的特征包括AvgDomainChar 、AvgDomainDot、AvgDomainHyph、AvgDoainDigit和ValidUrl-Ratio,其中,AvgDomainChar表示发送包含DNS问题记录的数据流中字符的平均值,AvgDomainDot表示发送包含DNS问题记录的数据流中点的平均值,AvgDomainHyph表示发送包含DNS问题记录的数据流中连字符的平均值,AvgDoainDigit表示发送包含DNS问题记录的数据流中数字的平均值,ValidUrl-Ratio表示真实链接比例;
选择平均存活时间AvgTTL 作为特征,TTL表示IP数据包在计算机网络中能转发的最大跳数,AvgTTL表示所有流的平均最大跳数;
得到的上述特征即为流统计特征;
TLS握手和证书特征提取:在各流的TLS.version字段中选择出现次数最多的值作为该流的TLS特征,TLS.version字段为客户端提供的TLS 扩展信息,TLS.version表示TLS版本号;
提取各流中最终所选择的加密套件的字节码作为CipherSuites特征;
在各流中,对于Extension扩展模块,记录Extension扩展模块的长度和出现的服务器域名作为特征;
在遍历过程中,对包含tls的layer进行计数,计数后并进行计算,得到tls在layer中的比例,并作为特征;
提取证书特征;
得到的上述特征即为TLS握手和证书特征;
元学习特征提取:用于基于ResNet网络进行元学习特征提取;
所述步骤3的具体步骤为:
首先截取每个流的前八个数据包,其中,包即为数据包;
提取八个数据包的字节码,其中,八个数据包的最大长度为3136字节;
基于提取的各流的字节码,创建长度为3136的十六进制字节数组,并将其转换为十进制数组向量,数组内每个数的取值范围在0-255之间,数组的长度不够时,填充0进行补充;
最后,将数组向量输入ResNet网络的输入进行元学习特征提取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210733908.8A CN115834097B (zh) | 2022-06-24 | 2022-06-24 | 基于多视角的https恶意软件流量检测系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210733908.8A CN115834097B (zh) | 2022-06-24 | 2022-06-24 | 基于多视角的https恶意软件流量检测系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115834097A CN115834097A (zh) | 2023-03-21 |
CN115834097B true CN115834097B (zh) | 2024-03-22 |
Family
ID=85522693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210733908.8A Active CN115834097B (zh) | 2022-06-24 | 2022-06-24 | 基于多视角的https恶意软件流量检测系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834097B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3293937A1 (en) * | 2016-09-12 | 2018-03-14 | Vectra Networks, Inc. | Method and system for detecting malicious payloads |
CN110493208A (zh) * | 2019-08-09 | 2019-11-22 | 南京聚铭网络科技有限公司 | 一种多特征的dns结合https恶意加密流量识别方法 |
CN111277578A (zh) * | 2020-01-14 | 2020-06-12 | 西安电子科技大学 | 加密流量分析特征提取方法、系统、存储介质、安全设备 |
WO2020249125A1 (zh) * | 2019-06-14 | 2020-12-17 | 第四范式(北京)技术有限公司 | 用于自动训练机器学习模型的方法和系统 |
CN113139189A (zh) * | 2021-04-29 | 2021-07-20 | 广州大学 | 一种挖矿恶意软件的识别方法、系统和存储介质 |
CN113704762A (zh) * | 2021-09-02 | 2021-11-26 | 广州大学 | 基于集成学习的恶意软件加密流量检测方法 |
CN114079579A (zh) * | 2021-10-21 | 2022-02-22 | 北京天融信网络安全技术有限公司 | 一种恶意加密流量检测方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI674514B (zh) * | 2018-10-19 | 2019-10-11 | 財團法人資訊工業策進會 | 惡意軟體辨識裝置及方法 |
US11244050B2 (en) * | 2018-12-03 | 2022-02-08 | Mayachitra, Inc. | Malware classification and detection using audio descriptors |
-
2022
- 2022-06-24 CN CN202210733908.8A patent/CN115834097B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3293937A1 (en) * | 2016-09-12 | 2018-03-14 | Vectra Networks, Inc. | Method and system for detecting malicious payloads |
WO2020249125A1 (zh) * | 2019-06-14 | 2020-12-17 | 第四范式(北京)技术有限公司 | 用于自动训练机器学习模型的方法和系统 |
CN110493208A (zh) * | 2019-08-09 | 2019-11-22 | 南京聚铭网络科技有限公司 | 一种多特征的dns结合https恶意加密流量识别方法 |
CN111277578A (zh) * | 2020-01-14 | 2020-06-12 | 西安电子科技大学 | 加密流量分析特征提取方法、系统、存储介质、安全设备 |
CN113139189A (zh) * | 2021-04-29 | 2021-07-20 | 广州大学 | 一种挖矿恶意软件的识别方法、系统和存储介质 |
CN113704762A (zh) * | 2021-09-02 | 2021-11-26 | 广州大学 | 基于集成学习的恶意软件加密流量检测方法 |
CN114079579A (zh) * | 2021-10-21 | 2022-02-22 | 北京天融信网络安全技术有限公司 | 一种恶意加密流量检测方法及装置 |
Non-Patent Citations (4)
Title |
---|
Malware on Internet of UAVs Detection Combining String Matching and Fourier Transformation;W. Niu;《IEEE Internet of Things》;20201012;全文 * |
Y. Sun.Network Flows-Based Malware Detection Using A Combined Approach of Crawling And Deep Learning.《ICC 2021 - IEEE International Conference on Communication》.2021,全文. * |
安卓恶意应用检测及其恶意家族多分类技术研究;黄啸晨;《万方数据知识服务平台》;20210329;全文 * |
攻防对抗中的加密恶意流量分析技术;陆勰;《信息安全与通信保密》;20220320;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115834097A (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | AI-IDS: Application of deep learning to real-time Web intrusion detection | |
Davis et al. | Data preprocessing for anomaly based network intrusion detection: A review | |
Xu et al. | Profiling internet backbone traffic: behavior models and applications | |
US9813310B1 (en) | System and method for discriminating nature of communication traffic transmitted through network based on envelope characteristics | |
Duan et al. | Application of a dynamic line graph neural network for intrusion detection with semisupervised learning | |
CN107370752B (zh) | 一种高效的远控木马检测方法 | |
Amoli et al. | Unsupervised network intrusion detection systems for zero-day fast-spreading attacks and botnets | |
CN110611640A (zh) | 一种基于随机森林的dns协议隐蔽通道检测方法 | |
Liu et al. | Maldetect: A structure of encrypted malware traffic detection | |
CN111385145A (zh) | 一种基于集成学习的加密流量识别方法 | |
CN115134250B (zh) | 一种网络攻击溯源取证方法 | |
Cabana et al. | Threat intelligence generation using network telescope data for industrial control systems | |
Niandong et al. | Detection of probe flow anomalies using information entropy and random forest method | |
Rocha et al. | Detection of illicit network activities based on multivariate gaussian fitting of multi-scale traffic characteristics | |
Agrafiotis et al. | Image-based neural network models for malware traffic classification using pcap to picture conversion | |
Zheng et al. | Detecting malicious tls network traffic based on communication channel features | |
Qiao et al. | Mining of attack models in ids alerts from network backbone by a two-stage clustering method | |
Rao et al. | A smart heuristic scanner for an intrusion detection system using two-stage machine learning techniques | |
CN115834097B (zh) | 基于多视角的https恶意软件流量检测系统及方法 | |
Dener et al. | RFSE-GRU: Data balanced classification model for mobile encrypted traffic in big data environment | |
Liang et al. | A multi-view deep learning model for encrypted website service classification | |
Gonzalez-Granadillo et al. | An improved live anomaly detection system (i-lads) based on deep learning algorithm | |
Gottwalt et al. | Natural laws as a baseline for network anomaly detection | |
Yin et al. | Optimal remote access Trojans detection based on network behavior. | |
Zeng et al. | Toward identifying malicious encrypted traffic with a causality detection system |
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 |