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; |