Inhalt
Problem
Mit Oracle12c wurde Unitifed Audit Trail als neues Security Feature eingefuehrt. Wie der Name zeigt, sollen die verschiedenen Audit Moeglichkeiten zentral zusammen gefuehrt und vereinheitlicht werden. Gemaess Dokumentation muss UAT in das Oracle Binary gelinkt werden, damit es aktiviert wird. UAT wird aber per Default verwendet. Man unterscheidet lediglich den Mixed Mode vom puren Unified Auditing. Es also notwendig sich mit UAT auseinander zusetzen, auch wenn man es nicht direkt einsetzen will.
Auf dieser Seite gibt es einen groben Ueberblick.
Analyse
Unified Audit Trail mixed mode / exclusive mode
Ob ausschliesslich UAT verwendet wird oder Mixed Mode sieht man bei der Anmeldung an die Instance oder man prueft welche Libraries in den Oracle Kernel gelinkt sind.
oracle@oel21:/home/oracle/ [ORCL1] ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a | grep -c kzaiang.o 0 oracle@oel21:/home/oracle/ [ORCL1]
In diesem Fall ist UAT nicht gelinkt.
Um UAT im exclusive Mode bzw. Pure Unified Auditing zu nutzen muss Oracle relinked werden. Dazu die Instanz, Listener, usw. stoppen.
oracle@oel21:/home/oracle/ [ORCL1] cd $ORACLE_HOME/rdbms/lib oracle@oel21:/u00/app/oracle/product/12.1.0/db_1_0/rdbms/lib/ [ORCL1] make -f ins_rdbms.mk uniaud_on ioracle /usr/bin/ar cr /u00/app/oracle/product/12.1.0/db_1_0/rdbms/lib/libknlopt.a /u00/app/oracle/product/12.1.0/db_1_0/rdbms/lib/kzaiang.o chmod 755 /u00/app/oracle/product/12.1.0/db_1_0/bin ... oracle@oel21:/u00/app/oracle/product/12.1.0/db_1_0/rdbms/lib/ [ORCL1] ar -t $ORACLE_HOME/rdbms/lib/libknlopt.a | grep -c kzaiang.o 1 oracle@oel21:/u00/app/oracle/product/12.1.0/db_1_0/rdbms/lib/ [ORCL1]
Mit uniaud_off wird der UAT Exclusive Mode wieder disabled.
SQL> -- UAT wird im mixed Mode betrieben SQL> SELECT PARAMETER,VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing'; PARAMETER VALUE -------------------- -------------------- Unified Auditing FALSE SQL> select count(*) from AUDIT_UNIFIED_ENABLED_POLICIES; COUNT(*) ---------- 1 SQL> -- Fuenf Policies sind fuer das Unified Auditing vorab verfuegbar SQL> select policy_name,count(*) from AUDIT_UNIFIED_POLICIES group by policy_name; POLICY_NAME COUNT(*) ------------------------- ---------- ORA_RAS_POLICY_MGMT 32 ORA_DATABASE_PARAMETER 3 ORA_RAS_SESSION_MGMT 14 ORA_ACCOUNT_MGMT 9 ORA_SECURECONFIG 47 SQL> select count(*) from dba_audit_trail; COUNT(*) ---------- 1 SQL> select count(*) from unified_audit_trail; COUNT(*) ---------- 1001 SQL> -- Beim disconnect ist zu erkennen, dass das UAT Feature nicht ins Oracle Binary gelinkt ist. SQL> disconnect Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options SQL> connect / as sysdba Connected. SQL> select count(*) from unified_audit_trail; COUNT(*) ---------- 1002 SQL>
By default enabled policies
SQL> select * from AUDIT_UNIFIED_ENABLED_POLICIES; USER_NAME POLICY_NAME ENABLED_OPT SUCCESS FAILURE -------------------- -------------------- --------------- -------- -------- ALL USERS ORA_SECURECONFIG BY YES YES
Was steckt hinter der Policy ORA_SECURECONFIG ?
SQL> select AUDIT_OPTION,AUDIT_OPTION_TYPE from AUDIT_UNIFIED_POLICIES where POLICY_NAME = 'ORA_SECURECONFIG'; AUDIT_OPTION AUDIT_OPTION_TYPE ----------------------------------- ------------------ LOGMINING SYSTEM PRIVILEGE TRANSLATE ANY SQL SYSTEM PRIVILEGE EXEMPT REDACTION POLICY SYSTEM PRIVILEGE PURGE DBA_RECYCLEBIN SYSTEM PRIVILEGE ADMINISTER KEY MANAGEMENT SYSTEM PRIVILEGE DROP ANY SQL TRANSLATION PROFILE SYSTEM PRIVILEGE ALTER ANY SQL TRANSLATION PROFILE SYSTEM PRIVILEGE CREATE ANY SQL TRANSLATION PROFILE SYSTEM PRIVILEGE CREATE SQL TRANSLATION PROFILE SYSTEM PRIVILEGE CREATE EXTERNAL JOB SYSTEM PRIVILEGE CREATE ANY JOB SYSTEM PRIVILEGE GRANT ANY OBJECT PRIVILEGE SYSTEM PRIVILEGE EXEMPT ACCESS POLICY SYSTEM PRIVILEGE CREATE ANY LIBRARY SYSTEM PRIVILEGE GRANT ANY PRIVILEGE SYSTEM PRIVILEGE DROP ANY PROCEDURE SYSTEM PRIVILEGE ALTER ANY PROCEDURE SYSTEM PRIVILEGE CREATE ANY PROCEDURE SYSTEM PRIVILEGE ALTER DATABASE SYSTEM PRIVILEGE GRANT ANY ROLE SYSTEM PRIVILEGE DROP PUBLIC SYNONYM SYSTEM PRIVILEGE CREATE PUBLIC SYNONYM SYSTEM PRIVILEGE DROP ANY TABLE SYSTEM PRIVILEGE ALTER ANY TABLE SYSTEM PRIVILEGE CREATE ANY TABLE SYSTEM PRIVILEGE DROP USER SYSTEM PRIVILEGE CREATE USER SYSTEM PRIVILEGE AUDIT SYSTEM SYSTEM PRIVILEGE ALTER SYSTEM SYSTEM PRIVILEGE CREATE DATABASE LINK STANDARD ACTION DROP DATABASE LINK STANDARD ACTION ALTER USER STANDARD ACTION CREATE ROLE STANDARD ACTION DROP ROLE STANDARD ACTION SET ROLE STANDARD ACTION CREATE PROFILE STANDARD ACTION DROP PROFILE STANDARD ACTION ALTER PROFILE STANDARD ACTION ALTER ROLE STANDARD ACTION CREATE DIRECTORY STANDARD ACTION DROP DIRECTORY STANDARD ACTION ALTER DATABASE LINK STANDARD ACTION CREATE PLUGGABLE DATABASE STANDARD ACTION ALTER PLUGGABLE DATABASE STANDARD ACTION DROP PLUGGABLE DATABASE STANDARD ACTION LOGON STANDARD ACTION LOGOFF STANDARD ACTION 47 rows selected. SQL>
Wie oben zu sehen ist, wird jede Anmeldung protokolliert.
Wohin und wann werden Auditdaten geschrieben
Loesung
Policies erstellen, aendern und loeschen
Policies zum Auditieren verwenden
Housekeeping
Fazit
Die fuer Unified Audit Trail relevanten Views sind in der Oracle Dokumentation beschrieben.