Oracle Unified Audit Trail (UAT)

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.

top

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.

top

 

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>

top

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

top

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.

top

Referenzen

Audit Policy Data Dictionary Views

top