一种SQL语句检测方法及系统技术方案

技术编号:16605621 阅读:25 留言:0更新日期:2017-11-22 15:27
本发明专利技术实施例提供了一种SQL语句检测方法及系统,用于快速高效的检测和防御数据库安全漏洞。本发明专利技术实施例方法包括:解析模块从待检测的结构化查询语言SQL语句中提取每个语句的特征信息;安全规则插件加载配置文件,根据配置文件中对应的安全规则对所述特征信息进行匹配,并根据匹配结果确定匹配成功的安全规则对应的安全规则ID,所述安全规则对应至少一个所述安全规则ID;策略匹配模块统计匹配成功的所述安全规则ID,并执行所述安全规则ID对应的预置安全策略。

SQL sentence detection method and system

The embodiment of the invention provides a method and system for detecting SQL statements, which is used for detecting and defending the database security vulnerabilities quickly and efficiently. The embodiment of the method includes: parsing module query feature information extraction for each statement in the SQL statement from the structured language to be detected; safety rules for loading the configuration file, according to the corresponding safety rules in the configuration file of the feature information matching, and according to the safety regulations, safety regulations, successful results to determine the corresponding ID the safety rules, corresponding to at least one of the ID security rules; strategy matching module statistics successfully matched the safety rules of ID, and implement the preset security policy security rules corresponding to the ID.

【技术实现步骤摘要】
一种SQL语句检测方法及系统
本专利技术涉及数据安全领域,尤其涉及一种SQL语句检测方法及系统。
技术介绍
数据库作为非常重要的存储工具,里面往往会存放着大量有价值或敏感信息,这些信息包括金融财政、知识产权、企业数据等方方面面的内容,网络黑客们会利用各种途径来获取他们想要的信息。因此,保证数据库安全变得尤为重要。网络黑客们获取信息的手段有很多,如SQL注入,会利用网站搭建的漏洞,构造一些特殊的SQL语句,非法获取信息。每一种危险行为,都会对应一种SQL特征。现有技术中,通过对SQL特征的识别,识别出危险行为。例如,select*fromaintooutfile"D:/test.txt",可以将数据表a中的数据导出到"D:/test.txt"中,造成数据泄露。而导出命令intooutfile和字段值"D:/test.txt"则是这种危险行为的SQL特征信息。现有技术通过检测SQL语句中的特征信息识别出对应的危险特征,分析出当前SQL语句是否具有危险。针对每一种危险语句,构建一种检测规则即安全规则,用于检测识别与危险语句相同或类似的SQL语句,并依次运行不同的安全规则分别对每一句SQL语句进行解析和识别,当安全插件开发完成时,其检测功能即被固化,只能检测与预置危险语句相同或类似的SQL语句,其检测范围无法进行拓展,此外,当需要运行的安全规则插件较多时,每个安全规则插件都需要对所有的SQL语句进行解析和识别,重复解析SQL语句会使检测效率低。如何让安全规则能够高效的检测数据库漏洞,针对攻击手段的变更快速进行检测范围适应性的扩展,则成为研究的关键。
技术实现思路
本专利技术实施例提供了一种SQL语句检测方法及系统,用于快速进行检测范围适应性的扩展,高效的检测和防御数据库安全漏洞。本专利技术实施例第一方面提供了一种SQL语句检测方法,可包括:解析模块从待检测的结构化查询语言SQL语句中提取每个语句的特征信息;安全规则插件加载配置文件,根据配置文件中对应的安全规则对所述特征信息进行匹配,并根据匹配结果确定匹配成功的安全规则对应的安全规则ID,所述安全规则对应至少一个所述安全规则ID;策略匹配模块统计匹配成功的所述安全规则ID,并执行所述安全规则ID对应的预置安全策略。结合第一方面,在第一方面的第一个可能的实施方式中,所述方法还包括:当检测需求变化时,更新所述配置文件中安全规则,以使得所述安全规则插件匹配新的特征信息,以适应新的检测需求。结合第一方面的第一种可能的实施方式,在第一方面的第二个可能的实施方式中,所述特征信息包括关键字、表名、字段值、数据库类型信息、操作类型信息中的一项或多项。结合第一方面的第二种可能的实施方式,在第一方面的第三个可能的实施方式中,当所述安全规则插件的配置文件配置所述安全规则插件匹配的特征信息为数据库类型、关键字“intooutfile”及字段值时,所述根据匹配结果确定匹配成功的安全规则对应的安全规则ID,包括:所述安全规则插件提取包含关键字“intooutfile”的SQL语句中的目标字段值及数据库的类型;当所述目标字段值为可执行程序的扩展名时,所述安全规则插件确定匹配成功的安全规则对应的安全规则ID为第一ID;当所述目标字段值不是可执行程序的扩展名时,所述安全规则插件确定匹配成功的安全规则对应的安全规则ID为第二ID。结合第一方面,第一方面的第一种、第二种或第三种可能的实施方式,在第一方面的第四种可能的实施方式中,在所述执行所述安全规则ID对应的预置安全策略之前,所述方法还包括:检测所述安全规则ID是否在预置的禁用安全规则ID列表中;过滤掉所述预置的禁用安全规则ID列表中的所述安全规则ID。结合第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式中,该方法还包括:多个所述安全规则插件同时并行对所述每个语句的特征信息进行匹配,以提高检测效率。本专利技术第二方面提供了一种SQL语句检测系统,可包括:解析模块,用于从待检测的结构化查询语言SQL语句中提取每个语句的特征信息;安全规则插件,用于根据配置文件中对应的安全规则对所述特征信息进行匹配,并根据匹配结果确定匹配成功的安全规则对应的安全规则ID,所述安全规则对应至少一个所述安全规则ID;策略匹配模块,用于统计匹配成功的所述安全规则ID,并执行所述安全规则ID对应的预置安全策略。结合第二方面,在第二方面的第一种可能的实施方式中,该系统还包括:更新模块,用于当检测需求变化时,更新所述配置文件中安全规则,以使得所述安全规则插件匹配新的特征信息,以适应新的检测需求。结合第二方面的第一个可能的实施方式,在第二方面的第二种可能的实施方式中,所述特征信息包括关键字、表名、字段值、数据库类型信息、操作类型信息中的一项或多项。结合第二方面的第二个可能的实施方式,在第二方面的第三种可能的实施方式中,当所述安全规则插件的配置文件配置所述安全规则插件匹配的特征信息为数据库类型、关键字“intooutfile”及字段值时,所述安全规则插件包括:提取单元,用于所述安全规则插件提取包含关键字“intooutfile”的SQL语句中的目标字段值及数据库的类型;判断单元,用于当所述目标字段值为可执行程序的扩展名时,所述安全规则插件确定匹配成功的安全规则对应的安全规则ID为第一ID;当所述目标字段值不是可执行程序的扩展名时,所述安全规则插件确定匹配成功的安全规则对应的安全规则ID为第二ID。结合第二方面,第二方面的第一种、第二种或第三种可能的实施方式,在第二方面的第四种可能的实施方式中,该方法还包括:检测模块,用于检测所述安全规则ID是否在预置的禁用安全规则ID列表中;过滤模块,用于过滤掉所述预置禁用的安全规则列表中的安全规则ID。从以上技术方案可以看出,本专利技术实施例具有以下优点:本专利技术实施例中对待检测的SQL语句中的每个语句的特征信息进行统一解析,无需每个安全规则插件对每个语句的特征信息进行单独解析,即不会对SQL语句重复解析,提高了检测的效率,安全规则插件可以根据加载的配置文件中的安全规则对每个语句的特征信息进行匹配,并根据匹配结果确定匹配成功的安全规则对应的安全规则ID,执行安全规则ID对应的预置安全策略,当检测需求随攻击手段的变化而变化时,只需要修改对应的配置文件中的安全规则即可使相同的安全规则插件可以具备检测最新的攻击手段的能力,即本实施例中的SQL语句检测方法的检测范围具有很好的拓展性。附图说明图1为本专利技术实施例中SQL语句检测系统架构示意图;图2为本专利技术实施例中一种SQL语句检测方法的一个实施例示意图;图3为本专利技术实施例中一种SQL语句检测方法的另一个实施例示意图;图4为本专利技术实施例中一种SQL语句检测系统的一个实施例示意图;图5为本专利技术实施例中一种SQL语句检测系统的另一个实施例示意图;图6为本专利技术实施例中一种SQL语句检测系统的另一个实施例示意图;图7为本专利技术实施例中一种SQL语句检测系统的另一个实施例示意图。具体实施方式本专利技术实施例提供了一种SQL语句检测方法及系统,用于快速进行检测范围适应性的扩展,高效的检测和防御数据库安全漏洞。本专利技术实施例中,首先通过解析模块统一解析SQL语句中每个语句的特征信息,无需每个插件重复解析SQL语句,提高了检测效率本文档来自技高网...
一种SQL语句检测方法及系统

