Auditoria em Servidor: como o Windows Server pode te ajudar

As informações, com certeza, são os bens mais valiosos que podemos ter no nosso mundo, pois é uma das poucas coisas que quando conseguimos não nos podem ser retiradas.

No mundo empresarial elas possuem um nível ainda maior, que podem determinar um caso de sucesso ou não, ou um diferencial entre as concorrentes, o chamado know-how. Protegê-las cada dia que passa é uma tarefa de suma importância.

Técnicas para isso é que não faltam, entre elas estão as mais simples, tais como definir permissões de acessos através do sistema de arquivos ou por permissão de compartilhamentos, que de uma forma rápida define quem pode e quem não pode acessar os arquivos, ou definir os níveis de permissão de acesso a arquivos tais como leitura e escrita. Mas também existem as técnicas mais avançadas, tais como criptografia de dados usando chaves assimétricas, onde somente quem possui as chaves apropriadas podem acessar os dados.

Para a proteção dessas informações, implementar essas técnicas é um dos princípios da segurança da informação, mas não é o suficiente, não adianta você implementá-las sem monitorar, pois quem pensa que uma vez que esteja executando e em produção o processo está perfeito, na verdade está é perfeitamente enganado. Após todo o processo de implementação é necessário verificar se tudo corre conforme o programado e uma técnica para ver se as tarefas estão sendo executadas da maneira como foram projetadas é realizar uma auditoria.

A auditoria de servidor de uma forma resumida é uma tarefa onde se realizam testes para verificar se tudo está sendo executado dá maneira correta. Quando se fala em auditoria muitas pessoas pensam em alguma empresa indo a outra e realizando esses testes e no final gerando um relatório sobre o que está certo e normalmente o que está errado, mas uma auditoria pode ser realizada internamente e como estamos falando de acesso a informação, a família Windows Server fornece uma ferramenta embutida nela para realizar essa função. É de rápida implementação e é isso que será abordado nesse artigo.

A seguir será implementada uma auditoria de falha de acesso a arquivos e verificação de quem apagou um arquivo.

Como configurar seu servidor para realizar auditoria de arquivos

O primeiro passo para realizar uma auditoria em um Windows Server é habilitá-la e para isso crie uma GPO na OU do servidor em que ela será executada ou defina-a nas políticas locais.

Nota: Para um melhor gerenciamento é melhor criar uma GPO, pois assim você pode configurá-la sem ter que logar localmente, além de poder ter um relatório do que está habilitado ou não.

Ao criar a GPO vá até a seguinte configuração: Computer Configuration (Configuração de Computador) > Policies (Politicas) > Windows Settings (Configurações do Windows) > Security Settings (Configuração de Segurança) > Local Policies (Politicas Locais) > Audit Policies (Politicas de Auditoria) e clique duas vezes em “Audit Object Access” (Auditoria de Acesso a Objetos).

Obs: A politica acima é para ser criada no Windows Server 2008, no 2003 o caminho é diferente:

Computer Configuration (Configuração de Computador) > Windows Settings (Configurações do Windows) > Security Settings (Configuração de Segurança) > Local Policies (Politicas Locais) > Audit Policies (Politicas de Auditoria) e clique duas vezes em “Audit Object Access” (Auditoria de Acesso a Objetos).

Na janela que aparecer marque as opções “Success” (Sucesso) e “Failure” (Falha), isso para termos a opção de selecionar as opções de falha e sucesso na auditoria, conforme a imagem abaixo:

auditoria-servidor-windows-server-1

Pronto já habilitamos o servidor para que ele possa realizar auditorias, mas ele não está auditando nada ainda, para isso precisamos definir o que será auditado. No nosso caso queremos que ele audite os acessos indevidos a pastas e os arquivos apagados com sucesso.

Para isso, logue com uma conta com direitos administrativos no servidor onde a auditoria foi habilitada, vá até a pasta onde ela será realizada e clique com o botão direito nela e depois em “Properties” (Propriedades) e após na aba “Security” (Segurança), em seguida em Advanced (Avançado).

