基于精简语法树的SQL语句安全检测方法技术

技术编号:16456911 阅读:73 留言:0更新日期:2017-10-25 21:08
本发明专利技术涉及一种基于精简语法树的SQL语句安全检测方法,属于网络安全技术领域。本发明专利技术在对SQL语句进行语法树构建的过程中,采用边构建边分析的策略,利用精简SQL语法结构树实现对复杂SQL语句攻击的安全检测。同时采用统计分析方法,挖掘应用系统中正常SQL语句行为模式,为未知SQL语句行为的安全检测提供检测模板。

SQL sentence security detection method based on reduced syntax tree

The invention relates to a SQL sentence security detection method based on reduced syntax tree, which belongs to the field of network security technology. In the process of constructing the syntax tree of SQL sentence, the method of edge construction edge analysis is adopted, and the security detection of complex SQL statement attack is realized by using the simplified SQL syntax structure tree. At the same time, the statistical analysis method is used to mine the normal SQL statement behavior pattern in the application system, and provide the detection template for the security detection of unknown SQL statement behavior.

【技术实现步骤摘要】
基于精简语法树的SQL语句安全检测方法
本专利技术涉及网络安全
,具体涉及一种基于精简语法树的SQL语句安全检测方法。
技术介绍
当前影响Web安全的因素主要包括Web服务漏洞、程序开发欠缺安全设计、数据库配置缺省等原因。目前SQL语句攻击对Web安全、数据安全影响最为广泛。针对SQL语句攻击的防御措施主要包括输入信息过滤、敏感信息加密、SQL语句审计、参数化查询等手段。其中输入过滤主要对Web用户提交的数据采用关键字、正则表达式匹配方法进行过滤。SQL语句审计记录所有执行的SQL语句,为事后的追踪溯源提供依据。参数化查询在代码层对SQL注入攻击进行防御。敏感信息加密主要对信息加密,防止信息被窃取。然而,目前仍然可以通过以下几点技术规避对SQL语句安全性的检测:字符转换技术。通过字符转码、字符大小写转换等规避检测。注释攻击技术。利用注释符截穿插在SQL语句中,躲避安全检测。动态查询技术。数据库允许动态执行SQL查询,导致攻击者可以使用动态查询来绕过防注入检测。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何实现对复杂SQL语句攻击的安全检测。(二)技术方案为本文档来自技高网...
基于精简语法树的SQL语句安全检测方法

【技术保护点】
一种基于精简语法树的SQL语句安全检测方法,其特征在于,包括以下步骤:步骤1:获取网络流量,并解析获取用户请求的SQL语句信息;步骤2:将SQL语句中包含的信息分为关键字、运算符号、标识信息三类分词信息,其中,关键字为SQL语法体系中的固有属性和信息,标识信息包括数字、字母、汉字中任一类信息或者任意几种组合形成的信息,根据三类分词信息,通过词法分析工具完成对所述SQL语句信息的分词切分,输出分词结果集合;步骤3:对分词结果集合进行语法检测和敏感词分析:3.1对分词中的关键字的大小写进行统一,采用ASCII码转换,将所有关键字统一转换为大写字母或小写字母;3.2采用LIFO的方法,检测分析‘’、...

【技术特征摘要】
1.一种基于精简语法树的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语法器进行SQL语法树构造,在YACC语法器的构建过程中,屏蔽使用应用系统中不经常出现的语法体系,包括增、删、改、查这些语法体系,同时采用前序的递归方式构造语法树,并在构造语法树的过程中对节点信息进行攻击特征检测分析,形成语法树,在攻击特征检测分析过程中,若发现异常,则停止构造语法树;在语法树构造过程中将三类分词信息用不同的符号进行标记,用三角形代表运算符;在攻击特征检测过程中,根据攻击特征库中攻击特征信息,仅针对父节点为三角形的节点进行检测,检测时采用中序递归的方法对三角形节点的左子树和右子树信息进行分析和比较;4.1当三角形节点S中内容为运算符号时,递归搜索判断S左子树S1,直至搜索到S1左子树中深度最大的根节点SL的信息内容不为运算符号,判断SL中的信息是否为常量信息,如果是,则认为该SQL语句存在异常,转入步骤6;如果不是,则计算S1树的运算...

【专利技术属性】
技术研发人员:吴朝雄石波沈德峰胡佳谢小明郭江
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:北京,11

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

1