Monitorização de Ficheiros com auditd no Linux: Detetar Intrusões
A Ameaça Invisível: A Modificação Silenciosa de Ficheiros de Sistema
Quando um atacante experiente consegue invadir um servidor Linux de produção, raramente faz barulho. Não apaga o disco nem deita os sites abaixo. Em vez disso, opera de forma invisível:
- Adiciona a sua própria chave pública ao ficheiro
/root/.ssh/authorized_keys. - Cria um utilizador falso com privilégios de root (UID 0) no
/etc/passwd. - Edita o ficheiro
/etc/sudoerspara permitir comandos administrativos sem palavra-passe. - Altera o
/etc/nginx/nginx.confpara desviar tráfego de pagamentos para um servidor falso.
Passam semanas ou meses até que alguém se aperceba de que a máquina foi comprometida. O invasor estabeleceu persistência no sistema, roubou dados de clientes e apagou o histórico do terminal para não deixar pistas.
O CICLO DE UMA INTRUSÃO SILENCIOSA EM LINUX
- Atacante Entra no Servidor → Modifica /etc/passwd (Cria utilizador root)
- Apaga o Histórico (.bash_history) → O sistema parece completamente calmo!
- (Passam 3 meses… Ninguém desconfia até os dados surgirem na dark web!)
Para protegeres os teus servidores de acordo com os padrões de segurança do nosso alojamento gerido, não podes confiar em verificações manuais de vez em quando. Tens de implementar Monitorização de Integridade de Ficheiros (FIM) em tempo real através do auditd nativo do kernel Linux.
A Arquitetura do auditd: Interceção de Chamadas de Sistema em Tempo Real
Ao contrário de programas como o AIDE ou o Tripwire que calculam hashes de ficheiros uma vez por dia no cron, o Linux Audit Daemon (auditd) atua diretamente na camada de chamadas de sistema (syscalls) do kernel.
Sempre que qualquer processo tenta abrir (openat), escrever (write), renomear (rename) ou apagar (unlink) um ficheiro no disco, o kernel valida as suas tabelas internas de auditoria. Se o caminho coincidir com uma regra ativa, o kernel grava imediatamente um registo seguro que inclui:
pideppid: O identificador do processo e o processo pai que executou a escrita.auid(Audit User ID): A identidade original da pessoa que fez login por SSH, mesmo que tenha usadosudo su.exe: O caminho completo do executável utilizado (por exemplo/usr/bin/vimou/usr/bin/python3).key: Uma etiqueta semântica definida por ti para facilitar a filtragem dos alertas.
PIPELINE DE AUDITORIA DO KERNEL COM AUDITD
- Utilizador / Processo (Ex: invasor corre um script em python)
- (Dispara a syscall openat() no ficheiro)
- CAMADA DE SYSCALLS DO KERNEL LINUX
- Avalia as regras de auditoria ativas em memória
- O FICHEIRO VIGIADO COINCIDE (/etc/passwd ou /etc/nginx/)!
- Regista o auid original de login, o binário e a data
- (Comunicação via Netlink Socket)
- DAEMON AUDITD NO ESPAÇO DE UTILIZADOR
- Grava registos protegidos em /var/log/audit/audit.log
- Dispara alertas instantâneos para webhooks ou Slack
Como o registo é feito na memória do kernel antes sequer de a alteração ser gravada no disco, o invasor não consegue apagar o rasto, mesmo que limpe a pasta de histórico da shell a seguir.
Configurar Regras Rigorosas de Auditoria no Teu Servidor Debian
No teu servidor com Debian, instala o pacote oficial do auditd:
sudo apt-get update
sudo apt-get install -y auditd audispd-plugins
As regras de monitorização ficam em /etc/audit/rules.d/audit.rules. Aqui tens uma configuração recomendada para protegeres ficheiros vitais do sistema operativo:
# /etc/audit/rules.d/audit.rules - Regras de Segurança Profissionais
# Limpa regras antigas
-D
# Define o tamanho da fila em memória para aguentar rajadas sem perdas
-b 8192
# Ação em caso de falha: 1 = avisar no dmesg
-f 1
# Monitoriza ficheiros de identidade de utilizadores e palavras-passe
-w /etc/passwd -p wa -k alteracao_identidade
-w /etc/shadow -p wa -k alteracao_identidade
-w /etc/group -p wa -k alteracao_identidade
-w /etc/gshadow -p wa -k alteracao_identidade
# Monitoriza elevações de privilégios e permissões sudo
-w /etc/sudoers -p wa -k elevacao_privilegios
-w /etc/sudoers.d/ -p wa -k elevacao_privilegios
# Monitoriza chaves autorizadas de SSH e configurações remotas
-w /root/.ssh/ -p wa -k ssh_root_modificado
-w /etc/ssh/sshd_config -p wa -k ssh_config_modificado
# Monitoriza configurações do servidor web e serviços do sistema
-w /etc/nginx/ -p wa -k alteracao_nginx
-w /etc/systemd/system/ -p wa -k alteracao_systemd
# Monitoriza comandos de reinício ou encerramento da máquina
-w /sbin/halt -p x -k encerramento_sistema
-w /sbin/reboot -p x -k encerramento_sistema
Aplica as novas regras ao kernel com o utilitário augenrules:
sudo augenrules --load
sudo systemctl restart auditd
Confirma que o kernel registou as tuas regras com sucesso:
sudo auditctl -l
A partir deste instante, qualquer tentativa de escrita (w) ou alteração de atributos (a) nestes ficheiros fica gravada no /var/log/audit/audit.log.
Como Fazer Análise Forense com ausearch e aureport
Ler o ficheiro /var/log/audit/audit.log diretamente é difícil porque o formato inclui muitos campos codificados em hexadecimal.
Para investigares com clareza, usas as ferramentas de análise ausearch e aureport:
# 1. Procura alterações ao /etc/passwd ocorridas hoje
sudo ausearch -k alteracao_identidade -ts today
# 2. Mostra quem alterou as configurações do Nginx com texto descodificado
sudo ausearch -k alteracao_nginx -i
# 3. Gera um resumo executivo de eventos e comandos de sistema
sudo aureport -x --summary
Vê este exemplo de um registo descodificado com ausearch -i:
type=PROCTITLE msg=audit(10/19/2026 14:22:01.812:412) : proctitle="vim" "/etc/passwd"
type=PATH msg=audit(10/19/2026 14:22:01.812:412) : item=0 name="/etc/passwd" inode=131074 ouid=root ogid=root
type=SYSCALL msg=audit(10/19/2026 14:22:01.812:412) : arch=x86_64 syscall=openat success=yes
ppid=1402 pid=3819 auid=josue uid=0 gid=0 comm="vim" exe="/usr/bin/vim.basic" key="alteracao_identidade"
Repara na precisão da prova:
auid=josue: O utilizador entrou originalmente na máquina com a contajosue.uid=0: Usousudopara virar root.exe="/usr/bin/vim.basic": Abriu o/etc/passwdcom o editor Vim.key="alteracao_identidade": Identificado pela tua etiqueta de segurança.
O invasor não tem como negar a autoria: foi o próprio kernel do Linux que atestou a identidade dele.
Alertas Instantâneos no Slack com o Plugin audispd
Uma auditoria só é verdadeiramente eficaz se te avisar no segundo em que o ficheiro é modificado. Com o despachante de eventos audispd, podes enviar o alerta diretamente para um webhook.
Cria o ficheiro do plugin em /etc/audit/plugins.d/alerta-slack.conf:
# /etc/audit/plugins.d/alerta-slack.conf
active = yes
direction = out
path = /usr/local/bin/notificar-auditoria.sh
type = builtin
args = 1
format = string
Cria o script /usr/local/bin/notificar-auditoria.sh:
#!/bin/bash
# /usr/local/bin/notificar-auditoria.sh
while read -r linha; do
if echo "$linha" | grep -q "key=\"alteracao_identidade\""; then
UTILIZADOR=$(echo "$linha" | grep -o 'auid=[^ ]*' | cut -d= -f2)
EXECUTAVEL=$(echo "$linha" | grep -o 'exe="[^"]*"' | cut -d= -f2)
curl -s -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"🚨 *ALERTA DE SEGURANÇA em $(hostname)*\\n*Ficheiro de Utilizadores Modificado (/etc/passwd)*\\n*Utilizador:* \`$UTILIZADOR\`\\n*Comando:* \`$EXECUTAVEL\`\"}" \
https://webhook.interna/alertas/seguranca
fi
done
Dá permissões de execução e reinicia o serviço:
sudo chmod +x /usr/local/bin/notificar-auditoria.sh
sudo systemctl restart auditd
No milissegundo em que alguém tocar no /etc/passwd ou no /root/.ssh/authorized_keys, a tua equipa recebe um alerta imediato no telemóvel. Tens mais receitas e regras no GitHub.
Boas Práticas Operacionais: Bloquear Regras com a Opção de Imutabilidade
Seguindo os padrões comprovados na WebXtek, deves aplicar estas três regras na manutenção regular dos teus servidores:
- Torna as Regras Imutáveis com o Parâmetro -e 2: Depois de testares as tuas regras, adiciona
-e 2como a última linha do/etc/audit/rules.d/audit.rules. Esta opção instrui o kernel a bloquear qualquer alteração às regras de auditoria até ao próximo reinício físico da máquina. Nem mesmo o utilizador root consegue desativar o auditd. - Usa uma Partição Separada para /var/log/audit/: Isola a pasta de auditoria numa partição dedicada para evitar que o espaço em disco seja acidentalmente esgotado por outras aplicações.
- Audita Regularmente o Sistema Operativo: Inclui a verificação periódica de falhas de autenticação e alterações de ficheiros nos teus relatórios de consultoria técnica.
Ao implementares o auditd com regras rigorosas de integridade de ficheiros e alertas automáticos, ganhas controlo total sobre o teu servidor e impedes que intrusos instalem portas travessas ou modifiquem configurações críticas sem serem detetados.
Na prática, aplicas exatamente estes padrões operacionais em setores exigentes como cibersegurança b2b e inteligência corporativa e provedores de cloud computing e iaas. Quando alinhas a tua estrutura através de alojamento gerido para websites e aplicações e consultoria técnica antes de construir, transformas boas práticas técnicas numa vantagem competitiva real e mensurável para o teu negócio.
[+] [ INDEX_DIRECTORY ] 14 tópicos ▼
- A Ameaça Invisível: A Modificação Silenciosa de Ficheiros de Sistema
- A Arquitetura do auditd: Interceção de Chamadas de Sistema em Tempo Real
- Configurar Regras Rigorosas de Auditoria no Teu Servidor Debian
- Como Fazer Análise Forense com ausearch e aureport
- Alertas Instantâneos no Slack com o Plugin audispd
- Boas Práticas Operacionais: Bloquear Regras com a Opção de Imutabilidade
- Autor
- Perguntas Frequentes
- O que é o daemon auditd do Linux e como deteta alterações em ficheiros?
- Qual é a diferença entre o auditd e ferramentas como o AIDE ou Tripwire?
- O que é o auid e porque é que um atacante não o consegue falsificar com sudo?
- O auditd pode prejudicar a velocidade de leitura e escrita do disco do servidor?
- Nós Relacionados
- Sequência do Caminho
Perguntas Frequentes
O que é o daemon auditd do Linux e como deteta alterações em ficheiros?
O Linux Audit Daemon (auditd) liga-se diretamente às chamadas de sistema (syscalls) do kernel. Quando qualquer processo tenta ler, modificar ou apagar um ficheiro vigiado (como o /etc/passwd ou o ficheiro de configuração do Nginx), o auditd gera um registo seguro com o PID, utilizador real, binário e data exata.
Qual é a diferença entre o auditd e ferramentas como o AIDE ou Tripwire?
Ferramentas como o AIDE ou Tripwire correm verificações periódicas no cron comparando hashes de ficheiros, permitindo que um invasor altere um ficheiro, cometa o ataque e volte a repô-lo antes da verificação seguinte. O auditd opera em tempo real no kernel e regista o evento no exato microssegundo em que ele acontece.
O que é o auid e porque é que um atacante não o consegue falsificar com sudo?
Quando um utilizador inicia sessão no Linux, o kernel atribui-lhe um ID de auditoria imutável (auid). Mesmo que o atacante execute sudo su para virar root (uid=0), o kernel mantém a identidade de login original (auid=1000) em todos os registos seguintes, impedindo que esconda quem realmente é.
O auditd pode prejudicar a velocidade de leitura e escrita do disco do servidor?
Se configurares regras mal desenhadas que vigiem pastas com escrita muito frequente (como /tmp ou /var/log), o buffer pode encher. A boa prática passa por vigiar apenas ficheiros críticos de segurança e ajustar o tamanho do buffer (backlog) para 8192 eventos.
[ RELATED_NODES ]
> INICIAR_PROJETO
Precisa de um website que transmita confiança, apareça na pesquisa e dê mais força à sua presença digital? Comece a conversa aqui.