Informix数据库安全审计系统设计与实现

时间:2022-07-05 10:39:17

Informix数据库安全审计系统设计与实现

摘 要:数据库安全审计对于保障数据库安全是至关重要的。设计实现一个Informix数据库安全审计系统,通过对Informix数据库审计日志文件格式的分析,能够对数据库的操作按照用户会话过程进行还原,同时设计多级的安全规则对相应的数据库操作给出不同级别的警告。在系统架构上,采用分离的采集器和分析器结构,能针对多个日志数据源进行同时处理,日志分析结果采用XML格式进行存储。具有很好的通用性和可扩展性。实验测试结果表明,系统能很好地完成Informix数据库操作的实时审计。

关键词:Informix;数据库安全;审计日志

中图分类号:TP311.138 文献标识码:A

1 引言

数据库安全审计是保证数据库安全性的有效手段,它的作用在于当数据被恶意修改、数据复制不正常或数据库系统出现问题时,数据库管理员可以通过安全审计,跟踪数据的修改过程,确定数据被破坏的程度和范围,并制定相应的解决方案,从而最大限度地缩短恢复周期,将损失降低到最小。

数据库安全审计源于信息系统的安全审计,就是对系统安全进行审核、稽查和计算。概括的讲,安全审计就是记录一切(或部分)与系统安全有关活动的基础上,对其进行分析处理、评估审查,查找系统的安全隐患,追查造成安全事故的原因,并做出进一步的处理。数据库安全审计是创建一个用于监测非正常的或可疑的活动的事件记录,或者提供一个重要活动及操作者的记录。由于可审计事件的粒度一般比较小,因此审计很容易在短时间内产生大量的数据,然而通常情况下系统受到攻击的可能性并不大,这些数据所体现的操作绝大多数都是合法的。海量的数据给审计数据的人工分析和机器自动分析都带来了极大的困难。目前,针对Informix数据库的审计主要是Informix系统本身带有的安全审计模块,它可以完成对数据库的在线监控,能将数据库操作记录按照时间顺序记录在日志文件中,但是这些记录对于使用者来说,内容繁杂,不利于数据库管理人员的分析和处理。

本文通过结合安全审计模块设计实现了一个Informix数据库安全审计系统,该审计系统采用采集和分析分离的结构并设计传输协议格式,能针对多个日志数据源进行同时处理。通过对Informix数据库审计日志文件格式的分析,能够对数据库的操作按照用户会话过程进行还原,同时设计多级别的安全规则可以对相应的数据库操作给出不同级别的警告。

2 Informix数据库审计日志文件分析

为了提取审计日志文件的内容,我们首先分析了审计日志的格式。审计日志以字符形式直接存储,对每一个用户配置好的数据库操作行为都存储成一条日志文件记录。

每条记录分为两个部分,第一部分是日志头,第二部分是附加的信息列。

其中日志头包含八个字段,含义如表1所示。

附加信息列(Additional fields)则是根据不同的事件类型而有所不同,一般包括数据库名、表名等信息,典型数据库操作时记录的附加信息列如表2所示。具体的可参见审计事件域表。

例如,以下是从审计日志文件中截取的一条审计记录:

该记录表示主机名为ZHANGWEI-DB的客户端在2007年4月3日16:15:33登录服务器名为OLZW的数据库服务器,登录的用户名为Informix,该用户对sysmaster数据库的表号为221的表中的262行进行了插入行数据的操作。

3 审计系统结构

为了能支持对多个日志源的审计分析,将审计系统设计成采集器和分析器两部分,如图1所示。采集器负责采集原始的Informix数据库审计日志数据,可以完成实时采集和定时采集的功能。分析器负责对采集器发送给它的数据进行日志解析、操作还原、会话关联和审计结果输出,并进行安全规则匹配和统一格式处理。系统中设计了相关的通信协议完成采集器和分析器之间的数据传输。

4 审计系统设计与实现

4.1 采集器

Informix数据库审计系统的审计客体主要是数据库的审计日志文件,采集器需要安装在数据库服务器上,负责读取审计日志文件中的数据,实时采集是通过设定相应的时间间隔对日志文件中的增量数据进行采集,定时采集则可以指定需要分析的时间段,完成对审计日志文件中相关时间内数据记录的采集。采集得到的数据形成相应的字节流,按照一定的协议格式通过TCP连接传送给分析器。

4.2 网络传输协议

在采集器和分析器间,设计了相应的信令包和数据包,分别完成传输过程中的参数协商和日志数据的传递。

传输的具体过程如图2所示。

首先由采集器发出连接请求,分析器收到该连接请求之后,发出响应包,与采集器协商编号、数据库类型和文件名信息,之后分析器将本次传输的起始位置发给采集器,采集器根据这个位置信息,决定从何处开始传输日志数据,以保证传输数据的完整性和正确性。之后就开始传输,当传输完毕时,采集器发送一个断开连接的请求包,分析器收到该消息包,则断开与采集器的连接。

4.3 分析器

分析器是审计系统的核心,主要完成的功能是接收日志采集发送过来的审计日志数据,解析还原出数据库操作并实现会话关联,最后对分析的结果进行规则匹配,显示告警信息。分析器的结果包含系统告警信息和还原的用户会话过程,即每个用户在任何一次登录退出过程中的所有数据库操作行为记录。