auditoria-servidor-windows-server-2

Clique na aba “Auditing” (Auditoria), aparecerá uma tela perguntando se você está logado com um usuário com direitos administrativos e pergunta se quer continuar, então clique em continue.

auditoria-servidor-windows-server-3

Obs: No Windows Server 2003, esse passo não existe.

Na tela seguinte clique em add (adicionar) para definir as regras da auditoria, ou seja, o que deve ser auditado.

auditoria-servidor-windows-server-4

A seguir aparecerá uma tela pedindo qual usuário será auditado. No nosso caso queremos que ele faça uma auditoria de todos os usuários, então digite o “everyone” (todos) e clique em “Ckeck Names” (Checar nomes) e depois em OK.

auditoria-servidor-windows-server-5

Após, aparecerá uma tela pedindo o que quer ser auditado. No nosso caso os arquivos que são deletados com sucesso e os arquivos com falha de leitura (sem acesso), então marque a opção “delete” na coluna “Successfull” (sucesso) e “List Folder/ Read Data” (Listar Pasta / Ler Dados) na coluna “Failed” (Falha).

auditoria-servidor-windows-server-6

Dica: Não marque todas as opções, pois a visualização da auditoria ficará comprometida, isso será explicado mais a frente.

Pronto agora a auditoria já está habilitada e configurada, o próximo passo é visualizar.

Como visualizar os logs da auditoria em servidor

Agora que o seu servidor está preparado para auditar, como podemos visualizar os dados que necessitamos? A ferramenta é simples de usar e todos nós conhecemos: o Event Viewer ou Visualizador de Eventos. Com ele basta ir nos logs de segurança (security) para verificar o que precisamos, porém, é uma tarefa difícil verificar essas informações por ele, por um simples motivo que mostrarei na imagem abaixo:

auditoria-servidor-windows-server-7

Notaram que ele gera inúmeras informações? Até você achar o que precisa, tendo que verificar entrada por entrada para descobrir o que quer, é chato. Se você já sabe o que procura, você pode fazer um filtro e ele já te retorna os valores desejados. No nosso caso queremos descobrir quem deletou um arquivo e quem tentou acessar um arquivo não permitido.

Nota: Quando foi falado acima para não marcar todas as opções foi justamente por causa das inúmeras informações que são gravadas nos logs, se caso deixasse tudo habilitado seu log ia estourar rapidamente.

Para verificar o arquivo deletado basta filtrar pelo evento 4663 e ele te informará quem deletou o arquivo e que horas, conforme imagem abaixo:

auditoria-servidor-windows-server-8

Nota: No Windows Server 2003 o evento é o 560.

Neste caso, o usuário suporte removeu o arquivo “Documento Teste” no dia 07/04 as 22:09.

E para verificar acesso indevido, tem que filtrar dois eventos: o de número 4656 e 5145. O primeiro fala de acesso indevido via acesso local e o segundo via rede, mas ambos dão os mesmos detalhes como mostra a imagem abaixo:

auditoria-servidor-windows-server-9

Neste caso o usuário Teste2 tentou acessar a pasta teste e não conseguiu por não ter acesso.

Informação contida onde está marcado de vermelho na imagem.

Nota: No Windows Server 2003 o evento é o numero 560.
Nota: Tanto no Windows Server 2008 quanto no 2003 a auditoria apresenta em falha.

Isso é uma forma de você visualizar, a outra é através do Powershell. É preferível usá-lo quando quer colocar em um relatório. Fica bem mais simples, pois você pode transformar a saída em um HTML.

Abaixo segue os 2 scripts em Powershell para os nossos dois casos

Arquivo deletado

Windows Server 2008

$a = get-eventlog -logname security -instanceid 4663 |convertto-html -property timegenerated, message
$a = $a| foreach-object {$_ -replace “”, “”}

$a|Out-File “local do arquivo HTML”

