Análise de Atividades Suspeitas com
Audit:
- Data e hora de determinado evento;
- Associação de um evento a um usuário;
- Modificações nos servidores;
- Falhas de acesso;
- Alterações em arquivos sensíveis como /etc/passwd por exemplo.
Diagrama funcional do Audit
O Audit, geralmente, é utilizado para identificar alterações em arquivos, como por exemplo o
/etc/passwd,
/etc/shadow e rastreabilidade de usuários.
Neste artigo, foram selecionados apenas algumas features, utilizadas para monitorar e detectar atividades suspeitas, sendo elas:
- auditctl - checar e listas as regras implementadas em seu sistema 1
- aureport - ferramenta para gerar reports com base no arquivo de logs audit.log 2
- ausearch - ferramenta para procurar eventos com base no audit.log 3
Obs.: neste Lab foi utilizado o CentOS 7, mas pode ser adaptado para qualquer distribuição, sem maiores dificuldades.
Para instalar o Audit, utilize o comando abaixo:
# yum install auditd -y
O comando utilizado para iniciar o Audit:
# service auditd start
Para habilitar o serviço e subir automaticamente no próximo boot:
# systemctl enable auditd
Syscall do Audit:
- open() - reading data
- write() - data entry
- open() - opening the file
- fork() - create a new process
- exec() - running the program
As regras são configuradas no arquivo
/etc/audit/rules.d/audit.rules e os logs no
/var/log/audit/audit.log. Foram adicionadas apenas algumas regras para demonstração, como exemplo abaixo:
- a always,exit -F arch=b32 -S execve -k execv
- a always,exit -F arch=b64 -S execve -k execv
- w /etc/passwd -p war -k auditcmd
- w /etc/shadow -p war -k auditcmd
Obs.: o parâmetro
k se refere a
key, pode ser utilizado qualquer nome.
Após realizar as configurações, é necessário reler o arquivo com o comando abaixo:
# auditctl -R /etc/audit/rules.d/audit.rules
Analisando Atividades Suspeitas
Existem várias formas de analisar as atividades do Audit, mas a forma mais simples é com o comando
tail no arquivo de log, exemplo:
# tail -f /var/log/audit/audit.log
tail no arquivo de log
Na figura 2 acima, é possível perceber que há um evento suspeito. Nesta syscall tem uma chamada no binário hardlink para o Kernel. O que poderia ser? Um Malware ou um Rootkit?
Todo evento é possível de ser filtrado pelo
pid ou
ppid, como apresentado na figura 3, abaixo:
# ausearch -p 15946
Ao concatenar os comandos
ausearch e
aureport, é possível descobrir os arquivos alterados:
# ausearch -r -p 15946 |aureport --file --summary
Comandos concatenados ausearch e aureport
A figura 4 acima, apresenta os arquivos alterados, sendo eles "hardlink" e "ld-linux-x86-64.so.2".
O comando
report lista todos os eventos realizadas no dia:
# aureport -ts today -i -x --summary
Como é possível observar na figura 5 acima, a saída do comando apresenta uma grande quantidade de atividades no binário hardlink, sendo que este não é um comportamento comum.
Pode ser um artefato malicioso? Para comprovar, será utilizado a ferramenta
chkrootkit com o parâmetro
-q. Este parâmetro lista somente arquivos infectados:
# chkrootkit -q
Bingo! Foi possível detectar um rootkit, pt-br, denominado Diamorphine.
Conclusão
Neste artigo foi apresentado o básico do que é possível fazer com o Audit. Ao considerar as boas práticas, recomenda-se revisar as regras e monitorar os arquivos de log, para identificar possíveis atividades suspeitas.
O Audit pode também ser integrado com outras ferramentas que há no mercado, como por exemplo
ossec.
Ferramentas utilizadas no Lab:
Obs.: Prestigie as ferramentas nacionais.
Referências