SQL注入拦截检测方法、装置、设备及计算机可读介质制造方法及图纸

技术编号:18951173 阅读:7 留言:0更新日期:2018-09-15 13:26
本发明专利技术提出一种SQL注入拦截检测方法,包括:根据SQL语法树规则对接收的SQL指令进行检测,判断接收的SQL指令是否为恶意指令;若接收的SQL指令没有命中语法树规则,则通过分析模型对接收的SQL指令进行分析,判断接收的SQL指令是否为潜在恶意指令。本发明专利技术实施例结合了在线检测和离线分析两种方式,可以对入侵的恶意SQL命令进行拦截,还可以通过离线分析发现并补充规则的漏洞。

SQL injection intercepting detection method, device, device and computer-readable medium

The invention provides a method for detecting SQL injection interception, which includes: detecting received SQL instructions according to SQL syntax tree rules to determine whether the received SQL instructions are malicious instructions; and judging the received SQL instructions by analyzing the received SQL instructions if the received SQL instructions do not hit the syntax tree rules. Is it a potential malicious command? The embodiment of the invention combines on-line detection and off-line analysis, which can intercept malicious SQL commands and discover and supplement vulnerabilities of rules by off-line analysis.

【技术实现步骤摘要】
SQL注入拦截检测方法、装置、设备及计算机可读介质
本专利技术涉及网络安全
,尤其涉及一种SQL注入拦截检测方法及装置、设备和计算机可读介质。
技术介绍
目前互联网企业面临大量的黑客攻击,其中相当大的比例是SQL注入攻击。目前的SQL(StructuredQueryLanguage,结构化查询语言)注入拦截主要是靠WAF(WebApplicationFirewall,网站应用级入侵防御系统)进行拦截。WAF中利用正则进行拦截和检测,然而由于很多复杂情况难以描述,因此正则规则单纯基于文本特性的误报率高。
技术实现思路
本专利技术实施例提供一种SQL注入拦截检测方法、装置、设备及计算机可读介质,以解决或缓解现有技术中的一个或多个技术问题。第一方面,本专利技术实施例提供了一种SQL注入拦截检测方法,包括:根据SQL语法树规则对接收的SQL指令进行检测,判断接收的SQL指令是否为恶意指令;若接收的SQL指令没有命中语法树规则,则通过分析模型对接收的SQL指令进行分析,判断接收的SQL指令是否为潜在恶意指令。结合第一方面,本专利技术在第一方面的第一种实施方式中,所述根据SQL语法树规则对接收的SQL指令进行检测,判断接收的SQL指令是否为恶意指令的步骤中,包括:将接收的SQL指令中的SQL语句解析成语法树结构;判断该语法树结构是否与黑名单中的语法树的特征匹配;若是,则进行拦截。结合第一方面,本专利技术在第一方面的第二种实施方式中,所述通过分析模型对接收的SQL指令进行分析,判断接收的SQL指令是否为潜在恶意指令的步骤中,包括:将接收的SQL指令根据语法规则生成向量;计算接收的SQL指令的向量与恶意SQL指令的向量样本的相似度;若相似度达到设定阈值,则判定接收的SQL指令为恶意指令。结合第一方面或第一方面的任意一种实施方式,本专利技术在第一方面的第三种实施方式中,还包括步骤:当所述分析模型判定接收的SQL指令为恶意指令时,根据所述接收的SQL指令在黑名单中增加恶意SQL指令的语法结构规则。第二方面,本专利技术实施例提供了一种SQL注入拦截检测装置,包括:检测模块,用于根据SQL语法树规则对接收的SQL指令进行检测,判断接收的SQL指令是否为恶意指令;分析模块,用于若接收的SQL指令没有命中语法树规则,则通过分析模型对接收的SQL指令进行分析,判断接收的SQL指令是否为潜在恶意指令。结合第二方面,本专利技术在第二方面的第一种实施方式中,所述检测模块包括:解析子模块,用于将接收的SQL指令中的SQL语句解析成语法树结构;拦截子模块,用于判断该语法树结构是否与黑名单中的语法树的特征匹配;若是,则进行拦截。结合第二方面,本专利技术在第二方面的第二种实施方式中,所述分析模块包括:向量生成子模块,用于将接收的SQL指令根据语法规则生成向量;相似度计算子模块,用于计算接收的SQL指令的向量与恶意SQL指令的向量样本的相似度;若相似度达到设定阈值,则判定接收的SQL指令为恶意指令。结合第二方面或第二方面的任意一种实施方式,本专利技术在第二方面的第三种实施方式中,还包括:黑名单更新模块,用于当所述分析模型判定接收的SQL指令为恶意指令时,根据所述接收的SQL指令在黑名单中增加恶意SQL指令的语法结构规则。所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,SQL注入拦截检测装置的结构中包括处理器和存储器,所述存储器用于存储支持SQL注入拦截检测装置执行上述第一方面中SQL注入拦截检测方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述SQL注入拦截检测装置还可以包括通信接口,用于SQL注入拦截检测装置与其他设备或通信网络通信。第三方面,本专利技术实施例提供了一种计算机可读介质,用于存储SQL注入拦截检测装置所用的计算机软件指令,其包括用于执行上述第一方面的SQL注入拦截检测方法所涉及的程序。本专利技术实施例结合了在线检测和离线分析两种方式,可以对入侵的恶意SQL命令进行拦截,还可以通过离线分析发现并补充规则的漏洞。上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本专利技术进一步的方面、实施方式和特征将会是容易明白的。附图说明在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本专利技术公开的一些实施方式,而不应将其视为是对本专利技术范围的限制。图1为本专利技术一实施例的SQL注入拦截检测方法的流程图;图2为本专利技术一实施例的步骤S110的流程图;图3为本专利技术一实施例的步骤S120的流程图;图4为本专利技术一实施例的SQL注入拦截检测方法的应用示意图;图5为本专利技术另一实施例的SQL注入拦截检测装置的框图;图6为本专利技术一实施例的SQL注入拦截检测设备的框图。具体实施方式在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本专利技术的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。本专利技术实施例主要提供了一种通SQL注入拦截检测的方法及装置,下面分别通过以下实施例进行技术方案的展开描述。请参阅图1,其为本专利技术实施例一的SQL注入拦截检测方法的流程图。本实施例一提供了一种SQL注入拦截检测方法,包括以下步骤:S110:根据SQL语法树规则对接收的SQL指令进行检测,判断接收的SQL指令是否为恶意指令。若是,可以对接收的SQL指令进行拦截。在本专利技术实施例中,SQL语法树规则是一种SQL转换规则,用于将SQL指令转化为对应的语法结构。S120:若接收的SQL指令没有命中语法树规则,则通过分析模型对接收的SQL指令进行分析,判断接收的SQL指令是否为潜在恶意指令。在一种可能的实现方式中,如图2所示,所述步骤S110中具体包括:S111:将接收的SQL指令中的SQL语句解析成语法树结构。例如,接收的SQL语句为“select*fromT1whereid=‘4’LIKE‘%”。将其解析为语法树结构为“const_fieldLIKEconst_field”。S112:判断该语法树结构是否与黑名单中的语法树的特征匹配;若是,则进行拦截。例如,根据正常的SQL语句,可以设定的规则:LIKE操作符两边的子树不可以是常量。因此,将LIKE两边的子树为常量的添加至黑名单中。依据这个规则,则接收的SQL语句与黑名单中的语法树特征匹配,因此将其拦截。所述的分析模型中可以存储大量的正确SQL样本集合和恶意注入SQL样本集合,通过分析接收的SQL指令的相似度进行判断。在一种可能的实现方式中,如图3所示,所述步骤S120中具体包括:S121:将接收的SQL指令根据语法规则生成向量。SQL指令可以按照YACC(YetAnotherCompilerCompiler,生成语法分析器)语法定义文件中的语法规则为下标生成向量(vector)。比如SQL语法文件中由1000条规则,则生成的向量的维度为1000维。S122:计算接收的SQL指令的向量与恶意SQL指令的向量样本本文档来自技高网...

