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

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

An application layer malicious request detection method based on transformer model

【技术实现步骤摘要】
一种基于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。进一步地,所述步骤3中,嵌入矩阵E中各个元素根据[-1,1]区间内的均匀分布进行随机初始化。进一步地,所述步骤4中,Ci=Pi+U,U是大小为lr×lm的位置矩阵。进一步地,所述步骤4中,位置矩阵U中各个元素根据均值为0,方差为σ的正态分布进行随机初始化。进一步地,所述步骤5中,神经网络模型包括多个串联的Transformer模型。进一步地,所述步骤5中,Transformer模型采用VanillaTransformer模型。进一步地,每个VanillaTransformer模型包括一个多头自注意层,两个层规范化层和一个前馈神经网络;每个VanillaTransformer模型中数据处理过程为:该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.一种基于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输入优化后的神经网络模型,预测该待检测的应用层用户请求数据的类别标签,从而实现应用层恶意请求检测。...

【技术特征摘要】
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得到的词元序列进行补全、截取以及...

【专利技术属性】
技术研发人员:马小龙赵颖谢逸航曹鸣佩黄惟康占英陈文江
申请(专利权)人:长沙市智为信息技术有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1