一种结构化查询语言sql攻击防御系统的制作方法

文档序号:7929966阅读:270来源:国知局
专利名称:一种结构化查询语言sql攻击防御系统的制作方法
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于结构化查询语言SQL的攻击检测、 阻断与审计的新型防御系统。
背景技术
当前防御结构化査询语言SQL (structured query language)攻击的技术手段分为被 动防御与主动防御方式。屏蔽出错信息、删除数据库不需要的扩展存储过程、Web服务器 目录权限设置最小化等被动防御结构化查询语言SQL攻击方法其弊端在于缺乏结构化查询 语言SQL攻击的检测机制,只能对结构化查询语言SQL攻击的影响范围进行控制,属于事 后防御机制。主动防御结构化査询语言SQL攻击的方式通过攻击特征库实施对结构化査询 语言SQL请求检测,如发现用户提交数据库的结构化査询语言SQL请求有攻击特性便进行 阻止,常用的方法是在检测结构化査询语言SQL攻击的规则中,过滤任何现行的结构化查 询语言SQL元字符(meta-characters):如单引号、分号和双重破折号。
结构化査询语言SQL攻击的检测过程是主动防御结构化査询语言SQL攻击方式的核 心。检测技术主要可以分为两大类,异常检测(Anomaly Detection)和误用检测(Misuse Detection)。异常检测提取正常模式审计数据的数学特征,检査事件数据中是否存在与之 相违背的异常模式。误用检测搜索审计事件数据,査看其中是否存在预先定义的误用模式。
异常检测模型建立系统正常工作模型,把当前活动与正常模型进行比对, 一旦发现偏 离正常统计学意义上的操作模式,即认为发生了入侵行为,其关键是异常阈值和特征的选 择。异常检测有概率统计、预测模式生成和神经网络等实现方式,其优点是可检测到未知 的入侵和较为复杂的入侵,但各种应用系统的行为特征通常灵活变更,异常检测模型难以 实现结构化査询语言SQL攻击的准确定位,误报率太高。
误用检测模型采集入侵行为的特征,建立相关的攻击行为特征库。在检测过程中,将 收集到的数据与特征库中的攻击行为特征进行模式,以判别是否发生了入侵行为。误用检 测主要有专家系统、击键监视、模型推理、模式匹配和状态转换分析等实现方式。误用检 测模型误报率低,但如何识别带有某些特殊字符或具备个别攻击特征的正常结构化査询语言SQL语句,如何识别阻断合法用户的恶意结构化査询语言SQL操作,是当前需要解决的 难题。
本发明提出一种改进的误用型结构化査询语言SQL攻击防御系统,能识别带有某些特 殊字符或具备个别攻击特征的正常结构化査询语言SQL语句,并能对合法用户的恶意结构 化查询语言SQL操作进行阻断以实现对数据库保护。

