李 敏
( 成都冶金职工大学 四川成都 610303)
在计算机应用普及的今天,数据库有着举足轻重的地位,其中储存着大量的重要信息。而个人隐私、秘密资料等屡屡通过计算机这个载体泄露,安全问题显得格外引人注目,安全保护显得尤为突出和重要。目前常用的是对身份进行验证,对数据进行加密等等。与此同时,审计也提到了日程之上。审计的目的是记录用户对计算机系统的操作日志,通过分析日志,来处理不恰当的事件。
常用的数据库系统如SQL、Oracle 都提供了很好的审计功能,其实现审计的方法也各有千秋。例如在Oracle 中对数据的审计记录在System 模式下的AUDS 中,日志里记录了关于表结构的建立、修改;表数据的增删等等信息。但他们也存在着一些不足之处,主要体现在:
(1)审计日志都保存在数据库中,没有独立出来,审计日志的安全性依赖于数据库是否安全[1]。如果数据库一旦损坏,审计日志也同时被损坏了。以Oracle 为例,没有提供单独的数据导出、恢复措施,所有的日志处理,都要人为地编写SQL 程序代码。
(2)没有设置专门的审计监查员。以Oracle为例,普通用户可以像访问普通数据表一样访问审计日志。不符合三权分立[2]的原则。
(3)审计日志的内容比较粗略,被审计对象的属性也不够全面,只能做简单的查询,且不对管理员进行审计。
为了解决审计在数据库中存在的不足,笔者探寻了一种改进型的安全审计系统(Database security audit system)。它的特点[3]是:①审计日志的数据存储独立于数据库,由专门的审计员查看访问;②增添了专门的审计查询语句;③引入了自动报警的审计功能。
安全审计系统分为采集器和解析器[4]两大模块,如图1 所示。
图1 安全审计系统示意图
采集器安装在数据库服务器上,负责实时、定时采集数据库审计日志中的数据,形成相应的字节流。解析器负责解析采集器采集的数据,通过相关的通信协议来完成两者之间的数据传输。解析器收到采集器发出的连接请求后,发出响应信息,采集器根据解析器所述位置信息,决定在哪里启动日志数据的传输,确保数据传输的完整性和准确性。当传送完成后,采集器发送一个断开连接的请求数据包,解析器收到后,断开连接。解析器是安全审计系统的核心所在,对分析的内容按规则来匹配,显示报警信息,还原用户操作和具体操作时间。
(1)日志解析。日志解析过程是读一条记录的审计日志,进行还原信息。重复以上操作,进行多条记录的分析连接,最终得到一个从开始到结束之间的有用信息。
在审计日志中,SQL 语句使用的是缩写,如插入update 简写为UPRW,删除delete 简写为DLRW。所以先要将缩写翻译成容易识别的名称。表和视图也是用序号标识,也要转换成相应的表和视图。转换方法为通过分析日志记录的审计事件——ACTB 获取对象和对象序号(简写)的对应关系。每操作一步就会产生一个ACTB 记录。
对于用户登录的操作信息保存在审计日志中的用户登录事件——STSN,审计日志将记录用户登录的开始结束时间,进程ID 和信息,如用户名。分析记录的内容,就可以得到用户的信息。
(2)统一格式。采用统一格式的目的是为了实现审计日志的通用性和可读性,安全审计系统使用XML 语言进行数据保存。其中数据库操作用Operation 表示,数据库操作类型 用Op 表示,操作时间用Timestamp 表示,操作对象标识号用ObjectlD表示,操作对象名用ObjectName 表示,行号用RowID 表示,数据库名用DataBaseName 表示……(3)安全规则。安全分为三个级别,级别越高,安全隐患越大,对记录结果与规则库匹配,完成相应的自动报警输出[5]。
以一个大小为4M的审计日志作为数据测试。审计过程只需花费几秒时间就可以将审计结果完整的输出,并给出相应的报警信息。如下所示:
安全审计系统在数据库中得到了可行的应用。发挥了审计日志对数据库访问操作的数据重现和数据导出、报警等功能,提高了对数据库审计的准确性和安全性。
[1]黄志国. 数据库安全审计的研究[D]. 太原: 中北大学,2006. 9.
[2]孙晶. 角色监督、确保网络与信息安全[C]. 北京: 2008 信息通信网技术业务发展研讨会论文集,2008. 32.
[3]王伟平,张玮. Informix 数据库安全审计系统设计与实现[J]. 计算机技术与自动化,2007,26 (4) : 34
[4]黄志国,韩慧莲. 基于安全审计的数据库安全[J]. 科技情报开发与经济,2005,15(12) : 228.
[5]邓蕾. 基于关联规则的数据库安全审计系统[D]. 长沙: 中南大学,2011. 21.