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: 80.593 ]

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


Como eu descubro quem alterou ou acessou o arquivo /etc/passwd?



Use o comando ausearch:

# ausearch -f /etc/passwd
ou
# ausearch -f /etc/passwd | less
ou
# ausearch -f /etc/passwd -i | less

Onde:
  • -f /etc/passwd : apenas procura por este arquivo
  • -i : Interpreta entidades numéricas no texto. Por exemplo, UIDs são convertidos para nomes de usuário.

Saída:

type=PATH msg=audit(03/16/2007 14:52:59.985:55) : name=/etc/passwd flags=follow,open
inode=23087346 dev=08:02 mode=file,644 ouid=root ogid=root rdev=00:00
type=CWD msg=audit(03/16/2007 14:52:59.985:55) : cwd=/webroot/home/lighttpd
type=FS_INODE msg=audit(03/16/2007 14:52:59.985:55) : inode=23087346 inode_uid=root
inode_gid=root inode_dev=08:02 inode_rdev=00:00
type=FS_WATCH msg=audit(03/16/2007 14:52:59.985:55) : watch_inode=23087346 watch=passwd
filterkey=password-file perm=read,write,append perm_mask=read
type=SYSCALL msg=audit(03/16/2007 14:52:59.985:55) : arch=x86_64 syscall=open success=yes
exit=3 a0=7fbffffcb4 a1=0 a2=2 a3=6171d0 items=1 pid=12551 auid=unknown(4294967295)
uid=lighttpd gid=lighttpd euid=lighttpd suid=lighttpd fsuid=lighttpd egid=lighttpd
sgid=lighttpd fsgid=lighttpd comm=grep exe=/bin/grep

Vamos analisar a saída:
  • audit(03/16/2007 14:52:59.985:55): data do registro da auditoria;
  • uid=lighttpd gid=lighttpd: UIDs e GIDs convertidos para formato de texto. Passando a opção -i quase todos os dados numéricos são convertidos para dados humanamente legíveis. No exemplo, o usuário lighttod usou o comando grep para abrir o arquivo;
  • exe="/bin/grep": Comando utilizado para acessar o arquivo /etc/passwd;
  • perm_mask=read: O arquivo foi aberto para leitura;

Logo, verifica-se que a partir dos arquivos de log do audit você pode rastrear desde quem consultou um arquivo com grep ou gravou alterações utilizando o editor vi/vim. Os logs provêem toneladas de informações. Você precisa ler as páginas de manual (man pages) e demais documentações para entender o formato de log "cru".

Outros exemplos úteis:

Pesquisar eventos com data e hora específica. Se a data for omitida, a data de hoje é assumida. Se a hora for omitida, "agora" é assumido por padrão. Use a notação de 24 horas ao invés da notação AM/PM para especificar a hora. Exemplo: data 24/20/05, hora 18:00:00.

# ausearch -ts today -k password-file
# ausearch -ts 3/12/07 -k password-file


Pesquisar por um evento casando com o utilitário especificado utilizando a opção -x. Por exemplo, verificar quem acessou o arquivo /etc/passwd utilizando rm.

# ausearch -ts today -k password-file -x rm
# ausearch -ts 3/12/07 -k password-file -x rm


Pesquisar por um evento do determinado usuário pelo UID. Verificar se o usuário vivek (UID 506) tentou acessar o arquivo /etc/passwd:

# ausearch -ts today -k password-file -x rm -ui 506
# ausearch -k password-file -ui 506


Conclusão

O audit é uma ferramenta poderosa e de simples configuração/utilização.

Porém, pode gerar dados em excesso, portanto, um bom planejamento é recomendável para uma implementação sem surpresas, afim de extrair todas as vantagens da ferramenta.

Página anterior    

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

Nmap - Escaneando sua Rede e Mantendo-a Segura

Servidor de log no Debian com Syslog-ng

Implementação de OpenVAS-5 em Ubuntu 10.04.4 LTS

Utilizando SSH com método de autenticação publickey + ssh-agend + ssh-add

Prevenção e rastreamento de um ataque

  
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