AUDIT: Auditoria de arquivos no Linux para conhecer quem fez alterações em arquivos

Como fazer auditoria de eventos tais quais leitura/escrita etc? Como eu posso usar o audit para ver quem alterou um arquivo no Linux? Eis a solução.

[ Hits: 79.593 ]

Por: Eric Miranda em 09/01/2009 | Blog: http://slackade.blogspot.com/


Como configurar a monitoração de um arquivo para auditoria?



Digamos que você gostaria de auditar o arquivo /etc/passwd. Você precisa digitar o comando a seguir:

# auditctl -w /etc/passwd -p war -k password-file

Onde:
  • -w /etc/passwd: Insere o monitoramento para o objeto de sistema no caminho dado. Neste caso monitorar o arquivo chamado /etc/passwd.
  • -p war: Configurar os filtros de permissão para o monitoramento de um sistema de arquivos.

Os valores são r para leitura, w para escrita, x para execução e a para anexar (append).
  • -k password-file: Configura uma chave para filtragem o monitoramento do arquivo /etc/passwd. As palavras "password-file" são uma palavra-chave (esta palavra chave deve ter no máximo 31 bytes). Esta chave identifica unicamente os registros do audit produzidos pela monitoração.

Resumindo: você está monitorando (vigiando) o arquivo /etc/passwd com vistas a qualquer um (incluindo syscall) que pode efetuar escrita, leitura ou anexar (append) no arquivo.

Espere por algum tempo ou rode o seguinte comando como um usuário comum:

grep 'qqcoisa' /etc/passwd
$ vi /etc/passwd


Regra de auditoria para arquivos

Adicione o monitoramento no arquivo /etc/shadow com a palavra-chave "shadow-file", a qual gera registros para "leituras, escritas, execuções e appends" neste arquivo.

# auditctl -w /etc/shadow -k shadow-file -p rwxa

Regra de auditoria para chamadas de sistema (syscall)

A regra a seguir suprime auditoria para saídas de chamadas de sistema "mount":

# auditctl -a exit,never -S mount

Regra para auditoria de sistemas de arquivos

Adicionar o monitoramento no sistema de arquivos /tmp o qual gera registros em todas as "execuções" (legal para um webserver por exemplo):

# auditctl -w /tmp -p e -k webserver-watch-tmp

Regra de auditoria para chamadas de sistema (syscall) usando PID

Para ver todas as chamadas de sistema feitas por um programa chamado sshd (pid - 1005):

# auditctl -a entry,always -S all -F pid=1005

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Tarefa: instalar o pacote audit
   3. Como configurar a monitoração de um arquivo para auditoria?
   4. Como eu descubro quem alterou ou acessou o arquivo /etc/passwd?
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Sistema de gerenciamento de logs do Linux

Snort avançado: Projetando um perímetro seguro

Hotspot rápido com Coovachilli

Race condition - vulnerabilidades em suids

Análise sobre políticas de segurança da informação

  
Comentários
[1] Comentário enviado por evilrick em 09/01/2009 - 15:51h

Muito bom.
Esse é o tipo de serviço necessário para qualquer administrador de sistemas de qualquer tipo de organização.
O problema (se é que dá para chamar assim :P ) parece ser apenas o volume de informações gerado.

[2] Comentário enviado por ericitaquera em 10/01/2009 - 00:27h

Este é o primeiro artigo que eu publico nesse site. Pensei que daria para editar / acrescentar mais coisas.

A configuração padrão realmente gera muito dado. Mas é facilmente customizável.

Por exemplo, se vc quiser excluir os eventos gerados pelo cron.

# auditctl -a exit,never -x crond
# auditctl -a entry,never -x crond

flw!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts