CN110414219A - 基于门控循环单元与注意力机制的注入攻击检测方法 - Google Patents
基于门控循环单元与注意力机制的注入攻击检测方法 Download PDFInfo
- Publication number
- CN110414219A CN110414219A CN201910673024.6A CN201910673024A CN110414219A CN 110414219 A CN110414219 A CN 110414219A CN 201910673024 A CN201910673024 A CN 201910673024A CN 110414219 A CN110414219 A CN 110414219A
- Authority
- CN
- China
- Prior art keywords
- sentence
- injection
- attention mechanism
- class label
- result
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种基于门控循环单元与注意力机制的注入攻击检测方法,其特征在于,包括以下步骤:步骤1、提取互联网中与数据库相关的语句作为样本;对各个样本分别进行预处理,并获取其类别标签;步骤2、将样本预处理后的结果输入注入攻击检测模型,预测其对应的类别标签;其中注入攻击检测模型包括依次连接的激活层、门控循环单元层、注意力机制层和输出层;步骤3、基于样本数据训练注入攻击检测模型;步骤4、对于待检测语句,先对其进行预处理,再将预处理后的结果输入训练好的注入攻击检测模型,得到该待检测语句的类别标签,从而判断该待检测语句是否为注入攻击语句。本发明准确率高。
Description
背景技术
注入攻击是指通过攻击者将代码注入程序或查询或将恶意软件注入计算机,以便执行远程命令,这些命令可以读取或修改数据库,或更改网站上的数据。网络空间中常见的注入攻击有SQL注入攻击、XSS攻击等。根据2016年网络空间安全数据报告,SQL注入攻击与XSS攻击两种常见注入攻击成为了网络攻击事件的常见方式,造成了严重的社会经济影响。
注入攻击的常见防御手段有预编译指令、动态分析等手段。注入攻击的检测方法从过去基于规则的方法到如今基于机器学习的方法发生了较大变化。基于规则的方法中具有代表性的主要有基于正则表达式匹配的方法、采用预编译手段的方法、采用代理服务器缓冲的方法,以上这些方法虽然能对注入攻击的检测和防御有所作用,但由于其往往需要采用人员、服务器、程序设计等手段进行预处理,而且借助编程人员与服务器的手段也需要进行安全设计与评估,造成了较大的经济开销与可能的安全隐患。近年来,基于机器学习的方法成为了研究重点,产生了基于SVM的注入攻击检测方法、基于决策树的注入攻击检测方法,这些方法相比以往方法具有较低的经济开销与安全隐患,但是其中对于数据的处理方式、参数的调整与模型解释需要较高水平的工程人员进行协助,另外,其识别准确度在一些特定情况下低于人工识别准确度。另外,自然语言处理领域的一些简单语义模型,例如Bag-of-words[1]、tree-kernel[2]、word-graph[3]方法也进行了对于注入攻击检测的尝试,但它们均存在各种不足。Bag-of-words采用的思路是对于语句文本中出现的词语进行统计排序,将出现次数最多的前N个词语作为判断标准,如果出现了常出现在攻击语句中的词语则认定为攻击行为,该方法虽然有一定效果,但其完全取决于攻击语句中的敏感词语的出现次数是否达到阈值的判断标准,对于注入攻击语句中的上下文特征缺乏考虑。tree-kernel与word-graph方法均结合了机器学习,在一定程度上考虑了词语之间的上下文关系,但是对于间隔较远的词语之间的关系无法衡量,因此出现了对于较短的攻击语句识别准确,但对于较长的攻击语句识别效果不佳的问题。
[1]Bockermann C,Apel M,Meier M.Learning SQL for Database IntrusionDetection Using Context-Sensitive Modelling(Extended Abstract)[J].ProcDetection of Intrusions&Malware&Vulnerability Assessment,2009.
[2]Buehrer G,Weide B W,Sivilotti P A G.Using parse tree validation toprevent SQL injection attacks[C]//Proc International Workshop on SoftwareEngineering&Middleware.2005.
[3]Kar D,Panigrahi S,Sundararajan S.SQLiGoT:Detecting SQL InjectionAttacks using Graph of Tokens and SVM[J].Computers&Security,2016:S0167404816300451.
针对现有方法存在的不足,有必要提供一种效果更好的注入攻击检测方法。
发明内容
本发明解决的技术问题是,针对现有技术的不足,提出一种基于门控循环单元与注意力机制的注入攻击检测方法,检测准确率高。
本发明提供的技术方案为:
一种基于门控循环单元与注意力机制的注入攻击检测方法,包括以下步骤:
步骤1、提取互联网中与数据库相关的语句作为样本;对各个样本分别进行预处理,并采用现有方法获取每一个样本的类别标签,所述类别标签用于标记各个样本是否为注入攻击语句;
步骤2、将样本预处理后的结果输入注入攻击检测模型,预测其对应的类别标签;其中注入攻击检测模型包括依次连接的激活层、门控循环单元(GRU)层、注意力机制层和输出层;预处理后的结果依次输入激活层、门控循环单元层、注意力机制层和输出层进行前向计算,并输出相应的类别标签;
步骤3、设定损失函数,计算样本通过步骤2中注入攻击检测模型预测得到的类别标签和真实类别标签的差距;以降低损失函数值为目的,基于反向传播算法更新注入攻击检测模型的参数;然后返回步骤2,直到达到设定的循环次数或者损失函数值小于设定阈值(达到精度要求),完成对注入攻击检测模型的训练,实现模型的判别性能的优化,得到训练好的注入攻击检测模型;
步骤4、对于待检测语句,先对其进行预处理,再将预处理后的结果输入训练好的注入攻击检测模型,得到该待检测语句的类别标签,从而判断该待检测语句是否为注入攻击语句。
进一步地,所述步骤1和步骤4中,对语句预进行预处理包括以下步骤:
步骤1.1:将语句中的所有元素分类替换为预设的词语符号,其中元素包括语素和符号;
步骤1.2:采用TF-IDF算法对语句中的词语符号进行编码,编码方法为:先通过TF-IDF算法建立各词语符号与词语符号出现频率(tfidf值)排序之间的映射关系;然后根据映射关系将语句中的各词语符号替换为其出现频率排序;
步骤1.3:设定语句最大长度,对步骤1.2得到的编码结果进行截取或补全操作,使之长度等于设定的语句最大长度,得到语句预处理后的结果。
进一步地,所述步骤2中,激活层采用ReLU(·)激活函数,其计算过程为:
对语句的预处理后的结果Si=(C1,C2,...,Cz)T中的每个元素Ck∈R1,k=1,2,...,z,分别利用公式vk=ReLU(WeCk+be)计算经过激活层后的各元素值,得到V=(v1,v2,...,vz),即为激活层的输出;其中We和be是激活层的权重和偏移参数。
进一步地,所述步骤2中具体包括以下步骤:
步骤2.1:将激活层输出的向量V=(v1,v2,...,vz)中的各个元素,按照其在向量中的排序依次通过门控循环单元层,得到隐藏状态向量Vatti=(h1,h2,…,hz);门控循环单元层的计算公式为:
rt=σ(Wr[ht-1,vt])
zt=σ(Wz[ht-1,vt])
其中,rt、zt、ht分别表示第t步计算得到的更新门、重置门、候选隐藏状态和隐藏状态、[]表示两个向量相连接;*表示矩阵的Hadamard积;σ表示sigomod函数,Wr、Wz和均为门控循环单元层的权重参数;h0=v1;
步骤2.2:利用注意力机制层对Vatti进行计算,得到结果Voi,通过注意力机制方法,建立每个词语元素注意力机制关系,以此来保留词语元素之间的上下文关系;计算过程为:
首先,根据公式αzi=va T tanh(Wα·[hz,hi])和αz=softmax([αz1,αz2,...,αz(z-1)])计算得到权重向量αz;
然后,根据公式计算得到上下文向量cz;
最后,根据公式Voi=tanh(Wc[cz,hz])计算得到注意力机制层的结果Voi;
其中αzi表示隐藏状态hz和hi之间的关系,i=1,2,…,z;va、Wα和Wc均为注意力机制层的权重参数;
步骤2.3:将Voi作为输出层的输入向量进行预测,得到相应的类别标签。
进一步地,在训练阶段中,输出层首先对输入向量Voi进行丢弃正则化处理,方法为:设定有效特征数目为r,根据输入向量Voi的长度LEN,获得1~LEN的随机数,并将Voi中维度等于所得随机数的元素进行丢弃,即将Voi中相应维度的元素置0,使结果向量中非0元素个数等于r,此时的结果向量记作
然后根据计算得到两种类别标签的概率分布其中p为2维向量;将p中最大元素所在维度对应的类别标签作为预测结果;其中ws∈R2×LEN和bs∈R2 ×1为输出层的权重和偏置参数;其中两种类别标签为1和0,分别代表是注入攻击语句和不是注入攻击语句;
在步骤4中,即判断阶段中,令(即不对输入向量Voi进行丢弃正则化处理),并利用获得预测结果。
进一步地,所述步骤3中,选取以下交叉熵损失函数作为损失函数:
L为损失函数值(即交叉熵的结果),N为样本数量,yi为第i个样本真实的类别标签,为第i个样本通过注入攻击检测模型预测得到的类别标签。
进一步地,所述步骤4中,在生产实际中,首先在需要防护的字段(注入攻击往往隐藏在HTTP的GET与POST请求中,因此GET与POST请求是需要重点防护的字段,需要防护的字段包括但不限于HTTP的GET与POST请求)中提取较易出现注入攻击的语句(常见的有SQL语句和XSS语句);提取出语句后,先对其进行预处理,再将该语句预处理后的结果输入训练好的注入攻击检测模型,得到该语句的类别标签,并根据类别标签来判断该语句是否为注入攻击语句,从而判断需要防护的字段中是否存在注入攻击。
进一步地,在生产实际中,经过一段时间之后,可能会出现新的形式的注入攻击,对于新形式注入攻击,在较短时间内可以认为相关词频方式没有改变。在一定时间后(时间长度根据网络安全事件中注入攻击报告的频繁程度决定,一般在6个月至一年内),需要重新提取样本对注入攻击检测模型进行训练,以提高模型准确率和泛化性能。
有益效果:
其核心结合门控循环单元(GRU)网络和注意力机制,基于注入攻击的相关数据集进行模型训练,在训练过程中每个GRU(门控循环单元)保留了语句的上下文信息和语法结构,而注意力机制则对门控循环单元的输出进行权重结合,对异常部分的权重进行调整,提高了整体的辨识成功率,提高了对注入攻击的检测成功率和检测的泛化性能。本发明的实例应用于网络安全和深度学习领域,为注入攻击的检测提供了较为完善的自动化处理方案,对于提高注入攻击检测成功率和提高注入攻击检测的可靠性做出了相关工作。本发明优点主要有:
(1)采用深度学习中的门控循环单元对注入攻击的语法结构进行学习,并以此作为根据来判断输入是否为注入攻击;门控循环单元作为长短时记忆模型的一种变体,对语法结构的上下文进行了考量,能够综合考虑长期记忆与短时记忆来得到当前的输出结果,提高了注入攻击的识别准确程度;
(2)注意力机制则来源于人类识别图片、语句的认知模型,对于输出应用注意力机制能够提高识别准确率。
附图说明
图1为本发明中的注入攻击检测模型结构图
具体实施方式
下面将结合常见的注入攻击——SQL注入攻击检测的实际例子对本发明进行进一步说明。
以SQL注入攻击检测为例:
采用本发明实现SQL注入攻击检测可分为两个阶段来构建注入攻击的检测模型。两个阶段为:预处理阶段和训练阶段。总体而言,在预处理阶段,对输入的数据进行预处理并将其格式化以便于在训练阶段进行使用;下面将对过程进行详细说明:
一、预处理阶段
1.1数据标准化
在本阶段中,需要对数据进行标准化。结合SQL语句的实际情况对部分语素(如将SQL语句中的保留字、数据库表名、特殊符号等)进行标准化,即按照标准化词语符号映射表(即后面的标准化语素表和标准化符号表)分类替换为预设的词语符号。例如:SELECT*FROMbook与SELECT*FROM employee两个SQL语句在本质上没有区别,两句中的book与employee均指数据库中的某个表名。因此,用TBL标记此语素,并将语句转化为SELECT*FROM TBL。按照下表对训练集中的所有语句进行数据标准化处理。数据标准化处理结束后,所有SQL语句均可被标准化符号表中的符号表示。
表1标准化语素表
表2标准化符号表
注意:Remove表示将符号删除;
例如,对语句SELECT username,passwd FROM userinfo WHERE'1&password='AND'1'='1进行数据标准化处理之后的结果为:SELECT COL CMMA FROM TBL WHERE INTBITAND COL AND INT EQ SQUT INT。
1.2数据统计与向量化
在本阶段中,需要对语句集合(数据集)内的全部数据进行统计,统计按照数据标准化阶段内的标准化词语符号映射表(包括标准化语素表与标准化符号表)来进行。
对于标准化词语符号映射表中的所有词语符号,分别计算其tfidf(词频-逆文本频率指数)值,对于第i个词语符号,其tfidf值tfidfi计算公式如下:
tfidfi=tfi×idfi
其中,tfi表示第i个词语符号的词频,ni表示语句集合中第i个词语符号的出现次数,Σknk表示的是语句集合中所有词语符号的出现次数;idfi表示第i个词语符号的逆文本频率指数,D表示语句集合,d表示语句,|D|表示语句集合D中的总语句数目,1+|{d∈D:i∈d}|表示语句集合D中包含第i个词语符号的语句的数目。
在得到所有词语符号的tfidf值后,对词语符号按照tfidf值由大到小的顺序进行排序;建立词语符号与其tfidf值排序之间的映射关系。
对于每个SQL语句进行数据标准化处理后的结果,将其中的词语符号按照词语符号与其排序之间的映射关系转化为相应的排序(数字),由此得到相应的编码结果。
设定语句最大长度n,鉴于SQL注入攻击的发生原理,在较长语句中,更容易构造SQL注入攻击,并且在实际需求中,往往对查询的最大字符长度进行了限制(例如:限制用户名最大长度等方式)。因此设定语句最大长度n大于查询SQL语句的最大长度即可。或者人为根据实际情况需求,设定语句最大长度。
对步骤1.2得到的编码结果进行截取或补全操作,使之长度等于设定的语句最大长度,得到语句预处理后的结果。若得到的编码结果长度不足n,则在编码末尾使用0进行补充,若得到的编码结果长度大于n,则截取其前n位编码,从而得到最终的编码结果,即语句预处理后的结果;如对于语句(SELECT COL CMMA FROM TBL WHERE INT BITAND COL ANDINT EQ SQUT INT),语句预处理后的结果为(23,5,3,46,17,15,29,63,5,49,29,13,26,29,……,0,0),其中末尾的0为该语句编码结果长度不足n,不足部分用0进行补充。
最终,在完成数据统计与编码阶段之后,所有语句均可表示成长度为n的向量Spre。
二、训练阶段
在本阶段中,将利用经过预处理阶段的向量化的语句信息和已知的是否为攻击语句的标记进行对模型的训练。主要分为5个阶段:激活层、GRU层、注意力机制层、输出层、目标函数。在训练阶段的开始,对各层的权重向量与偏移向量进行初始化。
2.1激活层
在本层中,将对完成预处理阶段的向量Spre进行映射,本层的目的是为了通过合理的权重设计,设置神经元的激活阈值,来对较易造成SQL注入攻击的符号与常见符号进行过滤。减少在SQL语句中较常出现的类似SELECT等符号对模型的影响。此层将决定预处理结果中的向量元素是否会对更深层的网络造成影响;
对于语句Si=(C1,C2,...,Cz)T中的每个词语元素Ck∈R1(k=1,2,...,z)利用公式vk=ReLU(WeCk+be)计算经过激活层后的各元素值,We和be是激活层的权重和偏移参数,ReLU(·)为激活函数,ReLU(x)=max(x,0),对于本方法,有vk=ReLU(WeCk+be)=max(WeCk+be,0),其中max(WeCk+be,0)表示将WeCk+be与0比较,若大于0,若大于0则保持不变,否则替换为0;经过激活层后得到V=(v1,v2,...,vz),作为下一层的输入向量Vgrui。权重和偏移参数在第一次训练的时候需要进行初始化,在之后的训练过程中会在2.6中对参数进行更新。
2.2门控循环单元(GRU)层
rt=σ(Wr[ht-1,vt]) (1.1)
zt=σ(Wz[ht-1,vt]) (1.2)
其中,[]表示两个向量相连接,组成一个向量,*表示矩阵的Hadamard积;σ表示sigomod函数,Wr表示重置门的权重参数,Wz表示更新门的权重参数,表示记忆更新的权重参数;h0=v1;
在本层中,将经过激活层的结果向量Vgrui=(v1,v2,...,vz),按照从v1~vz的顺序通过GRU层进行计算,得到隐藏状态向量Vatti=(h1,h2,…,hz)。对于当前输入vt,通过其和上一个隐藏状态ht-1来计算得到当前隐藏状态ht,计算的具体步骤如下:
a.根据当前输入vt(时间步t)和上一个隐藏状态ht-1(表示记忆下来的之前的状态信息),按公式(1.1)计算得到重置门rt,按公式(1.2)计算得到更新门zt。
b.首先用重置门来重置上一个隐藏状态ht-1(即公式(1.3)中的rt*ht-1),再将重置后的信号与输入vt进行拼接,再通过tanh函数对结果进行压缩。按照公式(1.3)进行计算,得到结果这里的主要是包含了当前输入vt的数据。
c.使用更新门zt对和ht-1进行处理,有针对性地对添加信息到当前的隐藏状态,按照更新表达式(1.4)进行计算得到当前隐藏状态ht,对信息进行更新与遗忘。
重复上述步骤,直到输入向量Vgrui的全部维度均进行处理后终止,得到最终的结果为Vatti=(h1,h2,…,hz)。
2.3注意力机制层
在注意力机制层,利用注意力机制方法对GRU层的结果Vatti进行计算,传统的注意力机制方法往往仅仅考虑两个状态之间的情况,而本方法将采用通过计算该状态与先前所有状态之间的结果,然后获得权重的方式,来捕捉各状态与前文的关系;
首先,根据公式αzi=va T tanh(Wα·[hz,hi])和αz=softmax([αz1,αz2,...,αz(z-1)])得到权重向量αz,其中αzi表示隐藏状态hz和hi之间的关系,i=1,2,…,z,va和Wα表示模型权重,该参数向量将通过2.6反向传播方式进行更新;
然后,根据公式利用隐藏状态hi与权重向量αzi计算得到上下文向量cz;
最后,根据公式Voi=tanh(Wc[cz,hz]),利用隐藏状态hz与上下文向量cz计算得到注意力机制层的结果Voi,其中Wc是注意力机制层的权重参数;
2.4输出层
在输出层,将通过注意力机制层得到的向量Voi作为本层的输入向量进行预测,并得到预测结果。在本层中,训练阶段和判断阶段的步骤不同。
在训练阶段中,采用丢弃正则化的方法(Drop out Regularization)来减少过拟合对模型的影响。在本方法中,丢弃正则化是对输入向量的部分特征进行丢弃,以保证模型的全部参数都能得到训练,丢弃状态时应保证随机性,以防止不同参数训练的次数出现显著性差异。具体操作方式如下:
对于输入向量Voi,设定有效特征数目为r,根据输入向量Voi的长度LEN,获得1~LEN的随机数,并将Voi中维度等于所得随机数的元素进行丢弃,即将Voi中相应维度的元素置0,使结果向量中非0元素个数等于r,此时的结果向量记作
丢弃正则化只在训练阶段进行,在判断阶段不需要进行丢弃正则化,保留全部特征,即在判断阶段
根据计算得到两种类别标签(即1和0,分别代表是注入攻击语句和不是注入攻击语句)的概率分布p为2维向量;将p中最大元素所在维度对应的类别标签作为预测结果;其中ws∈R2×LEN和bs∈R2×1是需要进行训练的参数。
2.5目标函数层
为进行梯度下降对模型进行训练,需要设定损失函数。选取以下交叉熵损失函数作为损失函数:
L为损失函数值(即交叉熵的结果),N为样本数量,yi为第i个样本真实的类别标签,为第i个样本通过模型预测得到的类别标签,类别标签取值为{0,1},分别表示是否为注入攻击语句。交叉熵损失函数通过计算样本真实的类别标签和样本通过模型预测得到的类别标签之间的交叉熵作为损失。
2.6反向传播
训练阶段完成上述步骤后,将通过梯度下降反向传播的方法,对各层的参数进行调整。在完成全部参数的训练更新之后,得到的最终模型f(input)。
三、判断阶段
本阶段是指在经过上述两阶段之后,得到的最终模型f(input)可以部署在实际情况中对输入的语句进行判断是否为注入攻击语句。在判断阶段中,对于输入的语句,仍按照训练阶段的步骤进行步骤一与步骤二的大部分操作,直到步骤2.4,在训练阶段中,采用了丢弃正则化的方法进行操作以减少过拟合的影响,然而,在判断阶段中,无需此操作。最终得到模型f(input)对该输入语句的预测结果。
由于在较短时间内,可以认为词频的出现方式未出现较大变化,因此可以直接将训练数据输入进行训练的过程,而如果模型部署时间较长或出现新的注入攻击方式,需要基于原有的及新获取的数据重新进行模型训练的步骤以保证模型的有效性。
Claims (6)
1.一种基于门控循环单元与注意力机制的注入攻击检测方法,其特征在于,包括以下步骤:
步骤1、提取互联网中与数据库相关的语句作为样本;对各个样本分别进行预处理,并采用现有方法获取每一个样本的类别标签,所述类别标签用于标记各个样本是否为注入攻击语句;
步骤2、将样本预处理后的结果输入注入攻击检测模型,预测其对应的类别标签;其中注入攻击检测模型包括依次连接的激活层、门控循环单元层、注意力机制层和输出层;
步骤3、设定损失函数,计算样本通过步骤2中注入攻击检测模型预测得到的类别标签和真实类别标签的差距;基于反向传播算法更新注入攻击检测模型的参数,完成对注入攻击检测模型的训练;
步骤4、对于待检测语句,先对其进行预处理,再将预处理后的结果输入训练好的注入攻击检测模型,得到该待检测语句的类别标签,从而判断该待检测语句是否为注入攻击语句。
2.根据权利要求1所述的基于门控循环单元与注意力机制的注入攻击检测方法,其特征在于,所述步骤1和步骤4中,对语句预进行预处理包括以下步骤:
步骤1.1:将语句中的所有元素分类替换为预设的词语符号,其中元素包括语素和符号;
步骤1.2:采用TF-IDF算法对语句中的词语符号进行编码,编码方法为:先通过TF-IDF算法建立各词语符号与词语符号出现频率排序之间的映射关系;然后根据映射关系将语句中的各词语符号替换为其出现频率排序;
步骤1.3:设定语句最大长度,对步骤1.2得到的编码结果进行截取或补全操作,使之长度等于设定的语句最大长度,得到语句预处理后的结果。
3.根据权利要求1所述的基于门控循环单元与注意力机制的注入攻击检测方法,其特征在于,所述步骤2中,激活层采用ReLU(·)激活函数,其计算过程为:
对语句的预处理后的结果Si=(C1,C2,...,Cz)T中的每个元素Ck∈R1,k=1,2,...,z,分别利用公式vk=ReLU(WeCk+be)计算经过激活层后的各元素值,得到V=(v1,v2,...,vz),即为激活层的输出;其中We和be是激活层的权重和偏移参数。
4.根据权利要求1所述的基于门控循环单元与注意力机制的注入攻击检测方法,其特征在于,所述步骤2中具体包括以下步骤:
步骤2.1:将激活层输出的向量V=(v1,v2,...,vz)中的各个元素,按照其在向量中的排序依次通过门控循环单元层,得到隐藏状态向量Vatti=(h1,h2,…,hz);门控循环单元层的计算公式为:
rt=σ(Wr[ht-1,vt])
zt=σ(Wz[ht-1,vt])
其中,rt、zt、ht分别表示第t步计算得到的更新门、重置门、候选隐藏状态和隐藏状态、[]表示两个向量相连接;*表示矩阵的Hadamard积;σ表示sigomod函数,Wr、Wz和均为门控循环单元层的权重参数;h0=v1;
步骤2.2:利用注意力机制层对Vatti进行计算,得到结果Voi;计算过程为:
首先,根据公式αzi=va Ttanh(Wα·[hz,hi])和αz=softmax([αz1,αz2,...,αz(z-1)])计算得到权重向量αz;
然后,根据公式计算得到上下文向量cz;
最后,根据公式Voi=tanh(Wc[cz,hz])计算得到注意力机制层的结果Voi;
其中αzi表示隐藏状态hz和hi之间的关系,i=1,2,…,z;va、Wα和Wc均为注意力机制层的权重参数;
步骤2.3:将Voi作为输出层的输入向量进行预测,得到相应的类别标签。
5.根据权利要求1所述的基于门控循环单元与注意力机制的注入攻击检测方法,其特征在于,在训练阶段中,输出层首先对输入向量Voi进行丢弃正则化处理,方法为:设定有效特征数目为r,根据输入向量Voi的长度LEN,获得1~LEN的随机数,并将Voi中维度等于所得随机数的元素进行丢弃,即将Voi中相应维度的元素置0,使结果向量中非0元素个数等于r,此时的结果向量记作
然后根据计算得到两种类别标签的概率分布其中p为2维向量;将p中最大元素所在维度对应的类别标签作为预测结果;其中ws∈R2×LEN和bs∈R2×1为输出层的权重和偏置参数;其中两种类别标签为1和0,分别代表是注入攻击语句和不是注入攻击语句;
在判断阶段中,令并利用获得预测结果。
6.根据权利要求1所述的基于门控循环单元与注意力机制的注入攻击检测方法,其特征在于,所述步骤3中,选取以下交叉熵损失函数作为损失函数:
L为损失函数值,N为样本数量,yi为第i个样本真实的类别标签,为第i个样本通过注入攻击检测模型预测得到的类别标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910673024.6A CN110414219B (zh) | 2019-07-24 | 2019-07-24 | 基于门控循环单元与注意力机制的注入攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910673024.6A CN110414219B (zh) | 2019-07-24 | 2019-07-24 | 基于门控循环单元与注意力机制的注入攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110414219A true CN110414219A (zh) | 2019-11-05 |
CN110414219B CN110414219B (zh) | 2021-07-23 |
Family
ID=68362939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910673024.6A Active CN110414219B (zh) | 2019-07-24 | 2019-07-24 | 基于门控循环单元与注意力机制的注入攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110414219B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508544A (zh) * | 2018-10-19 | 2019-03-22 | 南京理工大学 | 一种基于mlp的入侵检测方法 |
CN111327608A (zh) * | 2020-02-14 | 2020-06-23 | 中南大学 | 基于级联深度神经网络的应用层恶意请求检测方法及系统 |
CN111488585A (zh) * | 2020-04-17 | 2020-08-04 | 北京墨云科技有限公司 | 一种基于深度学习的攻击向量生成方法 |
CN111629006A (zh) * | 2020-05-29 | 2020-09-04 | 重庆理工大学 | 融合深度神经网络和层级注意力机制的恶意流量更新方法 |
CN111669384A (zh) * | 2020-05-29 | 2020-09-15 | 重庆理工大学 | 融合深度神经网络和层级注意力机制的恶意流量检测方法 |
CN111737289A (zh) * | 2020-06-05 | 2020-10-02 | 北京奇艺世纪科技有限公司 | Sql注入攻击的检测方法、装置 |
CN111818080A (zh) * | 2020-07-22 | 2020-10-23 | 中国工商银行股份有限公司 | 注入攻击检测模型构建方法和装置 |
CN112069498A (zh) * | 2020-09-21 | 2020-12-11 | 全球能源互联网研究院有限公司 | 一种sql注入检测模型构建方法及检测方法 |
CN112118225A (zh) * | 2020-08-13 | 2020-12-22 | 紫光云(南京)数字技术有限公司 | 一种基于RNN的Webshell检测方法及装置 |
CN112134858A (zh) * | 2020-09-09 | 2020-12-25 | 中移(杭州)信息技术有限公司 | 敏感信息检测方法、装置、设备及存储介质 |
CN112232436A (zh) * | 2020-11-04 | 2021-01-15 | 杭州智策略科技有限公司 | 一种融合集成决策树与层次注意力机制的可解释网络攻击检测方法 |
CN113343235A (zh) * | 2021-06-17 | 2021-09-03 | 长沙市智为信息技术有限公司 | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 |
CN113691542A (zh) * | 2021-08-25 | 2021-11-23 | 中南林业科技大学 | 基于HTTP请求文本的Web攻击检测方法及相关设备 |
CN114143115A (zh) * | 2022-01-14 | 2022-03-04 | 中南大学 | 针对连续变量量子密钥分发系统的多标签攻击检测方法 |
CN114168938A (zh) * | 2021-10-29 | 2022-03-11 | 四川大学 | 一种基于少量异常标签的半监督sql注入攻击检测方法 |
CN116796326A (zh) * | 2023-08-21 | 2023-09-22 | 北京遥感设备研究所 | 一种sql注入检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566363A (zh) * | 2017-08-30 | 2018-01-09 | 杭州安恒信息技术有限公司 | 一种基于机器学习的sql注入攻击防护方法 |
CN108549814A (zh) * | 2018-03-24 | 2018-09-18 | 西安电子科技大学 | 一种基于机器学习的sql注入检测方法、数据库安全系统 |
CN108846017A (zh) * | 2018-05-07 | 2018-11-20 | 国家计算机网络与信息安全管理中心 | 基于Bi-GRU和字向量的大规模新闻文本的端到端分类方法 |
CN109165387A (zh) * | 2018-09-20 | 2019-01-08 | 南京信息工程大学 | 一种基于gru神经网络的中文评论情感分析法 |
CN109413028A (zh) * | 2018-08-29 | 2019-03-01 | 集美大学 | 基于卷积神经网络算法的sql注入检测方法 |
-
2019
- 2019-07-24 CN CN201910673024.6A patent/CN110414219B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566363A (zh) * | 2017-08-30 | 2018-01-09 | 杭州安恒信息技术有限公司 | 一种基于机器学习的sql注入攻击防护方法 |
CN108549814A (zh) * | 2018-03-24 | 2018-09-18 | 西安电子科技大学 | 一种基于机器学习的sql注入检测方法、数据库安全系统 |
CN108846017A (zh) * | 2018-05-07 | 2018-11-20 | 国家计算机网络与信息安全管理中心 | 基于Bi-GRU和字向量的大规模新闻文本的端到端分类方法 |
CN109413028A (zh) * | 2018-08-29 | 2019-03-01 | 集美大学 | 基于卷积神经网络算法的sql注入检测方法 |
CN109165387A (zh) * | 2018-09-20 | 2019-01-08 | 南京信息工程大学 | 一种基于gru神经网络的中文评论情感分析法 |
Non-Patent Citations (2)
Title |
---|
刘婉婉等: "基于门控循环神经网络词性标注的蒙汉机器翻译研究", 《中文信息学报》 * |
孙明敏: "基于GRU_Attention的中文文本分类", 《现代信息科技》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508544A (zh) * | 2018-10-19 | 2019-03-22 | 南京理工大学 | 一种基于mlp的入侵检测方法 |
CN109508544B (zh) * | 2018-10-19 | 2022-12-06 | 南京理工大学 | 一种基于mlp的入侵检测方法 |
CN111327608A (zh) * | 2020-02-14 | 2020-06-23 | 中南大学 | 基于级联深度神经网络的应用层恶意请求检测方法及系统 |
CN111488585A (zh) * | 2020-04-17 | 2020-08-04 | 北京墨云科技有限公司 | 一种基于深度学习的攻击向量生成方法 |
CN111629006A (zh) * | 2020-05-29 | 2020-09-04 | 重庆理工大学 | 融合深度神经网络和层级注意力机制的恶意流量更新方法 |
CN111669384A (zh) * | 2020-05-29 | 2020-09-15 | 重庆理工大学 | 融合深度神经网络和层级注意力机制的恶意流量检测方法 |
CN111629006B (zh) * | 2020-05-29 | 2021-11-23 | 重庆理工大学 | 融合深度神经网络和层级注意力机制的恶意流量更新方法 |
CN111737289A (zh) * | 2020-06-05 | 2020-10-02 | 北京奇艺世纪科技有限公司 | Sql注入攻击的检测方法、装置 |
CN111818080A (zh) * | 2020-07-22 | 2020-10-23 | 中国工商银行股份有限公司 | 注入攻击检测模型构建方法和装置 |
CN112118225A (zh) * | 2020-08-13 | 2020-12-22 | 紫光云(南京)数字技术有限公司 | 一种基于RNN的Webshell检测方法及装置 |
CN112134858A (zh) * | 2020-09-09 | 2020-12-25 | 中移(杭州)信息技术有限公司 | 敏感信息检测方法、装置、设备及存储介质 |
CN112134858B (zh) * | 2020-09-09 | 2022-12-13 | 中移(杭州)信息技术有限公司 | 敏感信息检测方法、装置、设备及存储介质 |
CN112069498B (zh) * | 2020-09-21 | 2023-11-21 | 全球能源互联网研究院有限公司 | 一种sql注入检测模型构建方法及检测方法 |
CN112069498A (zh) * | 2020-09-21 | 2020-12-11 | 全球能源互联网研究院有限公司 | 一种sql注入检测模型构建方法及检测方法 |
CN112232436A (zh) * | 2020-11-04 | 2021-01-15 | 杭州智策略科技有限公司 | 一种融合集成决策树与层次注意力机制的可解释网络攻击检测方法 |
CN113343235B (zh) * | 2021-06-17 | 2022-05-17 | 长沙市智为信息技术有限公司 | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 |
CN113343235A (zh) * | 2021-06-17 | 2021-09-03 | 长沙市智为信息技术有限公司 | 基于Transformer的应用层恶意有效负载检测方法、系统、设备及介质 |
CN113691542A (zh) * | 2021-08-25 | 2021-11-23 | 中南林业科技大学 | 基于HTTP请求文本的Web攻击检测方法及相关设备 |
CN114168938A (zh) * | 2021-10-29 | 2022-03-11 | 四川大学 | 一种基于少量异常标签的半监督sql注入攻击检测方法 |
CN114168938B (zh) * | 2021-10-29 | 2023-04-07 | 四川大学 | 一种基于少量异常标签的半监督sql注入攻击检测方法 |
CN114143115A (zh) * | 2022-01-14 | 2022-03-04 | 中南大学 | 针对连续变量量子密钥分发系统的多标签攻击检测方法 |
CN116796326A (zh) * | 2023-08-21 | 2023-09-22 | 北京遥感设备研究所 | 一种sql注入检测方法 |
CN116796326B (zh) * | 2023-08-21 | 2023-11-14 | 北京遥感设备研究所 | 一种sql注入检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110414219B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414219A (zh) | 基于门控循环单元与注意力机制的注入攻击检测方法 | |
CN109413028A (zh) | 基于卷积神经网络算法的sql注入检测方法 | |
CN111552855B (zh) | 一种基于深度学习的网络威胁情报自动抽取方法 | |
CN109005145B (zh) | 一种基于自动特征抽取的恶意url检测系统及其方法 | |
CN106709345A (zh) | 基于深度学习方法推断恶意代码规则的方法、系统及设备 | |
CN113596007B (zh) | 一种基于深度学习的漏洞攻击检测方法和设备 | |
CN110191096A (zh) | 一种基于语义分析的词向量网页入侵检测方法 | |
CN110489968A (zh) | 基于RNN和CNN的Android恶意软件检测方法及系统 | |
CN113010209A (zh) | 一种抗编译差异的二进制代码相似性比较技术 | |
CN111091004B (zh) | 一种语句实体标注模型的训练方法、训练装置及电子设备 | |
CN112560486A (zh) | 基于多层神经网络的电力实体识别方法、存储介质和设备 | |
CN113691542A (zh) | 基于HTTP请求文本的Web攻击检测方法及相关设备 | |
CN111931935A (zh) | 基于One-shot学习的网络安全知识抽取方法和装置 | |
CN113742205B (zh) | 一种基于人机协同的代码漏洞智能检测方法 | |
CN111917788A (zh) | 基于hmm模型的sql注入攻击检测方法 | |
CN115994224A (zh) | 基于预训练语言模型的钓鱼url检测方法及系统 | |
CN116340952A (zh) | 一种基于操作码程序依赖图的智能合约漏洞检测方法 | |
CN116049419A (zh) | 融合多模型的威胁情报信息抽取方法及系统 | |
Liu et al. | A practical black-box attack on source code authorship identification classifiers | |
CN113918936A (zh) | Sql注入攻击检测的方法以及装置 | |
CN115242539B (zh) | 基于特征融合的电网信息系统网络攻击检测方法及装置 | |
CN116541838A (zh) | 一种基于对比学习的恶意软件检测方法 | |
CN110704611A (zh) | 基于特征解交织的非法文本识别方法及装置 | |
CN113657443B (zh) | 一种基于soinn网络的在线物联网设备识别方法 | |
CN116595530A (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 |