CN112311814A - 基于深度学习的恶意加密流量识别方法、系统及电子设备 - Google Patents
基于深度学习的恶意加密流量识别方法、系统及电子设备 Download PDFInfo
- Publication number
- CN112311814A CN112311814A CN202011535568.5A CN202011535568A CN112311814A CN 112311814 A CN112311814 A CN 112311814A CN 202011535568 A CN202011535568 A CN 202011535568A CN 112311814 A CN112311814 A CN 112311814A
- Authority
- CN
- China
- Prior art keywords
- data packet
- data
- flow
- flow data
- deep learning
- 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.)
- Granted
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/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/026—Capturing of monitoring data using flow identification
-
- 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/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- 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
Abstract
本发明公开了一种基于深度学习的恶意加密流量识别方法、系统及电子设备,该发明针对所述原始加密流量数据进行预处理,所述预处理包括将所述原始加密流量数据进行转化,分别形成Flow数据包和Session数据包;根据原始加密流量数据的特征选择Flow数据包或Session数据包作为待识别数据包,调用SSL/TLS协议针对所述待识别数据包进行过滤形成TCP通信流量数据包;本发明通过将流量数据中的无关数据特征,如MAC地址、IP地址、TCP三次握手包等数据,采用随机化生成替换和对应字节剔除的方法进行提前处理,提高了模型训练的精度,提高最终的识别率。除此之外,本发明从流量的表现形式来入手,针对不同的流量表现形式使用不同的数据包进行数据识别,还能增加模型的泛化能力。
Description
技术领域
本发明涉及计算机网络安全领域,具体涉及一种基于深度学习的恶意加密流量识别方法、系统及电子设备。
背景技术
传统的机器学习算法严重依赖提取的数据特征,而特征提取又严重依赖专业知识。人工可提取的特征多为数据包的统计特征,如数据包时间间隔的最大值、最小值、平均值、方差等,这类通过人工分析的特征为浅层特征,可快速识别并分类差异较大的流量,但如果各类流量的统计特征相似,如不同的恶意软件使用的SSL加密通信流量,依赖浅层特征训练出的模型识别率会不尽人意。
现有技术中公开了一种基于深度学习模型进行流量特征识别的方式,但是现有技术中的识别方式存在一定的问题:
第一,现有技术中针对同一流量数据多种表现形式均进行处理,影响识别精度和识别率。
第二,流量数据中的MAC地址、IP地址等无关数据特征的差异会被CNN当作深层特征来进行训练,可能会导致训练出的模型识别率低、泛化能力差。
发明内容
为解决上述技术问题中的至少一个,本发明提出一种基于深度学习的恶意加密流量识别方式、系统和电子设备,采用深度学习算法中的卷积神经网络即CNN结构来提取流量数据中的深层特征,以此完成识别与分类任务。
根据本发明的一个方面,一种基于深度学习的恶意加密流量识别方法,其特征在于,包括:采集原始加密流量数据,其中包含良性加密流量和恶意加密流量;针对所述原始加密流量数据进行预处理,所述预处理包括将所述原始加密流量数据进行转化,分别形成Flow数据包和Session数据包;根据原始加密流量数据的特征选择Flow数据包或Session数据包作为待识别数据包,调用SSL/TLS协议针对所述待识别数据包进行过滤形成TCP通信流量数据包;针对所述TCP通信流量数据包进行数据调整,将调整后的所述TCP通信流量数据包进行二维灰度图的映射;将经过上述步骤处理后所形成的所有所述二维灰度图作为待识别图集输入深度学习模型进行训练,得到恶意加密流量分类模型;在测试集上使用训练好的恶意加密流量分类模型进行评估测试,得到最终的识别率。
进一步可选的,所述采集原始加密流量数据的步骤包括:通过采集正常上网流量中的校园网流量获得良性加密流量;通过沙箱机制捕获恶意软件产生的数据流量来组成恶意加密数据集;
进一步可选的,所述恶意加密数据集包括Dridex、Trojan、Cobalt、Shifu和Virut。
进一步可选的,所述针对所述原始加密流量数据进行预处理的步骤包括:根据所述原始加密流量数据的特征确定所属类别;调用预设数据库根据所述类别选择Flow数据包或Session数据包作为待识别数据包。
进一步可选的,所述预设数据库的构建方式包括:调用人工智能算法针对历史数据中的所有所述原始加密流量数据的特征进行识别,形成特征集;针对同一特征项下的所述历史数据中的所有所述原始加密流量数据进行逐一转化,分别形成Flow数据包和Session数据包,并分别获取所述Flow数据包的识别率A和所述Session数据包的识别率B;判断识别率A是否大于识别率B;若是,则将该特征设定为第一类别,对应选择所述Flow数据包作为所述待识别数据包;若否则将该特征设定为第二类别,对应选择所述Session数据包作为所述待识别数据包。
进一步可选的,所述针对所述TCP通信流量数据包进行数据调整包括:采用随机化生成替换方法和对应字节剔除方法对所述TCP通信流量数据进行无关数据特征的剔除形成数据包;针对数据包的流量数据大小统一为784字节,对超过784字节的流量包进行截取,不足784字节的数据包用0x00进行补齐。
进一步可选的,所述将经过上述步骤处理后所形成的所有所述二维灰度图作为待识别图集输入深度学习模型进行训练的步骤包括:将所述待识别图集转换为IDX格式的文件,并将所述待识别图集划分为百分之七十的训练集和百分之三十的测试集,所述训练集输入所述深度学习模型进行训练,所述测试集用于所述恶意加密流量分类模型进行评估测试。
进一步可选的,所述在测试集上使用训练好的恶意加密流量分类模型进行评估测试,得到最终的识别率的步骤包括:通过两次卷积层-池化层的处理,和两个全连接层的转换,最终使用分类器输出所述训练集的识别率。
进一步可选的,所述分类器包括Softmax分类器、决策树分类器或随机森林分类器。
根据本发明的一个方面,一种基于深度学习的恶意加密流量识别系统,其特征在于,包括:采集模块,其用于采集原始加密流量数据,其中包含良性加密流量和恶意加密流量;预处理模块,其用于针对所述原始加密流量数据进行预处理,所述预处理包括将所述原始加密流量数据进行转化,分别形成Flow数据包和Session数据包;根据原始加密流量数据的特征选择Flow数据包或Session数据包作为待识别数据包,调用SSL/TLS协议针对所述待识别数据包进行过滤形成TCP通信流量数据包;映射模块,其用于针对所述TCP通信流量数据包进行数据调整,将调整后的所述TCP通信流量数据包进行二维灰度图的映射;识别率确定模块,其用于将经过上述步骤处理后所形成的所有所述二维灰度图作为待识别图集输入深度学习模型进行训练,得到恶意加密流量分类模型;在测试集上使用训练好的恶意加密流量分类模型进行评估测试,得到最终的识别率。
根据本发明的另一个方面,一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器耦合连接的存储器;其中,所述存储器存储有计算机程序,所述计算机程序能够被所述至少一个处理器执行,以实现上述的基于深度学习的恶意加密流量识别方法。
本发明的有益效果在于:
本发明通过将流量数据中的无关数据特征,如MAC地址、IP地址、TCP三次握手包等数据,采用随机化生成替换和对应字节剔除的方法进行提前处理,提高了模型训练的精度,提高最终的识别率。除此之外,本发明从流量的表现形式来入手,针对不同的流量表现形式使用不同的数据包进行数据识别,还能增加模型的泛化能力。
附图说明
图1示出的是本发明的基于深度学习的恶意加密流量识别方法流程图;
图2示出的是本发明的基于深度学习的恶意加密流量识别方法的装置结构图;
图3表示的是实施例3中基于深度学习的恶意加密流量识别方法的整体流程图;
图4表示的是实施例3中基于深度学习的恶意加密流量识别的表示选择方法;
图5表示的是实施例3中基于深度学习的恶意加密流量识别的模型分类方法;
图6表示的是实施例3中基于深度学习的恶意加密流量识别的深度学习方法。
具体实施方式
现在将参照若干示例性实施例来论述本发明的内容。应当理解,论述了这些实施例仅是为了使得本领域普通技术人员能够更好地理解且因此实现本发明的内容,而不是暗示对本发明的范围的任何限制。
如本文中所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。术语“另一个实施例”要被解读为“至少一个其他实施例”。
实施例1:
根据本发明的一个实施例,一种基于深度学习的恶意加密流量识别方法,包括:
101、采集原始加密流量数据,其中包含良性加密流量和恶意加密流量;
102、针对原始加密流量数据进行预处理,预处理包括将原始加密流量数据进行转化,分别形成Flow数据包和Session数据包;根据原始加密流量数据的特征选择Flow数据包或Session数据包作为待识别数据包,调用SSL/TLS协议针对待识别数据包进行过滤形成TCP通信流量数据包;
103、针对TCP通信流量数据包进行数据调整,将调整后的TCP通信流量数据包进行二维灰度图的映射;
104、将经过上述步骤处理后所形成的所有二维灰度图作为待识别图集输入深度学习模型进行训练,得到恶意加密流量分类模型;在测试集上使用训练好的恶意加密流量分类模型进行评估测试,得到最终的识别率。
本实施例通过将流量数据中的无关数据特征,如MAC地址、IP地址、TCP三次握手包等数据,采用随机化生成替换和对应字节剔除的方法进行提前处理,提高了模型训练的精度,提高最终的识别率。除此之外,本发明从流量的表现形式来入手,针对不同的流量表现形式使用不同的数据包进行数据识别,还能增加模型的泛化能力。
实施例2:
根据本发明的另一个实施例,一种基于深度学习的恶意加密流量识别方法的具体流程如图1所示,包括:
201、采集原始加密流量数据,其中包含良性加密流量和恶意加密流量;
2011、通过采集正常上网流量中的校园网流量获得良性加密流量;
2012、通过沙箱机制捕获恶意软件产生的数据流量来组成恶意加密数据集;
数据搜集的原始加密流量后,分为恶意加密流量和良性加密流量。对于恶意加密流量的选择,一部分使用Stratosphere Lab公开的恶意软件通信流量的数据集,另一部分使用来自theZoo公开的APT恶意家族中最新的恶意软件,通过沙箱机制捕获恶意软件产生的数据流量来组成数据集。恶意加密数据集包括Dridex、Trojan、Cobalt、Shifu和Virut。对于良性加密流量的选择,从校园网出口网关处抓取正常上网流量来组成。
202、针对原始加密流量数据进行预处理,预处理包括将原始加密流量数据进行转化,分别形成Flow数据包和Session数据包;
2021、根据原始加密流量数据的特征确定所属类别;
2022、调用预设数据库根据类别选择Flow数据包或Session数据包作为待识别数据包。
20221、调用人工智能算法针对历史数据中的所有原始加密流量数据的特征进行识别,形成特征集;
20222、针对同一特征项下的历史数据中的所有原始加密流量数据进行逐一转化,分别形成Flow数据包和Session数据包,并分别获取Flow数据包的识别率A和Session数据包的识别率B;
在本实施例中,优选地使用SplitCap工具按流(Flow)数据包和会话(Session)数据包两种形式进行流量切分;
20223、判断识别率A是否大于识别率B;若是,则将该特征设定为第一类别,对应选择Flow数据包作为待识别数据包;若否则将该特征设定为第二类别,对应选择Session数据包作为待识别数据包。
在本实施例中,针对数据包中的非Session即Flow的情况,通过提前设定一些指标,常见的统计学指标可以拿来参考,如Session的包数量(大小)和其中双向的Flow的包数量(大小)等来进行两种不同数据包的区分。通过动态权值,该动态权值的影响因素包括但不限于数据包的大小、数据包的数据标签、同类别数据包的平均识别率等,该动态权值影响形成Flow数据包和Session数据包的选择,进而对于后续的识别率产生更进一步的影响。针对不同的类别的数据包的平均识别率和优势矩阵需要通过人工制定公式进行计算确定。
原始加密流量的会话(Session)作为一种表现形式,是指由双向流组成的数据包,这意味着可以交换源地址和目标地址。流(flow)作为另一种数据表现形式,是指一种单向流组成的数据包,本实施例中采用这两种形式的流量数据作为数据预处理的基本对象,通过两种形式的流量数据进行模型训练,从而得出一个最终的识别率。
203、根据原始加密流量数据的特征选择Flow数据包或Session数据包作为待识别数据包,调用SSL/TLS协议针对待识别数据包进行过滤形成TCP通信流量数据包;使用SSL/TLS的TCP流会在TCP三次握手后进行对称密钥协商,即SSL握手过程。
204、针对TCP通信流量数据包进行数据调整,将调整后的TCP通信流量数据包进行二维灰度图的映射;
2041、采用随机化生成替换方法和对应字节剔除方法对TCP通信流量数据进行无关数据特征的剔除形成数据包;
利用findudp、scapy和手工干预识别并剔除UDP、DNS等非TCP协议的流量;同时,将各数据包中数据链路层的MAC地址和网络层的IP地址进行随机化处理;最后,将会话(Session)中前120个字节的TCP三次握手数据进行剔除。
剔除TCP三次握手数据后的TCP通信流量数据包,需要进行无关数据特征的随机化。数据链路层的MAC地址和网络层的IP地址,根据RFC标准可以精准确定相应的源地址和目的地址的字节位置,通过字节替换来达到随机化的目的。MAC地址使用随机字符串拼接的方法生成,使用当前流量的时间戳作为随机种子,种子不同生成的随机字符的碰撞率更低,因此可以做到随机化。IP地址使用Crypto-PAn(基于密码前缀的保留匿名化)算法生成,它是一种用于在保留IP地址子网结构的同时对IP地址进行匿名化的算法,可以直接生成随机化IP地址,以此进行字节替换。
2042、针对数据包的流量数据大小统一为784字节,对超过784字节的流量包进行截取,不足784字节的数据包用0x00进行补齐;
将流量数据进行大小归化处理,目标归化大小为784(28*28)个字节,数据过长部分直接截取,如果数据不够784个字节,则在尾部添加0x00进行补充;流量数据的一个字节对应图片的一个灰度值(0-255),如0x00对应纯黑,0xff对应纯白,将生成的图片作为新的数据集;使用imgaug工具扩充图片数据集,进行数据增广,并添加适当的干扰,如添加一定的高斯噪声,以此提高模型的泛化能力。
2043、将待识别图集转换为IDX格式的文件,并将待识别图集划分为百分之七十的训练集和百分之三十的测试集,训练集输入深度学习模型进行训练,测试集用于恶意加密流量分类模型进行评估测试。
205、将经过上述步骤处理后所形成的所有二维灰度图作为待识别图集输入深度学习模型进行训练,得到恶意加密流量分类模型;在测试集上使用训练好的恶意加密流量分类模型进行评估测试,得到最终的识别率。
本实施例中的模型采用了深度学习中的卷积神经网络,CNN拥有众多架构,在本实施例中优选地使用LeNet-5网。CNN首先从IDX文件中读入三维数组(即28*28*1)的图片数据,然后进行归一化处理,将0x00-0xff的数据映射为0-1,通过两次卷积层-池化层的处理,以及两个全连接层的转换,最终使用一个Softmax函数输出各类的识别率。
最终的分类器除了使用神经网络内部的Softmax分类器外,还可以使用外部的独立分类器,如决策树或者随机森林等。分类器会判断各类的概率分布,并将概率分布最大的一类流量作为输出分类。
实施例3:
根据本发明的另一个实施例,一种基于深度学习的恶意加密流量识别方法,其包括多个模块,图3表示的是本实施例中基于深度学习的恶意加密流量识别的具体流程图,图4表示的是基于深度学习的恶意加密流量识别的表示选择方法,图5表示的是基于深度学习的恶意加密流量识别的模型分类方法,图6表示的是基于深度学习的恶意加密流量识别的深度学习方法,具体步骤包括:
该方法首先通过人工粗略地处理原始流量数据,然后使用CNN训练模型深度挖掘流量本身的特征,从而进行恶意加密流量的识别与分类。本发明提供的识别方法具体包含如下步骤:
1、采集加密通信的流量数据,其中包含良性加密流量和恶意加密流量。
2、将采集的原始数据包进行预处理,其中将流量切分为Flow和Session两种表现形式,然后过滤出使用SSL/TLS加密的TCP通信流量数据。
3、将流量数据中的无关数据(MAC、IP、TCP三次握手等)进行随机化和剔除。
4、归一化数据包大小,过长截取,过短补零,将其映射成二维灰度图。
5、将图片编码成IDX格式的数据文件,作为CNN模型的输入数据。
6、CNN模型的训练与识别测试。
网络流量通常具有五种表示形式,即TCP连接(TCP Connection)、流(Flow)、会话(Session)、服务(Service)和主机(Host)。其中,流(Flow)是指具有相同五元组信息(源IP,源端口,目标IP,目标端口和传输层协议)的所有数据包。会话(Session)是指由双向流组成的数据包,这意味着可以交换源地址和目标地址。流和会话是表达网络流量的两种最常见的形式,本发明以这两种形式的流量数据作为数据预处理的基本对象,通过两种形式的流量数据进行模型训练,从而得出一个最终的识别率。
分割后的Flow和Session数据,需要进行无关数据特征的随机化。数据链路层的MAC地址和网络层的IP地址,根据RFC标准可以精准确定相应的源地址和目的地址的字节位置,通过字节替换来达到随机化的目的。MAC地址使用随机字符串拼接的方法生成,使用当前流量的时间戳作为随机种子,种子不同生成的随机字符的碰撞率更低,因此可以做到随机化。IP地址使用Crypto-PAn(基于密码前缀的保留匿名化)算法生成,它是一种用于在保留IP地址子网结构的同时对IP地址进行匿名化的算法,可以直接生成随机化IP地址,以此进行字节替换。
使用SSL/TLS的TCP流会在TCP三次握手后进行对称密钥协商,即SSL握手过程,各类加密流量的这部分数据特征差异较大,属于当前分类任务的浅层特征,映射进图片可使模型得到更好的训练结果。各类流量数据的TCP握手信息特征差异较少,普通情况下,客户端不会在TCP的第三次握手中传输数据,因此三次握手平均每次使用40个字节位,三次共占用120个字节,仅三次握手就占用目标图片六分之一的空间大小。因此,可以直接将每个切分后的Session数据包剔除头部的120个字节数据,然后再进行二维灰度图的映射,为SSL握手数据提供空间位置,以此提高模型训练的精度,提高最终的识别率。针对Flow形式的数据不作处理,直接从头开始映射。
图片大小归化处理,选取流量数据的前784(28*28)个字节,过长截取,过短补零(0x00),一个字节对应一个灰度值。一类加密流量的Flow和Session生成的图片数据大不相同,因此可以作为同一类型下多个不同的样式图片,同时使用imgaug工具扩充相应的图片数据集,进行数据增广,并添加适当的干扰因素,如添加适当的高斯噪声,以此增加训练模型的泛化能力。
IDX格式是MNIST提出的一种独创的数据格式,这种格式结构非常简单,可以用来存储多维数组,一个IDX文件可以包含一个图片数据集的像素信息以及其他一些统计信息,因此可以作为CNN的输入数据格式文件。
本实施例中的模型采用了深度学习中的卷积神经网络,CNN最擅长的是图片的处理,因此,将其作用在流量识别领域,识别效果很显著。CNN拥有众多架构,如经典的LeNet-5网。CNN首先从IDX文件中读入三维数组(即28*28*1)的图片数据,然后进行归一化处理,将0x00-0xff的数据映射为0-1,通过两次卷积层-池化层的处理,以及两个全连接层的转换,最终使用一个Softmax函数输出各类的识别率。
以下为一个恶意加密流量分类的例子,是一个二分类问题,目的是识别加密流量是恶意流量还是良性流量。结合附图2对本发明进一步说明:
第一步,如图2所示,数据搜集的原始流量分为恶意加密流量和良性加密流量。对于恶意加密流量的选择,一部分使用Stratosphere Lab公开的恶意软件通信流量的数据集,另一部分使用来自theZoo公开的APT恶意家族中最新的恶意软件,通过沙箱机制捕获恶意软件产生的数据流量来组成数据集。对于良性加密流量的选择,从校园网出口网关处抓取正常上网流量来组成。
第二步,使用SplitCap工具按流(Flow)和会话(Session)两种形式进行流量切分,利用findudp、scapy和手工干预识别并剔除UDP、DNS等非TCP协议的流量;同时,将各数据包中数据链路层的MAC地址和网络层的IP地址进行随机化处理;最后,将会话(Session)中前120个字节的TCP三次握手数据进行剔除。
第三步,将流量数据进行大小归化处理,目标归化大小为784(28*28)个字节,数据过长部分直接截取,如果数据不够784个字节,则在尾部添加0x00进行补充;流量数据的一个字节对应图片的一个灰度值(0-255),如0x00对应纯黑,0xff对应纯白,将生成的图片作为新的数据集;使用imgaug工具扩充图片数据集,进行数据增广,并添加适当的干扰,如添加一定的高斯噪声,以此提高模型的泛化能力。
第四步,将图片数据集转换为IDX格式的文件,并在此时将数据集划分为训练集和测试集,百分之七十的数据为训练集,百分之三十的数据为测试集。
第五步,将IDX文件作为模型输入应用到深度学习的CNN上进行效果评估。在训练集上使用CNN进行训练,以得到最终的恶意加密流量分类模型,在测试集上使用训练好的模型进行评估测试,得到最终的识别率。
本实施例采用的恶意加密流量数据集类如Dridex、Trojan、Cobalt、Shifu、Virut等,采用的良性加密流量也多为访问HTTPS站点获取的白站流量。采用本方法对此流量数据进行预处理,应用到CNN算法来训练模型,最终的识别率高达99.38%,此结果表明恶意加密流量和良性加密流量的特征也不尽相同,分类效果显著。
最终的分类器除了使用神经网络内部的Softmax分类器外,还可以使用外部的独立分类器,如决策树或者随机森林等。分类器会判断各类的概率分布,并将概率分布最大的一类流量作为输出分类。
针对流量数据的表现形式,使用SplitCap按流(Flow)和会话(Session)进行流量切分,利用findudp或scapy识别并剔除UDP、DNS等非TCP协议的流量,使输入模型训练的数据更纯净,训练效果更优。原始数据对象采用Flow和Session两种表现形式的流量,将两种类型的数据混合成一个数据集来训练,并最终获取一个识别率。
针对流量中的无关数据特征,如MAC地址、IP地址、TCP三次握手包等数据,采用随机化生成替换和对应字节剔除的方法进行提前处理。随机化MAC地址使用当前时间戳作为随机种子的随机数进行字符拼接得到,随机化IP地址使用Crypto-PAn算法生成,其他无关数据,如TCP三次握手数据,直接进行对应字节剔除。
本实施例的技术方案所起到的有益效果在于:
1、传统的机器学习算法严重依赖提取的数据特征,而特征提取又严重依赖专业知识。人工可提取的特征多为数据包的统计特征,如数据包时间间隔的最大值、最小值、平均值、方差等,这类通过人工分析的特征为浅层特征,可快速识别并分类差异较大的流量,但如果各类流量的统计特征相似,如不同的恶意软件使用的SSL加密通信流量,依赖浅层特征训练出的模型识别率会不尽人意。因此,本实施例采用深度学习算法中的卷积神经网络(Convolutional Neural Network, CNN)结构来提取流量数据中的深层特征,以此完成识别与分类任务。
2、流量表示形式对模型的训练及最终的识别率影响较大,采用流(Flow)或会话(Session)的形式对不同流量数据的识别效果也不同,如A类流量使用Flow形式的数据识别率比使用Session形式的数据识别率高,但B类流量可能相反。除此之外,针对加密流量的识别,使用OSI7层全数据和仅使用第7层应用层数据,分类效果也不径相同。这个平衡点如何确定,或者说权值如何确定,本实施例通过采用机器学习的方式使得Flow形式和Session形式的数据包进行精确分流识别,以提高恶性流量识别的识别率。
3、流量数据中的MAC地址、IP地址等无关数据特征的差异会被CNN当做深层特征来进行训练,可能会导致训练出的模型识别率低、泛化能力差。因此,本实施例在数据预处理阶段,就针对其进行随机化处理。
4、在将流量数据映射成图片的过程中,首先需要确定目标图片的长宽大小以及目标图片的总字节数,然后从第一个数据包的第一个字节开始进行数据映射,其中会包含TCP三次握手的数据,但其对识别分类任务的作用不大。因此本实施例中将其归为无关数据特征进行剔除,为SSL/TLS握手数据提供空间位置。
实施例4:
本实施例公开了一种基于深度学习的恶意加密流量识别系统,包括:
401、采集模块,其用于采集原始加密流量数据,其中包含良性加密流量和恶意加密流量;
402、预处理模块,其用于针对原始加密流量数据进行预处理,预处理包括将原始加密流量数据进行转化,分别形成Flow数据包和Session数据包;根据原始加密流量数据的特征选择Flow数据包或Session数据包作为待识别数据包,调用SSL/TLS协议针对待识别数据包进行过滤形成TCP通信流量数据包;
403、映射模块,其用于针对TCP通信流量数据包进行数据调整,将调整后的TCP通信流量数据包进行二维灰度图的映射;
404、识别率确定模块,其用于将经过上述步骤处理后所形成的所有二维灰度图作为待识别图集输入深度学习模型进行训练,得到恶意加密流量分类模型;在测试集上使用训练好的恶意加密流量分类模型进行评估测试,得到最终的识别率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束个件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例节能信号发送/接收的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
应理解,本发明的发明内容及实施例中各步骤的序号的大小并不绝对意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
Claims (11)
1.一种基于深度学习的恶意加密流量识别方法,其特征在于,包括:
采集原始加密流量数据,其中包含良性加密流量和恶意加密流量;
针对所述原始加密流量数据进行预处理,所述预处理包括将所述原始加密流量数据进行转化,分别形成Flow数据包和Session数据包;根据原始加密流量数据的特征选择Flow数据包或Session数据包作为待识别数据包,调用SSL/TLS协议针对所述待识别数据包进行过滤形成TCP通信流量数据包;
针对所述TCP通信流量数据包进行数据调整,将调整后的所述TCP通信流量数据包进行二维灰度图的映射;
将经过映射处理后所形成的所有所述二维灰度图作为待识别图集输入深度学习模型进行训练,得到恶意加密流量分类模型;在测试集上使用训练好的恶意加密流量分类模型进行评估测试,得到最终的识别率。
2.根据权利要求1所述的基于深度学习的恶意加密流量识别方法,其特征在于,所述采集原始加密流量数据的步骤包括:
通过采集正常上网流量中的校园网流量获得良性加密流量;
通过沙箱机制捕获恶意软件产生的数据流量来组成恶意加密数据集。
3.根据权利要求2所述的基于深度学习的恶意加密流量识别方法,其特征在于,所述恶意加密数据集包括Dridex、Trojan、Cobalt、Shifu和Virut。
4.根据权利要求1所述的基于深度学习的恶意加密流量识别方法,其特征在于,所述针对所述原始加密流量数据进行预处理的步骤包括:
根据所述原始加密流量数据的特征确定所属类别;
调用预设数据库根据所述类别选择Flow数据包或Session数据包作为待识别数据包。
5.根据权利要求4所述的基于深度学习的恶意加密流量识别方法,其特征在于,所述预设数据库的构建方式包括:
调用人工智能算法针对历史数据中的所有所述原始加密流量数据的特征进行识别,形成特征集;
针对同一特征项下的所述历史数据中的所有所述原始加密流量数据进行逐一转化,分别形成Flow数据包和Session数据包,并分别获取所述Flow数据包的识别率A和所述Session数据包的识别率B;
判断识别率A是否大于识别率B;若是,则将该特征设定为第一类别,对应选择所述Flow数据包作为所述待识别数据包;若否则将该特征设定为第二类别,对应选择所述Session数据包作为所述待识别数据包。
6.根据权利要求1所述的基于深度学习的恶意加密流量识别方法,其特征在于,所述针对所述TCP通信流量数据包进行数据调整包括:
采用随机化生成替换方法和对应字节剔除方法对所述TCP通信流量数据进行无关数据特征的剔除形成数据包;
针对数据包的流量数据大小统一为784字节,对超过784字节的流量包进行截取,不足784字节的数据包用0x00进行补齐。
7.根据权利要求1所述的基于深度学习的恶意加密流量识别方法,其特征在于,所述将经过映射处理后所形成的所有所述二维灰度图作为待识别图集输入深度学习模型进行训练的步骤包括:
将所述待识别图集转换为IDX格式的文件,并将所述待识别图集划分为百分之七十的训练集和百分之三十的测试集,所述训练集输入所述深度学习模型进行训练,所述测试集用于所述恶意加密流量分类模型进行评估测试。
8.根据权利要求7所述的基于深度学习的恶意加密流量识别方法,其特征在于,所述在测试集上使用训练好的恶意加密流量分类模型进行评估测试,得到最终的识别率的步骤包括:
通过两次卷积层-池化层的处理,和两个全连接层的转换,最终使用分类器输出所述训练集的识别率。
9.根据权利要求8所述的基于深度学习的恶意加密流量识别方法,其特征在于,所述分类器包括Softmax分类器、决策树分类器或随机森林分类器。
10.一种基于深度学习的恶意加密流量识别系统,其特征在于,包括:
采集模块,其用于采集原始加密流量数据,其中包含良性加密流量和恶意加密流量;
预处理模块,其用于针对所述原始加密流量数据进行预处理,所述预处理包括将所述原始加密流量数据进行转化,分别形成Flow数据包和Session数据包;根据原始加密流量数据的特征选择Flow数据包或Session数据包作为待识别数据包,调用SSL/TLS协议针对所述待识别数据包进行过滤形成TCP通信流量数据包;
映射模块,其用于针对所述TCP通信流量数据包进行数据调整,将调整后的所述TCP通信流量数据包进行二维灰度图的映射;
识别率确定模块,其用于将经过映射处理后所形成的所有所述二维灰度图作为待识别图集输入深度学习模型进行训练,得到恶意加密流量分类模型;在测试集上使用训练好的恶意加密流量分类模型进行评估测试,得到最终的识别率。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器耦合连接的存储器;其中,
所述存储器存储有计算机程序,所述计算机程序能够被所述至少一个处理器执行,以实现权利要求1-9任一项所述的基于深度学习的恶意加密流量识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011535568.5A CN112311814B (zh) | 2020-12-23 | 2020-12-23 | 基于深度学习的恶意加密流量识别方法、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011535568.5A CN112311814B (zh) | 2020-12-23 | 2020-12-23 | 基于深度学习的恶意加密流量识别方法、系统及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112311814A true CN112311814A (zh) | 2021-02-02 |
CN112311814B CN112311814B (zh) | 2021-11-26 |
Family
ID=74487582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011535568.5A Active CN112311814B (zh) | 2020-12-23 | 2020-12-23 | 基于深度学习的恶意加密流量识别方法、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112311814B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113095426A (zh) * | 2021-04-22 | 2021-07-09 | 西安交通大学 | 一种加密流量分类方法、系统、设备及可读存储介质 |
CN113518080A (zh) * | 2021-06-23 | 2021-10-19 | 北京观成科技有限公司 | 一种tls加密流量检测方法、装置和电子设备 |
CN113542153A (zh) * | 2021-05-14 | 2021-10-22 | 天津工业大学 | 一种可信的加密网络流量分类方法 |
CN113542259A (zh) * | 2021-07-12 | 2021-10-22 | 中山大学 | 基于多模态深度学习的加密恶意流量检测方法及系统 |
CN113746869A (zh) * | 2021-11-05 | 2021-12-03 | 北京广通优云科技股份有限公司 | 一种基于多层次卷积的运维资产入侵探测方法 |
CN113923021A (zh) * | 2021-10-09 | 2022-01-11 | 中国联合网络通信集团有限公司 | 基于沙箱的加密流量处理方法、系统、设备及介质 |
CN114268484A (zh) * | 2021-12-17 | 2022-04-01 | 北京天融信网络安全技术有限公司 | 恶意加密流量检测方法、装置、电子设备及存储介质 |
CN114745336A (zh) * | 2022-05-05 | 2022-07-12 | 中国人民解放军国防科技大学 | 基于rfc的报文分类方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180097835A1 (en) * | 2016-10-05 | 2018-04-05 | Cisco Technology, Inc. | Identifying and using dns contextual flows |
CN108985361A (zh) * | 2018-07-02 | 2018-12-11 | 北京金睛云华科技有限公司 | 一种基于深度学习的恶意流量检测实现方法和装置 |
CN110730140A (zh) * | 2019-10-12 | 2020-01-24 | 西安电子科技大学 | 基于时空特性相结合的深度学习流量分类方法 |
CN111064678A (zh) * | 2019-11-26 | 2020-04-24 | 西安电子科技大学 | 基于轻量级卷积神经网络的网络流量分类方法 |
CN111277578A (zh) * | 2020-01-14 | 2020-06-12 | 西安电子科技大学 | 加密流量分析特征提取方法、系统、存储介质、安全设备 |
CN111277587A (zh) * | 2020-01-19 | 2020-06-12 | 武汉思普崚技术有限公司 | 基于行为分析的恶意加密流量检测方法及系统 |
-
2020
- 2020-12-23 CN CN202011535568.5A patent/CN112311814B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180097835A1 (en) * | 2016-10-05 | 2018-04-05 | Cisco Technology, Inc. | Identifying and using dns contextual flows |
CN108985361A (zh) * | 2018-07-02 | 2018-12-11 | 北京金睛云华科技有限公司 | 一种基于深度学习的恶意流量检测实现方法和装置 |
CN110730140A (zh) * | 2019-10-12 | 2020-01-24 | 西安电子科技大学 | 基于时空特性相结合的深度学习流量分类方法 |
CN111064678A (zh) * | 2019-11-26 | 2020-04-24 | 西安电子科技大学 | 基于轻量级卷积神经网络的网络流量分类方法 |
CN111277578A (zh) * | 2020-01-14 | 2020-06-12 | 西安电子科技大学 | 加密流量分析特征提取方法、系统、存储介质、安全设备 |
CN111277587A (zh) * | 2020-01-19 | 2020-06-12 | 武汉思普崚技术有限公司 | 基于行为分析的恶意加密流量检测方法及系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113095426A (zh) * | 2021-04-22 | 2021-07-09 | 西安交通大学 | 一种加密流量分类方法、系统、设备及可读存储介质 |
CN113095426B (zh) * | 2021-04-22 | 2023-03-31 | 西安交通大学 | 一种加密流量分类方法、系统、设备及可读存储介质 |
CN113542153A (zh) * | 2021-05-14 | 2021-10-22 | 天津工业大学 | 一种可信的加密网络流量分类方法 |
CN113518080A (zh) * | 2021-06-23 | 2021-10-19 | 北京观成科技有限公司 | 一种tls加密流量检测方法、装置和电子设备 |
CN113518080B (zh) * | 2021-06-23 | 2021-11-19 | 北京观成科技有限公司 | 一种tls加密流量检测方法、装置和电子设备 |
CN113542259A (zh) * | 2021-07-12 | 2021-10-22 | 中山大学 | 基于多模态深度学习的加密恶意流量检测方法及系统 |
CN113923021A (zh) * | 2021-10-09 | 2022-01-11 | 中国联合网络通信集团有限公司 | 基于沙箱的加密流量处理方法、系统、设备及介质 |
CN113923021B (zh) * | 2021-10-09 | 2023-09-22 | 中国联合网络通信集团有限公司 | 基于沙箱的加密流量处理方法、系统、设备及介质 |
CN113746869B (zh) * | 2021-11-05 | 2022-03-08 | 北京广通优云科技股份有限公司 | 一种基于多层次卷积的运维系统资产入侵探测方法 |
CN113746869A (zh) * | 2021-11-05 | 2021-12-03 | 北京广通优云科技股份有限公司 | 一种基于多层次卷积的运维资产入侵探测方法 |
CN114268484A (zh) * | 2021-12-17 | 2022-04-01 | 北京天融信网络安全技术有限公司 | 恶意加密流量检测方法、装置、电子设备及存储介质 |
CN114745336A (zh) * | 2022-05-05 | 2022-07-12 | 中国人民解放军国防科技大学 | 基于rfc的报文分类方法、装置、计算机设备和存储介质 |
CN114745336B (zh) * | 2022-05-05 | 2023-11-21 | 中国人民解放军国防科技大学 | 基于rfc的报文分类方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112311814B (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112311814B (zh) | 基于深度学习的恶意加密流量识别方法、系统及电子设备 | |
CN111860628A (zh) | 一种基于深度学习的流量识别与特征提取方法 | |
WO2020159439A1 (en) | System and method for network anomaly detection and analysis | |
CN109450721B (zh) | 一种基于深度神经网络的网络异常行为识别方法 | |
CN110602078B (zh) | 一种基于生成对抗网络的应用加密流量生成方法及系统 | |
CN112511555A (zh) | 基于稀疏表示和卷积神经网络的私有加密协议报文分类法 | |
CN110611640A (zh) | 一种基于随机森林的dns协议隐蔽通道检测方法 | |
CN110460502B (zh) | 基于分布特征随机森林的vpn下应用程序流量识别方法 | |
CN113364787A (zh) | 一种基于并联神经网络的僵尸网络流量检测方法 | |
CN111611280A (zh) | 一种基于cnn和sae的加密流量识别方法 | |
CN113408707A (zh) | 一种基于深度学习的网络加密流量识别方法 | |
CN112910853A (zh) | 基于混合特征的加密流量分类方法 | |
CN111355671A (zh) | 基于自注意机制的网络流量分类方法、介质及终端设备 | |
CN112383488B (zh) | 一种适用于加密与非加密数据流的内容识别方法 | |
CN114338437B (zh) | 网络流量分类方法、装置、电子设备及存储介质 | |
CN115865534A (zh) | 一种基于恶意加密流量检测方法、系统、装置及介质 | |
CN113949653B (zh) | 一种基于深度学习的加密协议识别方法及系统 | |
CN114362988B (zh) | 网络流量的识别方法及装置 | |
CN113095426B (zh) | 一种加密流量分类方法、系统、设备及可读存储介质 | |
CN116232696A (zh) | 基于深度神经网络的加密流量分类方法 | |
CN116684357A (zh) | 一种传输层安全协议加密流量的识别方法及系统 | |
Yin et al. | Tor Traffic’s Representation and Classification Based on Packet Timing Characteristics | |
CN115086021A (zh) | 校园网入侵检测方法、装置、设备及存储介质 | |
CN113746707A (zh) | 一种基于分类器及网络结构的加密流量分类方法 | |
CN116743506B (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 |