Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad: Ingeniera
Escuela: Computacin
Asignatura: Base de Datos II
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:
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.
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
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
Material y Equipo
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.
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;
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;
Tarea
Fuentes de Consulta
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