CN113343235A - 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 - Google Patents
基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN113343235A CN113343235A CN202110670903.0A CN202110670903A CN113343235A CN 113343235 A CN113343235 A CN 113343235A CN 202110670903 A CN202110670903 A CN 202110670903A CN 113343235 A CN113343235 A CN 113343235A
- Authority
- CN
- China
- Prior art keywords
- application layer
- malicious
- user request
- matrix
- category
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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
-
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Virology (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质,其方法为:构建应用层用户请求样本集,每个样本包括一条应用层用户请求及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载及其类别;对样本集进行数据预处理得到用户请求及各词元的类别真实标签;使用预处理后的样本集训练预先构建的基于Transformer的深度神经网络模型;使用训练得到的模型对待检测的应用层用户请求中的各词元,预测其恶意有效负载类别;最终合并连续且相同类别的词元,确定用户请求中的恶意有效负载信息。本发明能够准确有效地对应用层用户请求中的恶意有效负载信息进行检测。
Description
技术领域
本发明属于计算机信息处理技术领域,涉及到一种基于Transformer的应用层恶意有效负载检测方法及系统。。
背景技术
随着移动互联网的快速发展,线上服务成为国民青睐的服务方式,如网上政务、远程问诊、电子商务等网络应用服务使国民生活日益便捷。网络服务蓬勃发展的同时,安全问题不容小觑。自2020年至今,个人隐私、商业机密、知识产权等数据泄露安全事件频发。攻击者通过构造应用层恶意请求对网络应用进行攻击,以获取应用服务器的控制权及其中的用户数据,进而谋取不正当利益。
恶意有效负载是网络攻击中对受害者造成危害的攻击关键组成部分。网络攻击者常构造诸如SQL注入、XSS攻击、Web Shell等恶意有效负载,将其藏匿于请求报文中形成应用层恶意请求,发送给应用服务器。如果应用服务器未识别出恶意请求,使得恶意有效负载执行,将危害应用服务的可用性及用户数据的安全性。
目前工业界的网络安全解决方案提供商主要采用安全规则集匹配进行应用层恶意有效负载检测。安全从业人员通过分析历史恶意请求流量的攻击行为,提取各攻击类型的有效负载,进一步构造攻击特征匹配表达式,最终构建形成安全规则集。当应用层用户请求到达后,使用所配置的安全规则集进行特征匹配。若请求中的文本片段匹配上某攻击的规则,则该片段为对应攻击的恶意有效负载。但是,基于安全规则集的应用层恶意有效负载检测,存在攻击规则的构建极度依赖专家知识、维护和更新的工作量大、对于未知类型攻击负载没有检测能力等问题。
在最新的研究中,安全研究人员将图像目标检测方法应用到恶意有效负载检测领域,初步取得成效。但是,这些方法使用了许多手工制定的组件,如锚点生成器、基于规则的训练目标分配、非极大值抑制后处理,严重依赖于专家经验与知识,致使最终模型不是完全的端到端模型。此外,将图像目标检测方法应用到有效负载检测领域仍存在多种问题。比如,图像数据中每个像素点与邻近像素点的数值相关性强,而请求报文中每个词元与邻近词元的数值差异大。若使用图像目标检测的特征提取方法(多层卷积与池化操作)将丢失大量细节信息,最终导致模型不收敛。
因此,针对现有方法存在的不足,有必要设计一种端到端的应用层恶意有效负载检测方法,检测能力优秀。
发明内容
本发明所解决的技术问题是,针对现有技术的不足,提出一种基于Transformer的应用层恶意有效负载检测方法及系统,模型简单统一,检测能力优秀。
为实现上述技术目的,本发明采用如下技术方案:
一种基于Transformer的应用层恶意有效负载检测方法,包括以下步骤:
步骤1、构建应用层用户请求样本集D,其中每个样本di包括一条应用层用户请求xi及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载pij及其类别yij;下标i用于区别不同的应用层用户请求,下标j用于区别不同类别的恶意有效负载;
步骤7、将待检测的应用层用户请求x′中连续的具有相同类别预测结果的词元合并,合并形成的一组或多组片段即为该请求x′的恶意有效负载信息。
进一步地,所述步骤2中,对应用层用户请求的数据预处理包括以下步骤:
步骤2.1,对应用层用户请求进行数据清洗,清洗方法为:先对用户请求进行深度包检测得到请求报文;再进行解码、删除错误及重复数据、填充缺失值操作;
步骤2.2:对清洗后的请求报文进行文本编码,编码方法为:先以字符为单位对请求报文进行分词;依次处理各词元,处理过程为先计算该词元的ASCII值,记该词元的ASCII值为k,再构建总维数为k且第k维值为1、其余维值为0的向量,最后将xi中该词元替换为该向量;xi的所有词元处理完后,得到预处理后的用户请求
步骤2.3:对应用层用户请求xi的恶意有效负载信息进行标签处理,处理方法为:先创建维数为xi总字符长度的零向量再依次处理具体恶意有效负载pij:在xi中查找pij获得恶意有效负载pij的起始字符位置s及终止字符位置e,将中第s位到第e位的数值修改为yij;最终得到预处理后各词元的类别真实标签
进一步地,在将D中应用层用户请求样本di进行数据预处理,得到数据预处理后应用层用户请求样本集之后,先对样本集进行数据采样得到类别平衡的样本集再使用样本集中的用户请求作为步骤3训练模型M的输入数据;所述对样本集进行数据采样包括以下步骤:
步骤A1:确定样本数量阈值t,进而将样本总量小于t的负载类别判定为少数类,将样本总量大于等于t的负载类别判定为多数类;
步骤A2:确定各负载类别的目标采样数N;
步骤A3:对于多数类的负载类别,采用随机欠采样方法进行数据采样,每个多数类的负载类别均保留N个样本;
步骤A4:对于少数类的负载类别,采用基于生成规则的过采样方法进行数据采样,每个少数类的负载类别均包括N个样本。
进一步地,所述采用基于生成规则的过采样方法进行数据采样的方法具体包括:
步骤A4.1:构建该少数类的负载集合S,其中每个元素为具体恶意有效负载;
步骤A4.2:设定词元替换概率数组p,其中每个元素为词元被替换的概率pi;
步骤A4.3:构建待选词元集合G,其包含大小写字符、数字及标点符号;
步骤A4.4:计算p中每个元素需生成的样本数n,n=N/len(p);
步骤A4.5:选取遍历p中元素pi,从s中随机选取负载s;对于s中的每个字符,以概率pi替换为G中随机选取的字符,形成新负载s′;计算s′各字符的ASCII值记为k’,构建维数为128且第k′值维为1、其余维为0的向量,替换s对应的预处理后的用户请求中的负载s各词元向量,类别真实标签保持不变,进而生成新样本;直至元素pi生成的样本数达到n;
步骤A4.6:重复步骤A4.5,直至遍历完词元替换概率数组p中元素。
进一步地,所述基于Transformer的深度神经网络模型M依次包含词元嵌入层、位置编码层、k个Transformer编码器块、全连接层及Softmax层,每个Transformer编码器块均依次包括受限多头自注意层、层归一化层、全连接层、层归一化层。
步骤3.2,使用位置编码层对Oi进行位置信息编码,得到大小为(L,d)的矩阵Pi;
步骤3.3,使用k个串联的Transformer编码器块对Pi进行特征提取,得到大小为(L,d)的矩阵Y′;其中,单个Transformer编码器块中的受限多头自注意层的计算过程为:
MultiHeadAttn(Q,K,V)=Concat(head1,...,headh,...,headH)WO
其中,MultiHeadAttn(Q,K,V)是受限多头自注意层的计算结果,为大小为(L,d)的矩阵,作为下一层归一化层的输入;Q,K,V为多头自注意层的输入参数Query,Key,Value,Q=K=V且均为其Transformer块的输入,第1个Transformer块的输入是矩阵Pi,后续Transformer块的输入是前一个Transformer块的输出,矩阵大小都为(L,d);Concat(·)将多个单头自注意结果拼接成大小为(L,d)的矩阵;WO为大小为(d,d)的权重矩阵;headh表示第h个头的注意力结果;H表示头的总数;代表headh计算过程中的权重矩阵,大小为(d,d/H);Q′为原始的查询矩阵,代表第h个头的Query矩阵,大小为(L,d/H);l′表示计算单个词元受限注意力值时,所需要的周围词元的长度,l′为自定义值,l′<L;K′l′ T代表第h个头的Key矩阵(即)中以当前计算词元为中心、长度为l′的子矩阵的转置,大小为(d/H,l′);Vl,代表第h个头的Value矩阵(即)中以当前计算词元为中心,长度为l′的子矩阵,大小为(l′,d/H);
步骤3.4,使用全连接层提取矩阵Y′的泛化特征:Y″=ReLU(y′W″′+b″′);其中,ReLU(·)为ReLU激活函数;y′为Y′的单个词元向量,大小为(1,d);W″′为权重矩阵,大小为(d,C+1),C为恶意有效负载总类别数,1代表正常负载类别,C+1即为总类别数;对Y′中各词元向量进行逐位置全连接后,得到大小为(L,C+1)的输出矩阵Y″;
步骤3.5,使用Softmax操作计算各词元为C+1个类别的概率,最终得到应用层用户请求xi对应的各词元类别概率矩阵ai;其中,ai为大小为(L,C+1)的矩阵。
进一步地,训练模型M的损失函数Loss为:
式中,N代表训练批次的样本数量;L代表输入单条应用层用户请求的总字符长度;C代表恶意有效负载类别总数;为指示函数,当时,函数输出为1,否则为0;代表第i个用户请求第l个词元的真实类别;ailj代表第i个用户请求第l个词元为j类别的预测概率;j=0代表正常负载类别。
一种基于Transformer的应用层恶意有效负载检测系统,包括:
样本集构建模块,用于:构建应用层用户请求样本集D,其中每个样本di包括一条应用层用户请求xi及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载pik及其类别yij;下标i用于区别不同的应用层用户请求,下标j用于区别不同类别的恶意有效负载;
检测模型训练模块,用于:将数据预处理后应用层用户请求样本集中的输入预先构建的基于Transformer的深度神经网络模型M,计算得到各词元的类别预测概率ail;并将各词元的真实类别标签和预测类别概率ail代入损失函数Loss计算模型损失值,根据优化算法更新模型M中的可训练参数;
检测模块,用于:对于待检测的应用层用户请求x′,先进行数据预处理得到结果再将输入训练好的模型计算得到各词元的类别预测概率a,进而得到各词元的类别预测结果;并将待检测的应用层用户请求x′中连续的具有相同类别预测结果的词元合并,合并形成的一组或多组片段即为该请求x′的恶意有效负载信息。
一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现上述任一项所述的方法。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
有益效果:本发明提供一种基于Transformer的应用层恶意有效负载检测方法及系统,为应用层恶意有效负载检测提供较为完整的解决方案,可应用于网络安全领域。该方法着眼于应用层恶意有效负载检测场景,针对现有方法存在许多手工制定组件、现有的图像目标检测方法不能直接迁移到文本有效负载检测场景的问题,利用恶意攻击负载往往不存在重叠的特点,将负载检测问题转化为词元多分类问题,进而提出了一种基于Transformer的应用层恶意有效负载检测方法,用于应用层恶意有效负载检测与模式挖掘。该方法首先将应用层用户请求及其恶意有效负载信息通过数据预处理转化为计算机可处理的数值形式;其次对于训练数据集中的多数类样本进行欠采样、少数类样本进行过采样;接着根据应用层恶意有效负载检测的数据特征与模型目标,构建基于Transformer的度神经网络模型;然后构建损失函数,使用训练数据集并结合优化算法优化模型参数;最终即可使用参数优化后的模型对待检测的应用层用户请求x′中的恶意有效负载信息进行检测提取。本发明将恶意有效负载检测问题转化为词元多分类问题,利用基于受限多头自注意的Transformer编码器作为特征提取器,构建端到端的负载检测模型,具有收敛快、负载检测准确、简单且统一的优点。
附图说明
图1是本发明实施例中基于Transformer的应用层恶意有效负载检测的流程示意图;
图2是本发明实施例中带有恶意有效负载信息的应用层用户请求的JSON形式实例。
具体实施方式
为使本发明的目的、设计思路及优点更加清楚,以下结合应用层恶意有效负载检测的具体实施例,并参照附图,对本发明做进一步详细说明。
实施例1:
如附图1所示,本实施例公开了一种基于Transformer的应用层恶意有效负载检测方法,其实施应用层恶意有效负载检测包含2个阶段,分别是构建阶段和检测阶段。构建阶段首先对带有恶意有效负载信息的应用层用户请求进行数据预处理,再构建并训练基于Transformer的应用层恶意有效负载检测模型;检测阶段首先对待检测的应用层用户请求进行数据预处理,再使用训练好的模型进行恶意有效负载检测。下面,将对上述2个阶段进行详细说明:
一、构建阶段
1、数据获取与标记
通过企业合作、实验模拟等方式获取应用层用户请求数据,并使用人工打标或其他方式对用户请求中的恶意有效负载信息进行标记,构建应用层用户请求样本集D,其中每个样本di包括一条应用层用户请求xi及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载pij及其类别yij。附图2为包含一组RFI恶意有效负载的应用层用户请求数据样本实例,其中request表示应用层用户请求xi;payloads包含恶意有效负载信息,payload表示具体恶意有效负载pij,label表示恶意有效负载类别yij。
2、数据预处理
应用层用户请求存在数据编码、重复、缺失等问题;应用层用户请求为文本形式,不能被计算机直接处理。此外,将恶意有效负载检测问题转化为词元多分类问题,因此需要将应用层用户请求的恶意有效负载信息转化为应用层用户请求中各词元的类别标签。因此,本实施例对应用层用户请求xi及其恶意有效负载信息进行数据预处理,主要包括数据清洗、文本编码和标签处理3个过程。
2.1数据清洗
应用层用户请求数据清洗过程主要包括解析和清洗两个部分。首先对用户请求进行深度包检测,解析得到请求报文信息,其中请求报文包含请求行、请求头、请求体三部分;其次,请求行中查询字符串存在URL编码、请求体数据存在Base64编码;应用层用户请求数据集中存在大量错误或重复数据、字段缺失数据,因此需要对其进行解码、删除错误及重复数据、填充缺失值操作。
2.2文本编码
应用层用户请求为半结构化文本形式,需要转化为能被计算机处理的数值形式。应用层用户请求数据文本编码过程主要包括分词和编码两个部分。首先,以字符为单位对请求报文进行分词;依次处理各词元,处理过程为先计算该词元的ASCII值,再构建维数为128且第ASCII值维为1、其余维为0的向量,最后将xi中该词元替换为该向量;xi的所有词元处理完后,得到预处理后的用户请求其中,128对应ASCII码包含的总字符数。
2.3标签处理
本实施例将恶意有效负载检测问题转化为词元多分类问题,因此需要将应用层用户请求的恶意有效负载信息转化为应用层用户请求中各词元的类别标签。值得注意的是,虽然一个应用层用户请求可能多组具体恶意有效负载pij及其类别yij,但是多组负载pij不存在重叠的情况,即应用层用户请求中各词元只属于一种恶意有效负载类别或者为正常负载类别。如果某词元对应类别标签为0,表示该词元为正常负载类别。
标签处理方法为:先创建维数为应用层用户请求xi总字符长度的零向量再依次处理具体恶意有效负载pij:在xi中查找pij获得负载起始字符位置s及终止字符位置e,将中第s位到第e位数值修改为yij;最终得到预处理后各词元的类别真实标签
3.构建训练集及测试集
本实施例中将数据预处理后应用层用户请求样本集按照样本比例p划分为训练集和测试集对于后续的基于Transformer的应用层恶意有效负载检测模型,使用训练集优化模型参数,使用测试集评估模型检测性能。需要说明的是,本发明只需要其中的训练集即可实现完整技术方案,本实施例取其中部分样本构建测试集仅用于对训练得到的模型评估其性能。此外,训练集中不同恶意有效负载类别的样本往往存在严重的数据不平衡现象。表1展示了实施例所使用的应用层用户请求样本集,其中WebShell负载的样本数量是扫描器负载的150倍。这会导致检测模型偏向于学习多数类的特征,而忽略了少数类特征。因此,本实施例为保证最终训练集数据平衡,需要对多数类欠采样,对少数类过采样。
表1某政府门户网站2020年12月应用层恶意请求及其负载信息的统计表
3.1数据集划分
3.2数据采样
步骤3.1:确定样本数量阈值t,进而将样本总量小于t的负载类别判定为少数类,将样本总量大于等于t的负载类别判定为多数类;本实施例中t=40,000;
步骤3.2:确定各负载类别的目标采样数N;本实施例中N=40,000;
步骤3.3:对于多数类的负载类别,采用随机欠采样方法,各负载类别保留N个样本;
步骤3.4:对于少数类的负载类别,采用基于生成规则的过采样,过采样方法为:
步骤3.4.1:构建该少数类的负载集合s,其中每个元素为具体恶意有效负载;
步骤3.4.2:设定词元替换概率数组p,其中每个元素为词元被替换的概率pi;本实施例中p=[0,0.05,0.10,0.20];
步骤3.4.3:构建待选词元集合G,其包含大小写字符、数字及标点符号;
步骤3.4.4:计算p中每个元素需生成的样本数n,n=N/len(P);
步骤3.4.5:选取遍历P中元素pi,从S中随机选取负载s;对于s中的每个字符,以概率pi替换为G中随机选取的字符,形成新负载s′;计算s′各字符的ASCII值,构建维数为128且第ASCII值维为1、其余维为0的向量,替换s对应的预处理后的用户请求中的负载s各词元向量,类别真实标签保持不行,进而生成新样本;直至元素pi生成的样本数达到n;
4、模型构建
Transformer模型是一种完全基于注意力机制的模型,它完全摒弃了循环和卷积结构,能够并行跨距离地学习输入数据的全局特征,是目前自然语言处理领域最主流的特征提取器。因此,本发明利用Transformer构建深度神经网络模型进行恶意有效负载检测。
Transformer模型是编码器—解码器结构的,用于提取输入与输出特征向量的全局特征关系。模型的编码器、解码器以及整个编码器—解码器结构都可以作为特征提取块,比如BERT模型使用双向Transformer编码器构建模型主体,以遮蔽语言模型(Masked LM)和后继句子预测为目标,训练语言模型,充分提取大规模语料数据中潜在的语言关系,在下游的机器问答、语言推理等任务中表现出色;GPT模型使用Transformer解码器构建模型主体,使用语料无监督地训练生成式语言模型,在下游的语义相似性评估、文档分类等任务中微调模型,取得显著效果。大量研究工作表明,Transformer中编码器更利于并行地提取输入文本特征向量中单个词元与全局的特征关系,解码器通过依次遮蔽输入文本中当前词元的后续所有内容,提取未遮蔽文本的全局关系。针对恶意有效负载检测场景,输入的是完整的恶意请求流量,采用编码器结构能直接并行地提取有效负载中词元的相互关系,采用解码器结构则会错误地建立流量中有效负载与未遮蔽词元之间的相互关系而学习到噪声信息,因此使用Transformer编码器块作为特征提取块的基本结构。
基于Transformer的深度神经网络模型M依次包含词元嵌入层、位置编码层、k个Transformer编码器块、全连接层及Softmax层。Transformer编码器块依次包含多头自注意层、层归一化层、全连接层及层归一化层;其中多头自注意层采用受限多头自注意层。原始的Transformer编码器块中使用的是全连接多头自注意机制,它会将输入流量中单个词元与所有的全部词元作相关操作。假设输入请求的长度为L,单个词元的向量维数为d,多头数为h,则单次全连接多头自注意的计算复杂度为O(2Ld2+L2d)。在恶意有效负载检测场景中,绝大多数的攻击负载长度并没有接近整个请求长度。在本实施例统计中,真实情况下攻击负载长度的中位数是23个字符,其与整个请求长度(L=1000)相距甚远,因此,本发明使用受限多头自注意层代替全连接多头自注意层,以减少不必要的关联计算。受限多头自注意层指对于当前词元仅关注周围一部分的关键词元以计算注意力值,而与整个输入文本的长度无关。通过为每个查询分配少量固定的键,可以有效减少不必要的计算,进而缓解Transformer编码器收敛慢的问题。
步骤4.1:使用词元嵌入层对进行词元嵌入,降低维度。首先,使用[-1,1]的均匀分布随机初始化大小为(128,d)的嵌入矩阵U,其中d<128,本实施例中d=64;接着,将与U进行矩阵乘法,得到词元嵌入后大小为(L,d)的矩阵Oi;
步骤4.2:使用位置编码层对Oi进行位置信息编码。首先,使用标准正态分布随机初始化大小为(L,d)的位置矩阵V;接着,将Oi与V进行矩阵加法,得到位置编码后大小为(L,d)的矩阵Pi;
步骤4.3:使用k个串联的Transformer编码器块对Pi进行特征提取,本实施例中k=6。如附图1中检测模型的Transformer编码器块所示,每个Transformer编码器块依次包括受限多头自注意层、层归一化层、全连接层、层归一化层4部分。单个Transformer编码器块的具体计算如下:
1)受限多头自注意层的计算过程为:
MultiHeadAttn(Q,K,V)=Concat(head1,...,headh,...,headH)WO
其中,MultiHeadAttn(Q,K,V)是受限多头自注意层的计算结果,为大小为(L,d)的矩阵;Q、K、V为多头自注意层的输入参数Query、Key、Value,Q=K=V且均为其Transformer块的输入,第1个Transformer块的输入是矩阵Pi,后续Transformer块的输入是前一个Transformer块的输入的输出,矩阵大小都为(L,d);Concat(·)将多个单头自注意结果拼接成大小为(L,d)的矩阵;WO为大小为(d,d)的权重矩阵;headh表示第h个头的注意力结果;H表示头的总数;代表headh计算过程中的权重矩阵,大小为(d,d/H);Q′为原始的查询矩阵,代表第h个头的Query矩阵,大小为(L,d/H);l′表示计算单个词元受限注意力值时,所需要的周围词元的长度,l′为自定义值,l′<L;K′l′ T代表第h个头的Key矩阵(即)中以当前计算词元为中心、长度为l′的子矩阵的转置,大小为(d/H,l′);Vl′代表第h个头的Value矩阵(即)中以当前计算词元为中心,长度为l′的子矩阵,大小为(l′,d/H)。因此,headh的计算结果为大小为(L,d/H)的矩阵,MultiHeadAttn(Q,K,V)的计算结果为大小为(L,d)的矩阵。受限多头自注意层的计算复杂度为O(2Ld2+min(L2d,Ll′d))。当l′=L时,退化为全连接多头自注意层。一般情况下,要求设定l′<L。在本实施例中,l′=25,可有效减少模型的计算复杂度。
2)层归一化层的计算过程为:S=LayerNormalization(X+R)。其中,X为Transformer块的输入;R为Transformer块的输出,R=MultiHeadAttn(Q,K,V);LayerNormalization(·)为层归一化函数;输出结果S为大小为(L,d)的矩阵。
3)逐位置全连接层的计算过程为:T=ReLU(sW′+b′)W″+b″。其中,ReLU(·)为ReLU激活函数;s为S的单个词元向量,大小为(1,d);W′、W″为权重矩阵,大小为(d,d);b′、b″为偏置;对S中各词元向量进行逐位置全连接后,得到大小为(L,d)的输出矩阵T。
4)层归一化层的计算公式为:Y=LayerNormalization(S+T)。其中,LayerNormalization(·)为层归一化函数;输出结果Y为大小为(L,d)的矩阵。
最终,位置编码后的矩阵Pi经过k各Transformer编码块计算得到大小为(L,d)的矩阵Y′。
步骤4.4:使用逐位置全连接层进一步提取Y′的泛化特征,Y″=ReLU(y′W″′+b″′)。其中,ReLU(·)为ReLU激活函数;y′为Y′的单个词元向量,大小为(1,d);W″′为权重矩阵,大小为(d,C+1),C为恶意有效负载总类别数,1代表正常负载类别,C+1即为总类别数;对Y′中各词元向量进行逐位置全连接后,得到大小为(L,C+1)的输出矩阵Y″。
步骤4.5:使用Softmax操作计算各词元为C+1个类别的概率,最终得到应用层用户请求xi对应的各词元类别概率矩阵ai。其中,ai为大小为(L,C+1)的矩阵。
5、模型训练与评估
步骤5.1:构建模型M的损失函数Loss。L的计算公式为
式中N代表训练批次的样本数量;L代表输入单条应用层用户请求的总字符长度;C代表恶意有效负载类别总数;为指示函数,当时,函数输出为1,否则为0;代表第i个用户请求第l个字符的真实类别;ailj代表第i个用户请求第l个字符为j类别的预测概率;j=0代表正常负载类别。
步骤5.2:使用Adam算法作为模型M的优化算法。
步骤5.3:设置模型训练结束条件;在本实施例中,模型训练结束条件为模型损失值在连续10轮训练过程中没有明显变化则停止训练。
二、检测阶段
对于待检测的应用层用户请求x′,先进行数据预处理得到结果再将输入训练好的模型计算得到各词元的类别预测概率a,进而得到各词元的类别预测结果;再将待检测的应用层用户请求x′中连续的具有相同类别预测结果的词元合并,合并形成的一组或多组片段即为该请求x′的恶意有效负载信息。
实施例2:
本实施例公开一种基于Transformer的应用层恶意有效负载检测系统,包括:
样本集构建模块,用于:构建应用层用户请求样本集D,其中每个样本di包括一条应用层用户请求xi及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载pij及其类别yij;下标i用于区别不同的应用层用户请求,下标j用于区别不同类别的恶意有效负载;
检测模型训练模块,用于:将数据预处理后应用层用户请求样本集中的输入预先构建的基于Transformer的深度神经网络模型M,计算得到各词元的类别预测概率ail;并将各词元的真实类别标签和预测类别概率ail代入损失函数L计算模型损失值,根据优化算法更新模型M中的可训练参数;
检测模块,用于:对于待检测的应用层用户请求x′,先进行数据预处理得到结果再将输入训练好的模型计算得到各词元的类别预测概率a,进而得到各词元的类别预测结果;并将待检测的应用层用户请求x′中连续的具有相同类别预测结果的词元合并,合并形成的一组或多组片段即为该请求x′的恶意有效负载信息。
所述系统中各个模块实现相应功能的具体方式参见实施例1。
实施例3:
本实施例公开一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现实施例1所述的方法。
实施例4:
本实施例公开一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如实施例1所述的方法。
以上实施例为本申请的优选实施例,本领域的普通技术人员还可以在此基础上进行各种变换或改进,在不脱离本申请总的构思的前提下,这些变换或改进都应当属于本申请要求保护的范围之内。
Claims (10)
1.一种基于Transformer的应用层恶意有效负载检测方法,其特征在于,包括以下步骤:
步骤1、构建应用层用户请求样本集D,其中每个样本di包括一条应用层用户请求xi及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载pij及其类别yij;下标i用于区别不同的应用层用户请求,下标j用于区别不同类别的恶意有效负载;
步骤7、将待检测的应用层用户请求x′中连续的具有相同类别预测结果的词元合并,合并形成的一组或多组片段即为该请求x′的恶意有效负载信息。
2.根据权利要求1所述的基于Transformer的应用层恶意有效负载检测方法,其特征在于,所述步骤2中,对应用层用户请求的数据预处理包括以下步骤:
步骤2.1,对应用层用户请求进行数据清洗,清洗方法为:先对用户请求进行深度包检测得到请求报文;再进行解码、删除错误及重复数据、填充缺失值操作;
步骤2.2:对清洗后的请求报文进行文本编码,编码方法为:先以字符为单位对请求报文进行分词;依次处理各词元,处理过程为先计算该词元的ASCII值,记该词元的ASCII值为k,再构建总维数为K且第k维值为1、其余维值为0的向量,最后将xi中该词元替换为该向量;xi的所有词元处理完后,得到预处理后的用户请求
3.根据权利要求1所述的基于Transformer的应用层恶意有效负载检测方法,其特征在于,在将D中应用层用户请求样本di进行数据预处理,得到数据预处理后应用层用户请求样本集之后,先对样本集进行数据采样得到类别平衡的样本集再使用样本集中的用户请求作为步骤3训练模型M的输入数据;所述对样本集进行数据采样包括以下步骤:
步骤A1:确定样本数量阈值t,进而将样本总量小于t的负载类别判定为少数类,将样本总量大于等于t的负载类别判定为多数类;
步骤A2:确定各负载类别的目标采样数N;
步骤A3:对于多数类的负载类别,采用随机欠采样方法进行数据采样,每个多数类的负载类别均保留N个样本;
步骤A4:对于少数类的负载类别,采用基于生成规则的过采样方法进行数据采样,每个少数类的负载类别均包括N个样本。
4.根据权利要求3所述的基于Transformer的应用层恶意有效负载检测方法,其特征在于,所述采用基于生成规则的过采样方法进行数据采样的方法具体包括:
步骤A4.1:构建该少数类的负载集合S,其中每个元素为具体恶意有效负载;
步骤A4.2:设定词元替换概率数组P,其中每个元素为词元被替换的概率pi;
步骤A4.3:构建待选词元集合G,其包含大小写字符、数字及标点符号;
步骤A4.4:计算P中每个元素需生成的样本数n,n=N/len(P);
步骤A4.5:选取遍历P中元素pi,从S中随机选取负载s;对于s中的每个字符,以概率pi替换为G中随机选取的字符,形成新负载s′;计算s′各字符的ASCII值记为k’,构建维数为128且第k′值维为1、其余维为0的向量,替换s对应的预处理后的用户请求中的负载s各词元向量,类别真实标签保持不变,进而生成新样本;直至元素pi生成的样本数达到n;
步骤A4.6:重复步骤A4.5,直至遍历完词元替换概率数组P中元素。
5.根据权利要求1所述的基于Transformer的应用层恶意有效负载检测方法,其特征在于,所述基于Transformer的深度神经网络模型M依次包含词元嵌入层、位置编码层、k个Transformer编码器块、全连接层及Softmax层,每个Transformer编码器块均依次包括受限多头自注意层、层归一化层、全连接层、层归一化层。
步骤3.2,使用位置编码层对Oi进行位置信息编码,得到大小为(L,d)的矩阵Pi;
步骤3.3,使用k个串联的Transformer编码器块对Pi进行特征提取,得到大小为(L,d)的矩阵Y′;其中,单个Transformer编码器块中的受限多头自注意层的计算过程为:
MultiHeadAttn(Q,K,V)=Concat(head1,...,headh,...,headH)WO
其中,MultiHeadAttn(Q,K,V)是受限多头自注意层的计算结果,为大小为(L,d)的矩阵,作为下一层归一化层的输入;Q,K,V为多头自注意层的输入参数Query,Key,Value,Q=K=V且均为其Transformer块的输入,第1个Transformer块的输入是矩阵Pi,后续Transformer块的输入是前一个Transformer块的输出,矩阵大小都为(L,d);Concat(·)将多个单头自注意结果拼接成大小为(L,d)的矩阵;WO为大小为(d,d)的权重矩阵;headh表示第h个头的注意力结果;H表示头的总数;代表headh计算过程中的权重矩阵,大小为(d,d/H);Q′为原始的查询矩阵,代表第h个头的Query矩阵,大小为(L,d/H);l′表示计算单个词元受限注意力值时,所需要的周围词元的长度,l′为自定义值,l′<L;K′l′ T代表第h个头的Key矩阵(即)中以当前计算词元为中心、长度为l′的子矩阵的转置,大小为(d/H,l′);Vl′代表第h个头的Value矩阵(即)中以当前计算词元为中心,长度为l′的子矩阵,大小为(l′,d/H);
步骤3.4,使用全连接层提取矩阵Y′的泛化特征:Y″=ReLU(y′W″′+b″′);其中,ReLU(·)为ReLU激活函数;y′为Y′的单个词元向量,大小为(1,d);W″′为权重矩阵,大小为(d,C+1),C为恶意有效负载总类别数,1代表正常负载类别,C+1即为总类别数;对Y′中各词元向量进行逐位置全连接后,得到大小为(L,C+1)的输出矩阵Y″;
步骤3.5,使用Softmax操作计算各词元为C+1个类别的概率,最终得到应用层用户请求xi对应的各词元类别概率矩阵ai;其中,ai为大小为(L,C+1)的矩阵。
8.一种基于Transformer的应用层恶意有效负载检测系统,其特征在于,包括:
样本集构建模块,用于:构建应用层用户请求样本集D,其中每个样本di包括一条应用层用户请求xi及其恶意有效负载信息,恶意有效负载信息包括一组或多组具体恶意有效负载pij及其类别yij;下标i用于区别不同的应用层用户请求,下标j用于区别不同类别的恶意有效负载;
检测模型训练模块,用于:将数据预处理后应用层用户请求样本集中的输入预先构建的基于Transformer的深度神经网络模型M,计算得到各词元的类别预测概率ail;并将各词元的真实类别标签和预测类别概率ail代入损失函数L计算模型损失值,根据优化算法更新模型M中的可训练参数;
9.一种电子设备,包括处理器和存储器,所述存储器中存储有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器实现如权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110670903.0A CN113343235B (zh) | 2021-06-17 | 2021-06-17 | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110670903.0A CN113343235B (zh) | 2021-06-17 | 2021-06-17 | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113343235A true CN113343235A (zh) | 2021-09-03 |
CN113343235B CN113343235B (zh) | 2022-05-17 |
Family
ID=77475891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110670903.0A Active CN113343235B (zh) | 2021-06-17 | 2021-06-17 | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113343235B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048799A (zh) * | 2021-10-21 | 2022-02-15 | 南京邮电大学 | 一种基于统计信息和有效载荷编码的零日流量分类方法 |
CN115550062A (zh) * | 2022-11-23 | 2022-12-30 | 北京升鑫网络科技有限公司 | 一种恶意请求的检测方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667816A (zh) * | 2018-04-19 | 2018-10-16 | 重庆邮电大学 | 一种网络异常的检测定位方法及系统 |
CN109190131A (zh) * | 2018-09-18 | 2019-01-11 | 北京工业大学 | 一种基于神经机器翻译的英语单词及其大小写联合预测方法 |
CN109522961A (zh) * | 2018-11-23 | 2019-03-26 | 中山大学 | 一种基于字典深度学习的半监督图像分类方法 |
US20190130273A1 (en) * | 2017-10-27 | 2019-05-02 | Salesforce.Com, Inc. | Sequence-to-sequence prediction using a neural network model |
US20190138888A1 (en) * | 2017-11-03 | 2019-05-09 | International Business Machines Corporation | Weighted cascading convolutional neural networks |
CN109783827A (zh) * | 2019-01-31 | 2019-05-21 | 沈阳雅译网络技术有限公司 | 一种基于动态线性聚合的深层神经机器翻译方法 |
CN110363001A (zh) * | 2019-07-12 | 2019-10-22 | 长沙市智为信息技术有限公司 | 一种基于Transformer模型的应用层恶意请求检测方法 |
CN110414219A (zh) * | 2019-07-24 | 2019-11-05 | 长沙市智为信息技术有限公司 | 基于门控循环单元与注意力机制的注入攻击检测方法 |
CN110765458A (zh) * | 2019-09-19 | 2020-02-07 | 浙江工业大学 | 一种基于深度学习的恶意软件检测方法及其装置 |
CN111327608A (zh) * | 2020-02-14 | 2020-06-23 | 中南大学 | 基于级联深度神经网络的应用层恶意请求检测方法及系统 |
CN111881289A (zh) * | 2020-06-10 | 2020-11-03 | 北京启明星辰信息安全技术有限公司 | 分类模型的训练方法、数据风险类别的检测方法及装置 |
-
2021
- 2021-06-17 CN CN202110670903.0A patent/CN113343235B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190130273A1 (en) * | 2017-10-27 | 2019-05-02 | Salesforce.Com, Inc. | Sequence-to-sequence prediction using a neural network model |
US20190138888A1 (en) * | 2017-11-03 | 2019-05-09 | International Business Machines Corporation | Weighted cascading convolutional neural networks |
CN108667816A (zh) * | 2018-04-19 | 2018-10-16 | 重庆邮电大学 | 一种网络异常的检测定位方法及系统 |
CN109190131A (zh) * | 2018-09-18 | 2019-01-11 | 北京工业大学 | 一种基于神经机器翻译的英语单词及其大小写联合预测方法 |
CN109522961A (zh) * | 2018-11-23 | 2019-03-26 | 中山大学 | 一种基于字典深度学习的半监督图像分类方法 |
CN109783827A (zh) * | 2019-01-31 | 2019-05-21 | 沈阳雅译网络技术有限公司 | 一种基于动态线性聚合的深层神经机器翻译方法 |
CN110363001A (zh) * | 2019-07-12 | 2019-10-22 | 长沙市智为信息技术有限公司 | 一种基于Transformer模型的应用层恶意请求检测方法 |
CN110414219A (zh) * | 2019-07-24 | 2019-11-05 | 长沙市智为信息技术有限公司 | 基于门控循环单元与注意力机制的注入攻击检测方法 |
CN110765458A (zh) * | 2019-09-19 | 2020-02-07 | 浙江工业大学 | 一种基于深度学习的恶意软件检测方法及其装置 |
CN111327608A (zh) * | 2020-02-14 | 2020-06-23 | 中南大学 | 基于级联深度神经网络的应用层恶意请求检测方法及系统 |
CN111881289A (zh) * | 2020-06-10 | 2020-11-03 | 北京启明星辰信息安全技术有限公司 | 分类模型的训练方法、数据风险类别的检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
崔艳鹏等: "基于CNN的恶意Web请求检测技术", 《计算机科学》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114048799A (zh) * | 2021-10-21 | 2022-02-15 | 南京邮电大学 | 一种基于统计信息和有效载荷编码的零日流量分类方法 |
CN115550062A (zh) * | 2022-11-23 | 2022-12-30 | 北京升鑫网络科技有限公司 | 一种恶意请求的检测方法、装置、电子设备及存储介质 |
CN115550062B (zh) * | 2022-11-23 | 2023-03-07 | 北京升鑫网络科技有限公司 | 一种恶意请求的检测方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113343235B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113596007B (zh) | 一种基于深度学习的漏洞攻击检测方法和设备 | |
CN109391706A (zh) | 基于深度学习的域名检测方法、装置、设备和存储介质 | |
CN113343235B (zh) | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 | |
CN111866004B (zh) | 安全评估方法、装置、计算机系统和介质 | |
CN112989348B (zh) | 攻击检测方法、模型训练方法、装置、服务器及存储介质 | |
CN112380319A (zh) | 一种模型训练的方法及相关装置 | |
CN113315789B (zh) | 一种基于多级联合网络的Web攻击检测方法及系统 | |
CN111600919A (zh) | 基于人工智能的web检测方法和装置 | |
CN107832300A (zh) | 面向微创医疗领域文本摘要生成方法及装置 | |
CN114780831A (zh) | 基于Transformer的序列推荐方法及系统 | |
CN113628059A (zh) | 一种基于多层图注意力网络的关联用户识别方法及装置 | |
CN112131578A (zh) | 攻击信息预测模型的训练方法、装置、电子设备及存储介质 | |
CN114330966A (zh) | 一种风险预测方法、装置、设备以及可读存储介质 | |
CN111400492A (zh) | 基于sfm-dcnn的层次特征文本分类方法和系统 | |
CN112507337A (zh) | 基于语义分析的恶意JavaScript代码检测模型的实现方法 | |
CN112464655A (zh) | 中文字符和拼音相结合的词向量表示方法、装置、介质 | |
CN110674370A (zh) | 域名识别方法及装置、存储介质及电子设备 | |
CN117370980A (zh) | 恶意代码检测模型生成及检测方法、装置、设备及介质 | |
CN114528908B (zh) | 网络请求数据分类模型训练方法、分类方法及存储介质 | |
CN116980356A (zh) | 一种网络流量识别方法、装置、电子设备及存储介质 | |
CN113761874A (zh) | 事件事实性预测方法、装置、电子设备与存储介质 | |
Liu et al. | A Graph Convolutional Network‐Based Sensitive Information Detection Algorithm | |
Jusin et al. | End-To-End Neural Network Based Captcha Recognition | |
CN113869062B (zh) | 一种基于黑盒对抗样本的社交文本人格隐私保护方法 | |
CN117332038B (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 |