Auditoría a Sistemas de Bases de Datos  

Los Sistemas de Gestión de Bases de Datos proveen mecanismos que garantizan la seguridad, consistencia y reglas de integridad. Es de gran importancia par el auditor de sistemas, conocerlos y apoyarse en ellos para verificar el ambiente de control establecido en la instalación.

Características que apoyan la seguridad en los Sistemas de Bases de Datos

Los tópicos que se incluyen tienen que ver con la exactitud, consistencia y confiabilidad de la información y con la privacidad y confidencialidad de los datos. Las Bases de Datos tienen dentro de sus características elementos que pueden ser utilizados para garantizar la calidad de la información almacenada y procesada.

Claves Primarias

Esta definición determina que para un valor llave primaria solo existirá una tupla o registro en la tabla. Esta situación garantiza que no se tendrá información repetida o discordante para un valor de clave y puede ser usada como control, para evitar la inclusión de información inconsistente o repetida en las tablas.

Dominio de los atributos

El dominio de un atributo define los valores posibles que puede tomar este atributo. Además de los dominios "naturales", usados como tipos de datos, el administrador del sistema puede generar sus propios dominios definiendo el conjunto de valores permitidos. Esta característica, usada en forma correcta, se convierte en mecanismo de control, restricción y validación de los datos a ingresar . Hay que resaltar que estas restricciones siempre serán evaluadas en forma automática por el DBMS.

Reglas de Integridad

Son restricciones que definen los estados de consistencia de la Base de Datos. Se debe implementar en especial para verificaciones en cada actualización, para evitar que se caiga en estados de inconsistencia. En particular se debe verificar que se implementen correctamente la regla de la Entidad.(un atributo primo no puede ser nulo) y reglas de Integridad Referencial, esta ultima garantiza que solo se puedan incluir registros para valores previamente ingresados en otras tablas.
Algunos ejemplos de su uso pueden ser:
- Impedir incluir novedades de nomina a una persona que no exista como trabajador en el archivo maestro
de empleados.
- Impedir facturar a un cliente que no esté previamente creado en el archivo de clientes.
- Impedir borrar de la lista de clientes un registro cuyo código esté incluido en la relación de cuentas por cobrar.

Reglas de integridad del negocio

Cada negocio funciona en forma diferente y tiene reglas asociadas a su actividad que pueden ser definidas como restricciones en la Base de Datos. Esto implicaría que cualquier operación que se realice debe respetar estas limitantes. Por decir algo, condicionar que solo se otorgan descuentos en ventas superiores a $400.000. Estas son condiciones que la administración coloca a la operación y como principio en el desarrollo de una aplicación, deben ser respetadas por esta.

Vistas

Sirve como mecanismo de compartimentación de la información almacenada, permitiendo presentar a diferentes usuarios parte del universo, según se considere necesario. Según las políticas de seguridad, es usual que gran parte de los usuarios nunca tengan acceso directamente a las tablas completas, sino que lo hagan a través de las vistas, las cuales, por ser un objeto, son sujetas de otras medidas de seguridad.

Perfiles de usuario y Acceso a objetos de la Base de Datos

Asignación de nombres de usuarios, con su respectiva clave de acceso (password) y perfiles asociados. Pueden también ser creados roles que serán concedidos a los usuarios según sus funciones.

Auditoría

En situaciones en que los datos sean críticos, se debe contar con el riesgo de violación de la seguridad por una persona no autorizada, además de errores involuntarios que igual pueden causar inconsistencias o falta de veracidad de la información. Para estos casos es interesante mantener un archivo de auditoría (logs), donde son registradas todas las operaciones realizadas por los usuarios de las bases de datos. En caso de sospecha de falla en la seguridad, este archivo puede ser consultado para conocer los daños causados y/o identificar a los responsables de las operaciones irregulares.

Criptografía de Datos

Como recurso de seguridad, se puede mezclar o codificar los datos de modo que, al momento de ser almacenados en disco duro o trasmitidos por alguna línea de comunicación, no sean más que bits ininteligibles para aquellos que los accedan por un medio no oficial. La criptografía es de gran importancia en las bases de datos pues la información esta almacenada por largos periodos de tiempo en medios de fácil acceso, como discos duros.

