CN111917788A - 基于hmm模型的sql注入攻击检测方法 - Google Patents
基于hmm模型的sql注入攻击检测方法 Download PDFInfo
- Publication number
- CN111917788A CN111917788A CN202010788809.0A CN202010788809A CN111917788A CN 111917788 A CN111917788 A CN 111917788A CN 202010788809 A CN202010788809 A CN 202010788809A CN 111917788 A CN111917788 A CN 111917788A
- Authority
- CN
- China
- Prior art keywords
- sql
- hmm model
- injection attack
- syntax tree
- probability
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于HMM模型的SQL注入攻击检测方法,包括:对SQL语句进行解析,然后遍历SQL语法树进行裁剪,使之变为规范语法树;接着对SQL规范语法树进行特征提取,并对特征向量进行范化,最后对SQL语句进行分词,统计每个词的频率,选择全部或者部分词作为哈希表键值,并依次对该哈希表进行编号,从而得到该哈希表对字符串的编码;将SQL语句输入到HMM模型中进行训练,学习SQL语法规则,HMM模型训练后得出一个阈值,等待新的用户输入新的SQL语句时,将用户输入的新数据放入HMM模型中并对其计算相似度打出分值,用打出的分值和训练的阈值进行比对即可判断结果。本发明提高了SQL注入攻击检测的准确率。
Description
技术领域
本发明涉及Web安全技术领域,特别是一种基于HMM模型的SQL注入攻击检测方法。
背景技术
SQL注入攻击是一种常用的Web攻击手段,其通常是以网站数据库为目标,利用Web应用程序对特殊字符串不完全过滤的缺陷,通过精心构造字符串达到非法访问网站数据库获取机密或者在网站数据库执行命令的目的。SQL注入攻击和正常用户的访问都是一样利用HTTP协议进行访问的,普通的防火墙无法对其进行拦截,攻击发生时网络流量和用户行为都没有明显的变化,攻击不易察觉,所以如何有效的进行SQL注入攻击的检测是很有必要的。已有的常用手段是采用正则匹配的传统方式根据关键字来识别SQL注入攻击。流程通常是将表单提交的信息同语法规则库进行匹配,从而根据SQL语法识别出SQL注入攻击。这种传统的方式匹配识别的精准度往往取决于语法库涵盖的范围,且无法解决未知问题,识别率低,不够智能,频繁的更新规则库也给系统的维护带来了诸多不便。
发明内容
为解决现有技术中存在的问题,本发明的目的是提供一种基于HMM模型的SQL注入攻击检测方法,本发明采用HMM隐马尔可夫模型检测SQL注入攻击,有效检测出SQL注入攻击,保证Web安全。
为实现上述目的,本发明采用的技术方案是:一种基于HMM模型的SQL注入攻击检测方法,包括:
步骤一、对SQL语句进行解析,包括词法、语法分析,得到SQL的语法树,然后遍历SQL语法树进行裁剪,使之变为规范语法树,得到SQL语句的主干结构;
步骤二、接着对SQL规范语法树进行特征提取,并对特征向量进行范化,最后对SQL语句进行分词,分词后统计每个词的频率,根据需要选择全部或者部分词作为哈希表键值,并依次对该哈希表进行编号,从而得到该哈希表对字符串的编码;
步骤三、将处理好的SQL语句输入到HMM模型中进行训练,学习SQL语法规则,HMM模型训练后得出一个阈值,等待新的用户输入新的SQL语句时,将用户输入的新数据放入HMM模型中并对其计算相似度打出分值,用打出的分值和训练的阈值进行比对,如果分值小于阈值则证明用户输入的是合法SQL语句;如果分值大于阈值则说明用户输入的是非法SQL语句,判定为SQL注入攻击。
作为一种优选的实施方式,所述步骤二具体如下:
根据规范语法树提取模式特征,令f(k)为第k条SQL语句的特征向量:
f(k)={fk1,fk2,…,fKL}(1<=k<=K)
其中,K为SQL注入攻击的训练样本总数,L为提取的特征个数,fk1为第k条SQL语句的第l个特征向量,根据分词原则,对以上特征进行范化:
S(k)={sk1,sk2,…,skL}
其中,Sk1为第k条SQL语句的特征向量的第l个向量对应的范化符号;
利用HASH算法对s(k)进行HASH计算,即
H(k)=HASH(s(k))
其中,H(k)为第k条SQL语句的序列化词集编码。
作为另一种优选的实施方式,所述步骤三具体包括以下步骤:
(1)设所有可能的状态集合为Q,Q={q1,q2,…,qN},其中,N是可能的状态数,t时刻的状态值为qt;
(2)设所有可能的观测的集合为V,V={v1,v2,…,vM},其中,M是可能的观测数,t时刻的观测值为vt;令I是长度为T的状态序列,I={i1,i2,…,iT},则对应的观测序列为O={o1,o2,…,oT};
(3)设初始状态概率向量为π,π=(πi),其中,πi=P(i1=qi),i=1,2,…,N,πi是时刻t=1处于状态qi的概率;
(4)设状态转移概率矩阵为A,A=[aij]N×N,其中,aij=P(it+1=qj|it=qi),i=1,2,…,N;j=1,2,…,N,aij是在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率;
(5)设观测概率转移矩阵为B,B=[bj(k)]M×M,其中,bj(k)=P(ot=vk|it=qj),k=1,2,…,M;j=1,2,…,N,bj(k)是在时刻t处于状态qj的条件下生成观测vk的概率;
隐马尔可夫模型由初始状态概率向量π、状态转移概率矩阵A和观测概率转移矩阵B决定,π和A决定了隐藏的马尔可夫链,B决定了如何从状态生成观测,因此隐马尔可夫模型λ可以用三元符号表示,即λ=(A,B,π);
将H(k)作为输入,输入到HMM模型中即可计算出预测概率和阈值Y和分值S;如果S<Y则证明输入是正常的,如果S>Y则证明输入是异常的,即可检测出SQL注入攻击。
作为另一种优选的实施方式,还包括以下步骤:
根据观测集合V,V={v1,v2,…,vM},自动化更新阈值,随着HMM模型不断的学习和数据量的增加,HMM模型可以不断学习新的阈值,从而使比对结果更加精确。
本发明解决问题的方法技术本质是利用HMM模型的高效,准确,且可以对未知的情况做出预测的特性,设计出一种可以将处理过后的SQL语句放入模型种检测,从而根据学习的阈值检测出SQL注入攻击。与现有的根据规则库匹配检测SQL注入攻击的方法相比,基于HMM模型的新型SQL注入攻击检测方法独有的技术特征是:1.对SQL语句进行解析,得到SQL语句主干结构,通过裁剪得到规范语法树;2.根据分词原则提取规范语法树关键特征,并对特征向量进行范化;3.计算HASH值;4.输入HMM模型进行训练,学习SQL语法,并得出阈值,通过阈值即可判断结果。特征1、2、3实现提取有效特征为实现高效识别打下基础,特征4利用HMM模型实现对未知语句的可预测性,并且有效提高识别准确率和识别效率。
本发明的有益效果是:
本发明针对现有根据规则库匹配传统检测SQL注入攻击的方法的无法解决未知问题,不够智能,需要频繁更新规则库的问题,发明设计了一种基于HMM隐马尔可夫模型的新型SQL注入攻击检测方法,解决了现有技术识别率低,无法解决未知问题,不够智能方便的问题,提高了SQL注入攻击检测的准确率。
附图说明
图1为本发明实施例的流程框图。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例
如图1所示,一种基于HMM模型的SQL注入攻击检测方法,包括:
步骤一、对SQL语句进行解析,包括词法、语法分析,得到SQL的语法树,然后遍历SQL语法树进行裁剪,使之变为规范语法树,得到SQL语句的主干结构;裁剪过程主要是将SQL语句中用户输入的部分,如数字以及字符串等用特征的字符进行替换,同时删除一些无用的节点,这一步处理能够提取出SQL语句中的关键部分,从而忽略对结果影响不大的数据,提高检测效率;
步骤二、接着对SQL规范语法树进行特征提取,并对特征向量进行范化,在提取过程中,为减少向量空间,需要把数字和字符等进行范化,最后对SQL语句进行分词,分词后统计每个词的频率,根据需要选择全部或者部分词作为哈希表键值,并依次对该哈希表进行编号,从而得到该哈希表对字符串的编码;此步旨在为HMM模型提供标准化的输入,让HMM模型训练出可靠的阈值,得出可靠结果,提高SQL注入攻击检测的准确率。
该步骤具体如下:
根据规范语法树提取模式特征,令f(k)为第k条SQL语句的特征向量:
f(k)={fk1,fk2,…,fKL}(1<=k<=K)
其中,K为SQL注入攻击的训练样本总数,L为提取的特征个数,fk1为第k条SQL语句的第l个特征向量,根据分词原则,对以上特征进行范化:
S(k)={sk1,sk2,…,skL}
其中,Sk1为第k条SQL语句的特征向量的第l个向量对应的范化符号;
利用HASH算法对s(k)进行HASH计算,即
H(k)=HASH(s(k))
其中,H(k)为第k条SQL语句的序列化词集编码。
步骤三、将处理好的SQL语句输入到HMM模型中进行训练,学习SQL语法规则,HMM模型训练后得出一个阈值,等待新的用户输入新的SQL语句时,将用户输入的新数据放入HMM模型中并对其计算相似度打出分值,用打出的分值和训练的阈值进行比对,如果分值小于阈值则证明用户输入的是合法SQL语句;如果分值大于阈值则说明用户输入的是非法SQL语句,判定为SQL注入攻击,这一步采用HMM算法模型进行训练和预测,对比其他算法效率更高,准确率也有所提高,从而综合提高了SQL注入攻击的识别率。
该步骤具体包括以下步骤:
(1)设所有可能的状态集合为Q,Q={q1,q2,…,qN},其中,N是可能的状态数,t时刻的状态值为qt;
(2)设所有可能的观测的集合为V,V={v1,v2,…,vM},其中,M是可能的观测数,t时刻的观测值为vt;令I是长度为T的状态序列,I={i1,i2,…,iT},则对应的观测序列为O={o1,o2,…,oT};
(3)设初始状态概率向量为π,π=(πi),其中,πi=P(i1=qi),i=1,2,…,N,πi是时刻t=1处于状态qi的概率;
(4)设状态转移概率矩阵为A,A=[aij]N×N,其中,aij=P(it+1=qj|it=qi),i=1,2,…,N;j=1,2,…,N,aij是在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率;
(5)设观测概率转移矩阵为B,B=[bj(k)]M×M,其中,bj(k)=P(ot=vk|it=qj),k=1,2,…,M;j=1,2,…,N,bj(k)是在时刻t处于状态qj的条件下生成观测vk的概率;
隐马尔可夫模型由初始状态概率向量π、状态转移概率矩阵A和观测概率转移矩阵B决定,π和A决定了隐藏的马尔可夫链,B决定了如何从状态生成观测,因此隐马尔可夫模型λ可以用三元符号表示,即λ=(A,B,π);
将H(k)作为输入,输入到HMM模型中即可计算出预测概率和阈值Y和分值S;如果S<Y则证明输入是正常的,如果S>Y则证明输入是异常的,即可检测出SQL注入攻击;
(6)根据观测集合V,V={v1,v2,…,vM},自动化更新阈值,随着HMM模型不断的学习和数据量的增加,HMM模型可以不断学习新的阈值,从而使比对结果更加精确。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (4)
1.一种基于HMM模型的SQL注入攻击检测方法,其特征在于,包括:
步骤一、对SQL语句进行解析,包括词法、语法分析,得到SQL的语法树,然后遍历SQL语法树进行裁剪,使之变为规范语法树,得到SQL语句的主干结构;
步骤二、接着对SQL规范语法树进行特征提取,并对特征向量进行范化,最后对SQL语句进行分词,分词后统计每个词的频率,根据需要选择全部或者部分词作为哈希表键值,并依次对该哈希表进行编号,从而得到该哈希表对字符串的编码;
步骤三、将处理好的SQL语句输入到HMM模型中进行训练,学习SQL语法规则,HMM模型训练后得出一个阈值,等待新的用户输入新的SQL语句时,将用户输入的新数据放入HMM模型中并对其计算相似度打出分值,用打出的分值和训练的阈值进行比对,如果分值小于阈值则证明用户输入的是合法SQL语句;如果分值大于阈值则说明用户输入的是非法SQL语句,判定为SQL注入攻击。
2.根据权利要求1所述的基于HMM模型的SQL注入攻击检测方法,其特征在于,所述步骤二具体如下:
根据规范语法树提取模式特征,令f(k)为第k条SQL语句的特征向量:
f(k)={fk1,fk2,…,fKL}(1<=k<=K)
其中,K为SQL注入攻击的训练样本总数,L为提取的特征个数,fk1为第k条SQL语句的第l个特征向量,根据分词原则,对以上特征进行范化:
S(k)={sk1,sk2,…,skL}
其中,Sk1为第k条SQL语句的特征向量的第l个向量对应的范化符号;
利用HASH算法对s(k)进行HASH计算,即
H(k)=HASH(s(k))
其中,H(k)为第k条SQL语句的序列化词集编码。
3.根据权利要求2所述的基于HMM模型的SQL注入攻击检测方法,其特征在于,所述步骤三具体包括以下步骤:
(1)设所有可能的状态集合为Q,Q={q1,q2,…,qN},其中,N是可能的状态数,t时刻的状态值为qt;
(2)设所有可能的观测的集合为V,V={v1,v2,…,vM},其中,M是可能的观测数,t时刻的观测值为vt;令I是长度为T的状态序列,I={i1,i2,…,iT},则对应的观测序列为O={o1,o2,…,oT};
(3)设初始状态概率向量为π,π=(πi),其中,πi=P(i1=qi),i=1,2,…,N,πi是时刻t=1处于状态qi的概率;
(4)设状态转移概率矩阵为A,A=[aij]N×N,其中,aij=P(it+1=qj|it=qi),i=1,2,…,N;j=1,2,…,N,aij是在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率;
(5)设观测概率转移矩阵为B,B=[bj(k)]M×M,其中,bj(k)=P(ot=vk|it=qj),k=1,2,…,M;j=1,2,…,N,bj(k)是在时刻t处于状态qj的条件下生成观测vk的概率;
隐马尔可夫模型由初始状态概率向量π、状态转移概率矩阵A和观测概率转移矩阵B决定,π和A决定了隐藏的马尔可夫链,B决定了如何从状态生成观测,因此隐马尔可夫模型λ可以用三元符号表示,即λ=(A,B,π);
将H(k)作为输入,输入到HMM模型中即可计算出预测概率和阈值Y和分值S;如果S<Y则证明输入是正常的,如果S>Y则证明输入是异常的,即可检测出SQL注入攻击。
4.根据权利要求3所述的基于HMM模型的SQL注入攻击检测方法,其特征在于,还包括以下步骤:
根据观测集合V,V={v1,v2,…,vM},自动化更新阈值,随着HMM模型不断的学习和数据量的增加,HMM模型可以不断学习新的阈值,从而使比对结果更加精确。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788809.0A CN111917788A (zh) | 2020-08-07 | 2020-08-07 | 基于hmm模型的sql注入攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010788809.0A CN111917788A (zh) | 2020-08-07 | 2020-08-07 | 基于hmm模型的sql注入攻击检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111917788A true CN111917788A (zh) | 2020-11-10 |
Family
ID=73283265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010788809.0A Pending CN111917788A (zh) | 2020-08-07 | 2020-08-07 | 基于hmm模型的sql注入攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111917788A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783916A (zh) * | 2021-01-04 | 2021-05-11 | 广州海量数据库技术有限公司 | Sql语句审核方法及装置、存储介质及电子设备 |
CN113572732A (zh) * | 2021-06-22 | 2021-10-29 | 浙江工业大学 | 一种基于vae和聚合hmm的多步攻击建模和预测方法 |
CN115114374A (zh) * | 2022-06-27 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392016A (zh) * | 2017-07-07 | 2017-11-24 | 四川大学 | 一种基于代理的Web数据库攻击行为检测系统 |
CN109194677A (zh) * | 2018-09-21 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种sql注入攻击检测方法、装置及设备 |
US20200048634A1 (en) * | 2018-08-09 | 2020-02-13 | Washington University | Methods to modulate protein translation efficiency |
-
2020
- 2020-08-07 CN CN202010788809.0A patent/CN111917788A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392016A (zh) * | 2017-07-07 | 2017-11-24 | 四川大学 | 一种基于代理的Web数据库攻击行为检测系统 |
US20200048634A1 (en) * | 2018-08-09 | 2020-02-13 | Washington University | Methods to modulate protein translation efficiency |
CN109194677A (zh) * | 2018-09-21 | 2019-01-11 | 郑州云海信息技术有限公司 | 一种sql注入攻击检测方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
杨连群等: "《基于隐马尔可夫模型的新型SQL注入攻击检测方法》", 《信息网络安全》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783916A (zh) * | 2021-01-04 | 2021-05-11 | 广州海量数据库技术有限公司 | Sql语句审核方法及装置、存储介质及电子设备 |
CN113572732A (zh) * | 2021-06-22 | 2021-10-29 | 浙江工业大学 | 一种基于vae和聚合hmm的多步攻击建模和预测方法 |
CN113572732B (zh) * | 2021-06-22 | 2023-04-18 | 浙江工业大学 | 一种基于vae和聚合hmm的多步攻击建模和预测方法 |
CN115114374A (zh) * | 2022-06-27 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 事务执行方法、装置、计算设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114610515B (zh) | 基于日志全语义的多特征日志异常检测方法及系统 | |
CN110414219B (zh) | 基于门控循环单元与注意力机制的注入攻击检测方法 | |
CN108304372B (zh) | 实体提取方法和装置、计算机设备和存储介质 | |
WO2022134833A1 (zh) | 语音信号的处理方法、装置、设备及存储介质 | |
CN103631834B (zh) | 发掘可疑帐号的分身群组的方法与系统 | |
CN109547423B (zh) | 一种基于机器学习的web恶意请求深度检测系统及方法 | |
CN111917788A (zh) | 基于hmm模型的sql注入攻击检测方法 | |
CN109271524B (zh) | 知识库问答系统中的实体链接方法 | |
CN113033183B (zh) | 一种基于统计量与相似性的网络新词发现方法及系统 | |
CN106933800A (zh) | 一种金融领域的事件句抽取方法 | |
CN113705237A (zh) | 融合关系短语知识的关系抽取方法、装置和电子设备 | |
CN109614493B (zh) | 一种基于监督词向量的文本缩写识别方法及系统 | |
CN109948144A (zh) | 一种基于课堂教学情境的教师话语智能处理的方法 | |
CN112633012A (zh) | 一种基于实体类型匹配的未登录词替换方法 | |
CN108932229A (zh) | 一种金融新闻倾向性分析方法 | |
CN111209373A (zh) | 基于自然语义的敏感文本识别方法和装置 | |
CN117633811A (zh) | 一种多视角特征融合的代码漏洞检测方法 | |
CN114265931A (zh) | 基于大数据文本挖掘的消费者政策感知分析方法及系统 | |
CN111538639B (zh) | 一种日志解析方法 | |
CN116192537B (zh) | 一种apt攻击报告事件抽取方法、系统和存储介质 | |
CN118013032A (zh) | 一种sql注入语句识别的方法 | |
CN114662486B (zh) | 一种基于机器学习的突发事件敏感词检测方法 | |
CN118152570A (zh) | 一种智能化的文本分类方法 | |
Selamat et al. | Arabic script web page language identifications using decision tree neural networks | |
CN117938430A (zh) | 基于Bert模型的Webshell检测方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201110 |
|
RJ01 | Rejection of invention patent application after publication |