基于用户行为的数据库安全审核机制
2015-05-08武春燕孙忠林
武春燕 孙忠林
摘要:数据库已经越来越多的允许多用户进行访问,从而引出了多用户访问数据库的安全性审核问题,用户对数据库的访问大致分为三种:合法用户对数据库的合法操作、合法用户对数据库的非法操作以及非法用户对数据库的操作。针对这两种不同的用户对数据库的三种不同的访问文章提出了基于数据库用户行为的安全审核机制的策略。通过审计来对数据库用户行为进行监测跟踪,而后建立用户行为特征模型,用户再次访问数据库时根据该模型进行安全审核。以SQL Server2005为例,深入探讨传统数据库的安全审核机制以及成功运用基于用户行为的安全审核机制后对数据库安全的保障。
关键词:安全措施;审计;审计记录;行为模型;分析模型;安全审核
中国分类号:TP309.2 文献标识码:A 文章编号:1009-3044(2015)07-0016-05
Abstract: Database has been accessed by more and more multiple users, which leads to the problem of multi-user security audit access to the database, the users access to the database is broadly divided into three categories: the legal operations to the database by legitimate users, the illegal operation to the database by legitimate users and the operations of the database by illegitimate users. For these three different accesses to the database by these two different users, the strategy of security audit mechanism was proposed based on user behaviors. The user behavior to be monitored and tracked by the audit, and then create a model of the user behavioral characteristics, the database will carry out safety audits according to the model when the user access to this database again. In SQL Server2005 example, further explore the security auditing mechanism of traditional database as well as the successful application of the protection of database security mechanisms based security auditing user behavior.
Key words: safety measures; audit; audit records; behavioral models; analysis model; security audit
数据库已成为绝大多数互联网应用的后台,也是企业、组织和机构的信息存储平台,他们存储的数据数量巨大,覆盖面广,具有很大的商业、应用或信息价值,从而,用户对数据库的入侵行为可能对数据库中信息的安全产生影响甚至造成威胁,因此,保证合法用户对数据库的合法访问,使数据库免遭非法的访问和修改是至关重要的。
数据库管理系统DBMS(Database Management System)已经提供了一系列的安全保护机制,如数据库用户的身份认证机制,虽然这种机制能够在一定程度上阻止非法用户的数据库的访问和操作,而对于来自数据库内部的攻击时无能为力的,例如对于合法用户滥用权限进行非法操作或者非法用户盗用合法用户身份进行数据库的访问等问题仍然得不到解决。而通过审计跟踪内部服务器上的用户行为,可以全面监控和记录数据库的状态和用户行为。该文提出了一种基于用户行为的安全审核机制使用户对数据库的安全访问与操作得到更好的保证。以SQL Server 2005为例对比传统的安全措施和基于用户行为的安全审核机制。
1 传统SQL Server 2005数据库访问的安全措施
在SQL Server 2005数据库系统中,为了保护数据的安全性,主要采取的措施[1]有:用户账号管理、存取控制、视图机制、数据加密和安全审核等方法。
1.1 账号管理和存取控制
账号管理和存取控制是数据库的两个不可分割的安全机制,账号管理用于数据库用户的初步身份验证,是第一层保护,存取控制是当用户允许访问数据库后,控制用户可以使用数据库中的哪些对象,能对哪些对象执行什么样的操作等,是数据库的第二层保护。传统的数据库的这两种用户审核机制是基于用户身份验证和角色的访问控制,数据库首先需要对用户进行身份登录验证,然后通过访问角色表来控制合法用户对数据库的操作。一个合法用户登录数据库系统并对数据库进行操作的基本步骤如下:
(1)当用户欲访问数据库时,数据库首先进行身份登录认证,数据库安全控制系统首先根据用户输入的用户名和密码在用户表中进行比对判断是否为合法用户,如果是合法用户,用户可以进入数据库进行相关操作,否则返回登录页面,用户可以继续登录。
(2)当合法用户登录系统后,系统首先访问用户角色表,得到该用户对应的角色编号;再根据角色编号在角色权限表中读出对应的权限编号;然后用户可以对数据库进行权限允许的操作。角色所具有的权限是由系统管理员预先分配好的,系统通过管理员可以灵活的添加或取消某个角色的权限。
早期的研究者还提出基于权限数据库访问控制机制,也就是说合法用户对该数据库的访问控制不再是角色表,而是访问权限数据库。权限数据库[2]用于存贮访问权限信息以及与访问控制相关的其它信息。由用户信息表、角色信息表、用户角色对照、权限表和角色权限对照表组成。其中用户表,记录了用户的基本信息;角色表记录了系统可供分配的角色;权限表记录了系统权限;用户分配角色是通过用户角色对照表来实现的;角色分配权限是通过角色/权限对照表实现的。
基本原理如图1所示。
传统数据库的基于这两种安全措施的审核机制虽然也极大的改善了合法用户对数据库操作的审核机制,但是这种方法的效率并不是最高的,每次当合法用户通过数据库登录页面的身份认证机制后,当合法用户需要对数据库进行操作,如对数据库中表进行添加、删除或修改操作时,用户都要访问权限数据库,这样造成了数据库时间的浪费。
1.2 其他安全措施
传统的数据库安全机制除了账号管理这个安全措施外还有其他安全措施,如视图控制、数据加密和安全审核等。视图控制就是将视图机制与授权机制结合使用,先用视图机制隐藏一些保密数据,然后再对视图进行授权。在SQL Server 2005中采用证书的方式来加密数据。安全审核是监控和审核用户对数据库的各种操作,在SQL Server 2005中通过Windows安全日志、SQL Profile性能监视器和触发器来设置审核功能。
以上的这些安全措施对于数据库的安全保护都有一定的作用,但是这些措施在实施效用或者利用效率方面都有一定的制约因素。下面,我们将给出本文提出的基于用户行为的数据库安全审核机制的原理及流程。
2 数据库用户行为的获取
基于数据库用户行为特征模型的安全审核机制,通过审计实时监测数据库用户的行为,从而建立数据库用户行为特征模型,以后用户访问数据库时根据该模型来判断用户的合法性或操作行为的合法性,从而保证数据库被安全访问,有效的提高了访问的效率。用户行为特征模型的创建为数据库的安全访问提供了更多一层的保护。
2.1 审计的定义
审计[3]是一个对受保护客体访问的跟踪记录,它监视和记录用户对数据库的操作,调查可疑的用户行为,例如监视合法用户对数据库中表的具体的添加、修改和删除等操作,并记录该操作的具体信息;监视追踪非授权用户在数据库中的表中添加和删除数据。审计管理员可以选择审计的行为和主客体,监视和收集对于特定数据库行为和特定主客体有关的信息。例如数据库中哪个表正在被哪个用户操作,是进行的什么操作。审计可以跟踪记录以任何方式连接到数据库的SQL命令,还可以审计系统相关的功能调用。
2.2 审计记录
文献[4]中提出的数据库审计系统[5]是采用三层架构,由审计客户端、审计中心和显示管理终端构成,通过数据捕获、数据过滤和数据分析,最后日志形成,最后得到的审计日志以文件的形式保存。
数据库审计[6,7]日志文件由六个要素组成:操作者、操作对象、操作时间、操作地点、操作行为以及操作结果。我们把审计日志文件进行格式整理形成审计记录[8],一条审计记录采用6元组的表示方式,包括了完整的审计要素,例如一次完整的审计记录表示为<操作者,操作对象,操作时间,操作地点,操作行为,操作结果>,在这个6元组中,每个属性有且只有一个值,当用户对数据库有多个行为时,则每个行为形成一个6元组的记录。
例如操作者为001,操作对象为db1.dbo1,操作时间为2014-12-6 15:15:15,操作地点为192.168.109.22,操作者对表db1.dbo1,执行了insert和select操作,操作结果分别为成功和不成功。则在数据库审计跟踪文件中形成的审计记录有2条<001,db1.dbo1,2014-12-6 15:15:15,192.168.109.22,select,false >,<001,db1.dbo1,2014-12-6 15:20:10,192.168.109.22,select,false >
3 用户行为模型的建立
根据上面的审计记录的形成,得到用户访问数据库的E-R图[9],如图2所示。
001dbo表即为当前数据库的用户行为模型。这样根据审计日志的审计跟踪记录,通过相应的数据库的SQL操作,我们得到访问数据库的用户行为模型。
4 用户行为模型的分析
用户行为模型[10,11]建立后我们对它进行分析[12,13]发现同一个操作者对相同的操作对象往往具有相同的操作行为,这样在用户行为特征模型中就形成了数据的冗余。为了消除这种冗余我们对数据进行分组,然后统计每组的数目作为访问次数。
select count(*)as 访问次数,操作对象,操作地点,操作行为,操作结果
from操作者dbo
group by 操作对象,操作地点,操作行为,操作结果。
根据访问次数我们提出几个集合划分的概念。如图3所示。
常规操作集合:将访问次数大于100分组数据归入常规操作集合。
几乎不操作集合:将访问次数大于0小于100的分组数据归入几乎不操作集合。
不操作集合:将访问操作次数为0的分组数据归入不操作集合。
这样我们把所有审计跟踪后得到的行为模型进行分组然后归入到不同的集合中,得到用户行为分析模型,当用户的操作行为在常规操作集合中时允许用户进行操作,当用户的操作行为在几乎不操作集合中时需要进行其他验证,例如角色权限验证,当用户的操作行为在不操作集合中时不允许用户进行当前操作。在用户访问数据库中新建表analysisBehavior.dbo,表中字段包括操作者,操作对象,操作时间,操作地点,操作行为,操作结果以及所属集合。
这个模型因为进行了分组合并会比行为模型规模小很多,以后的数据库安全审核就是在这个分析模型的基础上进行的。
5 基于用户行为模型的数据库安全审核
用户行为模型分析[13,14,15]完毕后,就可以利用这个用户行为分析模型进行数据库的安全审核。基本操作流程图如图4所示。
基于用户行为的数据库安全审核的基本步骤[16,17]为:
(1)欲访问数据库的用户首先进行用户登录,进行身份验证,如果验证成功为合法用户,则该用户允许访问数据库,进而继续访问数据库;如果验证不成功即为非法用户,则用户不能访问数据库。
(2)用户身份验证成功的用户进入数据库并且访问数据库,用户访问数据库并对数据库进行相关操作的同时,数据库审计跟踪用户的行为,这时跟踪用户行为形成的记录为<操作者,操作对象,操作时间,操作地点,操作行为>,还没有操作结果属性,需要进行审核验证是否允许用户进行当前操作。
(3)根据审计跟踪提取当前跟踪形成的记录,与已建的用户行为分析模型进行比较。
select 所属集合
from analysisBehavior.dbo
where analysisBehavior. 操作者=当前操作者and操作对象=当前操作对象and操作时间=当前操作时间 and 操作地点=当前操作地点and 操作行为=当前操作行为
如果所属集合为常规操作集合,则不需要进行其他验证,用户直接进行操作并得到操作结果;如果所属集合为几乎不操作集合中,需要验证用户的角色权限,只有在用户合法的角色权限下,用户才可以继续进行操作并得到操作结果,否则不允许用户进行操作;如果所属集合为不操作集合,则直接不允许用户进行操作。
(4)不管是否允许用户继续进行当前操作,都要进行审计跟踪,并形成审计记录,然后根据当前审计记录更新用户行为模型,并且更新用户行为分析模型。
(5)对于初次访问数据库的用户,在数据库中没有该用户的用户行为模型,这时对于通过身份验证的用户,我们重点考虑数据库管理员赋予用户的角色和权限,一般我们认为不超出用户权限的操作为合法操作。
6结束语
该文提出了基于数据库用户行为的安全审核的方法,首先数据库根据用户行为创建了用户特征模型,然后利用审计跟踪当前用户的行为,与用户行为分析模型比对从而判断用户行为是否合法,这种基于用户行为模型的方法有效的阻止了合法用户对数据库的非法操作。这样,访问数据库的三种不安全因素基本得到解决,数据库的安全访问得到基本保障。
参考文献:
[1]况莉莉.SQL Server 2005 数据库访问的安全措施[J].淮南职业技术学院学报,2011,11(42):75-78.
[2]李岚.基于角色的数据库安全访问控制的应用[J].通信技术,2008,41(10):70-71.
[3]程维国,田园,王德强,谢俊元.B1级数据库安全审计的设计与实现[J].计算机工程,2004,30(11):54-56.
[4]钱正麟,高航,李曙强.基于网络侦听的数据库审计方法[J].计算机系统应用,2014,23(4):97-101.
[5]杨磊.数据库安全审计检测系统的设计与实现[D].北京交通大学,2014.
[6]逯楠楠.数据库安全审计分析技术研究与应用[D].湖北工业大学,2011.
[7]常建国,郭凌玲,宫彦婷,等.数据库审计与防统方系统的实现[J].中国医疗设备,2013,28(4):52-54.
[8]李晶媛.网络数据库系统审计跟踪研究[D].中北大学,2010.
[9]陈浩.基于用户行为分析的图书馆数据库资源的整合与利用[J].计算机应用与软件,2014,31(7):24-27.
[10]邢晓兵.面向用户兴趣的用户浏览行为分析方法及应用[D].东北大学,2013.
[11]朱智武,叶晓俊.数据库用户行为模型与异常检测[J].计算机科学,2009,36(4A):167-169.
[12]肖云鹏.在线社会网络用户行为模型与应用算法研究[D].北京邮电大学,2013.
[13]宋国峰,梁昌勇.一种基于用户行为信任的云安全访问控制模型[J].中国管理科学,2013,21(专辑):669-676.
[14]陈亚睿,田立勤,杨扬.云计算环境下动态用户行为认证的机制、模型与分析[J].系统仿真学报,2011,23(11):2302-2307.
[15]栗磊.基于用户行为挖掘的数据库入侵防护机制研究[D].东北石油大学,2011.
[16]杨清龙.基于网络日志的互联网用户行为分析[D].华中科技大学,2013.
[17]任文君.基于网络用户行为分析的问题研究[D].北京邮电大学,2012.