数据库审计研究及应用

2017-01-21 16:06李巧铃
软件导刊 2016年12期
关键词:数据库安全数据挖掘

李巧铃

摘 要:随着计算机与网络的飞速发展,数据库系统安全问题日益突出。对数据库审计进行研究,通过数据分析,挖掘建立数据库正常行为规则库,实现数据库异常行为检测,进而提高数据库安全。主要采用数据挖掘中的AprioriTid算法,用该算法发现关联规则,然后利用关联规则将用户长期的操作习惯和操作权限挖掘出来,以达到审计用户行为的目的,确保数据库安全。

关键词:数据库安全;数据库审计;数据挖掘

DOIDOI:10.11907/rjdk.162123

中图分类号:TP392

文献标识码:A文章编号:1672-7800(2016)012-0139-02

0 引言

随着网络的迅速发展,加上网络的开放性,信息安全越来越重要,对于数据库系统而言,其数据的安全性及隐私性是衡量一个数据库好坏的标准之一。提高数据库安全性的方法有很多,包括身份认证、数据加密、权限控制、数据库审计。其中,数据库审计主要用于一些对安全性要求比较高的部门,是数据库系统极为重要的一道防线。

1 数据库审计

数据库审计是数据库安全技术中的重要部分,当用户对数据库进行各种操作时,数据库审计可以实时监控和记录用户的各种行为,包括合法和不合法的行为,然后将用户对数据库的所有操作放入审计日志中。审计是对计算机特权使用的一种记录,只有管理员才可以查看审计日志,审计本身并不能加强系统的安全性,但通过审计可以详细了解数据库操作的有关信息,及时发现安全隐患。

目前,许多数据库系统中都设置了审计和日志查看功能,一旦数据库发生异常,数据库管理员(DBA)就可以通过特定的事件日志查看器查看所发生的操作,确定数据库是否被破坏以及破坏的程度及范围,并有针对性地制定相应的安全措施,避免不必要的损失,保护数据库安全。一些数据库自带审计系统,但系统自带的审计功能有时并不能满足所有用户的需求,因此需要对审计功能进行改进。在国际上,根据TDI/TCSEC标准要求,数据库管理系统只有包含审计功能,才能达到C2以上安全级别[1],因此审计功能十分重要。

2 SQL Server数据库审计

SQL Server中虽然也提供了审计功能,但其审计功能只是以日志的形式记录了数据库的活动,并不能对这些数据进行分析检测,因此在数据库开发活动中也无法自动检测是否被入侵。由此可知,SQL Server数据库系统中的审计只是一个单纯的日志系统,审计分析能力不足,要想提高其审计能力,达到预期目标,必须对审计功能进行完善。将数据挖掘应用到审计中可以达到全面监控、自动分析的审计目的。

3 审计数据分析方法

审计系统中对数据的常用分析方法主要包括:特征分析方法、基于规则的方法、基于数理统计的方法和基于数据挖掘的方法。综合考虑各种因素,本文主要选用数据挖掘的方法实现审计分析,建立正常行为规则库。

基于数据挖掘的数据库安全审计系统和其它审计系统的不同之处在于,它无需知道数据库攻击者的攻击手段,只需将用户操作与正常行为进行对比,即可检测行为是否异常。在数据库审计中,正常行为的获取是通过对数据库的大量数据进行分析和处理找到的。这样建立的数据库安全审计系统与传统的审计系统相比具有更好的智能性[2],并且自动化程度高、自学习好、检测效率高、自适应能力强。

4 数据库审计流程

数据库审计流程如下:

数据采集→数据预处理→关联规则挖掘→正常行为规则库→异常检测。

首先开启SQL Server数据库中的审计功能,采集数据库中的原始数据,对其进行预处理,对预处理得到的数据通过关联规则算法进行挖掘,得到正常用户行为模型,并将这些规则储存到规则库中。将需要审计的数据和正常规则库中的规则进行比较,如果两者相似,则操作正常,否则有可能被入侵。在整个流程中,配置异常检测规则库作为审计分析的策略,将日志模块采集的审计数据作为检测数据源,根据审计规则对审计数据进行分析处理,主要采用基于数据挖掘的异常检测方法[3]。

4.1 数据采集与预处理

