lunes, 12 de noviembre de 2012

Pistas de Auditoría de Bases de Datos

Jorge Salazar Heredia, CISA, CIA

Las Pistas de Auditoría o “Audit Trail” son un conjunto de transacciones que reflejan los cambios hechos a una base de datos. A partir del análisis de esta información se puede llegar a determinar la forma en la que los datos o elementos obtuvieron su valor actual. Son un componente fundamental para la implementación del “accountability” o rendición de cuentas.

En una base de datos de una aplicación estándar de una organización, se pueden generar pistas de auditoría para:

  • Conexiones a la base de datos.
  • Modificaciones al modelo de datos.
  • Modificaciones a los datos.
Las pistas de auditoría, al contrario de lo que se podría suponer por su nombre, no son de utilidad únicamente para el auditor. El uso más provechoso es para proactivamente monitorear la seguridad de la base de datos. Esto puede ser realizado por el administrador de la base de datos o por usuarios finales de las aplicaciones, dependiendo de la forma en la que éstas sean presentadas y la facilidad para su uso y consulta.  

En una base de datos es posible definir distintos tipos de pistas de auditoría, cada una de ellas con diferente costo de almacenamiento, costo de implementación, facilidad de uso, etc. La definición del tipo de pistas de auditoría a utilizar depende de la organización, la criticidad de los datos y los estándares de seguridad establecidos. Los tipos de pistas de auditoría que encontramos en una base de datos son los siguientes:

a.    Logs de base de datos: generalmente provistas con opciones que se configuran directamente en la base de datos (dependiendo del motor) e incluyen acciones como auditoría de sentencias, auditoría de privilegios y auditoría de objetos de la base de datos. La información generada se guarda en archivos propios de la base de datos. Es una opción costosa en recursos de almacenamiento y para revisar la información generada usualmente se requieren recursos adicionales tales como una herramienta para identificar y monitorear los eventos verdaderamente críticos.  

b.    Registros de auditoría: requeridos únicamente cuando se modifican los datos en una tabla maestra o transaccional. A diferencia de los logs de base de datos son registros de “historia” y no se utilizan para registrar las conexiones a la base de datos o modificaciones al modelo de datos, sino que se enfocan en las modificaciones a los datos originadas desde cualquier origen. Su implementación es a través de “triggers”, típicamente antes o después de los eventos “insert”, “delete” o “update”. Se guarda la imagen del registro antes y después del evento, existiendo la opción de registrar la imagen de la fila entera, o registrar únicamente las columnas que han cambiado durante la operación. El crecimiento de los registros de auditoría estará determinado por la cantidad de transacciones que se realicen sobre los registros.

c.    Pistas de auditoría basadas en aplicación: se implementan a través de procedimientos almacenados invocados desde las aplicaciones o directamente en el código de las aplicaciones. Consisten en agregar, y modificar cuando sea necesario, los siguientes campos en cada una de las tablas (maestras o transaccionales) de una aplicación:
  • creado_por – nombre o código de identificación del usuario que creó el registro
  • fecha_creación – fecha y hora en la que el registro fue creado
  • modificado_por – nombre o código de identificación del último usuario que modificó el registro
  • fecha_modificación – fecha y hora de la última modificación del registro
  • origen – nombre de la función de la aplicación desde la que se realizó la última acción sobre el registro.
Para su funcionamiento se requiere que nunca se eliminen registros de la base de datos, sino que únicamente se les cambie el estado, de tal forma que para el usuario final estos registros ya no existan pero físicamente seguirán en la base de datos. No crecen con las transacciones que se realizan, ya que son campos fijos que se definen al crear las tablas en las bases de datos.

La comparación de los tres tipos de pistas de auditoría en bases de datos es:


Logs de Base de Datos
Registros de Auditoría
Pistas basadas en aplicación
Alcance
Conexiones a la base de datos,
Modificaciones al modelo de datos,
Modificaciones a los datos
Modificaciones a los datos
Modificaciones a los datos
Almacenamiento requerido
Creciente, por cada conexión a la base de datos, por cada modificación al modelo de datos y por cada transacción sobre los registros.
Creciente, por cada transacción sobre los registros.
Fijo, columnas definidas en la creación de las tablas
Costo de almacenamiento
Alto, por el volumen de información que se guarda
Mediano
Bajo, espacio adicional fijo por cada registro
Costo de implementación
Alto
Mediano
Bajo
Tipo de Herramienta para su Revisión
Software especializado para monitoreo y revisión de archivos logs
Pantalla de consulta (con navegación)
Pantalla de consulta (simple)
De utilidad para
Administrador de Base de Datos,
Auditor de TI
Usuario Final, Auditor
Usuario Final, Auditor
Utilidad para análisis de fraudes
Alto, si se almacena toda la información necesaria
Mediano
Bajo, solo se almacenan datos de la primera y la última acción
Utilidad para supervisión y control
Bajo, por la dificultad para analizar los datos críticos
Alto, información disponible en formato adecuado para la supervisión
Alto, , información disponible en formato adecuado para la supervisión
Facilidad de uso
Bajo, por la dificultad de análisis
Alto, a través de interfaz gráfica de usuario
Alto, a través de interfaz gráfica de usuario

Se puede concluir que como una buena práctica, por su facilidad de uso e implementación, todas las tablas de las bases de datos deberían contar con pistas basadas en aplicación. En el caso de los registros de auditoría, se aconseja su uso para datos críticos o sensibles y para información cuya evolución se requiera revisar periódicamente. Los logs de base de datos son útiles, pero la decisión del volumen de información y el medio de almacenamiento dependerá de los requerimientos y restricciones existentes en la organización.

¿Te ha gustado el post? ¡Compártelo con otro auditor interno!

3 comentarios:

  1. Personalmente la auditoria basada en la aplicacion no me gusta, me parece inseguro si se modifica desde fuera de la aplicacion, incompleta ya que guarda la ultima modificacion, y ademas teniendo en cuenta los costos de almacenamientos actuales me parece una tecnica obsoleta. Por lo demas es un articulo excelente

    ResponderEliminar
  2. Respuestas
    1. Apreciado Fernando, si deseas contactarme solo tienes que enviarme un email a nahun.frett@gmail.com,
      Saludos,

      Eliminar