É importante ter um ambiente seguro, impondo o princípio dos privilégios mínimos em seus servidores e bancos de dados, mas isso pode ser difícil de conseguir em ambientes grandes, onde muitas pessoas têm privilégios elevados ou várias pessoas têm permissões para executar tarefas sobre seus dados ou esquema.

Como medida adicional, um log de auditoria deve ser implementado nesses cenários e revisá-los frequentemente.

ServidorSQL fornece a funcionalidade para implementar logs de auditoria em nível de Servidor e Banco de Dados. A partir do SQL Server 2008, todas as edições do SQL Server suportam auditorias a nível do Servidor. As auditorias de banco de dados são suportadas a partir do SQL Server 2016 (13.x) SP1. Antes disso, a auditoria em nível de banco de dados era limitada às edições Enterprise, Developer e Evaluation.

Neste post eu mostrarei a você como configurar e visualizar os logs de auditoria:

>

Implementar Log de Auditoria

Em segurança, vá em Auditorias e selecione Nova auditoria…

Especifique um nome para a auditoria e selecione um destino de auditoria (eu pessoalmente prefiro uma localização de arquivo).
Selecione os parâmetros desejados e clique em OK.

A Auditoria está agora criada, para que ela funcione basta ativar a auditoria.
NOTE: antes de fazer qualquer alteração na configuração da auditoria, você precisará desativá-la primeiro.

Implement Server Level Audit

Criámos o nosso local de auditoria, agora vamos proceder à criação das acções que queremos auditar ao nível do servidor.

>

Sob pasta Security, localize Server Audit Specifications, clique com o botão direito do rato e seleccione New Server Audit Specification…

Na janela seguinte, especifique um nome para a auditoria (você pode ter mais de um) e selecione a auditoria criada no passo anterior.

Escolha a ação ou ações a serem auditadas. Para verificar o que está incluído em cada ação, por favor leia aqui a documentação da Microsoft.

Após terminar clique em OK para criar a especificação da auditoria.
Para este exemplo acabei de incluir a ação DBCC a ser auditada (como veremos mais adiante neste post)

A especificação da auditoria também é criada desabilitada, para que ela funcione, habilite-a como mostrado na imagem.

NOTE: antes de fazer qualquer alteração na especificação da auditoria, você precisará desabilitá-la primeiro.

Implement Database Level Audit

O processo é relativamente o mesmo para criar uma especificação de auditoria de nível de banco de dados, a principal diferença é que a opção está localizada sob a pasta Segurança em cada banco de dados.

Clicar direito na pasta Database Audit Specification e depois New Database Audit Specification…

Selecionar o nome da Auditoria de Banco de Dados e o destino da auditoria (o mesmo criado no primeiro passo para este exemplo).
Outra das principais diferenças para Auditoria de Banco de Dados é que temos que selecionar o objeto ou esquema que queremos verificar.
Selecionar as ações a serem auditadas (você pode ver a descrição de cada uma aqui), e então clicar em Ok.

Para este exemplo eu vou auditar o comando SELECT sobre uma tabela chamada Course in a sample School database.

Após a criação da especificação da auditoria, você deve habilitá-la para rodar.

NOTE: antes de fazer qualquer alteração na configuração da auditoria, você precisará desabilitá-la primeiro.

Revisar os logs de auditoria

Guardar as auditorias configuradas e em execução é apenas metade do trabalho, não valerá nada se você não revisar os logs com frequência.
Existem 2 opções para revisar os logs, usando SSMS e T-SQL

Para este exemplo eu executei algumas sentenças para acionar as auditorias do servidor e do banco de dados configurados acima para que possamos ver alguns dados.

SSMS

Para verificar os logs de eventos usando o Management Studio, basta selecionar a Auditoria criada, clicar com o botão direito do mouse sobre ela e selecionar a opção View Audit Logs

O log de auditoria será exibido em um tipo de log do SQL Server, e você pode ver alguns dos exemplos que eu acionei

T-SQL

Para usar esta opção, você usa o sistema DMF.fn_get_audit_file, especificando a localização do arquivo, e para nome de arquivo use *.sqlaudit para incluir todos os arquivos.

Esta é a consulta que eu uso para este exemplo:

SELECT event_time,action_id,statement,database_name,server_principal_name 
FROM sys.fn_get_audit_file ('C:\temp\TestAudit_*.sqlaudit',default,default);

A saída da consulta tem este aspecto:

Eu marquei em amarelo as acções que foram capturadas na especificação da base de dados.

Com esta informação você está pronto para ir configurando as suas próprias auditorias para os seus servidores de missão crítica e revê-las frequentemente, também poderia implementar um alerta ou lógica de relatório automático para ser notificado sobre actividades suspeitas.

Deixe uma resposta

O seu endereço de email não será publicado.