CN117792803B - 一种基于有效载荷的网络攻击检测方法、系统及介质 - Google Patents
一种基于有效载荷的网络攻击检测方法、系统及介质 Download PDFInfo
- Publication number
- CN117792803B CN117792803B CN202410218653.0A CN202410218653A CN117792803B CN 117792803 B CN117792803 B CN 117792803B CN 202410218653 A CN202410218653 A CN 202410218653A CN 117792803 B CN117792803 B CN 117792803B
- Authority
- CN
- China
- Prior art keywords
- network
- model
- training
- payload
- data packet
- 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 70
- 238000012549 training Methods 0.000 claims abstract description 85
- 230000011218 segmentation Effects 0.000 claims abstract description 31
- 238000000034 method Methods 0.000 claims abstract description 27
- 239000013598 vector Substances 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 19
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 230000000873 masking effect Effects 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 6
- 238000003491 array Methods 0.000 claims description 4
- 238000012935 Averaging Methods 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 235000019580 granularity Nutrition 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于数据包有效载荷预训练模型的网络攻击检测方法、系统及介质,该方法包括:对数据集中的网络流量包进行切分,获得网络会话流粒度的网络数据包有效载荷序列;对数据集的正常流量和网络攻击流量进行均衡采样,使用滑动窗口对有效载荷进行切分;将有效载荷切分后获得的字节对序列经分词器处理后输入Bert模型进行预训练,在预训练Bert模型时将网络会话流类比于文档,将网络数据包有效载荷类比于句子:加载已预训练的Bert模型,结合分类器在新的数据上进行微调,采用微调后的网络攻击检测模型检测网络攻击。本发明能更好地捕获网络数据包有效载荷的信息,以便于通过网络数据包有效载荷预训练模型检测网络攻击。
Description
技术领域
本发明涉及网络攻击安全检测及计算机深度学习技术领域,尤其涉及一种基于数据包有效载荷预训练模型的网络攻击检测方法、系统及介质。
背景技术
随着互联网的高速发展,网络攻击也越来越多,同时,黑客的攻击手段也不断升级,构造一个网络攻击入侵检测系统至关重要。网络攻击入侵检测系统是一种安全工具,旨在检测计算机系统、网络或应用程序中的恶意活动和安全漏洞。它通过监视计算机系统、网络或应用程序的活动来检测潜在的入侵行为,并发出警报以通知管理员采取适当的措施。
网络流量攻击检测具有不同的检测粒度,网络数据包、网络会话流。网络数据包是网络通信中的基本单元,数据包由包头和包有效载荷组成,其中包头用于指明IP地址、端口和协议等内容,包有效载荷是指应用层用户数据。网络会话流是指客户端和服务端一次完整的通信,包括通信中所有的数据包。现有的网络流量攻击检测方法比较多,但是这些方法模型是在比较旧的公开数据集上进行训练的,并不一定适用于检测新的网络流量攻击。本发明提出的基于数据包有效载荷预训练模型是在这些公开数据集上进行预训练,由此获得以往的网络流量攻击特征,此外可以通过微调适用于新的网络流量攻击。
现有的网络流量攻击检测方法中也有将自然语言处理中的向量嵌入技术应用到网络攻击检测中,在论文″Intrusion Detection Using Payload Embeddings″(M.Hassan,M.E.Haque,M.E.Tozal,V.Raghavan and R.Agrawal)中,Hassan等人将网络数据包有效载荷中的字节序看作句子,由此训练一个Word2Vec模型用于网络数据包有效载荷的向量嵌入,将网络数据包有效载荷的向量嵌入作为分类器的输入再训练一个分类器进行攻击检测,但是该方法仅仅关注于网络数据包层面,而忽视了网络数据包之间的关联性,而且Word2Vec模型是上下文无关的嵌入模型,其嵌入向量是固定的,Bert模型是上下文相关的模型,同一个词在不通过的上下文中有不同的嵌入向量,Bert模型能更好的捕获信息。
在专利(申请号[CN202211553706.1]、公开号[CN115622806A])中将网络数据流的统计特征转换为文本数据,每一条网络数据流对应一个句子,网络数据流中的统计特征作为词,然后通过Bert模型将句子表示为高维的向量用于网络攻击检测分类器的训练进行网络攻击检测。
发明内容
本发明的主要目的在于提供一种基于数据包有效载荷预训练模型的网络攻击检测方法、系统及介质,旨在更好地捕获网络数据包有效载荷的信息,以便于通过网络数据包有效载荷预训练模型检测网络攻击。
为了达到上述目的,本发明提出一种基于数据包有效载荷预训练模型的网络攻击检测方法,所述方法包括以下步骤:
步骤S10,提取有效载荷:使用Python3中的网络流量基本信息提取库flowcontainer对数据集中的网络流量包进行切分,获得网络会话流粒度的网络数据包有效载荷序列;
步骤S20,有效载荷处理:对数据集的正常流量和网络攻击流量进行均衡采样,并依据Bert模型的输入长度限制,使用滑动窗口对有效载荷进行切分;
步骤S30,预训练Bert模型:将有效载荷切分后获得的字节对序列经分词器处理后输入Bert模型进行预训练,在预训练Bert模型时将网络会话流类比于文档,将网络数据包有效载荷类比于句子;
步骤S40,微调已预训练的Bert模型进行网络攻击检测:加载已预训练的Bert模型,结合分类器在新的数据上进行微调,采用微调后的网络攻击检测模型检测网络攻击。
本发明进一步的技术方案是,所述步骤S20包括:
采用大小为510,步幅为410的滑动窗口对有效载荷字节对序列进行截取,截取获得的这些字节对序列满足Bert模型预训练时的输入长度限制。
本发明进一步的技术方案是,所述步骤S30采用基于掩盖的语言模型预测任务对Bert模型进行训练,输入形式为有效载荷字节对序列。
本发明进一步的技术方案是,所述步骤S30包括:
使用分词器对字节对序列添加开始分隔符和结尾分隔符,并进行分词获得数字编码数组,将数字编码数组输入到Bert模型进行基于掩盖的语言模型预测任务的预训练。
本发明进一步的技术方案是,所述分词器是对步骤S20处理后获得的所有字节对序列构成的数据集训练得到,所述分词器用于对字节对序列进行分词,并将字节转换为Bert模型能识别的数字编码。
本发明进一步的技术方案是,所述步骤S40中加载已预训练的Bert模型,结合分类器在新的数据上进行微调的步骤包括:
将已预训练的Bert模型结合分类器构造网络攻击检测模型,采用步骤S20处理后的数据集对所述网络攻击检测模型进行微调。
本发明进一步的技术方案是,所述步骤S40中采用微调后的网络攻击检测模型检测网络攻击的步骤包括:
对处理后的网络会话流的字节对序列集合使用分词器处理获得数字编码数组集合,将数字编码数组逐个输入到网络攻击检测模型,获得每个字节对序列的分类结果,其中,分类结果的值为1表示异常,分类结果的值为0表示正常。
本发明进一步的技术方案是,所述步骤S40中采用微调后的网络攻击检测模型检测网络攻击的步骤还包括:
对分类结果取平均值,当平均值大于等于0.5时判定网络会话流异常,可能是网络攻击行为,否则判定为正常。
为实现上述目的,本发明还提出一种基于数据包有效载荷预训练模型的网络攻击检测系统,所述系统包括存储器、处理器以及存储在所述处理器上的基于数据包有效载荷预训练模型的网络攻击检测程序,所述基于数据包有效载荷预训练模型的网络攻击检测程序被处理器运行时执行如上所述的方法的步骤。
为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有基于数据包有效载荷预训练模型的网络攻击检测程序,所述基于数据包有效载荷预训练模型的网络攻击检测程序被处理器运行时执行如上所述的方法的步骤。
本发明基于数据包有效载荷预训练模型的网络攻击检测方法、系统及介质的有益效果是:
(1)本发明采用的是上下文相关的Bert模型,相比于上下文无关的Word2Vec模型,能够更好的捕获网络数据包有效载荷的信息;
(2)本发明设计的在数据集上预训练的网络数据包有效载荷预训练模型已经捕获了数据集中的信息,网络数据包有效载荷预训练模型具有可扩展性且节省计算资源,已训练好的网络数据包有效载荷预训练模型可以看作特征提取器用于从网络数据包有效载荷中提取特征并以向量表示,便于后续的网络攻击检测分类器训练。已训练好的网络数据包有效载荷预训练模型也可以微调进行扩展检测新的网络攻击。
附图说明
图1是本发明基于数据包有效载荷预训练模型的网络攻击检测方法较佳实施例的流程示意图;
图2是本发明基于数据包有效载荷预训练模型的网络攻击检测方法较佳实施例的功能性结构图;
图3是滑动窗口截取示意图;
图4是Bert模型微调过程示意图。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
基于Bert模型,本发明提出一种基于数据包有效载荷预训练模型的网络攻击检测方法,考虑到网络流量具有明显的层次结构,本发明所采用的技术方案主要是将网络会话流中客户端向服务端发送的所有有效载荷一起类比为自然语言中的文档,将网络数据包中的有效载荷类比为自然语言中的句子,有效载荷中每两个连续字节对看作词,以此获得字节对的向量嵌入,并对Bert模型重新进行了预训练,将自然语言处理技术中的预训练模型Bert模型应用到网络流量攻击检测中。本发明不仅捕获了网络会话流的整体特征,也捕获了网络数据包有效载荷层面的信息,本发明提出的预训练模型不仅输出的高维向量可以用于网络攻击检测分类器,而且也可以进行微调后进行网络攻击检测,更适用于网络安全领域。
在进行网络流量数据建模中,本发明充分考虑了网络会话流中的数据包之间的关联性,且本发明提出的基于数据包有效载荷预训练模型的网络攻击检测方法可以有效依据特定的网络流量攻击进行微调以更好地应对特定的网络流量攻击。
本发明基于数据包有效载荷预训练模型的网络攻击检测方法能够在网络会话流粒度进行网络攻击检测,主要包括三个步骤:1、提取有效载荷;2、有效载荷预处理;3、预训练Bert模型;4,微调已预训练的Bert模型进行网络攻击检测。
具体地,请参照图1至图4,本发明基于数据包有效载荷预训练模型的网络攻击检测方法包括以下步骤:
步骤S10,提取有效载荷:使用Python3中的网络流量基本信息提取库flowcontainer对数据集中的网络流量包进行切分,获得网络会话流粒度的网络数据包有效载荷序列。
步骤S10中涉及预先定义的知识,包括网络会话流、Python3中的网络流量基本信息提取库flowcontainer,这里给出其定义。
(1)网络会话流指客户端和服务端一次完整的通信,包括通信中所有的数据包,五元组(源IP地址,源端口号,目的IP地址,目的端口号,协议)可以唯一标识一个网络会话流,以五元组为网络会话流ID对网络流量包进行切分,可以得到所有的网络会话流。本发明只关注网络会话流中客户端向服务端发送的所有网络数据包,由客户端向服务端发送的数据可以很好的表明攻击者的意图。
(2)Python3中的网络流量基本信息提取库flowcontainer是基于网络封包软件WireShark的命令行版本tshark实现的,可以提取网络流量包中所有的网络会话流的相关信息,本发明只提取网络会话流ID五元组、网络会话流的网络数据包有效载荷序列。
步骤S20,有效载荷处理:对数据集的正常流量和网络攻击流量进行均衡采样,并依据Bert模型的输入长度限制,使用滑动窗口对有效载荷进行切分。
步骤S20中涉及预先定义的知识,包括有效载荷字节对序列、Bert的一些相关知识,这里给出相应解释。
(1)在本发明中将网络会话流类比于文档,网络数据包的有效载荷类比于句子,使用窗口大小为2及步幅为1的滑动窗口对有效载荷字节序进行提取,即每两个连续的字节看作一个词,得到有效载荷字节对序列。
(2)Bert模型的预训练任务包括:基于掩盖的语言模型和下一句预测。Bert模型的输入长度限制为512,在BERT模型的默认输入中通常使用分隔符[CLS]表示句子的开头,分隔符[SEP]用作句子的结尾,除去这两个特殊字符,可以输入到BERT模型的词序列长度为510。本发明只使用基于掩盖的语言模型预训练任务,输入形式为字节对序列。
步骤S30,预训练Bert模型:将有效载荷切分后获得的字节对序列经分词器处理后输入Bert模型进行预训练,在预训练Bert模型时将网络会话流类比于文档,将网络数据包有效载荷类比于句子。
本实施例中,步骤S30采用基于掩盖的语言模型预测任务对Bert模型进行训练,输入形式为有效载荷字节对序列。
步骤S30中涉及预先定义的知识,包括分词器、Bert模型的一些相关知识,这里给出相应解释。
分词器是将BERT的输入文本进行分词,并将每个词与编码数字对应。首先在预训练数据集上训练一个分词器,并获得一个词表,即预训练数据集中所有的词以及每个词与数字编码的对应关系,分词器可以依据这个词表对输入文本进行分词并将文本转换为数字编码数组。
步骤S40,微调已预训练的Bert模型进行网络攻击检测:加载已预训练的Bert模型,结合分类器在新的数据上进行微调,采用微调后的网络攻击检测模型检测网络攻击。
步骤S40中涉及预先定义的知识,包括预训练Bert模型微调、数据集处理,这里给出相应解释。
(1)预训练Bert模型微调是指对已预训练的BERT模型在特定的数据集上进行进一步训练以适应这个数据集的任务需求,通常是将已预训练BERT模型和分类器进行结合构建模型满足任务的分类需求,本发明采用的是一个简单的softmax分类器。
(2)网络检测数据集中以网络会话流为粒度标记正常/异常,记网络会话流中的有效载荷序列为X=[x1,x2,...,xn],对应的标签为Y=[y1,y2,...,yn],其中x表示有效载荷,y1=y2=...=yn,y的值为1表示异常,y的值为0表示正常,n表示有效载荷的个数。按上述步骤20中的滑动窗口数据处理对特定的网络攻击检测数据集进行处理,使字节对序列的长度满足BERT模型的输入长度限制,记处理后的字节对序列集合为X′=[x′1,x′2,...,x′m],分词器处理后的数字编码数组集合为Z′=[z′1,z′2,...,z′m]对应的标签为Y′=[y′1,y′2,...,y′m],其中x′表示字节对序列,z′表示字节对序列x′经分词器编码后的数字编码数组,z′中已经包含表明句子开头和结尾的数字编码,y′1=y′2=...=y′m,y′的值为1表示异常,y′的值为0表示正常,m表示处理后字节对序列的个数。
本实施例采用的是上下文相关的Bert模型,相比于上下文无关的Word2Vec模型,能够更好的捕获网络数据包有效载荷的信息;本实施例设计的在数据集上预训练的网络数据包有效载荷预训练模型已经捕获了数据集中的信息,网络数据包有效载荷预训练模型具有可扩展性且节省计算资源,已训练好的网络数据包有效载荷预训练模型可以看作特征提取器用于从网络数据包有效载荷中提取特征并以向量表示,便于后续的网络攻击检测分类器训练。已训练好的网络数据包有效载荷预训练模型也可以微调进行扩展检测新的网络攻击。
进一步地,本实施例中,步骤S20包括:
采用大小为510,步幅为410的滑动窗口对有效载荷字节对序列进行截取,截取获得的这些字节对序列满足Bert模型预训练时的输入长度限制。
步骤S30包括:使用分词器对字节对序列添加开始分隔符和结尾分隔符,并进行分词获得数字编码数组,将数字编码数组输入到Bert模型进行基于掩盖的语言模型预测任务的预训练。
其中,分词器是对步骤S20处理后获得的所有字节对序列构成的数据集训练得到,分词器用于对字节对序列进行分词,并将字节转换为Bert模型能识别的数字编码。
本实施例中,步骤S40中加载已预训练的Bert模型,结合分类器在新的数据上进行微调的步骤包括:
将已预训练的Bert模型结合分类器构造网络攻击检测模型,采用步骤S20处理后的数据集对网络攻击检测模型进行微调。
步骤S40中采用微调后的网络攻击检测模型检测网络攻击的步骤包括:
对处理后的网络会话流的字节对序列集合使用分词器处理获得数字编码数组集合,将数字编码数组逐个输入到网络攻击检测模型,获得每个字节对序列的分类结果,其中,分类结果的值为1表示异常,分类结果的值为0表示正常。
进一步地,步骤S40中采用微调后的网络攻击检测模型检测网络攻击的步骤还包括:
对分类结果取平均值,当平均值大于等于0.5时判定网络会话流异常,可能是网络攻击行为,否则判定为正常。
以下结合图1至图4对本发明基于数据包有效载荷预训练模型的网络攻击检测进行进一步阐述。
步骤S10,提取有效载荷:
将多个现有论文中常用的公开网络攻击检测数据集作为预训练数据集,使用Python3中的网络流量基本信息提取库flowcontainer对数据集中的网络流量包进行有效载荷提取,获得网络会话流的网络数据包有效载荷序列。
步骤S20,有效载荷预处理:
考虑到现实网络攻击流量中的占比小于正常流量,为了防止Bert模型在预训练时的嵌入向量偏向于正常流量,需要对数据集进行数据均衡操作。记数据集中标记为网络攻击的网络数据流的数量为numa,记数据集中标记为正常流量的网络数据流的数量为numn,采样的数量为num=min(numa,numn),对正常流量的网络会话流和网络攻击的网络会话流均采样num的数量来平衡数据集。
数据包的有效载荷长度有时候会远远超出Bert模型的输入长度限制,对此需要对数据包的有效载荷进行处理,以适用Bert模型。本发明采用滑动窗口的思想对网络数据包有效载荷进行长度的截取。
在Bert进行预训练时是采用基于掩盖的语言模型预测任务进行训练,输入形式为字节对序列,为了充分捕获信息,保留分割后有效载荷字节对序列之间的关联信息,使用大小为510及步幅为410的滑动窗口对有效载荷字节对序列进行截取,截取获得的这些字节对序列满足Bert预训练时的输入长度限制。
记网络会话流中的有效载荷序列为X=[x1,x2,...,xn],其中x表示有效载荷,n表示有效载荷的个数。记处理后的BERT输入序列为X′=[x′1,x′2,...,x′m],其中x′表示字节对序列,m表示处理后字节对序列的个数。有效载荷字节对序列可能超出BERT模型的输入长度限制,需要使用滑动窗口切分,使用滑动窗口截取获得的字节对序列的个数m可能会与处理前的有效载荷的个数n不一致,m>=n,处理示例如图3所示。
步骤S30,预训练Bert模型:
预训练时将网络会话流类比于文档,网络数据包有效载荷类比于句子,本发明中在Bert模型进行预训练时是采用基于掩盖的语言模型预测任务进行训练,输入形式为有效载荷字节对序列。将步骤S20处理后获得的所有字节对序列构成的数据集训练一个分词器,该分词器可以对字节对序列进行分词,并将字节对转换为BERT模型能识别的数字编码。
在步骤S20处理后的数据集上进行预训练,使用分词器对字节对序列添加开始分隔符和结尾分隔符,并对其进行分词并获得数字编码数组,将数字编码数组输入到Bert模型进行基于掩盖的语言模型预测任务的预训练,例如添加分隔符的字节对序列B=[[CLS],0000,5657,14a2,c016,[SEP]],数字编码数组N=[3,6,254,4581,65535,2]。这个预训练是无监督学习,预训练后的Bert模型捕获了这些数据集中网络流量的有效载荷的特征,之后可以通过少量数据微调适用于特定网络攻击检测。
步骤S40,微调已预训练的Bert模型进行网络攻击检测:
步骤S30预训练的BERT模型已经捕获大量网络会话流中有效载荷的信息,只需将已预训练的BERT模型结合一个分类器就可以构造一个网络攻击检测模型进行网络攻击检测。本发明是以网络会话流为粒度进行网络攻击检测,使用按照步骤S20处理后的数据集进行网络攻击模块的微调。
使用步骤S20处理后的网络检测数据集微调网络攻击检测模型,使用分词器处理字节对序列集合X′=[x′1,x′2,...,x′m]获得数字编码数组集合Z′=[z′1,z′2,...,z′m],将数字编码数组集合Z′=[z′1,z′2,...,z′m]和标签序列Y′=[y′1,y′2,...,y′m]按照字节对序列和标签(z′,y′)格式输入到结合分类器的BERT模型中进行微调训练,更新模型参数:
(1)已预训练完成的BERT模型将数字编码数组z′转换为高维表示,每个数字编码由一个768维的向量表示,这个768维的向量蕴含着数字编码对应字节对的信息。表示句子开头的分隔符[CLS]对应的向量表示可以表征整个句子,可以用作后面分类器的输入。
(2)将分隔符[CLS]对应的768维向量输入到分类器中得到分类结果y″,计算y′与y″的损失值来更新BERT模型和分类器的参数。
微调过程如图4所示,这个微调是监督学习,微调中的BERT模型的参数更新只是轻微调整参数以适应该特定的网络攻击检测数据集。微调后的Bert模型和分类器捕获了新的网络攻击检测数据集上的信息,微调后的Bert模型可以用于检测新的网络攻击。
微调后的攻击检测模型,攻击检测过程:
(1)对于处理后的网络会话流的字节对序列集合X′=[x′1,x′2,...,x′m],使用分词器处理字节对序列集合获得数字编码数组集合Z′=[z′1,z′2,...,z′m],将数字编码数组z′逐个输入到网络攻击检测模型,可以获得每个字节对序列的分类结果Y″=[y″1,y″2,...,y″m],y″的值为1表示异常,y″的值为0表示正常
(2)本发明是进行网络会话流粒度的网络攻击检测,在分类结果Y″取平均,当值平均值大于等于0.5时就判定该网络会话流异常,可能是有攻击行为,否则判定为正常。
本发明基于数据包有效载荷预训练模型的网络攻击检测方法的有益效果是:
(1)本发明采用的是上下文相关的Bert模型,相比于上下文无关的Word2Vec模型,能够更好的捕获网络数据包有效载荷的信息;
(2)本发明设计的在数据集上预训练的网络数据包有效载荷预训练模型已经捕获了数据集中的信息,网络数据包有效载荷预训练模型具有可扩展性且节省计算资源,已训练好的网络数据包有效载荷预训练模型可以看作特征提取器用于从网络数据包有效载荷中提取特征并以向量表示,便于后续的网络攻击检测分类器训练。已训练好的网络数据包有效载荷预训练模型也可以微调进行扩展检测新的网络攻击。
为实现上述目的,本发明还提出一种基于数据包有效载荷预训练模型的网络攻击检测系统,该系统包括存储器、处理器以及存储在所述处理器上的基于数据包有效载荷预训练模型的网络攻击检测程序,所述基于数据包有效载荷预训练模型的网络攻击检测程序被处理器运行时执行如上所述的方法的步骤,这里不再赘述。
为实现上述目的,本发明还提出一种一种计算机可读存储介质,该计算机可读存储介质存储有基于数据包有效载荷预训练模型的网络攻击检测程序,所述基于数据包有效载荷预训练模型的网络攻击检测程序被处理器运行时执行如上所述的方法的步骤,这里不再赘述。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种基于数据包有效载荷预训练模型的网络攻击检测方法,其特征在于,所述方法包括以下步骤:
步骤S10,提取有效载荷:使用Python3中的网络流量基本信息提取库flowcontainer对数据集中的网络流量包进行切分,获得网络会话流粒度的网络数据包有效载荷序列;
步骤S20,有效载荷处理:对数据集的正常流量和网络攻击流量进行均衡采样,并依据Bert模型的输入长度限制,使用滑动窗口对有效载荷进行切分;
步骤S30,预训练Bert模型:将有效载荷切分后获得的字节对序列经分词器处理后输入Bert模型进行预训练,在预训练Bert模型时将网络会话流类比于文档,将网络数据包有效载荷类比于句子;
步骤S40,微调已预训练的Bert模型进行网络攻击检测:加载已预训练的Bert模型,结合分类器在新的数据上进行微调,采用微调后的网络攻击检测模型检测网络攻击;
所述步骤S30采用基于掩盖的语言模型预测任务对Bert模型进行训练,输入形式为有效载荷字节对序列;
所述步骤S30包括:
使用分词器对字节对序列添加开始分隔符和结尾分隔符,并进行分词获得数字编码数组,将数字编码数组输入到Bert模型进行基于掩盖的语言模型预测任务的预训练;
所述分词器是对步骤S20处理后获得的所有字节对序列构成的数据集训练得到,所述分词器用于对字节对序列进行分词,并将字节转换为Bert模型能识别的数字编码;
所述步骤S40包括:
使用步骤S20处理后的网络检测数据集微调网络攻击检测模型,使用分词器处理字节对序列集合X′=[x′1,x′2,...,x′m]获得数字编码数组集合Z′=[z′1,z′2,...,z′m],将数字编码数组集合Z′=[z′1,z′2,...,z′m]和标签序列Y′=[y′1,y′2,...,y′m]按照字节对序列和标签(z′,y′)格式输入到结合分类器的BERT模型中进行微调训练,更新模型参数:
(1)已预训练完成的BERT模型将数字编码数组z′转换为高维表示,每个数字编码由一个768维的向量表示,这个768维的向量蕴含着数字编码对应字节对的信息;表示句子开头的分隔符[CLS]对应的向量表示可以表征整个句子,可以用作后面分类器的输入;
(2)将分隔符[CLS]对应的768维向量输入到分类器中得到分类结果y″,计算y′与y″的损失值来更新BERT模型和分类器的参数。
2.根据权利要求1所述的基于数据包有效载荷预训练模型的网络攻击检测方法,其特征在于,所述步骤S20包括:
采用大小为510,步幅为410的滑动窗口对有效载荷字节对序列进行截取,截取获得的这些字节对序列满足Bert模型预训练时的输入长度限制。
3.根据权利要求2所述的基于数据包有效载荷预训练模型的网络攻击检测方法,其特征在于,所述步骤S40中采用微调后的网络攻击检测模型检测网络攻击的步骤包括:
对处理后的网络会话流的字节对序列集合使用分词器处理获得数字编码数组集合,将数字编码数组逐个输入到网络攻击检测模型,获得每个字节对序列的分类结果,其中,分类结果的值为1表示异常,分类结果的值为0表示正常。
4.根据权利要求3所述的基于数据包有效载荷预训练模型的网络攻击检测方法,其特征在于,所述步骤S40中采用微调后的网络攻击检测模型检测网络攻击的步骤还包括:
对分类结果取平均值,当平均值大于等于0.5时判定网络会话流异常,可能是网络攻击行为,否则判定为正常。
5.一种基于数据包有效载荷预训练模型的网络攻击检测系统,其特征在于,所述系统包括存储器、处理器以及存储在所述处理器上的基于数据包有效载荷预训练模型的网络攻击检测程序,所述基于数据包有效载荷预训练模型的网络攻击检测程序被处理器运行时执行如权利要求1至4任意一项所述的方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有基于数据包有效载荷预训练模型的网络攻击检测程序,所述基于数据包有效载荷预训练模型的网络攻击检测程序被处理器运行时执行如权利要求1至4任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410218653.0A CN117792803B (zh) | 2024-02-28 | 2024-02-28 | 一种基于有效载荷的网络攻击检测方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410218653.0A CN117792803B (zh) | 2024-02-28 | 2024-02-28 | 一种基于有效载荷的网络攻击检测方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117792803A CN117792803A (zh) | 2024-03-29 |
CN117792803B true CN117792803B (zh) | 2024-06-25 |
Family
ID=90401978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410218653.0A Active CN117792803B (zh) | 2024-02-28 | 2024-02-28 | 一种基于有效载荷的网络攻击检测方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117792803B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115622806A (zh) * | 2022-12-06 | 2023-01-17 | 南京众智维信息科技有限公司 | 一种基于bert-cgan的网络入侵检测方法 |
CN116668163A (zh) * | 2023-06-25 | 2023-08-29 | 奇安信科技集团股份有限公司 | 加密流量检测方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117240560A (zh) * | 2023-09-25 | 2023-12-15 | 哈尔滨工业大学 | 一种基于gan的高仿真蜜罐实现方法及系统 |
-
2024
- 2024-02-28 CN CN202410218653.0A patent/CN117792803B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115622806A (zh) * | 2022-12-06 | 2023-01-17 | 南京众智维信息科技有限公司 | 一种基于bert-cgan的网络入侵检测方法 |
CN116668163A (zh) * | 2023-06-25 | 2023-08-29 | 奇安信科技集团股份有限公司 | 加密流量检测方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117792803A (zh) | 2024-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109714322B (zh) | 一种检测网络异常流量的方法及其系统 | |
CN111064678A (zh) | 基于轻量级卷积神经网络的网络流量分类方法 | |
JPWO2019082965A1 (ja) | トラヒック分析装置、システム、方法及びプログラム | |
CN111611280A (zh) | 一种基于cnn和sae的加密流量识别方法 | |
CN111464510B (zh) | 基于快速梯度提升树分类模型的网络实时入侵检测方法 | |
CN112769623A (zh) | 边缘环境下的物联网设备识别方法 | |
CN113472751A (zh) | 一种基于数据包头的加密流量识别方法及装置 | |
CN111526141A (zh) | 基于Word2vec和TF-IDF的Web异常检测方法与系统 | |
CN114866310A (zh) | 一种恶意加密流量检测方法、终端设备及存储介质 | |
CN117792803B (zh) | 一种基于有效载荷的网络攻击检测方法、系统及介质 | |
CN116723058B (zh) | 网络攻击检测和防护方法和装置 | |
CN115314268B (zh) | 基于流量指纹和行为的恶意加密流量检测方法和系统 | |
CN115051874B (zh) | 一种多特征的cs恶意加密流量检测方法和系统 | |
CN116828087A (zh) | 基于区块链连接的信息安全系统 | |
CN114338437B (zh) | 网络流量分类方法、装置、电子设备及存储介质 | |
CN113992419B (zh) | 一种用户异常行为检测和处理系统及其方法 | |
CN113382003B (zh) | 一种基于两级过滤器的rtsp混合入侵检测方法 | |
US11374838B1 (en) | Using a data processing unit (DPU) as a pre-processor for graphics processing unit (GPU) based machine learning | |
WO2018096685A1 (ja) | 情報処理装置、方法およびプログラム | |
CN113449768A (zh) | 一种基于短时傅里叶变换的网络流量分类装置及方法 | |
CN106789895B (zh) | 压缩文本检测方法和装置 | |
CN112968906A (zh) | 一种基于多元组的Modbus TCP异常通讯检测方法和系统 | |
CN113542222A (zh) | 一种基于双域vae的零日多步威胁识别方法 | |
Li et al. | FusionTC: Encrypted App Traffic Classification Using Decision‐Level Multimodal Fusion Learning of Flow Sequence | |
Howe et al. | Feature engineering in machine learning-based intrusion detection systems for ot networks |
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 |