CN110363001B - 一种基于Transformer模型的应用层恶意请求检测方法 - Google Patents

一种基于Transformer模型的应用层恶意请求检测方法 Download PDF

Info

Publication number
CN110363001B
CN110363001B CN201910629182.1A CN201910629182A CN110363001B CN 110363001 B CN110363001 B CN 110363001B CN 201910629182 A CN201910629182 A CN 201910629182A CN 110363001 B CN110363001 B CN 110363001B
Authority
CN
China
Prior art keywords
application layer
matrix
dictionary
user request
data
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
Application number
CN201910629182.1A
Other languages
English (en)
Other versions
CN110363001A (zh
Inventor
马小龙
赵颖
谢逸航
曹鸣佩
黄惟
康占英
陈文江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changsha Zhiwei Information Technology Co ltd
Original Assignee
Changsha Zhiwei Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changsha Zhiwei Information Technology Co ltd filed Critical Changsha Zhiwei Information Technology Co ltd
Priority to CN201910629182.1A priority Critical patent/CN110363001B/zh
Publication of CN110363001A publication Critical patent/CN110363001A/zh
Application granted granted Critical
Publication of CN110363001B publication Critical patent/CN110363001B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/561Virus type analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Virology (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供了一种基于Transformer模型的应用层恶意请求检测方法,首先构建应用层用户请求数据样本集合;接着根据应用层用户请求数据中词元出现频率构建词典并根据词典向量化应用层用户请求数据;然后对向量化的结果进行数据嵌入和位置编码,得到特征矩阵;再基于Transformer模型对特征矩阵预测相应应用层用户请求数据的类别;再根据模型预测类别和真实类别计算损失函数值,优化网络参数;最后对于待检测的应用层用户请求数据进行向量化,并基于优化后的网络对其进行特征提取和类别预测,实现应用层恶意请求检测。本发明效果好,效率高。

Description

一种基于Transformer模型的应用层恶意请求检测方法
技术领域
本发明属于计算机信息处理技术领域,涉及到一种基于Transformer模型的应用层恶意请求检测方法。
背景技术
应用服务是应用服务提供商提供服务供用户使用的主要方式(如电子商务网站),与我们的现实生活息息相关。但是,不法分子常常通过构造应用层恶意请求进行攻击,谋取不正当利益。传统的应用层恶意请求检测方法采用与安全从业者编写的安全防护规则进行模式匹配的方式,该方法存在着规则库庞大、维护难、普适性差等问题。
近些年来,随着人工智能的快速发展,研究人员开始将深度学习方法用于应用层恶意流量的检测。该方法能便捷地构造端到端的系统,并且能有效地适应海量的数据规模。但是现的基于深度学习的应用层恶意流量检测方法效果和效率有待进一步替提升。
因此,有必要设计一种新的效果更好效率更高的应用层恶意流量检测方法。
发明内容
本发明所解决的技术问题是,针对现有技术的不足,提供一种基于Transformer模型的应用层恶意请求检测方法,效果好,效率高。
本发明所提供的技术方案为:
一种基于Transformer模型的应用层恶意请求检测方法,包括以下步骤:
步骤1:构建应用层用户请求数据样本集合S,其中每个样本包括一条应用层用户请求数据及其真实类别标签,类别标签包括正常请求和恶意请求两种;
步骤2:对应用层用户请求数据样本集合S中的每条应用层用户请求数据Ri,根据Ri文本中各个词元出现的频率对其进行向量化,得到矩阵Vi
步骤3:利用嵌入矩阵E对Vi进行数据嵌入,得到矩阵Pi
步骤4:利用位置矩阵U对Pi进行位置编码,得到特征矩阵Ci
步骤5:将特征矩阵Ci输入基于Transformer模型的神经网络模型,预测相应的应用层用户请求数据的类别标签;
步骤6:根据应用层用户请求数据样本的真实类别标签和预测类别标签计算损失函数值,并根据优化算法更新嵌入矩阵、位置矩阵和神经网络模型的参数;
步骤7:重复步骤3~步骤6,直到满足训练结束条件时结束训练,得到优化后的嵌入矩阵、位置矩阵和神经网络模型参数;
步骤8:对于待检测的应用层用户请求数据,首先根据其文本中各个词元出现的频率对其进行向量化得到矩阵V,并利用优化后的嵌入矩阵E对V进行数据嵌入,得到矩阵P,利用优化后的位置矩阵U对P进行位置编码,得到特征矩阵C,再将特征矩阵C输入优化后的神经网络模型,预测该待检测的应用层用户请求数据的类别标签,从而实现应用层恶意请求检测。
进一步地,所所述步骤2中,首先,构造词典D,包括以下步骤:
步骤2.1:设置词典长度为lv,单条用户请求的最大长度为lr
步骤2.2:对集合S中的每一条应用层用户请求数据Ri,分别根据其文本中词元以及特殊字符的构成,将其划分为一个词元序列,划分规则为:将连续的标点符号或者连续的字母数字划分为一个词元;
步骤2.3:根据步骤2.2中得到的所有词元序列,构造词典D={(index,token)},其中(index,token)表示词典D中的一个词,index表示该词在词典中的索引位置,token表示该词对应的词元,词典D中的总的词元数目为lv;词典D的具体构造方法为:设置词典的第1个词为(1,<UNK>),其中<UNK>表示未知词元;设置词典的第2个词为(2,<PAD>),其中<PAD>表示补全符号词元;根据步骤2.2中得到的所有词元序列中各个词元出现频率由高到低的顺序,设置词典的第3个到第lv个词;
然后,对集合S中的每一条应用层用户请求数据Ri,按以下步骤对其进行向量化:
步骤2.4:针对Ri由步骤2.2得到的词元序列进行补全、截取以及替换处理,以使其词元序列的长度等于lr,且所有的词都出现在词典中,处理方法为:若词元序列的长度小于lr,则使用<PAD>进行补全;若词元序列的长度大于lr,则截取前lr个词元;若词元序列中的元素未出现在词典中,则使用<UNK>替换;
步骤2.5:针对Ri经过步骤2.4处理后的词元序列进行one-hot编码,即针对每个词元分别构建一个长度为lv的词元向量;针对任一词元构建的词元向量中,将该词元在词典D中的索引值对应位置的元素设置为1,其余位置的元素设置为0;由所有词元向量组成一个大小lr×lv的矩阵Vi,即该应用层用户请求数据Ri向量化后的结果。
进一步地,所述步骤3中,Pi=ViE,E是大小为lv×lm的嵌入矩阵,数据嵌入后的矩阵Pi的大小为lr×lm;Vi的大小lr×lv,lr为单条用户请求的最大长度,lv为词典长度,lm为嵌入矩阵的列数。
进一步地,所述步骤3中,嵌入矩阵E中各个元素根据[-1,1]区间内的均匀分布进行随机初始化。
进一步地,所述步骤4中,Ci=Pi+U,U是大小为lr×lm的位置矩阵,矩阵Ci的大小为lr×lm,Pi的大小lr×lm,lr为单条用户请求的最大长度,lm为嵌入矩阵E的列数。
进一步地,所述步骤4中,位置矩阵U中各个元素根据均值为0,方差为σ的正态分布进行随机初始化。
进一步地,所述步骤5中,神经网络模型包括多个串联的Transformer模型。
进一步地,所述步骤5中,Transformer模型采用Vanilla Transformer模型。
进一步地,每个Vanilla Transformer模型包括一个多头自注意层,两个层规范化层和一个前馈神经网络;每个Vanilla Transformer模型中数据处理过程为:该VanillaTransformer模型的输入X经过多头自注意层处理,输出Y;将X+Y输入层规范化层进行处理,输出Z;将Z输入前馈神经网络处理,输出F;将Z+F输入第二个层规范化层进行处理,得到T。
进一步地,所述步骤5中,神经网络模型先采用Transformer模型从特征矩阵Ci中提取出应用层用户请求数据的潜在的长期依赖特征,再基于潜在的长期依赖特征采用Softmax算法预测得到Ri对应的类别标签向量,类别标签向量维度为2,取值分别为Ri为正常请求和恶意请求的概率。对于待检测的应用层用户请求数据,若通过模型预测得到的其为恶意请求的概率值大于其为正常请求的概率值,则判定其为恶意请求。
进一步地,所述步骤6中,优化算法采用Adam优化算法。
进一步地,所述步骤7中,训练结束条件为:训练次数等于最大训练次数Nt或当前得到的损失函数值小于或等于最大误差阈值Lmax
有益效果:
本发明提供一种基于Transformer模型的应用层恶意请求检测方法,首先获取应用服务的应用层用户请求数据;再使用人工检测或其他可行的检测技术,标记应用层用户请求数据,构建应用层用户请求数据样本集合;接着根据应用层用户请求数据中词元出现频率构建词典并根据词典向量化每条应用层用户请求数据;然后对向量化的结果进行数据嵌入和位置编码,得到特征矩阵;再使用多个串联的Transformer模型提取应用层用户请求数据潜在的长期依赖特征,并根据特征预测输出类别;最后根据用户请求的预测类别和其对应的真实类别计算损失函数值,并根据优化方法优化嵌入矩阵、位置矩阵和模型参数;最后对待检测的应用层用户请求数据进行向量化,并利用优化后的嵌入矩阵和位置矩阵依次对其向量化的结果进行数据嵌入和位置编码,得到其特征矩阵,将其特征矩阵输入优化后的模型,预测其类别标签向量,实现应用层恶意请求检测。由于Transformer模型包含自注意机制和非循环结构的特点,自注意机制能够更好地学习得到恶意请求中攻击负载的潜在的长期依赖特征,非循环结构能够实现计算并行化,从而能够更快地优化模型参数,减少模型训练时间;因此,本发明能更好更快地进行应用层恶意请求检测。
附图说明
图1是本发明实施的流程图;
图2是Vanilla Transformer模型结构示意图。
具体实施方式
为使本发明的目的、设计思路和优点更加清楚,以下结合具体实例,并参照附图,对本发明作进一步详细说明。
本发明提供了一种基于Transformer模型的应用层恶意请求检测方法,如图1所示,首先获取应用服务的应用层用户请求数据;再使用人工检测或其他可行的检测技术,标记应用层用户请求数据,构建应用层用户请求数据样本集合;接着根据应用层用户请求数据中词元出现频率构建词典并根据词典向量化每条应用层用户请求数据;然后使用多个串联的Transformer模型提取应用层用户请求数据潜在的长期依赖特征,并根据特征预测类别标签向量;最后根据应用层用户请求数据预测的类别标签向量和其对应的真实标签向量计算损失函数值,并根据优化方法和训练结束指标优化模型参数,实现应用层恶意请求检测。由于Transformer模型其包含自注意机制和非循环结构的特点,能够更好地学习得到应用层用户请求数据中潜在的长期依赖特征,更快地并行计算并优化模型参数,更好地进行应用层恶意流量检测方法。
本发明方法具体实施方式如下:
步骤1、数据获取的过程。首先获取应用服务记录的应用层用户请求数据,组成应用层用户请求数据集合R,其中每条应用层用户请求数据Ri包含的特征有请求头和请求体,请求头包含用户请求的数据属性信息,请求体包含用户请求的数据内容信息;然后根据单条应用层用户请求数据Ri,根据人工检测或其他可行的检测方法,得到其真实类别标签向量Li,其中第一个元素值表示Ri为正常请求的概率值,第二个元素值表示Ri为恶意请求的概率值,Li的取值为(0,1)或(1,0),(0,1)代表Ri为恶意请求,(1,0)代表Ri为正常请求;最后,将应用层用户请求数据Ri和其真实类别标签向量Li形成一条样本Si=(Ri,Li),由所有的Si构建应用层用户请求数据样本集合S,其中i=1,2,…,n,n表示样本数量。如表1所示,为单条应用层用户请求数据样本S1的示例:
表1单条应用层用户请求样本数据S1示例
Figure GDA0002758939760000051
步骤2、数据预处理的过程。对应用层用户请求数据样本集合S中的每条应用层用户请求数据Ri,根据文本中各个词元出现的频率对其进行向量化,得到矩阵Vi。预处理过程包括如下步骤:
首先,构造词典D,包括以下步骤:
步骤2.1:设置词典长度为lv,单条用户请求的最大长度为lr
步骤2.2:对集合S中的每一条应用层用户请求数据Ri,分别进行分词操作。根据Ri文本中词元以及特殊字符的构成,按照连续标点符号或者连续字母数字为一个词元的划分规则,将Ri划分为词元序列。以对表1中R1中的“POSThttp://localhost:8080/tiendal/ publioo/anadir.jsp”部分进行分词为例,得到词元序列为:(POST,http,://,localhost,:,8080,/,tiendal,/,publico,/,anadir,.,jsp)。
步骤2.3:根据步骤2.2中得到的所有词元序列,根据词元序列中各个词元出现的频率以及设置的词典长度构造词典D={(index,token)),其中(index,token)表示词典D中的一个词,index表示该词在词典中的索引位置,token表示该词对应的词元,词典D中的总的词元数目为lv;词典D的具体构造方法为:设置词典的第1个词为(1,<UNK>),其中<UNK>表示未知词元(考虑到词元数目大于词典大小的情况,这时存在部分词元未出现在词典中,这部分词元为未知词元);设置词典的第2个词为(2,<PAD>),其中<PAD>表示补全符号词元;根据步骤2.2中得到的所有词元序列中各个词元出现频率由高到低的顺序,设置词典的第3个到第lv个词;
然后,对集合S中的每一条应用层用户请求数据Ri,按以下步骤对其进行向量化:
步骤2.4:针对Ri由步骤2.2得到的词元序列进行补全、截取以及替换处理,以使其词元序列的长度等于lr,且所有的词都出现在词典中,处理方法为:若词元序列的长度小于lr,则使用<PAD>进行补全;若词元序列的长度大于lr,则截取前lr个词元;若词元序列中的元素未出现在词典中,则使用<UNK>替换;
步骤2.5:针对Ri经过步骤2.4处理后的词元序列进行one-hot编码,即针对每个词元分别构建一个长度为lv的词元向量;针对任一词元的构建词元向量中,该词元在词典D中的索引值对应位置的元素设置为1,其余位置的元素设置为0;由所有词元向量组成一个大小lr×lv的矩阵Vi,即该应用层用户请求数据Ri预处理后的结果。
步骤3、模型预测的过程。针对Ri经过步骤2预处理得到的矩阵Vi,使用多个串联的Transformer模型逐步提取得到应用层用户请求数据潜在的长期依赖特征。由于Transformer模型完全采用自注意机制和非循环结构的特点,能够更好地学习得到应用层用户请求数据中潜在的长期依赖特征,通过并行计算更快地并优化模型参数,更好地进行应用层恶意流量检测方法。模型预测过程包括如下步骤:
步骤3.1:使用嵌入矩阵对Vi进行数据嵌入(词嵌入),降低数据维度。首先,使用[-1,1]区间内的均匀分布随机初始化一个大小lv×lm的嵌入矩阵E,其中lm<lv;接着,将Vi与E进行矩阵乘法,得到数据嵌入降维后的大小为lr×lm矩阵Pi,即Pi=ViE;
步骤3.2:使用位置矩阵对Pi进行位置信息编码。首先,使用均值为0,方差为σ的正态分布进行随机初始化一个大小为lr×lm的位置矩阵U;接着,将Pi与U进行矩阵加法,得到位置信息编码后的大小为lr×lm矩阵Ci,即Ci=Pi+U;
步骤3.3:通过多个串联的Transformer块组成的神经网络模型,用于提取用户请求数据Ri经过数据嵌入和位置编码后的矩阵Ci的潜在的长期依赖信息。神经网络模型的结构设计为:
首先,设置串联的Transformer块的个数k(本例中设置k=12)并选择Transformer的网络模型结构(本例中选择Vanilla Transformer模型)。如图2所示,为VanillaTransformer的模型结构示意图。
每个Vanilla Transformer模型包括一个多头自注意层,两个层规范化层和一个前馈神经网络;每个Vanilla Transformer模型中数据处理过程为:该VanillaTransformer模型的输入X经过多头自注意层处理,输出Y=MultiHeadAttention(X,X,X);将多头自注意层的输入与输出相加,得到X+Y;将X+Y输入层规范化层进行处理,输出Z=layernorm(X+Y);将Z输入前馈神经网络处理,输出F=FFN(Z);将前馈神经网络的输入与输出相加,得到Z+F;将Z+F输入第二个层规范化层进行处理,得到T=layernorm(Z+F)。
每个Vanilla Transformer模型的具体设计如下:
第一层:多头注意层。其计算公式为Y=MultiHeadAttention(Query,Key,Value)=Concat(head1,head2,...,headh)WO。其中,Query,Key,Value为多头自注意层的输入参数,由于是自注意,所以其三个输入参数Query、Key和Value均相同,均为该VanillaTransformer模型的输入X,其为大小为lr×lm的矩阵;输出Y是大小为lr×lm的矩阵;Concat(head1,head2,...,headh)表示将矩阵head1,head2,...,headh进行串联形成一个大小为lr×lm的矩阵;WO是大小为lm×lm的权重矩阵;其中,headi=Attention(Query·Wi Query,Key·Wi Key,Value·Wi Value),式中Attention()为注意力计算公式,
Figure GDA0002758939760000071
Figure GDA0002758939760000072
headi的计算主要是对输入参数Query、Key、Value进行变换,提取子空间注意力,其中Wi Query、Wi Key和Wi Value为大小为lm×lm/h权重矩阵;
第二层:层归一化层。其计算公式为Z=layernorm(X+Y)。其中,layernorm()是层规范化函数,输出Z是大小为lr×lm矩阵;
第三层:前馈神经网络层。其计算公式为F=FFN(Z)=max(0,ZW1+b1)W2+b2。其中,max(0,ZW1+b1)表示对矩阵ZW1+b1的中各个元素分别进行处理,若元素值大于等于0,则该元素值保持不变,若元素值小于0,则将该元素值设置为0;W1和W2和为权重矩阵,b1和b2为偏置;输出F是大小为lr×lm矩阵;
第四层:层归一化层。其计算公式为T=layernorm(Z+F)。其中,输出T是大小为lr×lm矩阵,T即为此Transformer块的最终输出。
在本发明中,紧接着位置编码后的Transformer模型(第一个Transformer模型)的输入参数是Ci,经过Transformer得到的输出和Transformer模型的输入大小保持一致,均为lr×lm。后续的Transformer模型的输入是前一个Transformer模型的输出。由12个Transformer模型依次提取用户请求数据的潜在的长期依赖性特征,以此类推,直至得到最终特征Tz,Tz是大小为lr×lm的矩阵;
步骤3.4:根据步骤3.3提取得到的长期依赖特征Tz,计算整体的上下文向量。其计算公式为H=sum(Tz,axis=0)。其中,sum(Tz,axis=0)表示对Tz按行求和,这个操作的目的是将所有词元的注意力值累加得到整体的上下文向量。原本Tz的大小为lr×lm,对其进行按行求和得到大小为1×lm向量H。
步骤3.5:针对上下文向量Tz,进行线性变换。其计算公式为Linear(H)=HW。这个操作的目的是将模型的维度线性转换到类别数目,比如本例中的类别有2类,分别是正常和恶意,所以权重矩阵W的大小为lm×2,最终线性转换后结果Linear(H)是2维向量,记为G。
步骤3.6:对G进行柔性最大化(Soffmax)处理,得到2维向量
Figure GDA0002758939760000081
其计算公式为
Figure GDA0002758939760000082
其中,Gk表示向量G中的第k个元素,
Figure GDA0002758939760000083
表示向量
Figure GDA0002758939760000084
中的第k个元素。这个操作的目的是将线性变换后结果转化为0到1之间的概率值,
Figure GDA0002758939760000085
即为预测得到的输入的应用层用户请求数据的类别标签向量,向量中的两个元素分别为相应的应用层用户请求数据为两个类别的概率值。
步骤4、使用数据训练并优化模型的过程。利用交叉熵损失函数作为损失函数,其计算公式为
Figure GDA0002758939760000086
其中,Loss为损失函数值(代价),n表示输入的批样本数据数目,Lik表示第i个样本的真实类别标签向量Li中第k个元素的值,
Figure GDA0002758939760000091
表示第k个样本通过模型预测的类别标签向量
Figure GDA0002758939760000092
中第k个元素的值。模型训练及优化过程包括如下步骤:
步骤4.1:设置最大训练次数Nt或者最大误差阈值Lmax
步骤4.2:使用Adam优化算法训练检测方法中的可训练参数(包括嵌入矩阵、位置矩阵以及神经网络模型中权重矩阵和偏置参数);并利用更新后的模型重新预测和计算代价;如果训练次数达到最大训练次数Nt或者交叉熵损失函数值小于等于最大误差阈值Lmax,则停止训练,得到优化后的嵌入矩阵位置矩阵以及神经网络模型;
步骤5、用于应用层恶意流量检测的过程。对于待检测的应用层用户请求数据,根据步骤2构建的词典D对其进行向量化得到矩阵V,并利用优化后的嵌入矩阵E对V进行数据嵌入,得到矩阵P,利用优化后的位置矩阵U对P进行位置编码,得到特征矩阵C,再将特征矩阵C输入优化后的神经网络模型,得到该待检测的应用层用户请求数据的类别标签向量,从而实现应用层恶意请求检测。

Claims (9)

1.一种基于Transformer模型的应用层恶意请求检测方法,其特征在于,包括以下步骤:
步骤1:构建应用层用户请求数据样本集合S,其中每个样本包括一条应用层用户请求数据及其真实类别标签,类别标签包括正常请求和恶意请求两种;
步骤2:对应用层用户请求数据样本集合S中的每条应用层用户请求数据Ri,根据Ri文本中各个词元出现的频率对其进行向量化,得到矩阵Vi
步骤3:利用嵌入矩阵E对Vi进行数据嵌入,得到矩阵Pi
步骤4:利用位置矩阵U对Pi进行位置编码,得到特征矩阵Ci
步骤5:将特征矩阵Ci输入基于Transformer模型的神经网络模型,预测相应的应用层用户请求数据的类别标签;
步骤6:根据应用层用户请求数据样本的真实类别标签和预测类别标签计算损失函数值,并根据优化算法更新嵌入矩阵、位置矩阵和神经网络模型的参数;
步骤7:重复步骤3~步骤6,直到满足训练结束条件,得到优化后的嵌入矩阵、位置矩阵和神经网络模型参数;
步骤8:对于待检测的应用层用户请求数据,首先根据其文本中各个词元出现的频率对其进行向量化得到矩阵V,并利用优化后的嵌入矩阵E对V进行数据嵌入,得到矩阵P,利用优化后的位置矩阵U对P进行位置编码,得到特征矩阵C,再将特征矩阵C输入优化后的神经网络模型,预测该待检测的应用层用户请求数据的类别标签,从而实现应用层恶意请求检测。
2.根据权利要求书1所述的基于Transformer模型的应用层恶意请求检测方法,其特征在于,所述步骤2中,首先,构造词典D,包括以下步骤:
步骤2.1:设置词典长度为lv,单条用户请求的最大长度为lr
步骤2.2:对集合S中的每一条应用层用户请求数据Ri,分别根据其文本中词元以及特殊字符的构成,将其划分为一个词元序列;
步骤2.3:根据步骤2.2中得到的所有词元序列,构造词典D={(index,token)},其中(index,token)表示词典D中的一个词,index表示该词在词典中的索引位置,token表示该词对应的词元,词典D中的总的词元数目为lv;词典D的具体构造方法为:设置词典的第1个词为(1,<UNK>),其中<UNK>表示未知词元;设置词典的第2个词为(2,<PAD>),其中<PAD>表示补全符号词元;根据步骤2.2中得到的所有词元序列中各个词元出现频率由高到低的顺序,设置词典的第3个到第lv个词;
然后,对集合S中的每一条应用层用户请求数据Ri,按以下步骤对其进行向量化:
步骤2.4:针对Ri由步骤2.2得到的词元序列进行补全、截取以及替换处理:若词元序列的长度小于lr,则使用<PAD>进行补全;若词元序列的长度大于lr,则截取前lr个词元;若词元序列中的元素未出现在词典中,则使用<UNK>替换;
步骤2.5:针对Ri经过步骤2.4处理后的词元序列进行one-hot编码,即针对每个词元分别构建一个长度为lv的词元向量;针对任一词元构建的词元向量中,将该词元在词典D中的索引值对应位置的元素设置为1,其余位置的元素设置为0;由所有词元向量组成一个大小lr×lv的矩阵Vi,即该应用层用户请求数据Ri向量化后的结果。
3.根据权利要求书1所述的基于Transformer模型的应用层恶意请求检测方法,其特征在于,所述步骤3中,Pi=ViE,E是大小为lv×lm的嵌入矩阵,其中lm<lv;Vi的大小lr×lv,lr为单条用户请求的最大长度,lv为词典长度,lm为嵌入矩阵的列数。
4.根据权利要求书1所述的基于Transformer模型的应用层恶意请求检测方法,其特征在于,所述步骤3中,嵌入矩阵E中各个元素根据[-1,1]区间内的均匀分布进行随机初始化。
5.根据权利要求书1所述的基于Transformer模型的应用层恶意请求检测方法,其特征在于,所述步骤4中,Ci=Pi+U,U是大小为lr×lm的位置矩阵,矩阵Ci的大小为lr×lm,Pi的大小lr×lm,lr为单条用户请求的最大长度,lm为嵌入矩阵E的列数。
6.根据权利要求书1所述的基于Transformer模型的应用层恶意请求检测方法,其特征在于,所述步骤4中,位置矩阵U中各个元素根据均值为0,方差为σ的正态分布进行随机初始化。
7.根据权利要求书1所述的基于Transformer模型的应用层恶意请求检测方法,其特征在于,所述步骤5中,神经网络模型包括多个串联的Vanilla Transformer模型。
8.根据权利要求书7所述的基于Transformer模型的应用层恶意请求检测方法,其特征在于,每个Vanilla Transformer模型包括一个多头自注意层,两个层规范化层和一个前馈神经网络;每个Vanilla Transformer模型中数据处理过程为:该Vanilla Transformer模型的输入X经过多头自注意层处理,输出Y;将X+Y输入层规范化层进行处理,输出Z;将Z输入前馈神经网络处理,输出F;将Z+F输入第二个层规范化层进行处理,得到T。
9.根据权利要求书1所述的基于Transformer模型的应用层恶意请求检测方法,其特征在于,所述步骤5中,神经网络模型先采用Transformer模型从特征矩阵Ci中提取出应用层用户请求数据的潜在特征,再基于该潜在特征采用Softmax算法预测得到Ri的类别标签向量,类别标签向量维度为2,取值分别为Ri为正常请求和恶意请求的概率。
CN201910629182.1A 2019-07-12 2019-07-12 一种基于Transformer模型的应用层恶意请求检测方法 Active CN110363001B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910629182.1A CN110363001B (zh) 2019-07-12 2019-07-12 一种基于Transformer模型的应用层恶意请求检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910629182.1A CN110363001B (zh) 2019-07-12 2019-07-12 一种基于Transformer模型的应用层恶意请求检测方法

Publications (2)

Publication Number Publication Date
CN110363001A CN110363001A (zh) 2019-10-22
CN110363001B true CN110363001B (zh) 2021-03-30

Family

ID=68219082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910629182.1A Active CN110363001B (zh) 2019-07-12 2019-07-12 一种基于Transformer模型的应用层恶意请求检测方法

Country Status (1)

Country Link
CN (1) CN110363001B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111355671B (zh) * 2019-12-31 2023-07-28 鹏城实验室 基于自注意机制的网络流量分类方法、介质及终端设备
CN111327608B (zh) * 2020-02-14 2021-02-02 中南大学 基于级联深度神经网络的应用层恶意请求检测方法及系统
CN112163222A (zh) * 2020-10-10 2021-01-01 哈尔滨工业大学(深圳) 一种恶意软件检测方法及装置
CN113343235B (zh) * 2021-06-17 2022-05-17 长沙市智为信息技术有限公司 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质
CN113876354B (zh) * 2021-09-30 2023-11-21 深圳信息职业技术学院 胎心率信号的处理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667816A (zh) * 2018-04-19 2018-10-16 重庆邮电大学 一种网络异常的检测定位方法及系统
CN109783827A (zh) * 2019-01-31 2019-05-21 沈阳雅译网络技术有限公司 一种基于动态线性聚合的深层神经机器翻译方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11928600B2 (en) * 2017-10-27 2024-03-12 Salesforce, Inc. Sequence-to-sequence prediction using a neural network model
CN109190131B (zh) * 2018-09-18 2023-04-14 北京工业大学 一种基于神经机器翻译的英语单词及其大小写联合预测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667816A (zh) * 2018-04-19 2018-10-16 重庆邮电大学 一种网络异常的检测定位方法及系统
CN109783827A (zh) * 2019-01-31 2019-05-21 沈阳雅译网络技术有限公司 一种基于动态线性聚合的深层神经机器翻译方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
attention is all you need;Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llio;《computation and language》;20170612;全文 *

Also Published As

Publication number Publication date
CN110363001A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN110363001B (zh) 一种基于Transformer模型的应用层恶意请求检测方法
CN110442707B (zh) 一种基于seq2seq的多标签文本分类方法
US20230031738A1 (en) Taxpayer industry classification method based on label-noise learning
CN110933105B (zh) 一种Web攻击检测方法、系统、介质和设备
CN111327608B (zh) 基于级联深度神经网络的应用层恶意请求检测方法及系统
CN109740655B (zh) 基于矩阵分解及神经协同过滤的物品评分预测方法
CN111460824B (zh) 一种基于对抗迁移学习的无标注命名实体识别方法
CN112101009A (zh) 一种基于知识图谱的红楼梦人物关系框架相似度评判方法
CN116527357A (zh) 一种基于门控Transformer的Web攻击检测方法
CN113628059A (zh) 一种基于多层图注意力网络的关联用户识别方法及装置
CN112651025A (zh) 一种基于字符级嵌入编码的webshell检测方法
CN111709225B (zh) 一种事件因果关系判别方法、装置和计算机可读存储介质
CN114528835A (zh) 基于区间判别的半监督专业术语抽取方法、介质及设备
CN114067286A (zh) 基于序列化可形变注意力机制的高位相机车辆重识别方法
CN115271063A (zh) 基于特征原型投影的类间相似性知识蒸馏方法与模型
CN117332411B (zh) 一种基于Transformer模型的异常登录检测方法
Shi et al. On generating JPEG adversarial images
CN116956289B (zh) 动态调整潜在黑名单和黑名单的方法
CN115438753B (zh) 一种基于生成的衡量联邦学习协议数据安全性的方法
CN113343235B (zh) 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质
Wu et al. Deep learning in automatic fingerprint identification
CN114048749B (zh) 一种适用于多领域的中文命名实体识别方法
CN113901781B (zh) 融合分段编码与仿射机制的相似案例匹配方法
CN115331073A (zh) 一种基于TransUnet架构的影像自监督学习方法
Rui et al. Data Reconstruction based on supervised deep auto-encoder

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