【技术保护点】
一种SQL语句检测方法,其特征在于,包括:解析模块从待检测的结构化查询语言SQL语句中提取每个语句的特征信息;安全规则插件加载配置文件,根据配置文件中对应的安全规则对所述特征信息进行匹配,并根据匹配结果确定匹配成功的安全规则对应的安全规则ID,所述安全规则对应至少一个所述安全规则ID;策略匹配模块统计匹配成功的所述安全规则ID,并执行所述安全规则ID对应的预置安全策略。

【技术特征摘要】
1.一种SQL语句检测方法,其特征在于,包括:解析模块从待检测的结构化查询语言SQL语句中提取每个语句的特征信息;安全规则插件加载配置文件,根据配置文件中对应的安全规则对所述特征信息进行匹配,并根据匹配结果确定匹配成功的安全规则对应的安全规则ID,所述安全规则对应至少一个所述安全规则ID;策略匹配模块统计匹配成功的所述安全规则ID,并执行所述安全规则ID对应的预置安全策略。2.根据权利要求1中所述的方法,其特征在于,还包括:当检测需求变化时,更新所述配置文件中安全规则,以使得所述安全规则插件匹配新的特征信息,以适应新的检测需求。3.根据权利要求2所述的方法,其特征在于,所述特征信息包括关键字、表名、字段值、数据库类型信息、操作类型信息中的一项或多项。4.根据权利要求3所述的方法,其特征在于,当所述安全规则插件的配置文件配置所述安全规则插件匹配的特征信息为数据库类型、关键字“intooutfile”及字段值时,所述根据匹配结果确定匹配成功的安全规则对应的安全规则ID,包括:所述安全规则插件提取包含关键字“intooutfile”的SQL语句中的目标字段值及数据库的类型;当所述目标字段值为可执行程序的扩展名时,所述安全规则插件确定匹配成功的安全规则对应的安全规则ID为第一ID;当所述目标字段值不是可执行程序的扩展名时,所述安全规则插件确定匹配成功的安全规则对应的安全规则ID为第二ID。5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述执行所述安全规则ID对应的预置安全策略之前,所述方法还包括:检测所述安全规则ID是否在预置的禁用安全规则ID列表中;过滤掉所述预置的禁用安全规则ID列表中的所述安全规则ID。6.根据权利要求5所述的方法,其特征在于,还包括...

【专利技术属性】
技术研发人员:陈诗礼
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:广东,44

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

1