基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质技术方案

技术编号:29934611 阅读:18 留言:0更新日期:2021-09-04 19:08
本发明专利技术公开了一种基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质,其方法为:构建应用层用户请求样本集,每个样本包括一条应用层用户请求及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载及其类别;对样本集进行数据预处理得到用户请求及各词元的类别真实标签;使用预处理后的样本集训练预先构建的基于Transformer的深度神经网络模型;使用训练得到的模型对待检测的应用层用户请求中的各词元,预测其恶意有效负载类别;最终合并连续且相同类别的词元,确定用户请求中的恶意有效负载信息。本发明专利技术能够准确有效地对应用层用户请求中的恶意有效负载信息进行检测。有效负载信息进行检测。有效负载信息进行检测。

【技术实现步骤摘要】
基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质


[0001]本专利技术属于计算机信息处理
,涉及到一种基于Transformer的应用层恶意有效负载检测方法及系统。。

技术介绍

[0002]随着移动互联网的快速发展,线上服务成为国民青睐的服务方式,如网上政务、远程问诊、电子商务等网络应用服务使国民生活日益便捷。网络服务蓬勃发展的同时,安全问题不容小觑。自2020年至今,个人隐私、商业机密、知识产权等数据泄露安全事件频发。攻击者通过构造应用层恶意请求对网络应用进行攻击,以获取应用服务器的控制权及其中的用户数据,进而谋取不正当利益。
[0003]恶意有效负载是网络攻击中对受害者造成危害的攻击关键组成部分。网络攻击者常构造诸如SQL注入、XSS攻击、Web Shell等恶意有效负载,将其藏匿于请求报文中形成应用层恶意请求,发送给应用服务器。如果应用服务器未识别出恶意请求,使得恶意有效负载执行,将危害应用服务的可用性及用户数据的安全性。
[0004]目前工业界的网络安全解决方案提供商主要采用安全规则集匹配进行应用层恶意有效负载检测。安全从业人员通过分析历史恶意请求流量的攻击行为,提取各攻击类型的有效负载,进一步构造攻击特征匹配表达式,最终构建形成安全规则集。当应用层用户请求到达后,使用所配置的安全规则集进行特征匹配。若请求中的文本片段匹配上某攻击的规则,则该片段为对应攻击的恶意有效负载。但是,基于安全规则集的应用层恶意有效负载检测,存在攻击规则的构建极度依赖专家知识、维护和更新的工作量大、对于未知类型攻击负载没有检测能力等问题。
[0005]在最新的研究中,安全研究人员将图像目标检测方法应用到恶意有效负载检测领域,初步取得成效。但是,这些方法使用了许多手工制定的组件,如锚点生成器、基于规则的训练目标分配、非极大值抑制后处理,严重依赖于专家经验与知识,致使最终模型不是完全的端到端模型。此外,将图像目标检测方法应用到有效负载检测领域仍存在多种问题。比如,图像数据中每个像素点与邻近像素点的数值相关性强,而请求报文中每个词元与邻近词元的数值差异大。若使用图像目标检测的特征提取方法(多层卷积与池化操作)将丢失大量细节信息,最终导致模型不收敛。
[0006]因此,针对现有方法存在的不足,有必要设计一种端到端的应用层恶意有效负载检测方法,检测能力优秀。

技术实现思路

[0007]本专利技术所解决的技术问题是,针对现有技术的不足,提出一种基于Transformer的应用层恶意有效负载检测方法及系统,模型简单统一,检测能力优秀。
[0008]为实现上述技术目的,本专利技术采用如下技术方案:
[0009]一种基于Transformer的应用层恶意有效负载检测方法,包括以下步骤:
[0010]步骤1、构建应用层用户请求样本集D,其中每个样本d
i
包括一条应用层用户请求x
i
及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载p
ij
及其类别y
ij
;下标i用于区别不同的应用层用户请求,下标j用于区别不同类别的恶意有效负载;
[0011]步骤2、将D中应用层用户请求样本d
i
进行数据预处理,得到由若干词元组成的用户请求及与各词元的类别真实标签下标中的l用于区别不同的词元;
[0012]步骤3、将数据预处理后应用层用户请求样本集中的输入预先构建的基于Transformer的深度神经网络模型M,计算得到各词元的类别预测概率a
il

