Oracle Database 12c Security: "Auditoria no 12c: Unified Auditing" ( Part II )

Por Joel Perez , Aman Sharma , Karan Dodwal (OCM) & Carlos H. Y. Furushima
Postado em Abril 2015

Revisado por Marcelo Pirovar - Solution Architect

Neste artigo, oferecemos-lhe a continuidade do artigo correspondente na parte II. Recomendamos que leia primeiro a PARTE I do presente. Continuamos..

Conforme descrito em parágrafos anteriores, a unifiedauditing (auditoria unificada) está disponível para a versão 12c (12.1.0.2), porém não está habilitada por default na versão 12c (12.1.0.2). Assim um banco de dados recém-criado está hábil somente a usar o mecanismo antigo de diretivas de auditoria disponíveis desde 11g ou release inferior, usando a política predefinida ORA_SECURECONFIG como é a única política que é habilitada por padrão. Para usar a unifiedauditing (auditoria unificada) é necessário habilita-la explicitamente, para ser utilizada, neste mecanismo, podemos utilizar outras duas políticas predefinida como, ORA_ACCOUNT_MGMT (gestão dos logons de usuário e privilégios relacionados com auditoria) e ORA_DATABASE_PARAMETER (auditoria para modificações de parâmetros).

OBS.: A política predefinida ORA_SECURECONFIG está presenta em ambos os mecanismos.

É importante ressaltar que não há uma mudança de local da trilha de auditoria para o mecanismo antigo, portanto o parâmetro AUDIT_FILE_DEST e/ou AUD$, ainda serão validos no 12c.Somente a diretiva recém-criado atualizaria a view de trilha de auditoria unificada (UnifiedAuditing), ou seja, a view UNIFIED_AUDIT_TRAIL.


Para habilitar a auditoria unificada (UnifiedAuditing) é necessário que o software oracle tenha um modulo interno adicional chamado UNIAUD_ON, que não é compilado em uma instalação padrão, por este motivo, a auditoria unificada (UnifiedAuditing) não é habilitada por default. É importante frisar que no momento da execução desta manobra, todos os recursos oracle deve estar parados (Listener, Database, Grid, etc.), uma vez que os binários do ORACLE_HOME, sofrerá uma ação de relink (recompilação).

Parando os principais serviços do oracle.

$ 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

$ sqlplus / as sysdba
Connected to:
Oracle Database 12c Enterprise Edition  Release 12.1.0.2.0 -64bit ProductionWith the Partitioning, OLAP, 
Advanced Analytics and RealApplication Testing options

SQL>shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.



Após parar todos os serviços, é necessário adicionar o "modulo interno" chamado 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
...
<< Saída omitida por  questão de brevidade >>
...

Concluído a adição do “modulo interno”, voltaremos os serviços novamente para estado online.

$ 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

É possível ver no banner ao executar o sqlplus, o anuncio da UnifiedAuditing (unificação auditoria), neste momento, ela está devidamente habilitada para o banco de dados. Para certificar essa informação, podemos consultar a visão V$OPTION do banco de dados.

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

 

Para verificar se temos a diretiva padrão ORA_SECURECONFIG, basta consultar a view AUDIT_UNIFIED_POLICIES, como mostrado abaixo:

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
...
<< Saída omitida por questão de brevidade  >>
...

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 rowsselected.

Para confirmar se essa diretiva está ativada para todo a banco de dados, basta consultar a view
AUDIT_UNIFIED_ENABLED_POLICIES.

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

POLICY_NAME                              ENABLED_USER_NAME
------------------------------ --------  ------------------------------
ORA_SECURECONFIG                         BY ALL USERS

 

Obs.: Habilitada por padrão para todos os usuários.

View UNIFIED_AUDIT_TRAIL
O usuário AUDSYS, armazena os dados de auditoria em suas tabelas internas, este trabalho é feito pelo processo background GEN0. As informações de auditoria pode ser exibidas usando a view somente leitura (read-only) UNIFIED_AUDIT_TRAIL. A view contém algumas colunas que auxiliam na identificação de diferentes server process (clients).

  • FGA_POLICY_NAME - Coluna representa o componente FGA.
  • DP_TEXT_PARAMETERS1 e DP_BOOLEAN_PARAMETERS1 - Coluna dedicada a informações sobre Data Pump (Operação de Export e Import).
  • RMAN_OPERATION - Coluna dedicada a informações sobre atividades do RMAN, tais como backup, restore ou operação de recovery.
  • Colunas OLS_xxx - Coluna dedicada para armazenar informações, quando o Oracle Label Security, estiver sendo usado (Para quando Oracle Label Security estiver sendo aplicado em uma tabela).
  • Colunas DV_xxx - Coluna dedicada para armazenar informações, quando o Oracle Database Vault, estiver sendo usado.
  • Colunas XS_xxx - Coluna dedicada para armazenar informações, quando o Real Application Security(RAS), estiver sendo usado.

