一种攻击检测方法、装置、设备及存储介质制造方法及图纸

技术编号:36897945 阅读:72 留言:0更新日期:2023-03-18 09:18
本申请公开了一种攻击检测方法、装置、电子设备及计算机可读存储介质,该方法包括:提取HTTP请求报文中的有效SQL语句;对有效SQL语句进行语法语义分析以获取语法语义特征;判断语法语义特征是否与SQL攻击特征匹配;若语法语义特征与所述SQL攻击特征匹配,则判定HTTP请求报文被攻击注入。本申请能够精确提取出请求报文中的有效SQL语句,并以SQL语法语义分析得到的语法语义特征为依据,准确判断是否存在SQL攻击,可有效减少对采用文本变形手段的SQL注入情况的漏检,提高对SQL注入的检测精确率,提高网络运行安全。提高网络运行安全。提高网络运行安全。

【技术实现步骤摘要】
一种攻击检测方法、装置、设备及存储介质


[0001]本申请涉及网络安全
,特别涉及一种攻击检测方法、装置、电子设备及计算机可读存储介质。

技术介绍

[0002]SQL注入是目前一种普遍的Web应用安全漏洞,具体是指攻击者通过在web应用程序中事先定义好的查询语句的结尾上添加额外的恶意SQL语句,在管理员不知情的情况下实现非法操作,例如欺骗数据库服务器执行非授权的数据查询等。
[0003]这类漏洞使得攻击者可以对数据库执行未授权的任意查询命令、安装命令等操作,具有较高的安全风险。当前传统的检测方法主要依靠人工提取本文特征,编写相应的规则来过滤掉这些含有攻击的流量。但是攻击者可以利用SQL语言高度灵活的语法特性,精心设计各种文本变形方式来绕过规则库躲避检测。
[0004]鉴于此,提供一种解决上述技术问题的方案,已经是本领域技术人员所亟需关注的。

技术实现思路