[0013]步骤4、将各词元的真实类别标签和预测类别概率a
il
代入损失函数L计算模型损失值,根据优化算法更新模型M中的可训练参数;
[0014]步骤5、重复步骤3~步骤4,直到满足模型训练结束条件,得到训练好的模型
[0015]步骤6、对于待检测的应用层用户请求x

,先进行数据预处理得到结果再将输入训练好的模型计算得到各词元的类别预测概率a,进而得到各词元的类别预测结果;
[0016]步骤7、将待检测的应用层用户请求x

中连续的具有相同类别预测结果的词元合并,合并形成的一组或多组片段即为该请求x

的恶意有效负载信息。
[0017]进一步地,所述步骤2中,对应用层用户请求的数据预处理包括以下步骤:
[0018]步骤2.1,对应用层用户请求进行数据清洗,清洗方法为:先对用户请求进行深度包检测得到请求报文;再进行解码、删除错误及重复数据、填充缺失值操作;
[0019]步骤2.2:对清洗后的请求报文进行文本编码,编码方法为:先以字符为单位对请求报文进行分词;依次处理各词元,处理过程为先计算该词元的ASCII值,记该词元的ASCII值为k,再构建总维数为k且第k维值为1、其余维值为0的向量,最后将x
i
中该词元替换为该向量;x
i
的所有词元处理完后,得到预处理后的用户请求
[0020]步骤2.3:对应用层用户请求x
i
的恶意有效负载信息进行标签处理,处理方法为:先创建维数为x
i
总字符长度的零向量再依次处理具体恶意有效负载p
ij
:在x
i
中查找p
ij
获得恶意有效负载p
ij
的起始字符位置s及终止字符位置e,将中第s位到第e位的数值修改为y
ij
;最终得到预处理后各词元的类别真实标签
[0021]进一步地,在将D中应用层用户请求样本d
i
进行数据预处理,得到数据预处理后应用层用户请求样本集之后,先对样本集进行数据采样得到类别平衡的样本集再使用样本集中的用户请求作为步骤3训练模型M的输入数据;所述对样本集进行数据采样包括以下步骤:
[0022]步骤A1:确定样本数量阈值t,进而将样本总量小于t的负载类别判定为少数类,将样本总量大于等于t的负载类别判定为多数类;
[0023]步骤A2:确定各负载类别的目标采样数N;
[0024]步骤A3:对于多数类的负载类别,采用随机欠采样方法进行数据采样,每个多数类的负载类别均保留N个样本;
[0025]步骤A4:对于少数类的负载类别,采用基于生成规则的过采样方法进行数据采样,
每个少数类的负载类别均包括N个样本。
[0026]进一步地,所述采用基于生成规则的过采样方法进行数据采样的方法具体包括:
[0027]步骤A4.1:构建该少数类的负载集合S,其中每个元素为具体恶意有效负载;
[0028]步骤A4.2:设定词元替换概率数组p,其中每个元素为词元被替换的概率p
i

[0029]步骤A4.3:构建待选词元集合G,其包含大小写字符、数字及标点符号;
[0030]步骤A4.4:计算本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Transformer的应用层恶意有效负载检测方法,其特征在于,包括以下步骤:步骤1、构建应用层用户请求样本集D,其中每个样本d
i
包括一条应用层用户请求x
i
及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载p
ij
及其类别y
ij
;下标i用于区别不同的应用层用户请求,下标j用于区别不同类别的恶意有效负载;步骤2、将D中应用层用户请求样本d
i
进行数据预处理,得到由若干词元组成的用户请求及与各词元的类别真实标签下标中的l用于区别不同的词元;步骤3、将数据预处理后应用层用户请求样本集中的输入预先构建的基于Transformer的深度神经网络模型M,计算得到各词元的类别预测概率a
il
;步骤4、将各词元的真实类别标签和预测类别概率a
il
代入损失函数L计算模型损失值,根据优化算法更新模型M中的可训练参数;步骤5、重复步骤3~步骤4,直到满足模型训练结束条件,得到训练好的模型步骤6、对于待检测的应用层用户请求x

,先进行数据预处理得到结果再将输入训练好的模型计算得到各词元的类别预测概率a,进而得到各词元的类别预测结果;步骤7、将待检测的应用层用户请求x

