[发明专利]基于精简语法树的SQL语句安全检测方法有效
申请号: | 201710500205.X | 申请日: | 2017-06-27 |
公开(公告)号: | CN107292167B | 公开(公告)日: | 2020-03-10 |
发明(设计)人: | 吴朝雄;石波;沈德峰;胡佳;谢小明;郭江 | 申请(专利权)人: | 北京计算机技术及应用研究所 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F16/242;H04L29/06 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 刘瑞东 |
地址: | 100854*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 精简 语法 sql 语句 安全 检测 方法 | ||
本发明涉及一种基于精简语法树的SQL语句安全检测方法,属于网络安全技术领域。本发明在对SQL语句进行语法树构建的过程中,采用边构建边分析的策略,利用精简SQL语法结构树实现对复杂SQL语句攻击的安全检测。同时采用统计分析方法,挖掘应用系统中正常SQL语句行为模式,为未知SQL语句行为的安全检测提供检测模板。
技术领域
本发明涉及网络安全技术领域,具体涉及一种基于精简语法树的SQL语句安全检测方法。
背景技术
当前影响Web安全的因素主要包括Web服务漏洞、程序开发欠缺安全设计、数据库配置缺省等原因。目前SQL语句攻击对Web安全、数据安全影响最为广泛。针对SQL语句攻击的防御措施主要包括输入信息过滤、敏感信息加密、SQL语句审计、参数化查询等手段。其中输入过滤主要对Web用户提交的数据采用关键字、正则表达式匹配方法进行过滤。SQL语句审计记录所有执行的SQL语句,为事后的追踪溯源提供依据。参数化查询在代码层对SQL注入攻击进行防御。敏感信息加密主要对信息加密,防止信息被窃取。
然而,目前仍然可以通过以下几点技术规避对SQL语句安全性的检测:
字符转换技术。通过字符转码、字符大小写转换等规避检测。
注释攻击技术。利用注释符截穿插在SQL语句中,躲避安全检测。
动态查询技术。数据库允许动态执行SQL查询,导致攻击者可以使用动态查询来绕过防注入检测。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何实现对复杂SQL语句攻击的安全检测。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于精简语法树的SQL语句安全检测方法,包括以下步骤:
步骤1:获取网络流量,并解析获取用户请求的SQL语句信息;
步骤2:将SQL语句中包含的信息分为关键字、运算符号、标识信息三类分词信息,其中,关键字为SQL语法体系中的固有属性和信息,标识信息包括数字、字母、汉字中任一类信息或者任意几种组合形成的信息,根据三类分词信息,通过词法分析工具完成对所述SQL语句信息的分词切分,输出分词结果集合;
步骤3:对分词结果集合进行语法检测和敏感词分析:
3.1对分词中的关键字的大小写进行统一,采用ASCII码转换,将所有关键字统一转换为大写字母或小写字母;
3.2采用LIFO的方法,检测分析‘’、“”、()、{}、<>、/**/是否完整,若否,则认为该SQL语句存在异常,转入步骤6,若是,则执行3.3;
3.3依次取分词结果集合R中的任一元素与敏感词进行比较,如果集合R中存在元素和敏感词相同,则认为该SQL语句存在异常,转入步骤6,否则转步骤4;
步骤4:利用YACC语法器进行精简语法树构造;在YACC语法器的构建过程中,屏蔽使用应用系统中不经常出现的语法体系,包括增、删、改、查这些语法体系,同时采用前序的递归方式构造语法树,并在构造语法树的过程中对节点信息进行攻击特征检测分析,形成精简语法树,在攻击特征检测分析过程中,若发现异常,则停止构造语法树;在语法树构造过程中将三类分词信息用不同的符号进行标记,用三角形代表运算符;在攻击特征检测过程中,根据攻击特征库中攻击特征信息,仅针对父节点为三角形的节点进行检测,检测时采用中序递归的方法对三角形节点的左子树和右子树信息进行分析和比较;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710500205.X/2.html,转载请声明来源钻瓜专利网。