Disparadores o Triggers

Siendo un Triggers o disparador una rutina asociada con una tabla o vista que automáticamente realiza una acción cuando una fila en la tabla o la vista se inserta (INSERT), se actualiza (UPDATE), o borra (DELETE), permiten vigilar y registrar acciones especificas según las condiciones propias del negocio; permitiendo crear logs de auditoria a la medida.

Como se puede apreciar los Sistemas de Bases de Datos ofrecen a desarrolladores, administradores y usuarios una gama muy completa de herramientas que permiten garantizar la integridad, consistencia, confidencialidad y en general seguridad de la información almacenada y con un elemento muy importante a favor: Las líneas de código que se requieren por parte del implementador son muy pocas, en ocasiones solo basta con una sencilla sentencia para obligar al DBMS a controlar y mantener las restricciones necesarias.

  Metodología tradicional   Revisión del entorno y el estado actual de control apoyado en Checklist

 

Metodología propuesta
 

1. Investigación Preliminar. Obtener el inventario de recursos (Hardware, software, orgware y liveware) y la información relevante para apoyar el examen que el equipo de Auditoría realizara. El resultado de esta recopilación se organiza en un archivo de papeles de trabajo denominado archivo permanentemente o expediente continuo de Auditoría.

 

a. Conocimiento del negocio y del Sistema.
Información sobre la empresa y su objeto social, sobre sus políticas y normas. Además toda la información referente al Sistema de Bases de Datos.

Información que se debe solicitar y analizar

1. Políticas y normas del negocio en relación con las actividades apoyadas con el Sistema de Bases de Datos.
2. Información de objetos de la Bases de Datos (tablas, vistas, procedimientos almacenados, triggers, etc.).
3. Diagrama de sistema y de redes del servidor de bases de datos, servidores de replicación y servidores de aplicaciones. Todas las conexiones clientes a la base de datos incluyendo interfaces de red, direcciones IP, conexiones LAN y WAN.
4. Listado de usuarios de la base de datos con sus roles y privilegios.
5. Documentación de las aplicaciones sobre la base de datos
6. Cuadros organizacionales y descripción de funciones y procedimientos del personal que soporta las bases de datos
7. Políticas de administración y procedimientos sobre la base de datos incluyendo procedimientos de seguridad, programas de backup y procedimientos de recover o restauración.
8. Documentación de pruebas de recovery o restauraciones.
9. Documentación de espacio en disco, tablas de espacio y monitoreo.
10. Archivos de arranque de bases de datos.
11. Script de utilidades.
12. Archivos de configuración
13. Listados a través de sistema operativo de los directorios de la base de datos mostrando propietarios y permisos hasta el nivel de archivos.
14. Listados a través de sistema operativo de los directorios de programas de aplicación que accedan las bases de datos, mostrando propietarios y permisos hasta el nivel de archivos.
15. Listado de archivos de usuarios y grupos de usuarios.
16. Listado de información de archivos de logs.
17. Listado de los servicios habilitados (especialmente en el caso de exposiciones a Internet)

b. Importancia del SGBD en la empresa.
c. Alcance de auditoría.

2. Definir grupos de riesgos

Escenarios de Riesgo Sistema de Bases de Datos

 

1. Objetos de la base de datos y reportes.
Permiso en SGBD
Permisos SO
Informacion fuera de tablas. Importac Export
Privacidad y Confidencialidad.
Informes a quien no son.
DBA
Acceso a los datos fuera de DBMS
Politicas de seguridad
2. Programas de aplicacion y utilitarios.
Acceso logico
Permiso en SGBD
Permisos SO
Datos en Programas
Modificaciones a Aplicaciones
Estandares de Desarrollo
Documentacoin Cambios
Autorizacion a cambios, pruebas y puesta en marcha.
Acceso a fuentes.
Copias de los nuevos programas.
Adiconar rutinas de auditoriia
3. Auditoría y Seguimiento
Logs.
Riesgos: logs muy grandes.
Desconocimiento de la informacion contenida
4. Planes de Respaldo y Contingencia.
5. Metadatos.
6. Seguridad en la Red.
7. Acceso a traves de Internet.
8. Seguridad Instalaciones y acceso fisico.
9. Diseño de la Base de Datos.
LLaves Primarias logicas
Integridad Referencial o mecanismos
Normalizacion
Triggers mal diseñados.
10. Eficiencia y economia de recursos.
11. Almacenamiento.
Cambios no afectan a programas

