Manual del estudiante de Ingeniería en Sistemas de UTN/Bases de datos avanzadas/Auditoría de la base de datos

De Wikilibros, la colección de libros de texto de contenido libre.

Objetivos de la auditoría[editar]

  • Control de acciones seleccionadas que los usuarios efectúan sobre la BD y se utilizan para:
  • Investigar actividades dudosas sobre la BD
  • Recopilar información acerca de actividades específicas de la BD
  • Recopilar estadísticas sobre qué tablas se están actualizando, cuantas E/S lógicas se realizan y cuántos usuarios se conectan de forma simultánea en las horas de máxima actividad

La auditoría se puede realizar por sesión ó por acceso

Gestion de registros de auditoría[editar]

Se debe definir lo que se desea auditar:

  • Usuarios, sentencias u objetos
  • Ejecuciones de sentencias correctas, ejecuciones de sentencias incorrectas ó ambas

Se debe gestionar los registros de la auditoría:

  • Controlar el aumento de los registros de la auditoría
  • Protejer los registros de auditoría de un acceso no autorizado

Si hay muchos registros de auditoría y los archivos se llenan las sentencias de auditoria no se ejecutarán correctamente, para ello se debe liberar espacio Para que los registros no se incrementen indefinidamente:

  • Activar la auditoría sólo cuando sea necesario
  • Seleccionar adecuadamente las opciones de auditoría
  • Controlar estrictamente la auditoría sobre objetos del schema. Los usuarios pueden activar la auditoría de los objetos que le pertencen.
  • Otorgar privilegio AUDIT ANY con cuidado
  • Eliminar periódicamente los registros de auditoría (DELETE/TRUNCATE)

Protección de los registros de Auditoría[editar]

  • Proteger la información de auditoría para que no se pueda agregar, modificar, ni suprimir la información de auditoría:
  • AUDIT delete ON sys.aud$ BY ACCESS;
  • Sólo el DBA debe tener el rol DELETE_CATALOG_ROLE

Grabando los registros de Auditoría fuera del Tablespace SYSTEM[editar]

  • La tabla AUD$ puede aumentar de manera ilimitada.

_ AUD$ no se debe borrar, se pueden eliminar registros o truncar la tabla

  • Se debe almacenar fuera del tablespace del sistema (SYSTEM):
SQL> ALTER TABLE aud$ MOVE TABLESPACE AUDIT_TAB

Es importante crearle un índice:

SQL> CREATE INDEX i_aud1 ON aud$(sessionid, ses$tid)
TABLESPACE AUDIT_IDX;
  • Desactivar la auditoria antes de mover la tabla aud$ del tablespaces

Categorías de Auditoría[editar]

  • Por defecto:
    • Inicio y cierre de la Instancia
    • Privilegios del Administrador
  • De la Base de Datos:
    • Activada por el DBA
    • No puede registrar los valores de las columnas
  • Aplicaciones o Basada en valores
    • Se implementa por medio de código, procedimientos almacenados ó por medio de triggers
  • Puede registrar los valores de las columnas
  • Se emplea para seguir los cambios realizados en las tablas

Parámetros[editar]

Parámetro de incialización: AUDIT_TRAIL:

AUDIT_TRAIL = valor
  • TRUE ó DB: Activa la auditoría y todos los registros de ésta se almacenan en SYS.AUD$

_ OS: si el SO lo permite esta opción activa la auditoría y dirige todos los registros de auditoría a un archivo del SO

  • FALSE ó NONE: desactiva la auditoría
  • No existe valor por omisión

Especificando las opciones de Auditoría[editar]

Una vez inicializado el parámetro AUDIT_TRAIL en DB ú OS se puede (por medio del comando AUDIT) indicar que sentencias, objetos o privilegios se van a auditar, como por ejemplo:

AUDIT TABLE
Auditoría de sentencias, hace un seguimiento de varias sentencias DDL independientemente de la tabla donde se emitan, se pueden seleccionar algunos usuarios o todos los usuarios
AUDIT create ANY trigger
Auditoría de privilegios ; algunos usuarios o todos los usuarios
AUDIT select ON cuenta.saldo
Auditoría de objetos del schema; todos los usuarios

Opciones:

* WHENEVER SUCCESSFUL / WHENEVER NOT SUCCESSFUL
* BY SESSION / BY ACCESS

Desactivación de la Auditoría[editar]

  • NOAUDIT se emplea para parar la auditoría seleccionada por AUDIT
  • Debe tener la misma sintaxis que la sentencia AUDIT y sólo revierte los efectos de esa sentencia concreta, por ejemplo:
NOAUDIT select ON cuenta.saldo;

A partir de la versión 9.2 se puede auditar al usuario SYS para todos los comandos

Parámetros:

  • AUDIT_SYS_OPERATIONS
  • AUDIT_FILE_DEST