Está en la página 1de 8

1

Base de Datos II, Gua 8

Facultad: Ingeniera
Escuela: Computacin
Asignatura: Base de Datos II

Tema: Auditoria de Base de datos. Parte I


Objetivo Especifico
Que el estudiante:

Aprenda a utilizar los diferentes mecanismos disponibles en ORACLE para auditar la base
de datos y aprender como activar dicha auditora.

Introduccion Teorica
Esta prctica est orientada a conocer y aprender como realizar un monitoreo selectivo de las
acciones de los usuarios para ayudar en la investigacin de usos maliciosos de la base de datos. El
monitoreo puede realizarse a cuatro niveles distintos:

Monitoreo Accesos: Es el monitoreo de todos los intentos fallidos y aciertos de conexin


a la base de datos.

Monitoreo de Accin: Es el monitoreo de sentencias SQL especficas sin atender


concretamente a los objetos. Este tipo de monitoreo puede hacerse para todos los usuarios
del sistema o se puede enfocar slo a algunos usuarios seleccionados.

Monitoreo de objetos: Es el monitoreo de los accesos a esquemas especficos sin


considerar el usuario. Monitorea las sentencias permitidas por los privilegios.
Para todos los tipos de monitoreo, ORACLE permite el monitoreo selectivo de sentencias
ejecutadas con xito, sentencias ejecutadas sin xito o ambas.
La informacin de las auditoras se almacena en el diccionario de datos, en la tabla SYS.AUD$ o
en la pista de auditora del sistema operativo (si lo permite). Lo anterior viene definido en el
parmetro audit_trail.
Posibles valores del parmetro audit_trail:

none: desactiva la auditora de la base de datos.

os: activa la auditora de la base de datos. Los sucesos auditados se escribirn en la pista
de auditora del sistema operativo, no se auditar en Oracle sino en el sistema operativo
anfitrin. Esta opcin funcionar dependiendo del sistema operativo.

db: activa la auditora y los datos se almacenarn en la taba SYS.AUD$ de Oracle.

db, extended: activa la auditora y los datos se almacenarn en la taba SYS.AUD$ de


Oracle. Adems se escribirn los valores correspondientes en las columnas SQLBIND y
SQLTEXT de la tabla SYS.AUD$.

xml: activa la auditora de la base de datos, los sucesos ser escritos en ficheros XML del
sistema operativo.

xml, extended: activa la auditora de la base de datos, los sucesos ser escritos en el
formato XML del sistema operativo, adems se incluirn los valores de SqlText y SqlBind

Base de Datos II, Gua 8

Existen varias vistas que se basan en la tabla SYS.AUD$ para mostrar distintos resultados, segn
la informacin que se quiera obtener:

ALL_AUDIT_POLICIES
ALL_AUDIT_POLICY_COLUMNS
ALL_DEF_AUDIT_OPTS
ALL_REPAUDIT_ATTRIBUTE
ALL_REPAUDIT_COLUMN
APEX_DEVELOPER_AUDIT_LOG
DBA_AUDIT_EXISTS
DBA_AUDIT_OBJECT
DBA_AUDIT_POLICIES
DBA_AUDIT_POLICY_COLUMNS
DBA_AUDIT_SESSION
DBA_AUDIT_STATEMENT
DBA_AUDIT_TRAIL
DBA_COMMON_AUDIT_TRAIL

DBA_FGA_AUDIT_TRAIL
DBA_OBJ_AUDIT_OPTS
DBA_PRIV_AUDIT_OPTS
DBA_REPAUDIT_ATTRIBUTE
DBA_REPAUDIT_COLUMN
DBA_STMT_AUDIT_OPTS
GV_$XML_AUDIT_TRAIL
KU$_AUDIT_DEFAULT_VIEW
KU$_AUDIT_OBJ_BASE_VIEW
KU$_AUDIT_OBJ_VIEW
KU$_AUDIT_VIEW
KU$_PROC_AUDIT_VIEW
KU$_PROCDEPOBJ_AUDIT_VIEW
KU$_PROCOBJ_AUDIT_VIEW

KU$_10_1_AUDIT_VIEW
MGMT$AUDIT_LOG
MGMT$ESA_AUDIT_SYSTEM_REPORT
SM$AUDIT_CONFIG
USER_AUDIT_OBJECT
USER_AUDIT_POLICIES
USER_AUDIT_POLICY_COLUMNS
USER_AUDIT_SESSION
USER_AUDIT_STATEMENT
USER_AUDIT_TRAIL
USER_OBJ_AUDIT_OPTS
USER_REPAUDIT_ATTRIBUTE
USER_REPAUDIT_COLUMN
V_$XML_AUDIT_TRAIL

Funcionamiento comando audit


El comando audit permite iniciar los tipos de auditora que a continuacin se detallan. Este
comando puede funcionar aunque no est activada la auditora de la base de datos, pero no
dejar constancia, para que funcione correctamente es necesario que la auditora est activada.
Sintaxis:
AUDIT
{ sql_statement_clause | schema_object_clause | NETWORK }
[ BY { SESSION | ACCESS } ]
[ WHENEVER [ NOT ] SUCCESSFUL ] ;

sql_statement_clause: activa la auditora para una sentencia SQL concreta.


schema_object_clause: activa la auditora para un objeto concreto de la base de datos.
WHENEVER SUCCESSFUL: activa la auditora slo para operaciones e instrucciones SQL en
objetos de esquema que se completen con xito.
WHENEVER NOT SUCCESSFUL: activa la auditora slo para operaciones e instrucciones
SQL en objetos de esquema que originen error.

La sintaxis de este comando tiene muchas ms opciones, disponibles en:


http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_4007.htm#SQLR
01107.
Funcionamiento comando noaudit
La instruccin noaudit se utiliza para detener la actividad de auditora que se haba activado
previamente con la instruccin audit. Esta instruccin no influye en el parmetro audit_trail.
Sintaxis:
NOAUDIT
{ sql_statement_clause | schema_object_clause | NETWORK}
[ WHENEVER [ NOT ] SUCCESSFUL ] ;

sql_statement_clause: detiene la auditoria de una sentencia SQL concreta.


schema_object_clause: detiene la auditora para un objeto concreto de la base de datos.
WHENEVER SUCCESSFUL: detiene la auditora slo para operaciones e instrucciones SQL
en objetos de esquema que se completen con xito.
WHENEVER NOT SUCCESSFUL: detiene la auditora slo para operaciones e instrucciones
SQL en objetos de esquema que originen error.

Base de Datos II, Gua 8

La sintaxis de este comando tiene muchas ms opciones, disponibles en:


http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_9017.htm#SQLR
F01607
Prerequisitos para poder ejecutar audit o noaudit
Para activar la auditora de las instrucciones SQL con el comando audit se necesita el privilegio de
sistema AUDIT SYSTEM.
El usuario que se desee pueda activar la auditora de objetos de un esquema, tiene que ser el
propietario del objeto o disponer del privilegio de sistema AUDIT ANY. Adems, si el objeto que
eligi para la auditora se ubica en un directorio, incluso habindolo creado uno mismo, se
necesita el privilegio de sistema AUDIT ANY.

Base de Datos II, Gua 8

Material y Equipo

Computadora con Oracle 10G XE.


Gua de Laboratorio.

Procedimiento
El desarrollo de esta prctica est orientado principalmente a la activacin de la auditoria en una
base de datos oracle. Lo primero que se debe hacer es comprobar si una instancia de Oracle tiene
activada la auditora y que la cuenta HR este activada (si HR esta desactivada, activarla para
continuar con la practica).
La activacin de la auditora en Oracle Database viene definida por el valor del parmetro:
audit_trail. Para comprobar si la auditora de la base de datos est activada ejecutaremos el
siguiente comando SQL:
select name, value
from v$parameter
where name like 'audit_trail'
Para activar la auditoria ejecutaremos el siguiente comando:
ALTER SYSTEM SET audit_trail = "DB" SCOPE=SPFILE;
Para desactivar la auditora ejecutaremos el siguiente comando:
ALTER SYSTEM SET audit_trail = "NONE" SCOPE=SPFILE;
Nota:

En Oracle 9i la auditora viene desactivada por defecto, el valor del parmetro "audit_trail"
est a "NONE".
En Oracle 11g la auditora viene activada por defecto, el valor del parmetro "audit_trail"
est a "DB".
Cuando se realiza un cambio en el archivo spfile, es necesario bajar la base de datos.

LOS COMANDOS AUDIT Y NOAUDIT