Agrupación

  a. Problemas por seguridad en instalaciones y acceso físico.
b. Riesgos relacionados con el acceso lógico y la privacidad a las bases de datos.
c. Causados por la relación Sistema Operativo - DBMS.
d. Riesgos asociados a las aplicaciones y utilitarios.
e. Problemas relacionados con el Diseño de la Base de Datos.
f. Asuntos concernientes al Diccionario de datos y documentación
g. Problemas con el Respaldo y planes de contingencia
h. Riesgos por personal y organización.
i. Auditabilidad.

3. Evaluación del estado de control existente (checklist)

Objetivos de la evaluación para cada grupo de riesgos

Preguntar para cada objetivo gravedad, probabilidad, impacto, referencias observaciones.
A continuación se muestran algunos ejemplos.

 

a. Problemas por seguridad en instalaciones y acceso físico.

Objetivos

  i. Evaluar la seguridad de las instalaciones contra diferentes riesgos.
ii. Evaluar la existencia e planes de acción ante siniestros que involucren las instalaciones.
iii. Evaluar las medidas existentes para el control de acceso físico a las instalaciones.
Checklist

b. Riesgos relacionados con el acceso lógico y la privacidad a las bases de datos.
c. Causados por la relación Sistema Operativo - DBMS.
d. Riesgos asociados a las aplicaciones y utilitarios.
j. Problemas relacionados con el Diseño de la Base de Datos.

Objetivos

  i. Investigar sobre la metodología de diseño usada.
ii. Evaluar la integridad y consistencia de los datos.
iii. Evaluar si el Sistema respeta y apoya las reglas del negocio.

e. Asuntos concernientes al Diccionario de datos y documentación
f. Problemas con el Respaldo y planes de contingencia
g. Riesgos por personal y organización.

Objetivos

  i. Evaluar las funciones del DBA
ii. Evaluar si el sistema respecta la segregación de funciones
iii. Evaluar las condiciones del personal involucrado con el Sistema de Bases de Datos.

h. Auditabilidad.

Objetivos

  i. Existencia de logs donde se registre las actividades relacionadas con la bases de datos.
ii. Evaluar el grado de uso de la información registrada en los logs si existen.
Checklist
Aplicación de cuestionarios
Informes de emergencia
 

Diseño de pruebas de Auditoría

Los pasos anteriores son base para determinar la naturaleza y extensión de las pruebas de auditoría que deban efectuarse.
Las pruebas de auditoría, como se sabe, son de dos tipos: De cumplimiento y sustantivas. Buscan obtener evidencia que los controles establecidos existen en realidad y se utilizan y ejecutan correctamente.
Al conjunto de pruebas resultante se denomina Programa de auditoría.
El modo en que se verificó cada respuesta de los cuestionarios, debe ser incluida en los checklist.
Es un trabajo de escritorio donde se especifica la instalación a evaluar, el número de la prueba, el objetivo de la misma, las técnicas a emplear, el tipo de prueba (de cumplimiento o sustantiva), los recursos necesarios para aplicarla, en cuanto a información, software, hardware y personal. Se describe, además el procedimiento a emplear.

Ejecución de pruebas

Su propósito es obtener evidencia sobre los controles establecidos, su utilización, y el entendimiento y ejecución de los mismos por parte de las personas. Para cada prueba ejecutada deben adjuntarse los soportes correspondientes.

 
Análisis de efectos de debilidades
 