Este artigo continua na sua parte II: Oracle Database 12c Security: "Auditoria no 12c: Unified Auditing" (Part III)



Joel Pérez é um DBA Especialista (Oracle ACE Director, OCM Cloud Admin. & OCM11g ). Com mais de 14 anos de experiência do mundo Oracle Technology, especializado em arquitetura e implementação de soluções como: Cloud, Alta disponibilidade, Disaster/Recovery, Upgrades, replicação e todos as áreas relacionadas com bancos de dados Oracle. Consultor internacional com deveres, conferências e atividades em mais de 50 países e inúmeros clientes em todo o mundo. Palestrante regular nos eventos Oracle em todo o mundo como: OTN LAD, OTN MENA, OTN APAC e muito mais. Joel sempre foi conhecido por ser pioneiro em tecnologia Oracle desde os primeiros dias de sua carreira sendo o primeiro latino-americano premiado como "OTN Expert" no ano de 2003 pela Oracle Corporation, um dos primeiros "ACE Oracle" no Oracle ACE Program no ano de 2004, um dos primeiros OCP Database Cloud Administrator em todo o mundo no ano de 2013 e como um das maiores realizações profissionais em sua carreira, recentemente ele foi homenageado como o primeiro "OCM Database Cloud Administrator" do mundo.

Aman Sharma é um especialista em banco de dados Oracle, um Oracle Certified Professional (9i, 10g, 11g), um Oracle Certified Expert para Linux e SQL e Sun Certified System Admin com mais de 6 anos de experiência. Aman trabalha como instrutor de formação de profissionais ao redor da Ásia-Pacífico em tecnologias da Oracle relacionadas. Antes disso, ele trabalhou como DBA para uma empresa de desenvolvimento de software de grande porte. Em seu tempo livre, quando Aman não está ensinando ou viajando, ele gosta de passar o tempo em vários fóruns da Oracle através da web.

Karan Dodwal (OCM) é um Oracle arquiteto com especialização em Oracle High Availability. Ele é um DBA Oracle Certified Master (OCM) com vários anos de experiência em banco de dados Oracle e no desenvolvimento Oracle. Ele trabalha como consultor Oracle e já realizou diversos serviços e treinamentos sobre os produtos da Oracle na Ásia Pacífico, Ásia do Sul e na Grande China. Ele é um speaker do All India Oracle Users Group (North India Chapter) e apresenta sessões no Oracle Technology. Ele tem várias configuração feitas do Oracle High Availability em todas as plataformas para missões críticas do Oracle Database. Ele é um expert em todas as soluções de High Availability da Oracle como RAC, Exadata, Data Guard e outros. Ele freqüentemente publica artigos em diversos sites e no seu bloghttp://karandba.blogspot.in e participa ativamente de eventos do grupo de usuários Oracle AIOUG AllIndia Oracle UsersGroup (North IndiaChapter) e ajuda diversos usuário no OTN Fórum da Oracle.

Carlos H. Y. Furushima é um especialista em banco de dados relacional, trabalhando como consultor de TI, atuando principalmente como o Oracle Database Administrator (DBA Oracle). Tem uma vasta experiência e conhecimento em "Performance, diagnosticand tuning", "High Availability", "Backup & Recovery" e "Exadata". Ele também está entusiasmado com sistema operacional Linux/Unix, onde contribui com o desenvolvimento do código do kernel Linux em parceria com a comunidade "GNU Linux", com criação e revisão de novas funcionalidades, melhorias e correções de bugs. Recentemente, Furushima divide seu tempo com consultoria especializada em banco de dados Oracle e estudos sobre "Oracle Internals", com o objetivo de descobrir e entender os benefícios do bancos de dados Oracle em plataforma Linux/Unix.

Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.