Es importante tener un entorno seguro, aplicando el principio de mínimo privilegio en sus servidores y bases de datos, pero esto puede ser difícil de lograr en entornos grandes, donde muchas personas tienen privilegios elevados o varias personas tienen permisos para realizar tareas sobre sus datos o esquema.
Como medida adicional, se debe implementar un registro de auditoría en esos escenarios y revisar estos con frecuencia.
SQL Server proporciona la funcionalidad para implementar registros de auditoría a nivel de Servidor y Base de Datos. A partir de SQL Server 2008, todas las ediciones de SQL Server admiten auditorías a nivel de Servidor. Las auditorías de base de datos son compatibles a partir de SQL Server 2016 (13.x) SP1. Antes de eso, la auditoría a nivel de base de datos estaba limitada a las ediciones Enterprise, Developer y Evaluation.
En este post te mostraré cómo configurar y ver los registros de auditoría:
Implementar el registro de auditoría
Dentro de la seguridad, vaya a Auditorías y seleccione Nueva auditoría…
Especifique un nombre para la auditoría y seleccione un destino de auditoría (personalmente prefiero una ubicación de archivo).
Seleccione los parámetros deseados y haga clic en Aceptar.
La Auditoría está ahora creada, para que funcione sólo hay que habilitar la auditoría.
NOTA: antes de hacer cualquier cambio en la configuración de la auditoría, tendrá que deshabilitarla primero.
Implementar la Auditoría a Nivel de Servidor
Hemos creado nuestra ubicación de auditoría, ahora procederemos a crear las acciones que queremos auditar a nivel de servidor.
Dentro de la carpeta Seguridad, localice las Especificaciones de Auditoría del Servidor, haga clic con el botón derecho y seleccione Nueva Especificación de Auditoría del Servidor…
En la siguiente ventana, Especifique un nombre para la auditoría (puede tener más de uno) y seleccione la auditoría creada en el paso anterior.
Elija la acción o acciones a auditar. Para comprobar lo que se incluye en cada acción, lea aquí la documentación de Microsoft.
Una vez que haya terminado haga clic en Aceptar para crear la especificación de auditoría.
Para este ejemplo sólo he incluido la acción DBCC a auditar (como veremos más adelante en este post)
La especificación de auditoría también se crea deshabilitada, para que funcione, habilítela como se muestra en la imagen.
NOTA: antes de realizar cualquier cambio en la especificación de auditoría, deberá deshabilitarla primero.
Implementar auditoría a nivel de base de datos
El proceso es relativamente el mismo para crear una especificación de auditoría a nivel de base de datos, la principal diferencia es que la opción se encuentra bajo la carpeta Seguridad en cada base de datos.
Haga clic con el botón derecho del ratón en la carpeta Especificación de auditoría de base de datos y luego Nueva especificación de auditoría de base de datos…
Seleccione el nombre de la auditoría de base de datos y el destino de la auditoría (el mismo creado en el primer paso para este ejemplo).
Otra de las diferencias clave para las Auditorías de Base de Datos es que tenemos que seleccionar el objeto o esquema que queremos comprobar.
Seleccione las acciones a auditar (puede ver la descripción de cada una aquí), y luego haga clic en Ok.
Para este ejemplo voy a auditar el comando SELECT sobre la tabla llamada Curso en una base de datos de la Escuela de ejemplo.
Después de la creación de la especificación de auditoría, debe habilitarla para que se ejecute.
NOTA: antes de realizar cualquier cambio en la configuración de la auditoría, deberá desactivarla primero.
Revisar los logs de auditoría
Tener las auditorías configuradas y en funcionamiento es sólo la mitad del trabajo, no valdrá de nada si no se revisan proactivamente los logs con frecuencia.
Hay 2 opciones para revisar los logs, usando SSMS y T-SQL
Para este ejemplo he ejecutado algunas sentencias para disparar las auditorías del servidor y de la base de datos configuradas anteriormente para que podamos ver algunos datos.
SSMS
Para comprobar los registros de eventos utilizando Management Studio, basta con seleccionar la Auditoría creada, hacer clic con el botón derecho del ratón y seleccionar la opción Ver Registros de Auditoría
El registro de auditoría se mostrará en un tipo de registro de SQL Server, y podéis ver algunos de los ejemplos que he lanzado
T-SQL
Para usar esta opción, se utiliza el DMF sys.fn_get_audit_file, especificando la ubicación del archivo, y para el nombre del archivo usar *.sqlaudit para incluir todos los archivos.
Esta es la consulta que uso para este ejemplo:
SELECT event_time,action_id,statement,database_name,server_principal_name
FROM sys.fn_get_audit_file ('C:\temp\TestAudit_*.sqlaudit',default,default);
La salida de la consulta tiene este aspecto:
He marcado en amarillo las acciones que se han capturado en la especificación de la base de datos.
Con esta información estás listo para ir configurando tus propias auditorías para tus servidores de Misión crítica y revisarlas a menudo, también podrías implementar una lógica de alertas o reportes automáticos para ser notificado sobre actividad sospechosa.