KingbaseES 数据库安全审计
1 安全审计来源:
KingbaseES 采用三权分立的安全管理体制主要是解决数据库超级用户权力过度集中的问题,KingbaseES 把数据库管理员分为数据库管理员、安全管理员、审计管理员三类。数据库管理员:主要负责执行数据库日常管理的各种操作和自主存取控制。安全管理员:主要负责强制存取控制规则的制定和管理。审计管理员:主要负责数据库的审计,监督前两类用户的操作,提高数据库的安全性。
2 审计概述
对数据库系统中发生的动作(或称为事件),将其对应的操作对象、操作时间等信息记录下来的过程,称为审计;
2.1 依赖关系
sql语句实现的四种功能在实现三权分立时,审计管理员的角与系统管理员的角是合一的。
2.2 审计的作用
数据库审计功能将用户对数据库的所有操作自动记录下来放入审计日志中,审计员(SAO)可以通过对审计日志的分析,对潜在的威胁提前采取有效地措施加以防范。KingbaseES数据库提供了一套完整的审计机制,用来保证对数据库中的各种行为进行监控,进而为数据库的安全、可靠和有效提供有力的保障。
2.3 审计事件
KingbaseES可以审计的事件,除了服务器事件、系统事件、语句事件、模式对象事件四种事件外,还有其他的事件,如:用户鉴别、自主访问控制、强制访问控制等,这为数据库在安全方面提供了保障。
3 审计设置和审计记录处理
审计级别设置是指由审计员(SAO)设定对何种数据库操作进行审计,KingbaseES系统提供了四种级别的审计设置,如:
服务器级别
审计数据库服务器级别发生的事件,包含以下三种:数据库服务器的启动、数据库服务器的停止、数据库服务器的配置文件重新加载。简称为:服务器级审计或服务器审计。
系统权限级别
在DBMS范围内,对DBMS拥有的结构或模式对象进行操作时如果是通过系统权限获得的操作权限,这样的语句会进行审计,简称为:系统权限级别审计。
语句级别
授予用户在该策略上的特权列表
模式对象级别
在某个确定的模式对象上进行SELECT或DML操作时引发的事件进行审计。模式对象包括表、视图、存储过程、函数、序列、包,简称为:模式对象级审计或对象审计。
注:模式对象不包括有依附关系的对象,如依附于表的索引、约束、触发器、分区表等。
3.1 审计模板
KingbaseES数据库默认提供了三种审计模板,这样可以方便用户在数据库中应用安全审计的功能;用户可以使用一条SQL语句,自己设置审计模板,快速的进行审计设置。
3.1.1 模板设计
审计模板在安装数据库后保存在bin/template目录下,初始化数据库后保存在data目录下,原因是模板中包含一些和用户相关的信息,所以要每个数据目录保存一份。
由于企业版kingbase没有系统安全员,而且也不支持策略的审计,安全版的kingbase支持这些,所以对于企业版和安全版的模板要分开处理。这样安装后在bin/template下会存在6个文件,分别为ee_high.sql、ee_middle.sql、ee_low.sql、se_high.sql、se_middle.sql、se_low.sql。初始化数据库时会根据当前license的版本选择企业版还是安全版的模板,然后将该模板拷贝到data目录下,去掉前面的ee_或se_,最后变成high.sql、middle.sql和low.sql。
3.1.2 模板应用
KingbaseES以SQL文本文件方式为用户提供3套审计模板,模板在初始化数据库后保存在
数据目录下,模板中是一些SQL语句,用于设置审计规则的,KingbaseES为用户提供接口用于应用这些模板。Kingbase提供视图sys_audtemplate用于查询模板的内容。
应用模板的SQL语句如下:
AUDIT TEMPLATE USING LOW | MIDDLE | HIGH LEVEL ;
3.2 设置审计开关
KingbaseES数据库中对审计功能设置了开关(AUDIT_TRAIL)。审计开关有没有打开,不会影响审计员(SAO)对审计进行设置。审计员(SAO)如果要使KingbaseES系统中的审计设置生效,必须打开该审计开关;否则即使对审计进行了设置,KingbaseES也不会对用户的操作进行审计。打开(或关闭)审计开关的方式有如下几两种方式:
1) 在KingbaseES启动之前,通过修改f文件,将AUDIT_TRAIL设置为ON(OFF)。
2) 在KingbaseES启动后,利用SQL命令将AUDIT_TRAIL设置为ON(OFF)。打开(或关闭)
审计开关,数据库系统中的审计功能立即生效(或失效)。打开(或关闭)审计开关的命令:
ALTER SYSTEM SET AUDIT_TRAIL = ON(OFF)
审计还有一个系统级参数 audit_mode,默认值是sync,表示同步审计;另一个可选值是async,表示异步审计。该参数的值只有 audit_trail 为 on 时才生效。
3.3 管理审计记录
KingbaseES数据库系统提供了审计记录存储、查询、B\S形式的报表、转储并删除、记录导入并且提供了清除审计设置的参数;
3.3.1 审计记录存储
KingbaseES系统中对于服务器级别的审计是在审计开关(AUDIT_TRAIL)打开后立即生效的,不需要审计员(SAO)进行相关的审计设置。服务器级别的审计会被记录到审计日志中,日志文件名是以AUDIT_SERVER_FILE开头的。在系统审计开关每次由打开到关闭的时候,系统会自动将服务器级别的审计日志改名。
对于系统权限级别、语句级别、模式对象级别的审计记录存放在系统字典表中。
3.3.2 审计记录查询
对于审计设置而言,系统权限级别、语句级别的审计设置统一存放于字典表SYS_AUDSET中;模式对象级别的审计存放在字典表SYS_AUDOBJ中;对于系统权限级别、语句级别、模式对象级别的审计记录也可以通过字典表直接查看。对于审计记录,四种级别的审计记录都可以通过相关的审计视图进行查询。提供的视图如下:
用于查看审计模板中的审计规则:sys_audtemplate
查看所有审计记录:SYS_AUDIT_TRAIL
查看全部审计记录:DBA_AUDIT_TRAIL
查看当前用户审计记录:USER_AUDIT_TRAIL
查询数据库中所有对象的审计结果:SYS_AUDIT_OBJECT
查看对象审计记录: DBA_AUDIT_OBJECT
查看审计记录导出目录下的转储文件:sys_ls_audittrail
连接和断开连接语句的审计结果:SYS_AUDIT_SESSION
查看所有连接或断开的记录:DBA_AUDIT_SESSION
查看所有语句级审计记录:SYS_AUDIT_STATEMENT
查看所有语句级审计记录:DBA_AUDIT_STATEMENT
查看所有数据库中语句级审计设置:SYS_STMT_AUDIT_OPTS
查看所有数据库中系统权限级审计设置:SYS_PRIV_AUDIT_OPTS
查询服务器级别的审计记录:SYS_SERVER_AUDIT_TRAIL
查询所有可审计动作及其对应的动作:SYS_ACTIONS
查看当前数据库中所有对象级审计设置:SYS_OBJ_AUDIT_OPTS
DBA对象级审计选项表:DBA_OBJ_AUDIT_OPTS
查询所有可审计动作及其对应的动作:AUDIT_ACTIONS
3.3.3 有限审计记录转储并删除
KingbaseES提供了两种对审计记录转储并删除的方法
1) 提供函数dump_and_clean_audittrail,用于转储并删除审计记录。该函数完成审计记录的转储和删除,转储时进行加密,加密算法是RC4;密钥时系统根据时间戳生成的,散列后保存在文件头。
注:转储并删除审计记录是需要保证audit_trail_dest设置完成,可以使用show命令查看参数的值,使用alter system set命令修改该参数,修改后需重启数据库后才能生效。如:
SHOW audit_trail_dest;
ALTER SYSTEM SET audit_trail_dest = ‘e:/Firefly/’;
2) 审计记录转储的加密方式
使用COPY FROM时,先根据种子还原密钥,然后对每一行数据进行base64解码、解密、最后将解密后的明文插入到用户表中。
3.3.4 审计记录导入
KingbaseES提供函数restore_audittrail,用于将审计记录从外存文件导入审计记录系统表sys_aud中,提供视图sys_ls_audittrail,用来查看审计记录导出目录下的转储文件。
3.3.5 审计报表
审计报表,把审计结果记录以图表的形式形象直观的展示。报表的类型有〖基于用户〗、〖基于对象〗、〖基于登录用户〗、〖基于登录主机〗和〖基于事件类型〗五种,报表显示的记录内容有〖记录总数〗、〖成功总数〗和〖失败总数〗三种选择。同时提供〖饼状图〗和〖柱状图〗两种图形显示方式来展示审计结果。
数据库审计管理插件作为Web集成管理工具的主要插件,提供审计用户对数据库服务器审计管理功能。
3.3.6 审计数据可用性
审计数据可用性现在已经在公安部安全数据库国标第四级检测成功通过,当每次向记录审计记录的系统表增加新的记录之前都要对表空间进行监测,检查表空间使用率是否达到75%,如果达到,则报警吿;如果达到95%则停掉数据库服务器。
由于存放审计记录的表空间与其他数据的表空间是分离的,所以可以在每次扩展表空间文件大小时判断是否达到75%(或95%),如果达到则做相应的处理。
3.3.7 清除审计设置
为使用户能快速清除审计设置,提供SQL语句,用于清除系统的审计设置,清除包括全局的语句和系统权限审计设置,以及本地的对象审计设置,只有审计员才能执行该语句。
语法:
AUDIT CLEAN ALL
4 小结
KingbaseES 数据库系统提供的安全审计功能可以解决数据库超级用户权力过度集中的问题,这样就可以保证数据库系统的安全性,有效的防止蓄意盗窃,破坏数据的人打破控制,此外,审计功能将用户对数据库的所有操作自动记录下来放入审计日志中,审计员(SAO)可以通过对审计日志的分析,对潜在的威胁提前采取有效地措施加以防范。KingbaseES数据库提供了一套完整的审计机制,用来保证对数据库中的各种行为进行监控,进而为数据库的安全、可靠和有效提供有力的保障。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论