Oracle Database 12c: "Auditoria en 12c: Auditoría Unificada (Unified Auditing)" (Parte II)

Por Joel Perez , Aman Sharma , Karan Dodwal (OCM) y Sebastián D'Alessandro (OCE)
Publicado en Mayo 2015

Implementando Unified Auditing

Para el caso de una  base de datos que ha sido actualizada desde una versión previa a 12c o fue recientemente creada, la auditoría unificada (Unified Auditing)  no está habilitada en la versión actual de 12c (12102). Con el fin de poder comenzar a utilizarla, tenemos  disponible la facilidad de usar ambas (auditoría tradicional y Unified Audit) a través del modo de auditoría mixta (Mixed Audit).

En el caso de una base de datos que ha sido actualizada de versión, cualquier política de auditoría previamente configurada y sus respectivos destinos permanecerán habilitados. Pero además se pueden crear políticas de auditoría unificada (Unified Audit) utilizando el comando CREATE AUDIT POLICY y luego habilitarlas mediante el comando AUDIT. Si no estamos dispuestos a crear una nueva política, podemos aplicar cualquiera de las políticas de auditoría predefinidas- ORA_SECURECONFIG, ORA_ACCOUNT_MGMT y ORA_DATABASE_PARAMETER.

Estas políticas son generadas en el momento de la creación de la base de datos mediante el script  secconf.sql que se encuentra disponible dentro del directorio $ ORACLE_HOME/RDBMS /admin.

Una base de datos recientemente creada sólo puede utilizar el modo tradicional de auditoría disponible desde 11g por medio del modo mixto (mixed mode),  utilizando la política  ORA_SECURECONFIG que es la única que está activada de forma predeterminada.  Para poder  utilizar de modo “full” la auditoría unificada (Unified Auditing) esta debe ser habilitada explícitamente. De las otras dos políticas ORA_ACCOUNT_MGMT y ORA_DATABASE_PARAMETER, la primera está destinada a la gestión de auditoría relacionada con login de usuarios y privilegio y la última habilita la auditoría de modificación de parámetros. Como ya hemos mencionado, ambas no están habilitadas por defecto en la versión 12c.

Tenga en cuenta que las políticas de auditoría previamente configuradas seguirán escribiendo registros de auditoría solamente en los destinos configurados originalmente, como por ejemplo  AUDIT_FILE_DEST o AUD $ etc. Sólo las políticas recientemente creadas actualizarán la pista de auditoría unificada (Unified Auditing) en la vista UNIFIED_AUDIT_TRAIL.

Para activar la política de auditoría unificada se requiere hacer un “relink”  de los binarios de la base de datos con la opción UNIAUD_ON. Hay que tener en cuenta que al hacerlo será necesario que la base de datos y todos sus procesos, por ejemplo el listener,  estén bajos antes de la operación de “relinking”.

Al habilitar la configuración de auditoría unificada (Unified Audit) cualquiera de los parámetros relacionados con la auditoria tradicional, por ejemplo, AUDIT_TRAIL, AUDIT_FILE_DEST, AUDIT_SYS_OPERATIONS etc. dejan de ser utilizado por la base de datos. Más aún, la nueva política no tiene la capacidad de poder escribir ningún tipo de información relacionada con auditoría ni en el sistema operativo ni en el syslog.

Vamos a habilitar la nueva política de Auditoría Unificada (Unified Auditing) en nuestra base de datos.  Para ello antes de continuar, vamos a detener el Listener:


$ lsnrctl  stop
LSNRCTL for Linux:  Version 12.1.0.2.0 - on 21-MAY-2014 02:50:36
Copyright (c) 1991,  2014, Oracle. All rights reserved.
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
The command completed successfully 

A continuación se deberá bajar nuestra base de datos.


$ sqlplus  / as sysdba
Connected to:
Oracle Database 12c  Enterprise Edition Release 12.1.0.2.0 -
64bit Production
With the Partitioning,  OLAP, Advanced Analytics and Real
Application Testing  options
SQL>shutdown  immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

