【技术实现步骤摘要】
一种SQL注入检测方法、系统及电子设备和存储介质
本申请涉及计算机
,更具体地说,涉及一种SQL注入检测方法、系统及一种电子设备和一种计算机可读存储介质。
技术介绍
SQL注入(英文全称:SQLinjection),是发生于应用程序数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些指令就会被数据库服务器误认为是正常的SQL指令而运行,使得服务器遭到破坏或是入侵。在现有技术的一种方案中,采用基于正则规则的SQL注入检测方法,当前主流的防火墙均使用该方法。然而,由于SQL语句文法的复杂程度和正则表达式的表达能力有限,基于正则规则的方法的漏报率和误报率较高。在现有技术的另一种方案中,采用基于文法规则的SQL注入检测方法。然而,文法规则需要依赖人工提取,虽然上下文无关语言本身的表达能力强于正则表达式,但是依赖人工进行规则的提取,因此存在更新慢、响应慢、出错率高等多项问题。因此,如何在不依赖于人工提取规则的前提下,降低SQL注入检测的漏报率和误报率是 ...
【技术保护点】
1.一种SQL注入检测方法,其特征在于,包括:/n获取包含SQL注入的流量数据和正常流量数据,并将所有所述包含SQL注入的流量数据组成黑数据集,将所有所述正常流量数据组成白数据集;/n将所述黑数据集和所述白数据集中的每条流量数据转换为token序列,并抽取所述token序列的N元组作为语法指纹;其中,N为正整数;/n提取在所述黑数据集中出现概率大于第一预设值且在所述白数据集中出现概率小于第二预设值的语法指纹作为语法指纹库,以便利用所述语法指纹库进行SQL注入检测。/n
【技术特征摘要】
1.一种SQL注入检测方法,其特征在于,包括:
获取包含SQL注入的流量数据和正常流量数据,并将所有所述包含SQL注入的流量数据组成黑数据集,将所有所述正常流量数据组成白数据集;
将所述黑数据集和所述白数据集中的每条流量数据转换为token序列,并抽取所述token序列的N元组作为语法指纹;其中,N为正整数;
提取在所述黑数据集中出现概率大于第一预设值且在所述白数据集中出现概率小于第二预设值的语法指纹作为语法指纹库,以便利用所述语法指纹库进行SQL注入检测。
2.根据权利要求1所述SQL注入检测方法,其特征在于,抽取所述token序列的N元组作为语法指纹,包括:
对所述token序列进行折叠,并抽取折叠后的token序列的N元组作为所述语法指纹。
3.根据权利要求2所述SQL注入检测方法,其特征在于,对所述token序列进行折叠,包括:
将所述流量数据中语义上等价的关键字在所述token序列中对应的token关键字进行折叠。
4.根据权利要求3所述SQL注入检测方法,其特征在于,对所述token序列进行折叠之前,还包括:
将所述流量数据中的目标关键字转换为所述token序列中的目标token;其中,所述目标关键字包括注释、数学表达式和引用字符串中的任一项或任几项的组合。
5.根据权利要求2所述SQL注入检测方法,其特征在于,所述抽取折叠后的token序列的N元组作为所述语法指纹,包括:
抽取折叠后的token序列的N元组作为候选语法指纹,并抽取所述候选语法指纹中包含关键token的语法指纹作为所述语法指纹。
6.根据权利要求1所述SQL注入检测方法,其特征在于,利用所述语法指纹库进行SQL注入检测,包括:
获取用户流量,并对所述用户流量进行解码操作;
当解码后的流量命中所述语法指纹库时,判定所述用户流量为SQL注入攻击。
7.根据权利要求1至5中任一项所述SQL注入检测方法,其特征在于,利用所述语法指纹库进行SQL注入检测,包括:
利用基于正则规则的引擎和所述语法指纹库进行SQL注入检测。
8.根据权利要求7所述SQL注入检测方法,其特征在于,所述基于正则规则的引擎包括Snort引擎。
9.根据权利要求7所述SQL注入检测方法,其特征在于,所述利用基于正则规则的引擎和所述语法指纹库进行SQL注入检测,包括:
获取用户流量,并对所述用户流量进行解码操作;
当解码后的流量命中所述基于正则规则的引擎或所述语法指纹库时,判定所述用户流量为SQL注入攻击。
10.根据权利要求9所述SQL注入检测方法,其特征在于,所述当解码后的流量命中所述基于正则规则的引擎或所述语法指纹库时,判定所述用户流量为SQL注入攻击,包括:
判断所述解码后的流量是否命中所述基于正则规则的引擎;
若没有命中所述基于正则规则的引擎,则判断所述解码后的流量是否命中所述语法指纹库;
若命中所述语法指纹库,则判定所述用户流量为SQL注入攻击。
11.一种SQL注入检测系统,其特征在于,包括:
获取模块,用于获取包含SQL注入的流量数据和正常流量数据,并将所有所述包含SQL注入的流量数据组成黑数据集,将所有所述正常流量数据组成白数据集;
转换模块,用于将所述黑数据集和所述白数据集中的每条流量数据转换为token序列,并抽取所述token序列的N元组作为语法指纹;其中,N为正整数;
提取模块,用于提...
【专利技术属性】
技术研发人员:章明星,
申请(专利权)人:深信服科技股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。