[发明专利]SQL注入攻击的检测方法及装置、系统有效
申请号: | 201610207541.0 | 申请日: | 2016-04-05 |
公开(公告)号: | CN107292170B | 公开(公告)日: | 2021-06-22 |
发明(设计)人: | 黄妍 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京博浩百睿知识产权代理有限责任公司 11134 | 代理人: | 宋子良 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sql 注入 攻击 检测 方法 装置 系统 | ||
1.一种结构化查询语言SQL注入攻击的检测方法,其特征在于,包括:
对待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息,其中,所述语法规则信息包括:语法元素以及所述语法元素的上下文信息;
将所有所述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,所述SQL注入规则为对SQL注入语句进行解析后得到的特征;
统计所有所述语法规则信息与SQL注入规则集匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定所述待测SQL语句为SQL注入攻击,其中,所述预设阈值为与所述SQL注入规则所属类型对应的阈值;
其中,所述SQL注入规则集为按照以下规则对所述SQL注入规则进行分类后得到的规则集:按照所述SQL注入规则的等级对所述SQL注入规则集中的SQL注入规则进行分类,其中,所述等级越高,与所述等级对应的SQL注入规则在SQL注入攻击中出现的概率越大。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述统计数量小于所述预设阈值时,将所述待测SQL语句与历史SQL集中的历史SQL语句进行匹配,其中,所述历史SQL语句为数据库中已经执行过的SQL语句;
在所述历史SQL集中存在与所述待测SQL语句匹配的历史SQL语句时,确定所述待测SQL语句为非SQL注入攻击。
3.根据权利要求2所述的方法,其特征在于,在所述统计数量小于所述预设阈值,且在所述历史SQL集中不存在与待测SQL语句匹配的历史SQL语句时,所述方法还包括:
生成用于指示需要对所述待测SQL语句的类型进行重新判断的告警信息。
4.根据权利要求2所述的方法,其特征在于,将所述待测SQL语句与历史SQL集中的历史SQL语句进行匹配,包括:
将所述待测SQL语句中的已被赋值的参数变量修改为未被赋值的参数变量,得到SQL模板语句;
将所述SQL模板语句与所述历史SQL集中的历史SQL语句进行匹配。
5.根据权利要求2所述的方法,其特征在于,确定所述待测SQL语句为SQL注入攻击之前,所述方法还包括:
确定所述历史SQL集中不存在与所述待测SQL语句匹配的历史SQL语句。
6.根据权利要求1至5中任一项所述的方法,其特征在于,对所述待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息之前,所述方法还包括:
获取应用程序提交给数据库待执行的所述待测SQL语句。
7.根据权利要求1至5中任一项所述的方法,其特征在于,在确定所述待测SQL语句为SQL注入攻击之后,所述方法包括:
对所述待测SQL语句进行拦截处理。
8.一种结构化查询语言SQL注入攻击的检测装置,其特征在于,包括:
处理模块,用于对待测SQL语句进行解析,得到所述待测SQL语句的语法规则信息,其中,所述语法规则信息包括:语法元素以及所述语法元素的上下文信息;
匹配模块,用于将所有所述语法规则信息与SQL注入规则集中的SQL注入规则进行匹配,其中,所述SQL注入规则为对SQL注入语句进行解析后得到的特征;
识别模块,用于统计所有所述语法规则信息与SQL注入规则集匹配的SQL注入规则的数量;并在统计数量大于预设阈值时,确定所述待测SQL语句为SQL注入攻击,其中,所述预设阈值为与所述SQL注入规则所属类型对应的阈值;
其中,所述SQL注入规则集为按照以下规则对所述SQL注入规则进行分类后得到的规则集:按照所述SQL注入规则的等级对所述SQL注入规则集中的SQL注入规则进行分类,其中,所述等级越高,与所述等级对应的SQL注入规则在SQL注入攻击中出现的概率越大。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610207541.0/1.html,转载请声明来源钻瓜专利网。