数据采集和预处理:首先搜集原始数据,然后进行预处理,主要包括滤除噪声、推导计算、消除重复记录和完成数据类型转换等。数据预处理的目的是在所有的数据中找到真正有用的特征,这样既可以降低维度,也可以缩短挖掘时间。

4.2 关联规则挖掘

数据库审计系统的关键技术就是关联规则挖掘,关联规则挖掘的目的在于发现隐藏在数据库中的关联关系,并应用这些关系对现实分析提供依据,通俗而言就是决定哪些事情将一起发生。关联规则中有两个重要阈值:支持度和可信度。

关联规则的挖掘分为两步:①找出所有频繁项集:项集的相对支持度不小于预定义的最小支持度[4];②由频繁项集产生强关联规则:满足最小支持度和最小置信度的规则,即为强关联规则。

关联规则挖掘的核心步骤是找出所有频繁项集。挖掘关联规则的算法主要包括Apriori算法、AprioriTid算法和FP-Growth算法,对这3种算法的比较分析,采用效率较高的AprioriTid算法进行关联规则的挖掘。

以一个简化的数据库操作为例,说明AprioriTid算法进行关联规则挖掘的过程。其中操作对象01=table1,02=table2;操作类型1=insert|0,2=delect|0,3=update|0。事务总数为10,最小支持度为minsup=20%,置信度为50%,数据如表1所示。

①对原始数据库进行扫描,每一项都属于候选1项集的集合C1,选出C1中满足最小支持度的所有项目集,得到频繁1项集的集合L1;②将频繁1项集进行连接,生成候选2项集的集合C2;③接下来就是由C1-对2阶候选项集C2中的项计数并生成C2-的过程。首先,对C2中的第一个2阶候选集{D1,01}进行计数,可以得出T1、T2和T3这3个事务中包括{D1,01}的两个一阶子集{Dl},{0l},所以将{D1,01}写成C2-的T1、T2、T3对应的项集合,{D1,01}的计数为3,分别对C2中各个2阶候选项集计数,并构造C2-;④若Apriori-gen(LK)的返回值为空,算法停止,否则,重复步骤②、③直到满足终止条件为止。最后得到3频繁项集满足正常用户行为模型的要求“用户^操作对象=>操作类型”规则:D1^01=>2,置信度=2/3=66.6%>50%;D2^02=>2,置信度=2/3=66.6%>50%;D3^02=>2,置信度=2/3=66.6%>50%。

3条规则都满足最小置信度,可以插入正常规则库。由此可以得到数据库的正常行为规则库中的一部分规则,对此不断进行更新直到稳定,则可产生能进行异常检测的正常行为规则库如图1所示。

4.3 异常检测

建立好用户正常行为规则库后,就可以将当前行为和正常的行为规则进行比较,判断是否有可能存在异常。如果当前操作和行为规则库相似,则操作正常,则将此用户的行为规则或行为序列加入用户正常行为规则库中;如果与行为规则库不同则说明数据库有可能已被入侵。通过数据分析和异常检测维护,极大程度地提高了数据库的安全性。

5 结语

数据库安全问题日益突出,数据库审计可以维护数据库安全,因此数据库审计也越来越受到人们的重视。数据挖掘算法作为最经典的算法之一,与数据库审计相结合,即将数据挖掘技术应用于数据库安全审计,可在很大程度上提高数据库的安全性能。AprioriTid可以挖掘数据中的关联规则,其效率虽然有所提高但还有很大的提升空间,有待进一步研究。

参考文献:

[1] 聂元铭,吴晓明.基于数据库安全审计的研究[J].专题研究,2010(6):4-6.

[2] 邓蕾.基于关联规则的数据库安全审计系统[D].长沙:中南大学,2011:40-43.

[3] 李晶媛.网络数据库审计跟踪研究[D].太原:中北大学,2011:30-33.

[4] 王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2007:145-148.

(责任编辑:孙 娟)

猜你喜欢
数据库安全数据挖掘
管理信息系统中数据库安全实现方法
浅谈高速公路数据库安全审计
基于并行计算的大数据挖掘在电网中的应用
一种基于Hadoop的大数据挖掘云服务及应用
数字化校园建设中高级数据库技术的应用与安全
高校数据库安全技术教学实践探索
数据挖掘的分析与探索
基于GPGPU的离散数据挖掘研究