Auditoria no Windows

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. E 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 como definir permissão 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 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 uma forma resumida é uma tarefa onde se realizam testes para verificar se tudo está sendo executado dá maneira correta, mas quando você fala em auditoria muitas pessoas pensam em alguma empresa indo a outra e realizando esses testes e no final gera 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ções a família Windows Server fornece uma ferramenta embutida nela, para realizar essa função e de rápida implementação e isso é que será abordado nesse artigo.

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

Configurando o 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 poder termos a opção de selecionar as opções de falha e sucesso na auditoria, conforme a imagem abaixo:

clip_image002

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).

clip_image004

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.

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

clip_image006

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

clip_image008

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 nome “everyone” (todos) e clique em “Ckeck Names” (Checar nomes) e depois em OK

clip_image010

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).

clip_image012

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 e visualizar.

Visualizando os logs de auditoria

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 que o: Event Viewer ou Visualisador 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:

clip_image014

Notaram que ele gera inúmeras informações e 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 que quer, 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:

clip_image016

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

Neste caso o usuário suporte deletou 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:

clip_image018

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 dois scripts em powershell para os nossos dois casos:

Arquivos deletados

Windows Server 2008

$a = get-eventlog -logname security -instanceid 4663 |convertto-html -property timegenerated, message

$a = $a| foreach-object {$_ -replace “<table>”, “<table border 2>”}

$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 <table> ao acha-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:\resultado\auditoria.html”

Windows Server 2003

$a = get-eventlog -logname security -instanceid 560 –message “*Delete*” |convertto-html -property timegenerated, message

$a = $a| foreach-object {$_ -replace “<table>”, “<table border 2>”}

$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 é 56º 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 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 “<table>”, “<table border 2>”}

$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 “<table>”, “<table border 2>”}

$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, 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, para mais informações acesso o link: http://technet.microsoft.com/pt-br/library/cc779526(v=ws.10).aspx

_______________________________________________________________

Artigo enviado pelo colaborador Laerte Costa, ele é Analista de Suporte com experiência na área, possui Certificação Microsoft Certified System Administrator (MCSA) e pode ser contatado nas redes sociais pelos seguintes endereços: twitter: @laerte_hc, facebook:      facebook.com/laerte.henrique

  • Bruno Cruz

    Rafael, show de bola esse post. Gostei muiiiito ! Legal mesmo!!

  • Muito bom, aprendir mas uma, so nao sei usar o powershell . mas parabens.

  • Rafael Pimenta

    Mestre, este post me ajudou a resolver um pequeno problema que tenho no trabalho. Um abraço.

  • Felipe Lucena

    Laércio muito obrigado. Bem completo esse material. Com certeza irei aplicá-lo em meu ambiente.

    Abs.

  • Douglas Portugal

    Excelente post Rafael,

    Usou a auditoria de arquivos deletados, que vi num video se nao me engano, que vc já fez!!!
    Me ajudou muito.

    Esse post agora completa ainda mais!!!!

    Abração

    • Isso, eu já havia feito um vídeo disso.
      Mas o nosso amigo complementou, de maneira excelente!

      • Bruno Pinheiro

        Muito bom, mas não pode deixar de lembrar a rotatividade dos logs, pois por padrão no 2008 o tamanho máximo do arquivo de log é 20480. Provavelmente você não auditara logs com mais 2 dias.

  • Luciano

    ótimo post Rafael

    Como sempre cooperati se superando a cada dia que passa.

    Acho que vocês podem fazer uns artigos sobre powershell, muita gente ainda tem dúvida sobre isso de como começar a criar scripts em powershell e tudo está se encaminhando cada vez mais para ele, portanto seria algo legal.

    Abraço as amigos da cooperati

    • Powershell é uma boa!

      Que tal uma vídeo aula? Desde o zero, instalação e configuração de funções, todas pelo PowerShell?

  • Grande Rafael,

    boa ideia de fazer um vídeo sobre powershell, seria ótimo mesmo. fico no aguardo, ancioso. “vídeo aula na qualidade de Rafael Bernardes” é show de bola!! como diz um bom pernambucano “Suas videos Aulas é arretado de bom” “é massa” rs rs

  • rafael

    Power shell é uma ótima idéia.
    Vou querer vídeo aulas, desde o zero, instalação e configuração de funções, todas pelo PowerShell…………………bernardes …………..tenho certeza que o pessoal iria gostar.
    Abs

  • Pingback: ()

  • Como sempre ótimo artigo.
    Irei implementar em meus Labs isso e logo em Produção.

  • Antonio

    Assisti o vídeo sobre auditoria de arquivos do windows server 2008. Muito bom!

    Estou com dificuldade na implantação. Havia feito por GPO e depois desabilitei porque tenho apenas um domain e fiz localmente.

    Outra GPO que preciso habilitar é remover a permissão administrativo do usuário para instalar software.

    Os usuários estão distribuidos da seguinte forma:
    Grupo PAI que contem todos os sub grupos e vários sub grupos GG.

    Pode me ajudar?