Auditoras de inicio de sesin: cada intento de conexin con la base de datos por parte de un
usuario (bien una aplicacin externa o las aplicaciones del propio Oracle) puede ser auditado. El
comando para iniciar la auditora de los intentos de inicio de sesin es:
audit session;
El comando anterior auditar tanto los intentos fallidos como los aciertos. Realizaremos un par de
pruebas para verificar que la auditoria funciona, nos conectaremos con el usuario HR con dos
intentos fallidos y con un acierto, luego ejecutaremos la siguiente con consulta:
select OS_Username Usuario_SO,
Username Usuario_Oracle,
Terminal ID_Terminal,
DECODE (Returncode,
'0', 'Conectado',
'1005', 'Fallo - Null',
'1017', 'Fallo',
'28000','Cuenta bloqueada',

Base de Datos II, Gua 8

Returncode) Tipo_Suceso,
TO_CHAR(Timestamp, 'DD-MM-YY HH24:MI:SS') Hora_Inicio_Sesion,
TO_CHAR(Logoff_Time, 'DD-MM-YY HH24:MI:SS') Hora_Fin_Sesion
from DBA_AUDIT_SESSION;
Para auditar slo los intentos fallidos utilizaremos el comando:
audit session whenever not successful;
Para auditar slo las conexiones correctas utilizaremos el comando:
audit session whenever successful;
Auditoras de accin: cualquier accin que afecte a un objeto de la base de datos (tabla, enlace
de base de datos, espacio de tablas, sinnimo, segmento de anulacin, usuario, ndice, etc.)
puede auditarse. Las posibles acciones que pueden auditarse (create, alter, drop) sobre estos
objetos pueden agruparse para simplificar la cantidad de esfuerzo administrativo necesario para
determinar y mantener las opciones de configuracin de la auditora. Por ejemplo, para auditar
todos los comandos que afectan a los roles puede emplearse el comando SQL:
audit role;
Este comando activar la auditora de las acciones: create role, alter role, drop role y set role.
Tambin se puede ser ms selectivo, por ejemplo, si queremos auditar a un usuario concreto
cuando realiza la accin "update" ejecutaremos el siguiente comando:
audit update table by nombre_usuario;
De esta forma se activar la auditora para el usuario "nombre_usuario" slo cuando ejecute el
comando "update" para cualquier tabla.
Para el caso lo realizaremos con el usuario HR, crearemos un rol y se lo asignaremos,
posteriormente haremos cambios sobre las tablas que hayamos colocado auditoria y realizaremos
la siguiente consulta:
select OS_Username Usuario_SO,
Username Usuario_Oracle, Terminal ID_Terminal,
Owner Propietario_Objeto,
Obj_Name Nombre_Objeto,
Action_Name Accion,
DECODE (Returncode, '0', 'Realizado', 'Returncode') Tipo_Suceso,
TO_CHAR (Timestamp, 'DD-MM-YY HH24:MI:SS') Hora
from DBA_AUDIT_OBJECT;
Auditoras de objeto: adems de las acciones a nivel de sistema sobre objetos, tambin es
posible auditar las acciones de manipulacin de datos sobre objetos. Se pueden auditar
operaciones de select, insert, update y delete sobre tablas. Este tipo de auditora es similar a la
anterior de auditora de accin, la nica diferencia es que el comando "audit" incorpora un
parmetro nuevo "by session" (el registro de auditora se escribir una nica vez por sesin) o "by
access" (el registro de auditora se escribir cada vez que se acceda al objeto auditado).
Por ejemplo crearemos un usuario donde crearemos las tablas de la gua 7 y realizaremos las
siguientes instrucciones.
Para auditar los "insert" realizados sobre la tabla "TCO_EMPLEADOS" por acceso, el comando ser
audit insert on TCO_EMPLEADOS by access;

Base de Datos II, Gua 8

Para auditar todas las acciones realizadas en la tabla "TCO_ENC_PARTI" por sesin utilizaremos el
siguiente comando:
audit all on TCO_ENC_PARTI by session;
Comentar acerca de la diferencia entre by acces y by session.
Otro ejemplo, para auditar las eliminaciones de registros de la tabla " TCO_DET_PARTI ":
audit delete TCO_DET_PARTI by access;

Comando noaudit
La instruccin noaudit debe tener la misma sintaxis que la instruccin audit que queramos
detener. Por ejemplo, al usuario micarnet le aplicaremos la siguiente auditoria:
audit session by micarnet;
Auditar los inicios de sesin para el usuario de Oracle " micarnet ", tanto los fallidos como los
correctos. Para desactivar esta auditora ejecutaremos el comando:
noaudit session by micarnet;
Comentar que ocurre si ejecutamos este comando:
audit session by micarnet;
Que auditar los inicios de sesin para el usuario "micarnet". Y luego este otro:
audit session;
Que aditar los inicios de sesin para todos los usuarios.
Comentar que ocurre si ejecutsemos ahora el comando:
noaudit sesin;

Base de Datos II, Gua 8

Tarea

Investigar todas las posibles acciones a auditar


Investigar sobre el archivo spfile

Fuentes de Consulta

Oracle Database Security Guide


http://www.monografias.com/trabajos908/oracle/oracle2.shtml
http://download.oracle.com/docs/cd/B28359_01/network.111/b28531/guidelines.htm#BC
GJJBAA
http://download.oracle.com/docs/cd/B28359_01/network.111/b28531/auditing.htm#CEGG
CIAE

Base de Datos II, Gua 8

Hoja de cotejo: 8
Gua 8: Auditoria de Base de datos. Parte I

Alumno:

Maquina No:

Docente:

GL:

Fecha:

EVALUACION
%
CONOCIMIENT
O

Del
20 al
30%

APLICACIN
DEL
CONOCIMIENT
O

Del
40%
al
60%

1-4

5-7

8-10

Conocimiento
deficiente de los
fundamentos
tericos

Conocimiento y
explicacin
incompleta de los
fundamentos
tericos

Conocimiento
completo y
explicacin clara
de los
fundamentos
tericos

No tiene actitud
proactiva.

Actitud propositiva
y con propuestas
no aplicables al
contenido de la
gua.

Tiene actitud
proactiva y sus
propuestas son
concretas.

ACTITUD

Del
15%
al
30%
TOTAL

100%

Nota

También podría gustarte