发明内容
本发明提出了一种改进的误用型结构化查询语言SQL攻击防御系统,基于应用系统业 务和结构化査询语言SQL注入的特征提取恶意攻击行为特征库,结合特征库对用户的结构 化査询语言SQL请求进行严格检测,并根据检测结果阻断带有攻击特性的结构化査询语言 SQL请求,给出相应的审计记录。
本发明与其他SQL攻击检测方法或系统的不同之处在于
1) 基于数据库结构化査询语言SQL
常见的SQL注入检测方法或系统一般基于网站web页面输入数据或用户提交的HTTP 请求进行判断其是否为攻击。本发明区别上述做法,是基于web应用解析形成完整的结构 化査询SQL语句,进行SQL注入攻击、非法数据库操作攻击等恶意攻击行为的判断。此方 式使得系统部署位置更为灵活,可部署于边界防御装置、应用服务器、数据库服务器及各 种安全审计软件中,其主要作用是防护数据库受到SQL攻击。
2) 改进的误用型SQL攻击防御系统
结构化查询语言SQL攻击防御系统实现了基于IP、协议、端口、应用系统访问帐户、 结构化査询语言SQL操作类型、结构化査询语言SQL请求操作对象和注入特征的攻击行为 特征库,并以Perl正贝據达式(Perl Compatible Regular Expressions, pcre)对攻击 行为特征库进行了形式化描述,将其应用于基于结构化査询语言SQL攻击行为的检测程序 中,识别带有某些特殊字符或具备个别攻击特征的结构化査询语言SQL语句,阻断用户非 正常的结构化査询语言SQL操作,实现对数据库的智能保护。本发明能灵活部署于边界防 御装置、应用服务器、数据库服务器及各种安全审计软件中,当应用环境改变,新的攻击 类型或新的正常行为模式出现时,结构化査询语言SQL攻击行为特征库能随时更新。
附图1为结构化査询语言SQL攻击防御系统工作原理图。
结构化査询语言SQL攻击防御系统启动后,安全配置文件和数据包被读入结构化査询 语言SQL攻击防御系统,由初始化函数和分析检测函数分别处理。初始化函数主要负责安全配置文件中规则的解析、检査和创建结构化査询语言SQL攻击行为特征库的工作;分析 检测函数接收数据包后则主要完成包预处理、包头处理、包内容检测和检测结果输出的任 务。在包检测过程中根据攻击行为特征库的内容动态加载包过滤算法库。 附图2为初始化函数的详细工作流程,初始化函数逐步进行以下操作
1. 对调试参数进行设定,注册搜索算法。
2. 对配置文件中规则进行解密处理,解密后的规则内容调用rule—check工具进行配 置文件合法性检査。安全配置文件中每一行为一条完整的安全规则,每条规则分为两大部 分规则头和应用层选项。规则头包括丢弃或接受(alert/pass)、协议、源地址、源端 口、方向操作符("-〉")、目的地址、目的端口,各项以空格分隔;应用层选项包括应 用系统访问帐户、结构化査询语言SQL操作类型、结构化查询语言SQL请求操作对象、注 入特征,各项以分号隔开。
3. 对配置文件中的每一行安全规则进行逐一解析,依次读取规则头和应用层选项的 值,通过匹配规则中的应用层选项来调用相关的解析函数,建立动态的安全规则三维链表, 形成基于UP、协议、端口、应用系统访问帐户、结构化查询语言SQL操作类型、结构化 査询语言SQL请求操作对象、注入特征}七要素的结构化查询语言SQL攻击行为特征库。
在解析安全规则的过程中,首先按照规则头的丢弃或接受(alert/pass)划分链表, 链表中的成员为描述每条规则的数据结构(RuleTree)。由于一条规则有时候需要调用多 个处理函数来进行分析,因此RuleTree数据结构以一个子链表(RuleFouction)记录该 规则的处理函数。同时,RuleTree结构还记录规则的应用层选项信息及其处理函数链表。 为减少链表数量,提高效率,不为每条规则分配一个单独的(RuleTree)结构,对于规则 头相同的不同安全规则,只根据不同的应用层选项链取不同的函数处理链表。
4. 根据配置文件中安全规则需要用到的插件,注册包过滤算法库。各种包过滤算法 根据结构化査询语言SQL攻击特征库的需要进行动态注册。
附图3为结构化査询语言SQL分析检测函数详细工作流程图。结构化査询语言SQL分 析检测函数逐步进行以下操作
1.数据包预处理建立预处理关键字和处理函数链表,根据用户需要需求添加、删
除预处理的功能模块,建立的数据结构包括
typedef struct —PreprocessKey { char ^keyword; void (承func)(char氺);} Pr印rocessKey; 〃预处理关键字信息结构 typedef struct —PreprocessList { Pr印rocessKey entry; struct —PreprocessList氺next; } Pr印rocessList;〃预处理关键字链表 typedef struct —PreprocessFunction { void (氺func)(Packet承); struct —PreprocessFunction氺next; } PreprocessFunction; 〃预处理函数链表
2. 包头有效性检查每收到一个外部结构化査询语言SQL数据包调甩预处理函数链 表中的函数进行预处理,检査包头有效性;
3. 包内容有效性分析首先在攻击特征库基础上,由函数SecDetection读入三维链 表各节点,构造出用以快速匹配的新的数据结构;其次进行SQL攻击规则的判断,调用处 理模块函数SecThread和SecPacket对数据包内容执行具体的模式匹配任务,进行模式匹 配时,先匹配规则头,若匹配则继续递归匹配应用层选项,若不匹配,直接匹配下一条规 则,为加快匹配的速度,在应用层选项中的匹配过程中,调用高效率的匹配搜索算法;
4. 根据规则策略选择匹配的输出结果根据规则策略,若匹配了规则策略中的动作
丢弃或接受(Drop, Acc印t), SQL攻击防御系统按规则策略对SQL数据包进行相应的动作, 并记录相应的日志审计信息。
因此,本发明提出了一种基于结构化査询语言SQL的攻击防御系统,其特征在于基于 应用系统业务和结构化査询语言SQL注入的特征提取恶意数据库访问行为特征库,结合特 征库对用户的结构化査询语言SQL请求进行严格检测,根据检测结果阻断带有攻击特性的 结构化査询语言SQL请求,给出相应的审计记录。
其中所述基于应用系统业务和结构化査询语言SQL注入的特征提取恶意数据库访问 行为特征库,攻击行为特征库除结构化查询语言SQL的注入特征外,还加入了用户提交包 括结构化査询语言SQL请求时的帐号、操作类型和请求操作对象的应用系统业务的特征要 素。
其中以Perl正则表达式对攻击行为模式库进行了形式化描述,将其应用于结构化查 询语言SQL攻击行为的检测程序中。其中应用三维链表及改进的模式匹配算法进行攻击特征匹配,从而提高了结构化查询 语言SQL请求的分析检测的效率。
其中系统启动后,安全配置文件和数据包被读入结构化査询语言SQL攻击防御系统, 由初始化函数和分析检测函数分别处理,初始化函数主要负责安全配置文件中规则的解 析、检查和创建结构化查询语言SQL攻击行为特征库的工作,分析检测函数接收数据包后 则主要完成包预处理、包头处理、包内容检测和检测结果输出的任务,在包检测过程中根 据攻击行为特征库的内容动态加载包过滤算法库。
其中所述初始化函数逐步进行以下操作
(1) 对调试参数进行设定,注册搜索算法;
(2) 对配置文件中规则进行解密处理,解密后的规则内容调用rule—check工具进行 配置文件合法性检查,安全配置文件中每一行为一条完整的安全规则,每条规则分为两大 部分规则头和应用层选项。
(3) 对配置文件中的每一行安全规则进行逐一解析,依次读取规则头和应用层选项 的值,通过匹配规则中的应用层选项来调用相关的解析函数,建立动态的安全规则三维链 表,形成基于包括IP、协议、端口、应用系统访问帐户、结构化査询语言SQL操作类型、 结构化查询语言SQL请求操作对象、注入特征七要素的结构化査询语言SQL攻击行为特征 库;
(4) 根据配置文件中安全规则需要用到的插件,注册包过滤算法库,各种包过滤算 法根据结构化査询语言SQL攻击特征库的需要进行动态注册。
其中所述分析检测函数逐步进行以下操作
(1)数据包预处理建立预处理关键字和处理函数链表,根据用户需要需求添加、 删除预处理的功能模块,建立的数据结构包括
typedef struct —PreprocessKey { char承keyword; void (氺func)(char氺);
} Pr印rocessKey; 〃预处理关键字信息结构
typedef struct —PreprocessList
{ PreprocessKey entry;
struct —PreprocessList承next;
} Pr印rocessList;〃预处理关键字链表typedef struct —Pr印rocessFunction { void (氺func)(Packet氺); struct —PreprocessFunction承next; } PreprocessFunction; 〃予页处理函数链表
(2) 包头有效性检査每收到一个外部结构化査询语言SQL数据包调用预处理函数 链表中的函数进行预处理,检查包头有效性;
(3) 包内容有效性分析首先在攻击特征库基础上,由函数SecDetection读入三维 链表各节点,构造出用以快速匹配的新的数据结构;其次进行SQL攻击规则的判断,调用 处理模块函数SecThread和SecPacket对数据包内容执行具体的模式匹配任务,进行模式 匹配时,先匹配规则头,若匹配则继续递归匹配应用层选项,若不匹配,直接匹配下一条 规则,为加快匹配的速度,在应用层选项中的匹配过程中,调用高效率的匹配搜索算法;
(4) 根据规则策略选择匹配的输出结果根据规则策略,若匹配了规则策略中的动
作丢弃或接受(Dr叩,Acc印t), SQL攻击防御系统按规则策略对SQL数据包进行相应的
动作,并记录相应的日志审计信息。 本发明的有益效果是
(1) 本发明结合应用系统业务特征和结构化査询语言SQL注入的攻击行为特征,使
用(IP、协议、端口、应用系统访问帐户、结构化査询语言SQL操作类型、结构化査询语 言SQL请求操作对象、注入特征}七要素建立结构化查询语言SQL攻击行为特征库,提高 了攻击检测的准确性。由于在匹配结构化查询语言SQL注入特征的基础上,加入了用户提 交结构化査询语言SQL请求时的帐号、结构化查询语言SQL操作类型、结构化査询语言SQL 请求操作对象等应用系统业务特征,因此,即使当应用系统的正常访问行为带有某些特殊 字符或具备个别攻击属性时,系统能正常识别其合法性,不会产生误检,同时能对合法用 户的恶意结构化査询语言SQL操作能进行阻断。
(2) 本发明在收集IP、协议、端口、帐户、结构化查询语言SQL操作、结构化查询 语言SQL操作对象、注入特征等要素时,能对这些特征库要素进行自学习,当应用环境改 变,新的攻击类型或新的正常行为模式出现时,攻击行为特征库能自适应并动态更新。
(3) 本发明通过Perl正贝據达式(Perl Compatible Regular Expressions, pcre) 形式化描述了基于应用系统业务和结构化査询语言SQL攻击特征的行为特征库,将其应用 于基于结构化查询语言SQL攻击行为的检测程序中。
(4) 本发明在攻击行为特征库的基础上,重新构造了一套专用于快速匹配的数据结构,并采用了高效率的匹配算法进行攻击特征匹配。
(5)本发明能灵活部署于边界防御装置、应用服务器、数据库服务器、各种安全审 计系统之中。