Ahora, vamos a realizar el “relink” de los binarios con la opción UNIAUD_ON.


$ cd  $ORACLE_HOME/rdbms/lib
$ make  -f ins_rdbms.mk uniaud_onioracle
ORACLE_HOME=$ORACLE_HOME
/usr/bin/ar d
/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/libknlopt.a
kzanang.o
/usr/bin/arcr
/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/libknlopt.a
/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/kzaiang.o
chmod 755  /u01/app/oracle/product/12.1.0/dbhome_1/bin
- Linking Oracle
rm -f  /u01/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/oracle
/u01/app/oracle/product/12.1.0/dbhome_1/bin/orald  -o
/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/oracle  -m64 -z
noexecstack  -Wl,--disable-new-dtags -
L/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/  -
L/u01/app/oracle/product/12.1.0/dbhome_1/lib/  -
L/u01/app/oracle/product/12.1.0/dbhome_1/lib/stubs/  -Wl,-E
/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/opimai.o
/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/ssoraed.o
/u01/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/ttcsoi.o  -Wl,-
-whole-archive  -lperfsrv12 -Wl,--no-whole-archive
/u01/app/oracle/product/12.1.0/dbhome_1/lib/nautab.o
/u01/app/oracle/product/12.1.0/dbhome_1/lib/naeet.o
/u01/app/oracle/product/12.1.0/dbhome_1/lib/naect.o
/u01/app/oracle/product/12.1.0/dbhome_1/lib/naedhs.o
<>

Una vez terminado el “relink”, tenemos que iniciar nuevamente  la base de datos:


$ sqlplus  / as sysdba
Connected to an idle  instance.
SQL>startup  mount
ORACLE instance  started.
Total System Global  Area  524288000 bytes
Fixed Size                2926320 bytes
Variable Size             444598544 bytes
Database Buffers          71303168 bytes
Redo Buffers              5459968 bytes
Database mounted.
Database opened.
SQL>EXIT
Disconnected from  Oracle Database 12c Enterprise Edition Release
12.1.0.2.0 - 64bit
With the Partitioning,  OLAP, Advanced Analytics, Real
Application Testing and Unified Auditing options

Podemos ver que el “banner” nos muesta que ahora que la Auditoría Unificada (Unified Auditing options) está habilitada para la base de datos. Para confirmar esto de una manera más prolija podemos consultar la vista v$option dentro de la base de datos.


SQL> select value  from v$option where PARAMETER = 'Unified Auditing';

VALUE
----------------
TRUE

Para comprobar si tenemos asignada la política predeterminada ORA_SECURECONFIG, podemos consultar la vista AUDIT_UNIFIED_POLICIES como se muestra a continuación,.


SQL> column  POLICY_NAME format a30
SQL> column  AUDIT_OPTION format a30
SQL> select  POLICY_NAME, AUDIT_OPTION 
     from AUDIT_UNIFIED_POLICIES where   policy_name =  'ORA_SECURECONFIG'  order by 2 ;

POLICY_NAME              AUDIT_OPTION
-----------------------  ------------------------------
ORA_SECURECONFIG         ADMINISTER KEY MANAGEMENT
ORA_SECURECONFIG         ALTER ANY PROCEDURE
ORA_SECURECONFIG         ALTER ANY SQL TRANSLATION PROFILE
ORA_SECURECONFIG         ALTER ANY TABLE
ORA_SECURECONFIG         ALTER DATABASE
ORA_SECURECONFIG         ALTER DATABASE LINK
ORA_SECURECONFIG         ALTER PLUGGABLE DATABASE
ORA_SECURECONFIG         ALTER PROFILE
ORA_SECURECONFIG         ALTER ROLE

<>

ORA_SECURECONFIG         EXEMPT REDACTION POLICY
ORA_SECURECONFIG         GRANT ANY OBJECT PRIVILEGE
ORA_SECURECONFIG         GRANT ANY PRIVILEGE
ORA_SECURECONFIG         GRANT ANY ROLE
ORA_SECURECONFIG         LOGMINING
ORA_SECURECONFIG         PURGE DBA_RECYCLEBIN
ORA_SECURECONFIG         SET ROLE
ORA_SECURECONFIG         TRANSLATE ANY SQL

