AUDITORIA NO SGBD MICROSOFT SQL

Propaganda
AUDITORIA NO SGBD MICROSOFT SQL SERVER 2008 R2
WADSON DUARTE MONTEIRO 1
IREMAR NUNES DE LIMA 2
Resumo: Este artigo discute o processo de auditoria no Sistema Gerenciador de
Banco de Dados SQL Server 2008 R2 e como iniciar uma auditoria em nível de
Banco de Dados e Servidor numa instância SQL Server.
Palavras-chave: Banco de Dados, Microsoft SQL Server 2008 R2, Auditoria.
1.0 INTRODUÇÃO
Com o grande crescimento do volume de dados sigilosos e sensíveis dentro de uma
empresa, torna-se imprescindível que haja um controle rigoroso sobre eles. Torna-se
imprescindível que as instituições assegurem a integridade dos dados a fim de evitar
transtornos através do uso do mecanismo de auditoria. Estas auditorias muitas vezes são
previstas em lei ou fazem parte da política da empresa.
De acordo com a MICROSOFT, auditoria é o conjunto de diversos elementos em um único
pacote de um grupo específico de servidor ou ações de banco de dados, o qual quando
combinadas produzem uma saída conhecida como auditoria.
1
Especialista em Banco de Dados e Business Intelligence ([email protected]).
DBA, Mestre em Banco de Dados e Professor do Centro Universitário Newton Paiva
([email protected]).
2
2
Com o uso do recurso de auditoria do SQL Server 2008 os DBAs (Database
Administrators) são capazes de monitorar o que se passa no banco de dados tornando
possível identificar as ações que um determinado usuário fez num dado e como as
informações foram acessadas.
Em algumas instituições o uso da auditoria é obrigatório ou recomendado através de leis
e/ou regulamentações como, por exemplo:
1. Lei Sarbanes-Oxley (SOXX): legislação americana que tem como principal objetivo
recuperar a credibilidade de mercado de capitais.
2. Health Insurance Portability and Accountability Act (HIPAA): regulamentação
americana que tem como principal objetivo assegurar a confidencialidade de dados na
área de saúde, relativo aos pacientes.
Na prática, tem sido muito difícil a utilização da auditoria, com necessidades de tempo
maior e emprego de recursos, mas com o novo recurso de auditoria do Microsoft SQL
Server 2008 é possível fazer uma auditoria mais integrada, padronizada e automatizada,
assim aumentando a confiabilidade de auditoria com redução da sobrecarga do sistema
global (LEITER, 2009).
A versão do Microsoft SQL Server 2008 disponibiliza um novo recurso de auditoria que é
exclusivo para esta necessidade e que faz um uso mais racional dos recursos. Nas versões
anteriores eram utilizados os recursos de traces, triggers ou ferramenta de terceiros que
poderiam ter um impacto negativo. Uma grande vantagem no uso do SQL Server audit é
que ele permite fazer as configurações através do SQL Server Manager ou através de
comandos Transact SQL (T-SQL). Existem diversas outras soluções que podem ser usados
na auditoria do SQL Server 2008, possibilitando identificar pontos vulneráveis e de
3
alterações e monitoramento de acesso aos dados, como por exemplo: DDL trigger,
profiler, trace, c2 audit mode.
2.0 COMPONENTES DE AUDITORIA NO SQL SERVER
Com a ferramenta SQL Server Audit é possível criar especificações de auditoria granular,
o qual é composto de 03 componentes (KLINE, 2010):
1. O objeto auditoria do SQL Server especifica o local de saída (aplicativo, arquivo ou
log de eventos de segurança), com a opção para desligar o SQL Server se não puder ser
escrita e um cenário que especifica a quantidade de milissegundos que pode passar
antes das ações de auditoria serem processadas. Na tabela 1 estão descritos os grupos
de ações de auditoria no nível da auditoria
Tabela 01 - Grupos de Ações de Auditoria no Nível da Auditoria
Nome do grupo de ação
Descrição
AUDIT_ CHANGE_GROUP
Esse evento é gerado sempre que um dos comandos a seguir é emitido:
1.
CREATE SERVER AUDIT
2.
ALTER SERVER AUDIT
3.
DROP SERVER AUDIT
4.
CREATE SERVER AUDIT SPECIFICATION
5.
ALTER SERVER AUDIT SPECIFICATION
6.
DROP SERVER AUDIT SPECIFICATION
7.
CREATE DATABASE AUDIT SPECIFICATION
8.
ALTER DATABASE AUDIT SPECIFICATION
4
9.
DROP DATABASE AUDIT SPECIFICATION
Fonte: http://msdn.microsoft.com/pt-br/library/cc280663.aspx
2. O objeto especificação da auditoria do servidor contém as definições de eventos como
logins do servidor. Na tabela 02 estão descritos os grupos de ação da auditoria do
servidor.
Tabela 02 – Grupos de Ação de Auditoria do Servidor
Nome do grupo de ação
SUCCESSFUL_LOGIN_GROUP
LOGOUT_GROUP
FAILED_LOGIN_GROUP
LOGIN_CHANGE_PASSWORD_GROUP
APPLICATION_ROLE_CHANGE_PASSWORD_GROUP
SERVER_ROLE_MEMBER_CHANGE_GROUP
DATABASE_ROLE_MEMBER_CHANGE_GROUP
BACKUP_RESTORE_GROUP
DBCC_GROUP
SERVER_OPERATION_GROUP
5
DATABASE_OPERATION_GROUP
AUDIT_ CHANGE_GROUP
SERVER_STATE_CHANGE_GROUP
SERVER_OBJECT_CHANGE_GROUP
SERVER_PRINCIPAL_CHANGE_GROUP
DATABASE_CHANGE_GROUP
DATABASE_OBJECT_CHANGE_GROUP
DATABASE_PRINCIPAL_CHANGE_GROUP
SCHEMA_OBJECT_CHANGE_GROUP
SERVER_PRINCIPAL_IMPERSONATION_GROUP
DATABASE_PRINCIPAL_IMPERSONATION_GROUP
SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP
DATABASE_OWNERSHIP_CHANGE_GROUP
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP
SERVER_PERMISSION_CHANGE_GROUP
6
SERVER_OBJECT_PERMISSION_CHANGE_GROUP
DATABASE_PERMISSION_CHANGE_GROUP
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP
DATABASE_OBJECT_ACCESS_GROUP
SCHEMA_OBJECT_ACCESS_GROUP
BROKER_LOGIN_GROUP
DATABASE_MIRRORING_LOGIN_GROUP
TRACE_CHANGE_GROUP
Fonte: http://msdn.microsoft.com/pt-br/library/cc280663.aspx
3. O objeto especificação de auditoria de banco de dados contém definições do evento em
nível de banco de dados, tais como modificações de esquema, criação de objetos e
outras ações. Na tabela 03 estão descritos os grupos de ação da Auditoria de Banco de
Dados.
Tabela 03 – Grupo de Auditoria de Banco de Dados
Nome do grupo de ação
DATABASE_ROLE_MEMBER_CHANGE_GROUP
7
DATABASE_OPERATION_GROUP
DATABASE_CHANGE_GROUP
DATABASE_OBJECT_CHANGE_GROUP
DATABASE_PRINCIPAL_CHANGE_GROUP
SCHEMA_OBJECT_CHANGE_GROUP
DATABASE_PRINCIPAL_IMPERSONATION_GROUP
DATABASE_OWNERSHIP_CHANGE_GROUP
DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP
SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP
DATABASE_PERMISSION_CHANGE_GROUP
DATABASE_OBJECT_PERMISSION_CHANGE_GROUP
SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP
DATABASE_OBJECT_ACCESS_GROUP
SCHEMA_OBJECT_ACCESS_GROUP
Fonte: http://msdn.microsoft.com/pt-br/library/cc280663.aspx
Ações no nível de banco de dados oferecem suporte à auditoria de ações específicas
conforme citadas na tabela 04.
8
Tabela 04 – Ações de Auditoria no Banco de dados
Ação
Descrição
SELECT
Esse evento é gerado sempre que SELECT é emitido.
UPDATE
Esse evento é gerado sempre que UPDATE é emitido.
INSERT
Esse evento é gerado sempre que INSERT é emitido.
DELETE
Esse evento é gerado sempre que DELETE é emitido.
EXECUTE
Esse evento é gerado sempre que EXECUTE é emitido.
RECEIVE
Esse evento é gerado sempre que RECEIVE é emitido.
REFERENCES Esse evento é gerado sempre que uma permissão REFERENCES é verificada.
Fonte: http://msdn.microsoft.com/pt-br/library/cc280663.aspx
Ao ser feita auditoria os resultados são gerados no destino que podem ser arquivo, log de
eventos de segurança do Windows ou o log de eventos de aplicativo do Windows, sendo de
extrema importância verificar constantemente se o disco tem espaço suficiente, pois o SQL
Server Audit grava constantemente nas logs. Segundo a MICROSOFT (2011) ao gravar no
log de segurança do Windows é necessário que a conta de serviço do SQL Server seja
adicionada à política gerar auditorias de segurança, entre os quais Sistema Local, Serviço
Local e Serviço de Rede. Para impedir que um arquivo com informações de auditoria seja
9
falsificado é recomendado que seja restringido o acesso ao local do arquivo das seguintes
maneiras (MICRSOFT, 2011)3:
1. A conta de Serviço SQL Server deve ter permissão de leitura e gravação.
2. Os Administradores de Auditoria geralmente requerem permissão de leitura de
gravação, então é presumido que os Administradores de Auditoria sejam contas do
Windows para a administração de arquivos de auditoria.
3. Os leitores de Auditoria que são autorizados a ler os arquivos de auditoria precisam ter
permissão de leitura.
Importante destacar que as operações de leitura não são bloqueadas pelo mecanismo de
Banco de Dados e a gravação no log de segurança não está disponível no Windows XP.
2. FAZENDO AUDITORIA PELO MANAGMENT STUDIO
Para criação de um SQL Server Audit pode-se fazer pelo Managment Studio ou pelo
Transact SQL. O primeiro passo é criar o objeto responsável em coletar os dados e ações
do servidor ou banco de dados, no segundo passo é feita a associação de um Audit
Specification determinando onde armazenar as informações podendo ser do tipo Server ou
Database e o terceiro passo é definir o local onde os eventos serão escritos (Arquivo, Log
de Segurança, Log de Aplicação).
3.1. Criação do Sql Server Audit
Para criar o SQL Server Audit no SSMS (SQL Server Managment Studio), na janela
Object Explorer deve-se clicar no item Security e em seguida no item Audit, então clica
3
http://msdn.microsoft.com/pt-br/library/cc280386.aspx
10
com o botão direito do mouse e seleciona a opção New Audit conforme mostrado na Figura
01.
Figura 01: Criação da Server Audit
Fonte: Próprio autor
Conforme Figura 02, dentro da janela create Audit, no campo Audit Name deve ser
preenchido o nome da Auditoria. No campo Queue Delay é informado o valor que indica
de quanto em quanto tempo será descarregado antes das ações de auditoria serem
processadas. No campo Maximum Rollover é informado o número de arquivos que vão ser
gerados e em Maximum File Size é informado a quantidade de espaço em disco reservado
para cada arquivo gerado para a auditoria. No campo File Path é informado o local onde os
arquivos serão gerados. Se a opção Shut Down Server on Audit Log Failure for
selecionada, caso haja tentativa de escrever no arquivo de auditoria e ocorrer uma falha ele
vai parar o serviço, evitando assim falhas de auditoria.
11
Figura 02: Configuração da Server Audit
Fonte: Próprio autor
Por Default o Audit é criado desabilitado, tornando-se necessário habilitá-lo. Para isto
deve-se clicar com o botão direito sobre a Audit criada e escolher a opção Enable Audit,
conforme Figura 03.
12
Figura 03: Habilitando o Audit
Fonte: Próprio autor
3.2. Criação da Audit Especification
Para que saiba onde armazenar as informações é necessário que um Audit Especification
seja associado a um objeto SQL Server Audit que pode ser do tipo Server ou Database.
3.2.1. Criando um SQL Server Audit do Tipo Database
Para criar um SQL Server Audit do tipo Database deve-se selecionar o banco de dados que
deseja auditar, expandir o nó Security e clicando com o botão direito do mouse sobre
Database Audit Especification, e selecionando a opção New Database Audit
Especification. Na janela Create Database Audit Especification deve ser informado o nome
para o Database Especification e no campo Audit selecionar a auditoria (Figura 04).
Figura 04: Especificando o nome e a auditoria para o Audit Especification
Fonte: Próprio autor
Na seção Actions no item Audit Action Type deve ser selecionado qual ação deve ser
auditada. No item Object Class seleciona a classe do objeto. No item Object Name
seleciona qual Database será editado. No item Principal Name seleciona quem será
editado, tendo as opções de selecionar roles e usuários (Figura 05).
13
Figura 05: Editando os itens da Seção Actions
Fonte: Próprio autor
Após a criação de todos os filtros necessários para a auditoria do banco de dados é
necessário habilitar o Database Specification, o qual deve ser habilitado através da janela
Object
Explorer
clicando
DatabaseAuditEspecification
com
e
o
botão
selecionando
direito
a
do
opção
mouse
sobre
a
opção
Enable
Database
Audit
Especification.
3.2.2. Criando um SQL Server Audit do Tipo Database
Para criar um SQL Server Audit do tipo Server deve-se clicar com o botão direito no item
Server Audit Especification que está dentro do nó Security e escolher a opção New Server
Audit Especification (Figura 06).
Figura 06: Criando um Server Audit do tipo Server
Fonte: Próprio autor
14
Na janela Create Server Audit Especification, no campo Name deve-se informar o nome
do Server Audit Especification e no campo Audit escolher qual Server Audit ele deve-se
associar. Na Seção Actions no item Audit Action Type deve-se selecionar qual ação deve
ser auditada com ações a nível do Servidor. Os outros itens deve seguir o mesmo
procedimento utilizado na criação do Server Audit tipo Database (Figura 07).
Figura 07: Editando itens para o Server Audit Especification
Fonte: Próprio autor
Segundo Kline (KLINE, 2010) uma característica importante da auditoria no SQL Server
2008 é que a auditoria do nível de banco de especificações estão definidas no próprio
banco de dados, pois se o banco de dados é movido a partir de um servidor para outro, a
especificação de auditoria de nível de banco de dados será mover para o novo servidor.
4.0 CONCLUSÃO
O uso de auditoria em banco de dados é de extrema importância, pois diversas regras e
regulamentações são impostas tornando-se cada vez mais importante o uso desta técnica
para assegurar como o banco de dados está sendo utilizado pelos seus usuários tornando
transparentes as alterações e modificações feitas sobre ele. E para suprir a necessidade do
15
uso desta técnica, o novo recurso de Auditoria no SQL Server 2008 R2 permite que o
banco de dados seja auditado de forma limpa, com bom desempenho, o que não ocorria nas
anteriores que utilizavam recurso de triggers, traces ou ferramentas de terceiros.
16
REFERÊNCIAS
KLINE, Kevin. SQL Server 2008 Administration in Action. Greenwick: Manning,
2010. 466 p.
LEITER, Chris et al. Beginning Microsoft Sql Server 2008 Administration.
Indianapolis: Wiley Publishing, 2009. 781 p.
MAGALHÃES, Vladimir Michel Bacurau. Auditoria no Sql Server 2008.
Disponível em: <http://www.devmedia.com.br/post-15220-Auditoria-no-SQLServer-2008.html> Acesso em: 11 fev. de 2011.
SIMMONS, Ken; Carstarphen, Sylvester. Pro Sql Server 2008 Administration.
New York: Jonathan Gennick, 2009. 593 p.
SQL MAGAZINE. Devmedia. Disponível em: <http://www.devmedia.com.br>
Acesso em: 11 nov. de 2010.
BIBLIOTECA MSDN. Criptografia do SQL Server. Disponível em <
http://msdn.microsoft.com/pt-br/library/bb510663.aspx> Acesso em: 11 nov. de
2010.
Download