图1是依据本发明的结构化査询语言SQL攻击防御系统工作原理图2是依据本发明的结构化査询语言SQL攻击防御系统初始化函数的详细工作流程
图3是依据本发明的结构化査询语言SQL攻击防御系统结构化查询语言SQL分析检测 函数详细工作流程图4是依据本发明的信息安全网络隔离装置的工作原理示意图5是依据本发明的信息安全网络隔离装置在信息网络中的位置部署示意图。
具体实施例方式
以下是SQL攻击防御系统部署在信息安全网络隔离装置(一种边界防御装置)的典型 实施案例。
信息安全网络隔离装置是适应网络按照安全等级进行分区的需要,对数据库进行保护 的专用装置,其核心技术是采用了SQL攻击防御系统。信息安全网络隔离装置将可信任的 信息内网和不可信任的信息外网进行隔离,必须保证信息内网和信息外网之间的SQL通信 均通过信息安全网络隔离装置进行SQL检测。本装置可以对访问Oracle服务器的网络连 接进行过滤,只允许特定的应用服务器通过特定的程序对特定的数据库服务器进行访问, 并且对客户端程序访问数据库服务的内容和行为进行控制。
依据本发明的信息安全网络隔离装置的工作原理如图4所示。 依据本发明的信息安全网络隔离装置在信息网络中的位置如图5所示。 已经根据优选的实施例描述了本发明。显然,在阅读和理解了上述详细说明书后能做 出多种修正和替换。本发明意欲的是本申请构建成包括了落入附属的权利要求书或其等同 物的范围之内的所有这些修正和替换。
权利要求
1、一种基于结构化查询语言SQL的攻击防御系统,其特征在于基于应用系统业务和结构化查询语言SQL注入的特征提取恶意数据库访问行为特征库,结合特征库对用户的结构化查询语言SQL请求进行严格检测,根据检测结果阻断带有攻击特性的结构化查询语言SQL请求,给出相应的审计记录。
2、 如权利要求1所述的基于结构化查询语言SQL的攻击防御系统,其特征在于所述 基于应用系统业务和结构化査询语言SQL注入的特征提取恶意数据库访问行为特征库,攻 击行为特征库除结构化査询语言SQL的注入特征外,还加入了用户提交包括结构化査询语 言SQL请求时的帐号、操作类型和请求操作对象的应用系统业务的特征要素。
3、 如权利要求2所述的基于结构化查询语言SQL的攻击防御系统,其特征在于以Perl 正则表达式对攻击行为模式库进行了形式化描述,将其应用于结构化查询语言SQL攻击行 为的检测程序中。
4、 如权利要求3所述的基于结构化查询语言SQL的攻击防御系统,其特征在于应用 三维链表及改进的模式匹配算法进行攻击特征匹配,从而提高了结构化査询语言SQL请求 的分析检测的效率。
5、 如权利要求1-4所述的基于结构化査询语言SQL的攻击防御系统,其特征在于系 统启动后,安全配置文件和数据包被读入结构化查询语言SQL攻击防御系统,由初始化函 数和分析检测函数分别处理,初始化函数主要负责安全配置文件中规则的解析、检査和创 建结构化査询语言SQL攻击行为特征库的工作,分析检测函数接收数据包后则主要完成包 预处理、包头处理、包内容检测和检测结果输出的任务,在包检测过程中根据攻击行为特 征库的内容动态加载包过滤算法库。
6、 如权利要求1-5所述的基于结构化査询语言SQL的攻击防御系统,其特征在于所 述初始化函数逐步进行以下操作(1) 对调试参数进行设定,注册搜索算法;(2) 对配置文件中规则进行解密处理,解密后的规则内容调用rule—check工具进行 配置文件合法性检査,安全配置文件中每一行为一条完整的安全规则,每条规则分为两大 部分规则头和应用层选项。(3)对配置文件中的每一行安全规则进行逐一解析,依次读取规则头和应用层选项的值, 通过匹配规则中的应用层选项来调用相关的解析函数,建立动态的安全规则三维链表,形 成基于包括IP、协议、端口、应用系统访问帐户、结构化査询语言SQL操作类型、结构化查询语言SQL请求操作对象、注入特征七要素的结构化査询语言SQL攻击行为特征库;(4)根据配置文件中安全规则需要用到的插件,注册包过滤算法库,各种包过滤算法根 据结构化查询语言SQL攻击特征库的需要进行动态注册。
7、如权利要求1-6所述的基于结构化查询语言SQL的攻击防御系统,其特征在于所 述分析检测函数逐步进行以下操作(1) 数据包预处理建立预处理关键字和处理函数链表,根据用户需要需求添加、删除 预处理的功能模块,建立的数据结构包括typedef struct —PreprocessKey { char ^keyword; void (承func)(char承);} Pr印rocessKey; 〃预处理关键字信息结构 typedef struct —PreprocessList { Pr印rocessKey entry; struct 一Pr印rocessList承next; } Pr印rocessList;〃预处理关键字链表 typedef struct —Pr印rocessFunction { void (氺func)(Packet ; struct —Pr印rocessFunction氺next; } PreprocessFunction; 〃予页处理函数链表(2) 包头有效性检査每收到一个外部结构化査询语言SQL数据包调用预处理函数链表 中的函数进行预处理,检査包头有效性;(3) 包内容有效性分析首先在攻击特征库基础上,由函数SecDetection读入三维链 表各节点,构造出用以快速匹配的新的数据结构;其次进行SQL攻击规则的判断,调用处 理模块函数SecThread和SecPacket对数据包内容执行具体的模式匹配任务,进行模式匹 配时,先匹配规则头,若匹配则继续递归匹配应用层选项,若不匹配,直接匹配下一条规 则,为加快匹配的速度,在应用层选项中的匹配过程中,调用高效率的匹配搜索算法;(4) 根据规则策略选择匹配的输出结果根据规则策略,若匹配了规则策略中的动作 丢弃或接受(Drop, Acc印t), SQL攻击防御系统按规则策略对SQL数据包进行相应的动作, 并记录相应的日志审计信息。
全文摘要
本发明提出了一种改进的误用型结构化查询语言(以下简称SQL)攻击防御系统,基于应用系统业务和SQL注入的特征提取恶意攻击行为特征库,结合特征库对用户的SQL请求进行严格检测,并根据检测结果对带有攻击特征的SQL请求进行阻断,用以保护数据库安全,给出相应的审计记录。本发明能灵活部署于边界防御装置、应用服务器、数据库服务器及各种安全审计软件中,当应用环境改变,新的攻击类型或新的正常行为模式出现时,SQL攻击行为特征库能随时更新。
文档编号H04L29/06GK101448007SQ200810247468
公开日2009年6月3日 申请日期2008年12月31日 优先权日2008年12月31日
发明者刘书勇, 宋小芹, 波 张, 凌 李, 邓立武, 高昆仑 申请人:中国电力科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1