46  rows selected.

Podemos confirmar si la política está o no habilitada para nuestra base de datos consultando la vista AUDIT_UNIFIED_ENABLED_POLICIES.


SQL> select  POLICY_NAME, ENABLED_OPT, USER_NAME
2  from AUDIT_UNIFIED_ENABLED_POLICIES
3  wherepolicy_name = 'ORA_SECURECONFIG'
4  /

POLICY_NAME              ENABLED_ USER_NAME
------------------------------  -------- ------------------------------
ORA_SECURECONFIG         BY   ALL USERS

Vemos que la política por defecto está habilitada para todos los usuarios.

Una vez llegados a este punto continuaremos con este articulo en su edición “Parte III” 

Joel Pérez es un experto DBA (Oracle ACE Director, OCM Cloud Admin. & OCM11g) con más de 14 años de experiencia real en el mundo de tecnología Oracle, especializado en diseño e implementación de soluciones de: Cloud, Alta disponibilidad, Recuperación contra desastres, Upgrades, Replicación y toda área relacionada con bases de datos Oracle. Consultor Internacional con trabajos, conferencias y actividades relacionadas en más de 50 países alrededor del mundo. Habitual Orador en eventos Oracle alrededor del mundo como: OTN LAD, OTN MENA, OTN APAC y más. Joel se ha caracterizado siempre por ser un pionero en materia de tecnología Oracle desde los inicios de su carrera siendo el primer latinoamericano en ser nombrado "OTN Expert" en el año 2003, uno de los primeros Oracle ACE en el programa ACE en el año 2004, unos de los primeros OCP Cloud en el mercado global en el año 2013 y como uno de los mayores logros de su carrera, recientemente en el 2014 fue honorificado como uno de los primeros "OCM Database Cloud Administrator" del mundo. En la actualidad Joel Pérez esta radicado en el continente de Asia con base en Beijing, China llevando a cabo operaciones profesionales en alianza con una de las mayores compañías de consultoría Oracle en China "Enmotech". http://education.oracle.com/education/otn/JoelPerez.htm

Aman Sharma es un especialista en Oracle Database, Oracle Certified Professional (9i, 10g, 11g), un experto certificado de Oracle para Linux, SQL y Sun Certified System Admin con más de 6 años de experiencia. Aman trabaja como instructor de la formación de profesionales en todo Asia Pacífico en tecnología Oracle. Antes de esto, trabajó como un DBA para una gran empresa de desarrollo de software. En su tiempo libre, cuando Aman no está enseñando o de viaje, le gusta pasar tiempo en varios foros de Oracle a través de Internet.

Karan Dodwal (OCM) es un arquitecto especializado en Alta Disponibilidad de Oracle. Senior OCM DBA Oraclecon varios años de experiencia en el area de desarrollo y administración de base de datos Oracle. Trabaja como consultor Oracle. Ha brindado diversos servicios y capacitaciones sobre los productos de Oracle en Asia Pacífico, Asia del Sur y la Gran China. Es ponente del Grupo de Usuarios "All India Oracle Users Group (North India Chapter)". Ha realizado configuraciones de Oracle de alta disponibilidad en todas las plataformas de misión crítica de Oracle Database. Él es un experto en todas las soluciones de alta disponibilidad de Oracle como RAC, Exadata, Data Guard y otros. Con frecuencia publica artículos en varios sitios web y en su blog: http: //karandba.blogspot.in. Participa activamente en eventos de grupos de usuarios y participa de forma frecuente en foros de OTN.

Sebastián D'Alessandro es un Senior DBA con más de 12 años de experiencia en tecnología Oracle, focalizado principalmente en seguridad de base de datos, soluciones de alta disponibilidad, disaster recovery y virtualización. Actualmente desarrolla su actividad como consultor e instructor de manera independiente.

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.