Na primeira linha do script ele coleta as informações dos eventos de segurança onde o eventID é 4663 e converte a saída para HTML armazenando somente a Hora Gerada e a Mensagem e coloca o resultado na variável $a.

Na segunda linha ele pega a variável $a e procura pela tag HTML. Ao achá-la ele troca colocando uma borda nela. (Essa parte é importante pois ao converter a saída do comando para HTML ele vem sem borda e a visualização no arquivo fica ruim.) Na terceira linha o resultado dentro de $a é gravado dentro de um arquivo. (Onde está escrito “local do arquivo HTML” coloque o local onde quer armazenar o arquivo, por exemplo ‘C:resultadoauditoria.html”

Windows Server 2003

$a = get-eventlog -logname security -instanceid 560 –message “*Delete*” |convertto-html -property timegenerated, message
$a = $a| foreach-object {$_ -replace “”, “”}

$a|Out-File “local do arquivo HTML”

Na primeira linha do script ele coleta as informações dos eventos de segurança onde o eventID é 56o e a mensagem do evento possui a palavra Delete e converte a saída para HTML armazenando somente a Hora Gerada e a Mensagem e coloca o resultado na variável $a.

Na segunda linha e terceira linha é a mesma coisa do outro script acima.

Acesso indevido

Windows Server 2008

$a = get-eventlog -logname security -entrytype failureaudit -message “*file*” |convertto-html -property timegenerated, message
$a = $a| foreach-object {$_ -replace “”, “”}

$a|Out-File “local do arquivo HTML”

Na primeira linha do script ele coleta as informações dos eventos de segurança onde os tipos são Falhas de Auditoria e na mensagem existe a palavra “file” (comum em ambos os eventos falados acima) e converte a saída para HTML armazenando somente a Hora Gerada e a Mensagem e coloca o resultado na variável $a.

Windows Server 2003

$a = get-eventlog -logname security -entrytype failureaudit –instanceid 560 |convertto-html -property timegenerated, message
$a = $a| foreach-object {$_ -replace “”, “”}

$a|Out-File “local do arquivo HTML”

Na primeira linha do script ele coleta as informações dos eventos de segurança onde os tipos são Falhas de Auditoria e o eventID é o 560 e converte a saída para HTML armazenando somente a Hora Gerada e a Mensagem e coloca o resultado na variável $a.

Na segunda linha e terceira linha de ambos é a mesma coisa do script de arquivo deletado.

Lembre-se: Para criar um script em Powershell você tem que salvar o arquivo com a extensão .ps1.

Nota: Geralmente os scripts de powershell não são habilitados para execução por padrão para isso antes de executar os scripts acima, rode o comando Set-ExecutionPolicy Unrestricted

Lembrete: O Powershell não vem instalado no Windows Server 2003, para isso tem que baixar e instalar o mesmo.

Com isso verificamos como habilitar e configurar uma auditoria no Windows Server 2003 e 2008 e verificarmos como anda o acesso a arquivos em nossa rede, porém, a auditoria de arquivos é somente uma parte das ferramentas de auditoria no Windows, existem outras tais como a auditoria de logon em máquina.

Caso tenha qualquer dúvida ou complemento, deixe seu comentário abaixo.

Espero que o conteúdo tenha ajudado você a configurar uma auditoria de Servidor no Windows Server.


6 Comentários

Daniel Lermen
3

Eu utilizo a auditoria de acesso a objetos, porém, ao ativá-la, o sistema gera muitos eventos de share (5145), fazendo com que meu log estoure diversas vezes ao dia.
Existe maneira de desabilitar o log a share e ficar apenas com o log de deleção?

Francisco
5

Excelente! Obrigado pela ajuda.
Alguém conhece algum programa que transforma esses logs gerados em relatório?
Ou alguma forma de organizar melhor os registros?
Obrigado!

rafael
6

é possivel ajudar com script powershell que verifique qual usuário modificou arquivo na pasta x?

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!