Auditoria no Linux

Auditoria no Linux

Estou tentando configurar um mecanismo de auditoria robusto em minhas caixas centos 6.x. Experimentei e testei várias ferramentas de auditoria como

  • auditado
  • assessor
  • psacct

Mas nenhum está preenchendo totalmente minha exigência. Meu requisito é bastante simples e sei que um sistema de auditoria não atenderá a todos e posso ter que usar sistemas de auditoria diferentes todos juntos. Eu quero

  • Monitore todos os comandos executados por um usuário

psacct está fazendo isso perfeitamente, mas informa apenas o comando executado pelo usuário e não os argumentos passados ​​​​para o comando. ou seja, se o usuário executar vim /erc/passwd, lastcomm <username>apenas informará que o comando vim foi executado, mas não informará qual arquivo foi realmente editado.

E auditd informa que, por exemplo, o comando vim foi executado e um arquivo específico foi editado, mas não informa quem editou o arquivo.

Suponha que eu execute um comando como um usuário sudo, então ele não me dirá qual usuário editou o arquivo específico se houver 10 usuários sudo, pois gid e uid serão superusuários na saída do comando:

time->Sat Jun 20 15:52:45 2015
type=PATH msg=audit(1434795765.057:54685): item=4 name="/etc/passwd" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
type=PATH msg=audit(1434795765.057:54685): item=3 name="/etc/passwd" inode=152786 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=2 name="/etc/passwd+" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=1 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=PATH msg=audit(1434795765.057:54685): item=0 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=CWD msg=audit(1434795765.057:54685):  cwd="/etc"
type=SYSCALL msg=audit(1434795765.057:54685): arch=c000003e syscall=82 success=yes exit=0 a0=7fffba897300 a1=7fd7cc94ece0 a2=7fffba8971c0 a3=0 items=5 ppid=14041 pid=14043 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=8494 comm="useradd" exe="/usr/sbin/useradd" key=(null)
  • Gostaria de acompanhar as alterações reais feitas no arquivo

A ferramenta auxiliar informa que um arquivo foi modificado, mas como posso obter detalhes do conteúdo que realmente foi modificado e qual usuário fez a modificação?

Responder1

Você pode implementar isso usando auditd e um módulo pam. Você precisa carregar o módulo pam pam_tty_auditna sessão como

session required pam_tty_audit.so disable=testuser1 enable=testuser,root

em ambos /etc/pam.d/password-authe /etc/pam.d/system-autharquivos.

e então o toque de tecla dos usuários habilitados será registrado no log de auditoria.

Ao gerar o relatório de auditoria, use a opção -i com aureport para obter exatamente o nome de usuário.

por exemplo:aureport --tty -i -ts today

Uma desvantagem desse método é que todas as teclas digitadas serão registradas, incluindo as senhas inseridas no terminal.

Para rastrear arquivos alterados, um assessor pode ser usado. Isso usa um método de verificação de soma de verificação. Mas a linha exata alterada no arquivo não é rastreável.

informação relacionada