基于标记的SQL注入攻击主动防御方法、系统及存储介质技术方案

技术编号:34633008 阅读:18 留言:0更新日期:2022-08-24 15:05
本发明专利技术涉及网络安全技术领域,为基于标记的SQL注入攻击主动防御方法、系统及存储介质。其方法包括:将源代码转换为抽象语法树,定义不可信变量;对抽象语法树中的变量自上至下逐行进行分析,分析所有变量的赋值引用关系,构建变量依赖关系,定位源代码中的所有不可信变量;对抽象语法树进行分析,判断数据库参数是否可信,判断SQL语句是否含有不可信变量;若SQL语句含有不可信变量,则对源代码进行修改,标记不可信变量;在数据库函数中加入对不可信变量过滤处理的代码;运行修改后的源代码,对数据库函数进行动态库拦截,识别出不可信输入的字符串部分,对不可信输入的字符串部分的检查和过滤,实现SQL注入攻击语句的运行失效。实现SQL注入攻击语句的运行失效。实现SQL注入攻击语句的运行失效。

【技术实现步骤摘要】
基于标记的SQL注入攻击主动防御方法、系统及存储介质


[0001]本专利技术涉及网络安全
,为基于标记的SQL注入攻击主动防御方法、系统及存储介质。

技术介绍

[0002]结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,被广泛应用于类似MicrosoftAccess、DB2、Informix、MicrosoftSQLServer、Oracle、Sybase以及其他的数据库系统中。
[0003]由于一些应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
[0004]目前,代码注入攻击的安全防护方法主要源于程序分析和输入规则匹配两种技术思路,比如识别SQL语句中的危险符号并进行过滤;对程序中SQL语句中的关键字进本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.基于标记的SQL注入攻击主动防御方法,其特征在于,包括以下步骤:将源代码转换为抽象语法树,并定义一系列不可信变量,构建不可信变量列表;对抽象语法树中的变量自上至下逐行进行分析,分析抽象语法树中所有变量的赋值引用关系,构建变量依赖关系,从而定位源代码中的所有不可信变量,并将不可信变量记录在不可信变量列表中;对不可信变量分析完毕后,再次对抽象语法树进行分析,寻找其中的数据库函数,对数据库函数中的参数进行分析,判断参数是否可信,进而判断SQL语句是否含有不可信变量;若SQL语句含有不可信变量,则对源代码进行修改,标记数据库函数参数中的不可信变量;对源代码修改完毕后,重新编写数据库函数,在数据库函数中加入对不可信变量过滤处理的代码;当运行修改后的源代码时,对数据库函数进行动态库拦截,根据标记识别出SQL语句中来自不可信输入的字符串部分,并根据设定的过滤策略对不可信输入的字符串部分的检查和过滤,实现SQL注入攻击语句的运行失效。2.如权利要求1所述的SQL注入攻击主动防御方法,其特征在于,在不可信变量的定位过程中,从数据库访问函数开始搜索,找出构成SQL语句的字符串中引用的不可信变量并对其添加标签,实现对SQL语句的字符串中所有不可信输入的位置标记。3.如权利要求1所述的SQL注入攻击主动防御方法,其特征在于,过滤处理的过程包括:利用当前进程ID生成标签;利用生成的标签定位数据库函数中SQL语句的不可信变量;对不可信变量按照设定的过滤策略进行过滤,除去其中可能的恶意代码;利用过滤后的不可信变量构成新的SQL语句;重新调用系统的数据库函数,将SQL语句传给SQL引擎,以执行相应数据库操作。4.如权利要求3所述的SQL注入攻击主动防御方法,其特征在于,设定的过滤策略为:通过对互联网中存在的常见SQL注入攻击代码进行总结,得到通用的SQL注入攻击的语句构成模式;基于所述SQL注入攻击的语句构成模式,利用决策树对SQL语句的输入长度、特殊符号信息进行检查,实现对不可信变量的过滤。5.如权利要求1所述的SQL注入攻击主动防御方法,其特征在于,当对数据库函数进行动态库拦截时,每次调用数据库函数时调用重新编写的数据库函数而非系统的数据库函数,使得SQL语句每次都得到过滤处理。6.基于标记的SQL注入攻击主动防御系统,其特征在于,包括:列表构建模块,用于将...

【专利技术属性】
技术研发人员:张涛潘梦源黄海东
申请(专利权)人:国网江苏省电力有限公司
类型:发明
国别省市:

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

1