合 Oracle 12c中的统一审计
简介
Oracle Database 12c 推出一套全新的审计架构,称为统一审计(unified auditing)功能。统一审计主要利用策略和条件在 Oracle 数据库内部有选择地执行有效的审计。新架构将现有审计跟踪统一为单一审计跟踪,从而简化了管理,提高了数据库生成的审计数据的安全性。
统一审计的审计记录会自动存储在AUDSYS用户下(AUDSYS.AUD$UNIFIED表),SYSAUX表空间中。12c数据库在创建后,默认是使用混合审计(Mixed Auditing Policy)模式,使用ora_secureconfig策略。
系统内置的审计功能和统一审计功能的审计结果默认存放在SYSTEM、SYSAUX表空间。系统内置和审计功能和统一审计功能是一项非关键性功能,并且在维护不当时会产生大量的数据存在SYSTEM和SYSAUX表空间。
系统内置的审计功能和统一审计功能通常会影响到应用程序的性能,并且在应用程序会话分配、释放频繁的环境还可能会影响到数据库的可用性。对于高负载的系统不应该打开数据库内置的审计功能和统一审计功能。
存储位置
12c以前版本审计引擎不同的组件存放在不同的位置
- SYS.AUD$ : 会存放数据库的标准审计结果
- SYS.FGA_LOG$ : 会存放细粒度审计结果(fine-grained auditing
- DVSYS.AUDIT_TRAIL$ : 会存放Oracle Database Vault和Oracle Label Security等组件的审计结果
12C 统一审计引擎:所有的审计记录都存储在字典表UNIFIED_AUDIT_TRAIL
混合模式审计和完全统一审计之间的差异
混合模式审核:既有传统审计,也有统一审计;可以使用统一审计工具和传统的审计工具 启用任何统一审计策略。无需重新启动数据库。依赖audit_trail为 DB 或DB,EXTENDED
纯统一审计 :只有统一审计;只能使用统一审计工具, 以uniaud_on选项链接二进制文件oracle,然后重新启动数据库。
1 2 3 4 5 6 7 8 9 10 11 12 13 | -- 启用完全统一审计 (Pure unified auditing) shutdown immediate cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk uniaud_on ioracle startup SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing'; -- 禁用纯统一审计 shutdown immediate cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk uniaud_off ioracle startup SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing'; |
查看审计
12c数据库中预先定义了一些审计策略,可以通过audit_unified_enabled_policies
视图进行确认默认开启的统一审计的审计策略。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | QL> show parameter audit_trail NAME TYPE VALUE ------------------------------------ ----------- -------------------------- audit_trail string DB -- 检查统一审计模式: col parameter for a30; col value for a15; select * from v$option where parameter='Unified Auditing'; PARAMETER VALUE CON_ID ------------------------------ --------------- ---------- Unified Auditing FALSE 0 -- 注:TRUE: 代表完全统一审计开启; -- FALSE :代表传统审计和统一审计的混合模式。 -- 查看已启用的统一审计策略: col policy_name for a35; col entity_name for a15; col FAILURE for a15; col SUCCESS for a15; col ENTITY_TYPE for a15; select * from audit_unified_enabled_policies; SYS@lhrsdb> select * from audit_unified_enabled_policies; POLICY_NAME ENABLED_OPTION ENTITY_NAME ENTITY_TYPE SUCCESS FAILURE -------------------- ------------------------------ --------------- --------------- --------------- --------------- ORA_SECURECONFIG BY USER ALL USERS USER YES YES ORA_LOGON_FAILURES BY USER ALL USERS USER NO YES -- ORA_LOGON_FAILURES表示登陆失败的用户会被记录下来, |
这两个统一审计策略(ORA_SECURECONFIG和ORA_LOGON_FAILURES)是12c之后默认创建的,分别包含的审计内容如下:
1 | select * from audit_unified_policies where POLICY_NAME in('ORA_SECURECONFIG','ORA_LOGON_FAILURES') order by POLICY_NAME,AUDIT_OPTION; |
需要说明的是, ORA_SECURECONFIG 审计策略在 12.1.0.1 和 12.1.0.2 的版本上的定义是不同的。
在 12.1.0.1 数据库的环境中, ORA_SECURECONFIG 审计策略包含了对所有 LOGON 和 LOGOFF 的审计。
而在 12.1.0.2 数据库中,, ORA_SECURECONFIG 审计策略移除了对所有 LOGON 和 LOGOFF 的审计,而增加了一个新的审计策略 ORA_LOGON_FAILURES ,用于仅审计登陆失败的操作。这样更加方管理,也能改善因为大量 LOGON 和 LOGOFF 的审计对表空间的浪费。
查看统一审计的属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | set pages 9999 set lines 400 col PARAMETER_NAME for a30 col PARAMETER_VALUE for a40 select * from DBA_AUDIT_MGMT_CONFIG_PARAMS; SYS@lhrsdb> select * from DBA_AUDIT_MGMT_CONFIG_PARAMS; PARAMETER_NAME PARAMETER_VALUE AUDIT_TRAIL ------------------------------ ---------------------------------------- -------------------------------------------------------- DB AUDIT TABLESPACE SYSAUX STANDARD AUDIT TRAIL DB AUDIT TABLESPACE SYSAUX FGA AUDIT TRAIL DB AUDIT TABLESPACE SYSAUX UNIFIED AUDIT TRAIL AUDIT FILE MAX SIZE 10000 OS AUDIT TRAIL AUDIT FILE MAX SIZE 10000 XML AUDIT TRAIL AUDIT FILE MAX AGE 5 OS AUDIT TRAIL AUDIT FILE MAX AGE 5 XML AUDIT TRAIL DB AUDIT CLEAN BATCH SIZE 10000 STANDARD AUDIT TRAIL DB AUDIT CLEAN BATCH SIZE 10000 FGA AUDIT TRAIL OS FILE CLEAN BATCH SIZE 1000 OS AUDIT TRAIL OS FILE CLEAN BATCH SIZE 1000 XML AUDIT TRAIL AUDIT WRITE MODE QUEUED WRITE MODE UNIFIED AUDIT TRAIL AUDIT FILE MAX SIZE 10000 UNIFIED AUDIT TRAIL AUDIT FILE MAX AGE 5 UNIFIED AUDIT TRAIL 14 rows selected. |
统一审计相关的view:
View | Description |
---|---|
DBA_AUDIT_MGMT_CLEAN_EVENTS | Displays the cleanup event history |
DBA_AUDIT_MGMT_CLEANUP_JOBS | Displays the currently configured audit trail purge jobs |
DBA_AUDIT_MGMT_CONFIG_PARAMS | Displays the currently configured audit trail properties |
DBA_AUDIT_MGMT_LAST_ARCH_TS | Displays the last archive timestamps set for the audit trails |
4、创建其他的统一审计策略
(1)查看可以统计的标准系统行为:
1 2 3 4 5 | set pages 9999 lines 400 col name for a60 SELECT name FROM auditable_system_actions WHERE component = 'Standard' ORDER BY name; |
禁用统一审计
出于管理需要和安全需求对数据库操作进行审计,应该交由完备的安全生产管理规范,堡磊机,旁路审计设备等的结合来完成。对于高负载的系统不应该由数据库自身来对数据库操作进行审计。