中连续的具有相同类别预测结果的词元合并,合并形成的一组或多组片段即为该请求x

的恶意有效负载信息。2.根据权利要求1所述的基于Transformer的应用层恶意有效负载检测方法,其特征在于,所述步骤2中,对应用层用户请求的数据预处理包括以下步骤:步骤2.1,对应用层用户请求进行数据清洗,清洗方法为:先对用户请求进行深度包检测得到请求报文;再进行解码、删除错误及重复数据、填充缺失值操作;步骤2.2:对清洗后的请求报文进行文本编码,编码方法为:先以字符为单位对请求报文进行分词;依次处理各词元,处理过程为先计算该词元的ASCII值,记该词元的ASCII值为k,再构建总维数为K且第k维值为1、其余维值为0的向量,最后将x
i
中该词元替换为该向量;x
i
的所有词元处理完后,得到预处理后的用户请求步骤2.3:对应用层用户请求x
i
的恶意有效负载信息进行标签处理,处理方法为:先创建维数为x
i
总字符长度的零向量再依次处理具体恶意有效负载p
ij
:在x
i
中查找p
ij
获得恶意有效负载p
ij
的起始字符位置s及终止字符位置e,将中第s位到第e位的数值修改为y
ij
;最终得到预处理后各词元的类别真实标签3.根据权利要求1所述的基于Transformer的应用层恶意有效负载检测方法,其特征在于,在将D中应用层用户请求样本d
i
进行数据预处理,得到数据预处理后应用层用户请求样本集之后,先对样本集进行数据采样得到类别平衡的样本集再使用样本集中的用户请求作为步骤3训练模型M的输入数据;所述对样本集进行数据采样包括以下步骤:步骤A1:确定样本数量阈值t,进而将样本总量小于t的负载类别判定为少数类,将样本总量大于等于t的负载类别判定为多数类;步骤A2:确定各负载类别的目标采样数N;步骤A3:对于多数类的负载类别,采用随机欠采样方法进行数据采样,每个多数类的负载类别均保留N个样本;
步骤A4:对于少数类的负载类别,采用基于生成规则的过采样方法进行数据采样,每个少数类的负载类别均包括N个样本。4.根据权利要求3所述的基于Transformer的应用层恶意有效负载检测方法,其特征在于,所述采用基于生成规则的过采样方法进行数据采样的方法具体包括:步骤A4.1:构建该少数类的负载集合S,其中每个元素为具体恶意有效负载;步骤A4.2:设定词元替换概率数组P,其中每个元素为词元被替换的概率p
i
;步骤A4.3:构建待选词元集合G,其包含大小写字符、数字及标点符号;步骤A4.4:计算P中每个元素需生成的样本数n,n=N/len(P);步骤A4.5:选取遍历P中元素p
i
,从S中随机选取负载s;对于s中的每个字符,以概率p
i
替换为G中随机选取的字符,形成新负载s

;计算s

各字符的ASCII值记为k

,构建维数为128且第k

值维为1、其余维为0的向量,替换s对应的预处理后的用户请求中的负载s各词元向量,类别真实标签保持不变,进而生成新样本;直至元素p
i
生成的样本数达到n;步骤A4.6:重复步骤A4.5,直至遍历完词元替换概率数组P中元素。5.根据权利要求1所述的基于Transformer的应用层恶意有效负载检测方法,其特征在于,所述基于Transformer的深度神经网络模型M依次包含词元嵌入层、位置编码层、k个Transformer编码器块、全连接层及Softmax层,每个Transformer编码器块均依次包括受限多头自注意层、层归一化层、全连接层、层归一化层。6.根据权利要求5所述的基于Transformer的应用层恶意有效负载检测方法,其特征在于,步骤3中,深度神经网络模型M计算各词元的类别预测概率a
il
包括以下步骤:步骤3.1,使用词元嵌入层对进行词元嵌入,降低维度,得到大小为(L,d)的矩阵O
i
;其中,L为的词元总数,d为嵌入维度;步骤3.2,使用位置编码...

【专利技术属性】
技术研发人员:黄惟康占英马小龙王菡赵颖王心远胡坤霖
申请(专利权)人:长沙市智为信息技术有限公司
类型:发明
国别省市:

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

1