a. Identificación de debilidades
b. Impacto
- Costo de perdidas y adicionales
- Probabilidad de ocurrencia.

 

Diseño de controles

Determinar y evaluar medidas de seguridad adicionales

 
Informe final
Seguimiento
 
Procedimientos de Auditoría
Adaptado del material escrito por Svetlana Plusnina
 
Análisis de Riesgos
 

Propósito. Aprovechar el conocimiento de la relación sistema operativo, aplicación, sistema de bases de datos para realizar una auditoria basada en riesgos.

1. Control del ambiente de login en Sistema Operativo

 
a. Asegúrese que el usuario esta adecuadamente restringido por el programa de aplicación o por la seguridad de un menú de opciones.
b. Asegúrese que el usuario no puede escaparse del nivel del programa de aplicación y obtener acceso al sistema operativo a la base de datos.
c. Asegúrese que el acceso al sistema de bases de datos (roles, privilegios) esta limitado a los objetos de programas de aplicación y el acceso a los objetos del sistema esta restringido desde el identificador de la aplicación de bases de datos.
2. Asegúrese que cada usuario se autentica con la base de datos.
 
a. Asegúrese que cada usuario esta propiamente restringido por el programa o por el menú de seguridad dentro de la aplicación.
b. Asegúrese que cada usuario esta restringido desde la administración de bases de datos y las herramientas de desarrollo, igualmente desde las herramientas de consultas.
3. Si los usuarios se conectan a las bases de datos a través de interfaces de administración o desarrollo
  a. Asegúrese que cada perfil de usuario en las tablas de usuarios es auditado.
b. Asegúrese que los roles y privilegios son auditados usuario por usuario.
4. Realice una detallada revisión de los login, procesos de autenticación, perfiles de usuario y roles y privilegios.
5. Si un programa es una aplicación Web a través de http o Programas CGI en el servidor:
  a. Determine si el enrutador y/o firewall restringe el acceso a la Base de Datos.
b. Determine que son adecuados los controles de accesos al servidor web.
c. Que se realizan procesos de auditoria sobre los usuarios del sistema operativo y de la base de datos.
 
Seguridad en el Sistema Operativo
 

Objetivo. Determinar si el acceso a la base datos a través del sistema operativo es seguro

1. Usuario de base de datos y sistema operativo.

  a. verifique que todos los usuarios creados en el sistema operativo representan un usuario valido.
b. Asegúrese que las conexiones remotas están controladas.
2. Seguridad de los archivos de bases de datos en el sistema operativo.
 
a. Asegúrese que el propietario de todos los directorios y archivos de Bases de datos es el usuario DBA
b. Asegúrese que el grupo propietario es DBA
c. En el caso Unix asegúrese que los permisos de los directorios son 755 o menores y de los archivos ejecutables 750. (Esto es especialmente cierto para Oracle).
d. Para Unix que el parámetro umask este determinado para que los archivos log no sean escribibles o leíbles por todo el mundo.
e. En el caso de NT asegúrese que los permisos de archivos sean restringidos para que no sean de libre acceso para el grupo everyone.
3. Auditoria a la seguridad de la base de datos para propietarios y grupos.
 
a. Asegúrese que la cuenta del dba, realmente es usada por el administrador de la base de datos.
b. En el caso unix, asegúrese que los miembros del grupo dba son limitados a los usuarios de cuenta en la base de datos.
c. Asegúrese que los permisos para los archivos de administración de la base de datos están restringidos con acceso solo a la cuenta del administrador del sistema.
 
Procesos de Conexión y Autenticación
 

Propósito. Asegurarse que todos los procesos y usuarios son autorizados y autenticados en la base de datos y que los procesos de usuario son controlados.

1. Sobre las tablas de usuarios:

 
a. Determine que todos los usuarios representan un usuario valido y autenticado.
b. Prueba que el passwords por defecto en las cuentas de administración del sistema han sido cambiadas.
c. Verifique que están definidos los procedimientos para cambios de claves periódicamente y que los passwords son seguros.
d. En caso de conexiones con parámetros string, verifique que a través de comandos como ps, no es posible ver la clave del usuario.
e. Si la conexión a la base de datos se hace a través de programas o utilidades, asegúrese que están protegidos por permisos de archivos y directorios.
2. En una impresión de la bitácora de sesiones de usuarios:
 