【技术保护点】
1.一种SQL注入拦截检测方法,其特征在于,包括:根据SQL语法树规则对接收的SQL指令进行检测,判断接收的SQL指令是否为恶意指令;若接收的SQL指令没有命中语法树规则,则通过分析模型对接收的SQL指令进行分析,判断接收的SQL指令是否为潜在恶意指令。

【技术特征摘要】
1.一种SQL注入拦截检测方法,其特征在于,包括:根据SQL语法树规则对接收的SQL指令进行检测,判断接收的SQL指令是否为恶意指令;若接收的SQL指令没有命中语法树规则,则通过分析模型对接收的SQL指令进行分析,判断接收的SQL指令是否为潜在恶意指令。2.根据权利要求1所述的SQL注入拦截检测方法,其特征在于,所述根据SQL语法树规则对接收的SQL指令进行检测,判断接收的SQL指令是否为恶意指令的步骤中,包括:将接收的SQL指令中的SQL语句解析成语法树结构;判断该语法树结构是否与黑名单中的语法树的特征匹配;若是,则进行拦截。3.根据权利要求1所述的SQL注入拦截检测方法,其特征在于,所述通过分析模型对接收的SQL指令进行分析,判断接收的SQL指令是否为潜在恶意指令的步骤中,包括:将接收的SQL指令根据语法规则生成向量;计算接收的SQL指令的向量与恶意SQL指令的向量样本的相似度;若相似度达到设定阈值,则判定接收的SQL指令为恶意指令。4.根据权利要求1至3中任一项所述的SQL注入拦截检测方法,其特征在于,还包括步骤:当所述分析模型判定接收的SQL指令为恶意指令时,根据所述接收的SQL指令在黑名单中增加恶意SQL指令的语法结构规则。5.一种SQL注入拦截检测装置,其特征在于,包括:检测模块,用于根据SQL语法树规则对接收的SQL指令进行检测,判断接收的SQL指令是否为恶意指令;分析模块,...

【专利技术属性】
技术研发人员:陈辉黄强王天宇刘昭毅
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

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

1