4.3.1 日志解析

日志解析的过程首先是读取一条审计日志记录,完成记录中操作信息的还原,然后完成多条记录的关联,最后得到一个用户在一次登录退出之间的操作。

由于在Informix审计日志记录中,SQL操作是采用字母缩写来表示的,如insert、delete、update分别记为INRW、DLRW、UPRW。同时日志记录中操作的对象(表或视图)也是采用数字编号来表示的。为了得到更加直观的审计结果,日志解析首先要将这些缩写和编号转换成对应的SQL操作名和相应的表名或视图名。

具体实现上,通过读取审计日志头中Event mnemonic字段的内容就可以读取操作缩写名,直接还原SQL操作。对于对象名称的还原,可以有两种方法,一种是通过查找数据库系统表systable可以获取所有的对象名和对象编号的对应关系。另一种方法是,通过解析审计事件为ACTB的日志记录来获取对象名和对象编号的对应关系。在In-formix数据库操作中,每个对表或视图的操作首先都会产生一条ACTB的审计日志记录,该记录的附加信息列中带有对象名和对象编号两个域,分别描述下一记录的操作对象名称和对象编号。由于第一种方式需要对数据库系统表进行查找,会影响数据库系统本身的效率和性能,所以我们 的审计系统中采取了第二种方式。

而对于用户登录的操作,在Informix的审计日志中,审计事件缩写为STSN时,表示启动新的会话,也就是一个新的用户登录。在这条审计记录中会记录下会话开始的时间、进程ID和用户名等信息,我们可以通过解析该记录内容,获取用户的会话信息。

由于在审计日志记录中,属于同一会话的操作,其主机名、进程号和用户名三个字段是相同的,因此可以通过检测每条记录的这三个字段来进行匹配。虽然在Unix/Linux系统中,存在进程号时间片轮转的问题,即系统的进程号在一定的时间后会发生轮转,从而使得进程号发生重复。但是进程号轮转时出现同一进程号的前提是前一个进程已经结束了,也就是相当于说该会话已经完成,因此并不会影响会话关联的正确性。

4.3.2 统一格式处理

出于通用性和扩展性方面的考虑,审计系统对日志解析的结果使用统一的XML数据格式进行处理和保存。下面是一段日志解析后的保存结果示例。

其中,Session代表会话,Operation代表数据库操作。

在Session记录中,SID表示会话号,PID表示进程号。属于同一会话的操作被归于一个会话号之下。在Opera-tion记录中,Op表示数据库操作行为类型,Timestamp表示操作时间,ObjectlD表示操作对象标识号,ObjectName表示操作对象名,RowID表示行号,DataBaseName表示数据库名,Status表示操作是否成功。

4.3.3 安全规则关联匹配

为了实现安全审计的目的,系统设定了安全规则,规定了三个安全等级,级别越高,表示存在的安全威胁越大。系统分别对用户多次登录尝试、用户授权、数据表修改、记录增删等行为给出安全警告。

安全规则的保存采用了XML格式,可以由管理用户按照需求进行添加和删除。以下是一段安全规则的示例。

其中标签名代表数据库操作名,Status为操作状态,Warn-ingLevel为警告级别,Suggestion为应对策略和建议。如上例中第4条规则表示连续三次登录失败,警告级别为3。

在进行安全规则匹配时,遍历日志解析结果文件,对每条记录结果取出操作名和成功状态,与安全规则库进行匹配,完成相应警告输出。

5 系统测试

系统测试在分布式的环境下进行,日志采集器运行在Windows平台的Informix数据库服务器上,日志分析器运行在Linux平台。系统第一次运行时,需要对审计日志、分析结果文件名称和存放位置、通信地址和端口等进行相应的配置。

采用实时测试模式,系统启动以后,分析器会一直循环等待接收采集器发送过来的日志数据。我们以一个大小为5M的审计日志文件作为测试数据源,审计系统在不到10秒的时间内完成对该文件的分析,并给出了相应的结果。结果表明,系统能很好地完成Informix数据库操作的实时审计,将用户的数据库操作行为按照会话的过程清晰地展现出来,同时能对这些操作行为给出相应的警告提示信息。分析的部分结果截图如图3所示。

从图3可以看出,用户名为informix的某用户从13:02:26开始登录到13:07:06退出登录,其中进行了创建用户表test_621等操作。

系统安全关联匹配的部分结果截图如图4所示。

从图4可以看出,对应图3的日志分析结果,审计系统对用户informix的登录,创建表,插入行数据都给出了相应的警告提示信息,管理员用户可以很明确的做好对应的操作处理。

6 结束语

数据库安全审计机制是数据库安全机制的一种,本文根据Informix数据库管理系统自身的特点,设计并实现了具有审计数据的采集和审计数据的分析以及报警功能的Informix数据库安全审计系统,任何通过数据库引擎对数据库进行的操作都会被审计系统记录,而这些记录可用于追踪和调查非授权用户的非法操作,从而确保数据库的安全性、完整性和可用性。

上一篇:一种基于遗传算法的无线传感器网络定位新算法 下一篇:基于多类最小二乘支持向量机的神经元信号识别