a. Asegúrese que todas los intentos de conexión no exitosos son almacenados, revisados y se les hecho seguimiento.
b. En sistemas pequeños considere la posibilidad de auditar todas las conexiones, tanto exitosas como no exitosas.
 
Control de acceso a la Base de Datos
  1. Obtenga listado de todos los archivos de privilegios y roles de usuarios.
 
a. asegúrese que los usuarios interactivos y en ambientes de producción están restringidos solo al privilegio de select. Además la información confidencial debe ser restringida para los usuarios.
b. Identifique los procedimientos almacenados y asegúrese que los privilegios para estos están limitados a select y execute a los usuarios que así lo requieran.
c. Asegúrese que el privilegio de with grant option esta restringido solo al DBA.
2. Obtenga listado de los archivos de logs:
  a. Asegúrese que los comandos críticos sobre los objetos (create, alter, drop, etc) son registrados, revisados y se les hace el seguimiento.
 
Disponibilidad, Respaldo y Recuperación
 

Propósito. Examinar la disponibilidad de la base de datos para los usuarios y procesos y las apropiadas medidas para limitar los efectos de las fallas en los elementos del sistema.

1. Usando comandos similares a df:

 
a. Identifique espacios de almacenamientos críticos.
b. Verifique que los archivos de logs y los archivos de control son montados en diferentes discos y de estos se tienen copias (ojalá espejos)
c. Asegúrese que cada disco usa un controlador independiente para minimizar le efecto en una falla del controlador.
d. Asegúrese que los requerimientos de espacio de almacenamiento, en el momento del diseño tuvieron en cuenta las proyecciones a futuro.
2. Obtenga un listado de los procedimientos de backup de la base de datos, cronogramas de backup y programas utilitarios de backup.
 
a. Asegúrese que como mínimo un backup incremental se esta realizando todas las noches (backup de objetos cambiados)
b. Asegúrese que los backup lógicos (mientras la base de datos esta arriba) de la base de datos son programados en la noche, cuando los usuarios están fuera y los procesos de lotes han finalizado.
c. verifique que cuando se hacen backup lógicos la base de datos se encuentra en modo restringido (usuarios diferentes al dba no pueden conectarse).
d. Determine si se hace un backup lógico completo cada semana, para asegurarse que la base de datos completa esta respaldada.
e. Asegúrese que un completo backup al sistema esta siendo realizado por lo menos cada mes.
3. Evaluar los medios de almacenamiento, los procedimientos usados, la revisión de las copias, la correcta etiquetada (interna y externa), la seguridad del sitio de almacenamiento y la correcta rotación de las copias.
4. Obtenga y revise la documentación de los procesos de pruebas de recuperación.
 
Bases de Datos en Red
 

Propósito. Determinar que las bases de datos en red han sido diseñadas para soportar los requerimientos de disponibilidad y las necesidades de seguridad de las aplicaciones.

1. Partiendo de un diagrama de red donde se especifique los servidores de bases de datos y sus conexiones físicas y lógicas al resto de la red:

 
a. Determine si los altos usos SQL entre componentes en la red (Servidor y aplicaciones) están soportados por canales alta velocidad y alto ancho de banda.
b. Asegúrese que los enlaces redundantes son usados para soportar los sistemas de requerimientos de disponibilidad.
c. Usando comandos o aplicaciones tipo netstat (protocolo, dirección remota y local y estado) revise el ruteo y direccionamiento IP usado para los servidores de bases de datos.
d. Asegúrese que los dispositivos de control de acceso garantizan solo conexiones autorizadas.



Universidad Nacional de Colombia
Carrera 30 No 45-03 - Edificio 477
Bogotá D.C. - Colombia
PBX: 3165000
webmaster@unal.edu.co

Aviso Legal - Copyright
Gobierno en LíneaAgencia de Noticias UN