一种数据库审计系统及其审计方法
【专利摘要】本发明提供了一种数据库审计系统,包括数据库语句审计模块和数据库用户行为审计模块,其中,所述数据库语句审计模块用于对采集到的审计数据进行解析,得到SQL语句,对得到的SQL语句进行检测;所述数据库用户行为审计模块用于对采集到的审计数据进行分析,得到的用户行为,并对得到的用户行为进行检测。本发明还涉及一种基于数据库审计系统的审计方法。本发明通用性较强且检测效率较高,维护方便,规则库不断更新确保降低误检率。可以实际满足不同用户对数据库安全的需求,在数据库审计行业中有广泛的应用前景。
【专利说明】一种数据库审计系统及其审计方法
【技术领域】
[0001] 本发明属于数据库审计领域,特别涉及一种数据库审计系统及其方法。
【背景技术】
[0002] 随着网络与计算机技术的飞速发展,数据库的应用越发广泛,数据库作为信息系 统的核心,其安全性显得尤为重要。在数据库性能与效率不断提升的同时,如何有效防止数 据库系统遭受攻击、保证数据库中数据的安全性和有效性,已成为信息安全的重要研究课 题。
[0003] 现有的数据库审计系统,对数据审计的规则由审计人员人工配置或者研发人员预 设基础规则,然后经由旁路部署镜像出数据库数据,解析数据后,比对设定的规则判断是否 异常。
[0004] 这种数据库审计的方式需要审计人员具备数据库知识,并且对企业各业务系统的 数据库有一定了解,针对各个业务系统需要配置大量不同的规则,规则涉及广泛选项条目 繁多,存在一定误操作的可能。即便有异常数据被系统误判为正常数据,在没有造成明显的 数据库安全问题前,也无法被发现,存在漏检测的隐患。
【发明内容】
[0005] 发明目的:本发明的目的在于针对现有技术的不足,提供一种通用性强、检测效率 高的数据库审计系统。
[0006] 技术方案:本发明提供了一种数据库审计系统,包括数据库语句审计模块和数据 库用户行为审计模块,其中,所述数据库语句审计模块用于对采集到的审计数据进行解析, 得到SQL语句,对得到的SQL语句进行检测;所述数据库用户行为审计模块用于对采集到 的审计数据进行分析,得到的用户行为,并对得到的用户行为进行检测。
[0007] 进一步,所述数据库语句审计模块包括数据库语句学习子模块和数据库语句检测 子模块,其中,
[0008] 所述数据库语句学习子模块对采集到的正确的审计数据进行解析,得到SQL语 句,每条SQL语句建立一个SQL语法树,得到每个SQL语法树的结构特征V (i),其中V (i)= V(S1,S2, S3, S4, S5),S1为操作类型、S2为子树的个数、S3为树的高度、S4为节点的个数、 S5为第一棵子树节点的个数,对每个SQL语法树的结构特征V(i)作HASH(MD5散列计算) 计算,得到每个SQL语句结构的特征值SQL (i),将SQL语句结构的特征值SQL (i)存入到 SQL语句规则库中;其中V (i)表示第i个SQL语法树的结构特征,SQL (i)表示第i个SQL 语句结构的特征值。其中,HASH计算为MD5散列计算。
[0009] 所述数据库语句检测子模块通过模式匹配,利用SQL(i)做索引查找规则库中的 条目,通过匹配找到具有相同模式的SQL语句后,再对各个节点进行逐个匹配;最终确定实 时采集到的审计数据解析后的SQL语句是否与SQL语句规则库匹配;若匹配成功结束处理 过程;若匹配不成功则将数据提交给人工审计。
[0010] 进一步,所述数据库用户行为审计模块包括数据库用户行为审计学习子模块和数 据库用户行为审计检测子模块;其中,
[0011] 所述数据库用户行为审计学习子模块对采集到的正确审计数据进行解析,提取 用户行为的数据库用户名、操作对象表名和数据库操作类型这三个关键元素,提取每一个 用户行为的三个关键元素构成的行为特征进行存储,多个行为特征构成一个项目集,利用 Apriori算法对项目集进行关联规则挖掘,设定最小支持度和最小可信度,计算出强关联规 贝1J,存入正常用户行为规则库;
[0012] 所述数据库用户行为审计检测子模块对实时采集到的新的审计数据进行解析并 聚类分析,将提取的行为特征与正常用户行为规则库进行匹配,若匹配成功,判定提取的行 为特征为正常行为,则检测结束;若匹配不成功,对提取的行为特征报警并记录,由审计人 员对报警数据人工判定,判定为正常行为,则将这条行为特征更新到正常用户行为规则库。
[0013] 本发明还提供了一种基于上述数据库审计系统的数据库审计方法,包括以下步 骤:
[0014] 步骤10 :在连接数据库的交换机上配置镜像端口;
[0015] 步骤20 :数据审计系统中的数据库语句审计模块和数据库用户行为审计模块分 别根据采集到的正确的审计数据进行学习并建立SQL语句规则库和用户行为规则库;
[0016] 步骤30 :安装数据审计系统的服务器从镜像端口获得镜像数据分别输入到数据 审计系统的数据库语句审计模块和数据库用户行为审计模块中;
[0017] 步骤40 :数据库语句审计模块和数据库用户行为审计模块同时对采集到的镜像 数据进行解析和检测。
[0018] 进一步,所述步骤20中数据库语句审计模块对采集到的正确的审计数据进行学 习的方法为:
[0019] 步骤210 :对采集到的正确的审计数据进行解析得到SQL语句;
[0020] 步骤211 :利用UNIX系统所提供的词法分析工具LEX和语法分析工具YACC进行 SQL语句解析处理,生成语法树;
[0021] 步骤212 :对语法树中的用户输入进行统一的字符替换,裁剪为规范语法树;
[0022] 步骤213 :对语法树进行特征提取,表示成SQL规范语法树即为V(i)= V(S1,S2, S3, S4, S5),其中,S1为操作类型,S2为子树的个数,S3为树的高度,S4为节点的 个数,S5为第一棵子树节点的个数;
[0023] 步骤214 :根据SQL语法树的结构特征V⑴,利用HASH算法对V⑴进行HASH计 算,从而得到SQL语句结构的特征值SQL(i)。
[0024] 步骤215 :将SQL⑴存入SQL语句规则库,循环执行步骤211-215直至学习阶段 结束;
[0025] 所述数据库用户行为审计模块对采集到的正确的审计数据进行学习的方法为:
[0026] 步骤220 :对审计数据进行聚类分析,提取数据库用户名、操作对象表名和数据库 操作类型这三个关键元素并记录,循环直到所有数据都提取完成;
[0027] 步骤221 :利用Apriori算法对记录结果进分析,设定最小支持度和最小可信度, 计算出符合最小支持度和最小可信度的强关联规则;
[0028] 步骤222 :将强关联规则存入用户行为规则库。
[0029] 进一步,所述步骤40中数据库语句审计模块对采集到的镜像数据进行解析和检 测的方法为:
[0030] 步骤410 :通过步骤210-214得到镜像数据的SQL⑴;
[0031] 步骤411 :通过模式匹配算法,利用SQL(i)做索引查找SQL语句规则库中的条目, 通过匹配找到具有相同模式的SQL语句后,再对各个节点进行逐个匹配;
[0032] 步骤412 :若匹配成功则解析得到的SQL语句为正常语句,结束处理过程;若匹配 不成功则跳转步骤413 ;
[0033] 步骤413 :报警并记录,等待人工审计该SQL语句,若判定为正常,将SQL语句对应 的SQL (i)更新入SQL语句规则库中;
[0034] 所述数据库用户行为审计模块对采集到的镜像数据进行解析和检测的方法为:
[0035] 步骤423 :提取镜像数据的数据库用户名、操作对象表名和数据库操作类型三大 关键元素,得到镜像数据的行为特征,将镜像数据的行为特征与用户行为规则库中的条目 进行匹配,若匹配成功则认为对应的用户行为正常,结束处理过程;若匹配不成功则跳转 步骤433 ;
[0036] 步骤433 :报警并且记录,等待人工审计该用户行为,若判定为正常行为,将对应 的关联规则更新入用户行为规则库中。
[0037] 有益效果:与现有技术相比,本发明通过对用户行为分析、SQL语句分析,将异常 检测技术、关联规则挖掘技术和模式匹配等方法混合使用,实现数据库审计自动学习和检 测。本发明通用性较强且检测效率较高,只需要经历一段时间的学习阶段,就可以进入检 测,维护方便,规则库不断更新确保降低误检率。可以实际满足不同用户对数据库安全的需 求,在数据库审计行业中有广泛的应用前景。
【专利附图】
【附图说明】
[0038] 图1为本发明中Apriori算法流程图;
[0039] 图2为本发明的数据库审计系统检测阶段流程示意图;
[0040] 图3为本发明中SQL语句生成的语法树的结构示意图。
【具体实施方式】
[0041] 下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施 例。
[0042] 实施例:本发明提供了一种通过关联规则挖掘技术对数据库操作行为以及SQL语 句进行双向分析的数据库审计系统及方法,系统经历学习阶段形成用户行为规则库和SQL 语句规则库,进入检测阶段即可通过匹配规则库来审计异常数据。
[0043] 本发明提供了一种数据库审计系统,包括数据库语句审计模块和数据库用户行为 审计模块,其中,所述数据库语句审计模块用于对采集到的审计数据进行解析,得到SQL语 句,对得到的SQL语句进行检测;所述数据库用户行为审计模块用于对采集到的审计数据 进行分析,得到的用户行为,并对得到的用户行为进行检测,数据库语句审计模块和数据库 用户行为审计模块同时工作。
[0044] 基于上述数据库审计系统的数据库审计方法,包括以下步骤:
[0045] 步骤10 :在连接数据库的交换机上配置镜像端口;
[0046] 步骤20 :数据审计系统中的数据库语句审计模块和数据库用户行为审计模块分 别根据采集到的正确的审计数据进行学习并建立SQL语句规则库和用户行为规则库。
[0047] 数据库语句审计模块对采集到的正确的审计数据进行学习的方法为:
[0048] 步骤210 :对采集到的正确的审计数据进行解析得到SQL语句;
[0049] 步骤211 :利用UNIX系统所提供的词法分析工具LEX和语法分析工具YACC进行 SQL语句解析处理,生成语法树;
[0050] 步骤212 :对语法树中的用户输入进行统一的字符替换,裁剪为规范语法树;
[0051] 步骤213 :对语法树进行特征提取,表示成SQL规范语法树即为V(i)= V(S1,S2, S3, S4, S5),其中,S1为操作类型,S2为子树的个数,S3为树的高度,S4为节点的 个数,S5为第一棵子树节点的个数;
[0052] 步骤214 :根据SQL语法树的结构特征V⑴,利用HASH算法对V⑴进行HASH计 算,从而得到SQL语句结构的特征值SQL(i)。
[0053] 步骤215 :将SQL(i)存入SQL语句规则库,循环执行步骤211-215直至学习阶段 结束;
[0054] 数据库用户行为审计模块对采集到的正确的审计数据进行学习的方法为:
[0055] 步骤220 :对审计数据进行聚类分析,提取数据库用户名、操作对象表名和数据库 操作类型这三个关键元素并记录,循环直到所有数据都提取完成;
[0056] 步骤221 :利用Apriori算法对记录结果进分析,设定最小支持度和最小可信度, 计算出符合最小支持度和最小可信度的强关联规则;
[0057] 步骤222 :将强关联规则存入用户行为规则库。
[0058] 其中,如图1所示,Apriori算法示例图,假设用户经历学习阶段收集到的行为特 征构成一个候选项集,如下表1所示。
[0059] 表 1
【权利要求】
1. 一种数据库审计系统,其特征在于:包括数据库语句审计模块和数据库用户行为审 计模块,其中,所述数据库语句审计模块用于对采集到的审计数据进行解析,得到SQL语 句,对得到的SQL语句进行检测;所述数据库用户行为审计模块用于对采集到的审计数据 进行分析,得到的用户行为,并对得到的用户行为进行检测。
2. 根据权利要求1所述的数据库审计系统,其特征在于:所述数据库语句审计模块包 括数据库语句学习子模块和数据库语句检测子模块,其中, 所述数据库语句学习子模块对采集到的正确的审计数据进行解析,得到SQL语句, 每条SQL语句建立一个SQL语法树,得到每个SQL语法树的结构特征V(i),其中V(i)= V(S1,S2, S3, S4, S5),S1为操作类型、S2为子树的个数、S3为树的高度、S4为节点的个数、S5 为第一棵子树节点的个数,对每个SQL语法树的结构特征V (i)作HASH计算,得到每个SQL 语句结构的特征值SQL(i),将SQL语句结构的特征值SQL(i)存入到SQL语句规则库中;其 中V(i)表示第i个SQL语法树的结构特征,SQL(i)表示第i个SQL语句结构的特征值; 所述数据库语句检测子模块通过模式匹配,利用SQL(i)做索引查找规则库中的条目, 通过匹配找到具有相同模式的SQL语句后,再对各个节点进行逐个匹配;最终确定实时采 集到的审计数据解析后的SQL语句是否与SQL语句规则库匹配;若匹配成功结束处理过程; 若匹配不成功则将数据提交给人工审计。
3. 根据权利要求1所述的数据库审计系统,其特征在于:所述数据库用户行为审计模 块包括数据库用户行为审计学习子模块和数据库用户行为审计检测子模块;其中, 所述数据库用户行为审计学习子模块对采集到的正确审计数据进行解析,提取用户行 为的数据库用户名、操作对象表名和数据库操作类型这三个关键元素,提取每一个用户行 为的三个关键元素构成的行为特征进行存储,多个行为特征构成一个项目集,利用Apriori 算法对项目集进行关联规则挖掘,设定最小支持度和最小可信度,计算出强关联规则,存入 正常用户行为规则库; 所述数据库用户行为审计检测子模块对实时采集到的新的审计数据进行解析并聚类 分析,将提取的行为特征与正常用户行为规则库进行匹配,若匹配成功,判定提取的行为特 征为正常行为,则检测结束;若匹配不成功,对提取的行为特征报警并记录,由审计人员对 报警数据人工判定,判定为正常行为,则将这条行为特征更新到正常用户行为规则库。
4. 采用权利要求1所述的数据库审计系统的数据库审计方法,其特征在于:包括以下 步骤: 步骤10 :在连接数据库的交换机上配置镜像端口; 步骤20 :数据审计系统中的数据库语句审计模块和数据库用户行为审计模块分别根 据采集到的正确的审计数据进行学习并建立SQL语句规则库和用户行为规则库; 步骤30 :安装数据审计系统的服务器从镜像端口获得镜像数据分别输入到数据审计 系统的数据库语句审计模块和数据库用户行为审计模块中; 步骤40 :数据库语句审计模块和数据库用户行为审计模块同时对采集到的镜像数据 进行解析和检测。
5. 根据权利要求4所述数据库审计方法,其特征在于:所述步骤20中数据库语句审计 模块对采集到的正确的审计数据进行学习的方法为: 步骤210 :对采集到的正确的审计数据进行解析得到SQL语句; 步骤211 :利用UNIX系统所提供的词法分析工具LEX和语法分析工具YACC进行SQL语 句解析处理,每条SQL语句生成一个语法树; 步骤212 :对语法树中的用户输入进行统一的字符替换,裁剪为规范语法树; 步骤213 :对语法树进行特征提取,表示成SQL规范语法树即为V(i)= V(S1,S2, S3, S4, S5),其中,S1为操作类型,S2为子树的个数,S3为树的高度,S4为节点的 个数,S5为第一棵子树节点的个数; 步骤214 :根据SQL语法树的结构特征V (i),利用HASH算法对V (i)进行HASH计算,从 而得到SQL语句结构的特征值SQL (i)。 步骤215 :将SQL (i)存入SQL语句规则库,循环执行步骤211-215直至学习阶段结束; 所述数据库用户行为审计模块对采集到的正确的审计数据进行学习的方法为: 步骤220 :对审计数据进行聚类分析,提取数据库用户名、操作对象表名和数据库操作 类型这三个关键元素并记录,循环直到所有数据都提取完成; 步骤221 :利用Apriori算法对记录结果进分析,设定最小支持度和最小可信度,计算 出符合最小支持度和最小可信度的强关联规则; 步骤222 :将强关联规则存入用户行为规则库。
6.根据权利要求4所述数据库审计方法,其特征在于:所述步骤40中数据库语句审计 模块对采集到的镜像数据进行解析和检测的方法为: 步骤410 :通过步骤210-214得到镜像数据的SQL (i); 步骤411 :通过模式匹配算法,利用SQL (i)做索引查找SQL语句规则库中的条目,通过 匹配找到具有相同模式的SQL语句后,再对各个节点进行逐个匹配; 步骤412 :若匹配成功则解析得到的SQL语句为正常语句,结束处理过程;若匹配不成 功则跳转步骤413 ; 步骤413 :报警并记录,等待人工审计该SQL语句,若判定为正常,将SQL语句对应的 SQL (i)更新入SQL语句规则库中; 所述数据库用户行为审计模块对采集到的镜像数据进行解析和检测的方法为: 步骤423 :提取镜像数据的数据库用户名、操作对象表名和数据库操作类型三大关键 元素,得到镜像数据的行为特征,将镜像数据的行为特征与用户行为规则库中的条目进行 匹配,若匹配成功则认为对应的用户行为正常,结束处理过程;若匹配不成功则跳转步骤 433 ; 步骤433:报警并且记录,等待人工审计该用户行为,若判定为正常行为,将对应的关 联规则更新入用户行为规则库中。
【文档编号】G06F17/30GK104090941SQ201410306453
【公开日】2014年10月8日 申请日期:2014年6月30日 优先权日:2014年6月30日
【发明者】吴克河, 崔文超, 刘晨莹 申请人:江苏华大天益电力科技有限公司