数据库安全漏洞的主要原因有三:
1) 无监控手段
数据库管理员往往作为数据库操作员存在,了解如何在数据库内进行操作、解决问题,但无法对用户的访问、操作进行监控,更无法预防或者处理秘密访问、数据窃取以及恶意删除。
2) 无管理机制
数据库的超级用户密码多人共享,很多人可以使用一个用户进行操作,而事后无法确定是哪个人制造了问题。一旦登录到数据库,无论核心数据还是非核心数据都可以随意访问而不被察觉;非公司人员、测试用户都可以对所有数据进行访问和操作,从而使数据库完全变成“OPEN”数据库。
3) 无回溯办法
如果发现问题,无法回溯到问题发生时的状态,无从追踪问题发生的根源,最后不了了之;更无法制定针对性地解决方案,使企业处于非常被动的状态。因为无法回溯,所以也无法进行数据修复,导致错误延续和蔓延。
1.2 数据库审计要解决的核心问题针对存在的问题,数据库审计就要解决如下三个核心问题:
1) 全方位的数据库操作监控。
无论从网络登录,还是从终端登录;无论是查询数据,还是改变数据;无论是普通用户还是超级用户;无论是应用程序,还是手动登录都能被有效监控,不留死角。
2) 审计策略定制和管理
能够允许客户自定义各种审计策略,对其所关心的用户、表以及表中的特定数据设置不同粒度的监控策略,当用户访问违反上述策略时,其操作行为就会被记录下来,并且能够马上报警提示。
对于出现的问题,能够通过界面快速查询出客户的历史操作过程,分析事故发生原因,并能够生成修复操作建议,便于尽快恢复系统的正常运行状态。
1.3 数据库审计软件的基本要求作为完善的数据库审计软件,必须具备如下条件:
1) 具有全面丰富的数据库审计类型,能够全面、高效地获取数据库的各种操作信息;
2) 具有细粒度的数据库操作内容审计;
3) 能够准确及时的对违规操作告警响应;
4) 具有全面详细的审计信息,丰富可定制的报表分析系统;
5) 能够为数据丢失、篡改等提供修复解决方案;
6) 对业务系统的干扰和影响小;
7) 管理维护简单方便;
2 SnapAudit数据库审计解决方案
在对数据库审计的需求分析基础上,DSG提出针对性的SnapAudit数据库审计解决方案。
2.1 SnapAudit体系结构SnapAudit软件的系统结构如下图所示:
如上图所示,SnapAudit软件分为五功能层:
数据分析引擎OLFX主要用来对Oracle数据库的在线日志进行分析,获取数据库的操作系统。OLFX的主要特点是能过全方面获取数据库的操作信息,同时分析过程快速、高效,对业务系统的影响小。OLFX分析在线数据日志后,自动将数据库操作信息传递到过滤层进行处理。
过滤层:由SnapAudit Data 历史 iis7站长之家模块组成。
SARF负责将OLFX采集到的信息根据Audit Policy(审计策略)进行过滤,过滤后的信息传递到存储层进行存储。
存储层: 由XDTFS/SADB审计信息存储管理模块组成。
所有过滤后的审计信息转换成XDT格式后,存储于独立的XDTFS文件系统。XDT格式是按照Oracle 数据库内部操作的格式存储获取的数据库审计信息,XDTFS为每个存入其内的XDT数据创建快捷的访问索引,便于随机查询。XDTFS可存在于任意的UNIX/Linux文件系统之上,利用操作系统识别的存储空间存放数据。
也可以将过滤后的审计信息存储于SnapAuditDB数据存储系统。在SADB存储系统中,数据更易于二次处理,查询,统计等。
业务层: SnapAudit的主要功能通过其服务器组件SAServer来实现。审计策略制定、修复建议生成、查询及检索命令形成、自动报表和性能监控刷新等都由SAServer来实现。定制的审计策略,用户权限以及登录SnapAudit的信息都记录在SAServer上。SAServer支持网络化的环境,可以实现对多个数据库审计的集中管理。
展示层: SAClient是SnapAudit的图形人机交互界面,用于展示审计报表、客户选择并制定审计策略,并能提供性能监控界面、权限管理界面、审计信息查询界面以及数据修复操作界面等。一个SAServer支持多个SAClient的连接。