Windows Server 2008 - Auditoria

Para os propósitos desde artigo, uso o termo "Auditoria" como uma tradução - assumidamente ruim - para o inglês "Audit Logging".  

Quando se fala de controle de acesso a Auditoriasempre foi uma parte historicamente relegada a um segundo plano, comparando com a atenção dada à Autenticação e à Autorização. Eu especulo que isso era devido, primeiro, ao fato da Auditoria ser um controle reativo: ela não impede um acesso não-autorizado, apenas vai ajudar você a descobrir que um acesso não-autorizado foi feito, por quem e quando. Quem considera importantes somente controles que impeçam que um incidente aconteça já começa a não ver tanto valor assim.

Segundo, mas não menos importante, é o fato da Auditoria depender fundamentalmente de processos e menos de tecnologia. Vamos pegar por exemplo um site Web: você habilita a autenticação dos usuários, configura as permissões em cada pasta, e pode basicamente deixar de se preocupar com Autenticação e Autorização. No entanto os logs gerados pelos acessos dos usuários não tem praticamente valor nenhum, a não ser que você os revise, responda e preserve.

Esse quadro vem mudando no entanto com uma velocidade impressionante nos últimos anos. A nossa sociedade como um todo têm dado um valor cada vez maior à accountability, ou "responsabilidade" - quem foi o responsável por determinada mudança, de quem é a culpa por um determinado fato. As organizações são cada vez mais responsabilizadas pela segurança das informações em sua posse, e por fazer uma notificação caso algum incidente ocorra. A ênfase em conformidade regulatória também é um fator prepoderante hoje em dia, e a Auditoria provê em muitos casos a evidência necessária que os controles estão implementados e funcionando, ou ela própria é o controle.

Um exemplo desta nova ênfase nos registros de auditoria está na recente publicação NIST SP800-92, que auxilia organizações a entenderem a necessidade da gerência apropriada dos logs de segurança e fornece orientação prática nessa área. Trata-se de um documento espetacular e mais valioso do que qualquer outra publicação que eu conheça nessa área, e é leitura recomendada. Ela recomenda aos órgãos federais americanos que priorizem apropriadamente o gerenciamento de registros de auditoria na organização, estabeleçam políticas e procedimentos para gerência de log, e criem e mantenham uma infraestrutura tecnologógica e de processos que dê suporte a isto.

Para responder a estas demandas, o Windows Server 2008 (e o Windows Vista) traz uma infraestrutura nova de registro de auditoria e tratamento de eventos chamado Windows Eventing 6.0. Essa é a maior mudança nesta área desde o lançamento do Windows NT, e traz novidades especificamente desenhadas para atender aos desafios encontrados na gerência de logs do Windows hoje:

¦ Novo formato para os eventos. Informações mais claras e compreensíveis, e uma guia separado para os detalhes. Aqui abaixo vai uma comparação entre o formato anterior e o atual, mostrando um evento de logoff do usuário (você saberia que se trata de um logoff olhando o evento da esquerda?):

O único ponto ruim aqui é que os números dos eventos (event ID) foram alterados de uma versão para outra. Fique ciente disso se você for fazer alguma correlação entre sistemas de versões distintas.

¦ Eventos formatados em XML. Um dos desafios apontados pelo NIST SP800-92 é a diversidade nos formatos dos registros de eventos. Os eventos são gravados agora dentro do Windows em formato XML, que pode ser recuperado via XPath, e que podem ser mais facilmente transformados para qualquer formato desejado pela organização.

¦ "Antes e Depois" . Nos eventos de mudança no Active Directory e na Registry, o registro do evento indica não só que houve uma alteração, mas mostra também o valor anterior e o novo valor. Agora é possível saber exatamente qual mudança foi feita por quem, e até mesmo voltar atrás se for o caso.

 

¦ Política de Auditoria Granular. Outro desafio apontado pelo NIST - e talvez o maior desafio - é como conseguir priorizar e registrar somente o que você deseja. Nas versões anteriores existiam somente 9 categorias que você podia ligar ou desligar, para eventos de sucesso ou falha. No Windows Server 2008 essas categorias são quebradas em 56 subcategorias, que podem ser configuradas agora individualmente. Essa chamada Granular Audit Policy pode ser configurada via política de grupo, mesmo em domínios rodando ainda Windows 2003.

¦ Escalabilidade. Os logs nas versões anteriores no Windows estavam limitados a 200-600MB, dependendo da memória (isso mesmo, memória e não disco!) do sistema. No Windows Server 2008 o log está limitado somente pelo seu espaço em disco.

¦ Retenção Automática. Recurso simples e valioso. Agora você tem a opção de arquivar os logs antigos automaticamente assim que o espaço do log é completado. Uma vez cheio, o log é gravado em um arquivo com o nome Archive-<categoria>-<data/hora>.evtx, é gerado um evento com ID 1104 (Event log rollover) e a gravação recomeça.

¦ Anexar uma tarefa a um evento. Essa é a minha novidade favorita. Você pode anexar uma tarefa agora a um evento específico, configurando o Windows para executar automaticamente um programa, um script ou apenas mostar uma mensagem ao operador quando um determinado evento acontecer. A configuração é extremamente simples (veja a tela abaixo) e as possibilidades são poderosas.

Vamos ver por exemplo como estas novidades podem ser combinadas. Eu posso configurar o Windows para arquivar automaticamente o meu log de eventos, e anexar uma tarefa ao evento 1104 (Log event rollover). Assim que o log fica cheio e é gravado em disco, o evento roda um script que carrega o arquivo XML, extrai as informações que me interessam via XPath e grava em um banco de dados anexo. Um coletor de log de eventos simples e eficiente.

Se bem que você pode não precisar disso. Mais uma novidade:

¦ Replicação de Eventos. Isso mesmo - o Windows Server 2008  possui um mecanismo de assinatura e replicação de eventos nativo, chamado event subscriptions. Um sistema pode ser configurado para coletar os registros de auditoria de outros sistemas, buscando o conteúdo XML de acordo com os filtros que você definir. A replicação é autenticada, e a transferência através da rede pode ser protegida via SSL e definida para minimizar banda ou latência.

Por trás desta coleta de logs está o protocolo aberto WS-Eventing, o que deve fornecer perspectivas interessantes sobre o funcionamento da coleta de eventos entre várias plataformas.

Para terminar, apesar do excesso de uso de imagens de interface gráfica aqui (minhas desculpas a quem usa uma conexão mais lenta!), todo estes recursos estão também disponívels no Windows Server 2008 instalado como Server Core. Para experimentar o novo Windows Server, obtenha já a versão Beta 3 em https://www.microsoft.com/windowsserver2008/default.mspx.