[0005]本申请的目的在于提供一种攻击检测方法、装置、电子设备及计算机可读存储介质,以便有效减少一些对变形文本的SQL注入的漏检,提高对SQL注入漏洞的检测准确率。
[0006]为解决上述技术问题,一方面,本申请公开了一种攻击检测方法,包括:
[0007]提取HTTP请求报文中的有效SQL语句;
[0008]对所述有效SQL语句进行语法语义分析以获取语法语义特征;
[0009]判断所述语法语义特征是否与SQL攻击特征匹配;
[0010]若所述语法语义特征与所述SQL攻击特征匹配,则判定所述HTTP请求报文被攻击注入。
[0011]可选地,所述提取HTTP请求报文中的有效SQL语句,包括:
[0012]从所述HTTP请求报文中解析出属于目标类型的文本,所述目标类型为存在SQL注入风险的文本类型;
[0013]依据SQL语句特征及所述文本中的参数识别有效SQL语句。
[0014]可选地,所述SQL语句特征包括特定SQL字符串特征和/或SQL注释特征,所述依据SQL语句特征及所述文本中的参数识别有效SQL语句,包括:
[0015]以词素为单位对所述参数进行分词处理得到分词结果;
[0016]判断所述分词结果是否符合所述特定SQL字符串特征和/或所述SQL注释特征;
[0017]若所述分词结果符合所述特定SQL字符串特征和/或所述SQL注释特征,则将所述参数中的SQL语句识别为有效SQL语句。
[0018]可选地,所述依据SQL语句特征及所述文本中的参数识别有效SQL语句,包括:
[0019]判断所述参数中的SQL语句是否通顺;
[0020]若所述参数中的SQL语句通顺,则将所述参数中的SQL语句识别为有效SQL语句。
[0021]可选地,所述判断所述参数中的SQL语句是否通顺,包括:
[0022]针对各种类SQL方言,分别将对应的文法规则集展开到词素级别以生成标准片段集;
[0023]判断所述参数的分词结果是否满足预设条件,所述预设条件为每连续N个词素均对应于同一种类SQL方言的一个标准片段;
[0024]若所述参数的分词结果满足预设条件,则判定所述参数的SQL语句通顺。
[0025]可选地,所述对所述有效SQL语句进行语法语义分析以获取语法语义特征,包括:
[0026]根据SQL基础语法对所述有效SQL语句进行语法语义解析以获取语法语义特征;所述SQL基础语法为各种类SQL方言均适用的语法;
[0027]若解析失败,则识别与所述有效SQL语句对应的目标种类SQL方言,根据与所述目标种类SQL方言对应的SQL方言语法对所述有效SQL语句进行语法语义解析以获取语法语义特征;所述SQL方言语法为本种类SQL方言区别于其他种类SQL方言所单独适用的语法。
[0028]可选地,所述语法语义特征包括如下任意一项或组合:
[0029]函数调用特征、编码格式特征、字符串文本特征。
[0030]又一方面,本申请公开了一种攻击检测装置,包括:
[0031]HTTP解析模块,用于提取HTTP请求报文中的有效SQL语句;
[0032]语义分析模块,用于对所述有效SQL语句进行语法语义分析以获取语法语义特征;
[0033]判黑模块,用于判断所述语法语义特征是否与SQL攻击特征匹配;若所述语法语义特征与所述SQL攻击特征匹配,则判定所述HTTP请求报文被攻击注入。
[0034]可选地,所述HTTP解析模块具体用于:
[0035]从所述HTTP请求报文中解析出属于目标类型的文本,所述目标类型为存在SQL注入风险的文本类型;依据SQL语句特征及所述文本中的参数识别有效SQL语句。
[0036]可选地,所述SQL语句特征包括特定SQL字符串特征和/或SQL注释特征,所述HTTP解析模块在依据SQL语句特征及所述文本中的参数识别有效SQL语句时,具体用于:
[0037]以词素为单位对所述参数进行分词处理得到分词结果;判断所述分词结果是否符合所述特定SQL字符串特征和/或所述SQL注释特征;若所述分词结果符合所述特定SQL字符串特征和/或所述SQL注释特征,则将所述参数中的SQL语句识别为有效SQL语句。
[0038]可选地,所述HTTP解析模块在依据SQL语句特征及所述文本中的参数识别有效SQL语句时,,具体用于:
[0039]判断所述参数中的SQL语句是否通顺;若所述参数中的SQL语句通顺,则将所述参数中的SQL语句识别为有效SQL语句。
[0040]可选地,所述HTTP解析模块在判断所述参数中的SQL语句是否通顺时,具体用于:
[0041]针对各种类SQL方言,分别将对应的文法规则集展开到词素级别以生成标准片段集;判断所述参数的分词结果是否满足预设条件,所述预设条件为每连续N个词素均对应于同一种类SQL方言的一个标准片段;若所述参数的分词结果满足预设条件,则判定所述参数的SQL语句通顺。
[0042]可选地,所述语义分析模块在对所述有效SQL语句进行语法语义分析以获取语法语义特征时,具体用于:
[0043]根据SQL基础语法对所述有效SQL语句进行语法语义解析以获取语法语义特征;所述SQL基础语法为各种类SQL方言均适用的语法;
[0044]若解析失败,则识别与所述有效SQL语句对应的目标种类SQL方言,根据与所述目标种类SQL方言对应的SQL方言语法对所述有效SQL语句进行语法语义解析以获取语法语义特征;所述SQL方言语法为本种类SQL方言区别于其他种类SQL方言所单独适用的语法。
[0045]可选地,所述语法语义特征包括如下任意一种或组合:
[0046]函数调用特征、编码格式特征、字符串文本特征。
[0047]又一方面,本申请还公开了一种电子设备,包括:
[0048]存储器,用于存储计算机程序;
[0049]处理器,用于执行所述计算机程序以实现本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种攻击检测方法,其特征在于,包括:提取HTTP请求报文中的有效SQL语句;对所述有效SQL语句进行语法语义分析以获取语法语义特征;判断所述语法语义特征是否与SQL攻击特征匹配;若所述语法语义特征与所述SQL攻击特征匹配,则判定所述HTTP请求报文被攻击注入。2.根据权利要求1所述的攻击检测方法,其特征在于,所述提取HTTP请求报文中的有效SQL语句,包括:从所述HTTP请求报文中解析出属于目标类型的文本,所述目标类型为存在SQL注入风险的文本类型;依据SQL语句特征及所述文本中的参数识别有效SQL语句。3.根据权利要求2所述的攻击检测方法,其特征在于,所述SQL语句特征包括特定SQL字符串特征和/或SQL注释特征,所述依据SQL语句特征及所述文本中的参数识别有效SQL语句,包括:以词素为单位对所述参数进行分词处理得到分词结果;判断所述分词结果是否符合所述特定SQL字符串特征和/或所述SQL注释特征;若所述分词结果符合所述特定SQL字符串特征和/或所述SQL注释特征,则将所述参数中的SQL语句识别为有效SQL语句。4.根据权利要求2所述的攻击检测方法,其特征在于,所述依据SQL语句特征及所述文本中的参数识别有效SQL语句,包括:判断所述参数中的SQL语句是否通顺;若所述参数中的SQL语句通顺,则将所述参数中的SQL语句识别为有效SQL语句。5.根据权利要求4所述的攻击检测方法,其特征在于,所述判断所述参数中的SQL语句是否通顺,包括:针对各种类SQL方言,分别将对应的文法规则集展开到词素级别以生成标准片段集;判断所述参数的分词结果是否满足预设条件,所述预设条件为每连续N个词...

【专利技术属性】
技术研发人员:兰家旺杨荣海
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:

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

1