Como Usar Auditd para Rastrear Arquivos Sensíveis no Linux

9 min de leitura Segurança e Hardening
Como Usar Auditd para Rastrear Arquivos Sensíveis no Linux

O que é Auditd e por que ele é essencial para sua VPS?

No ecossistema de segurança de servidores Linux, o auditd (Audit Daemon) desempenha um papel crítico na camada de visibilidade. Diferente de ferramentas de detecção de intrusão baseadas em assinaturas ou monitoramento de processos, o auditd opera no nível do kernel, registrando chamadas de sistema específicas. Isso significa que ele captura ações fundamentais realizadas por usuários, aplicações e até mesmo pelo próprio sistema operacional, antes que elas possam causar danos irreparáveis.

Para administradores de sistemas, desenvolvedores e profissionais de segurança que buscam hardening linux, o auditd não é apenas uma ferramenta opcional, mas um requisito fundamental para ambientes que exigem conformidade regulatória (como LGPD, GDPR ou PCI-DSS) e para a detecção intrusão proativa. Sem ele, você opera "no escuro" quando se trata de saber quem acessou quais arquivos sensíveis, quando e de qual origem.

Neste tutorial, vamos configurar o auditd do zero, definir regras específicas para monitoramento de invasão em diretórios críticos e aprender a interpretar os logs gerados para manter sua infraestrutura segura.

Passo 1: Instalação e Verificação do Serviço

A primeira etapa é garantir que o pacote necessário esteja instalado em sua distribuição Linux. O auditd faz parte do conjunto de ferramentas audit. A instalação varia ligeiramente dependendo do seu gerenciador de pacotes.

Para sistemas baseados em Debian/Ubuntu:

sudo apt update
sudo apt install auditd audispd-plugins

Para sistemas baseados em RHEL/CentOS/AlmaLinux/Rocky:

sudo yum install audit audit-libs
# ou no DNF: sudo dnf install audit audit-libs

Após a instalação, é crucial verificar se o serviço está ativo e configurado para iniciar junto com o boot do sistema. Isso garante que a proteção esteja sempre ligada.

sudo systemctl enable auditd
sudo systemctl start auditd
sudo systemctl status auditd

Se o status mostrar active (running), seu daemon está pronto para receber regras. Você também pode verificar o status com a ferramenta específica do audit:

sudo auditctl --status

O comando acima deve retornar algo indicando que o serviço de auditoria está habilitado e em execução.

Passo 2: Compreendendo a Estrutura de Configuração

A configuração principal do auditd reside no arquivo /etc/audit/auditd.conf. Embora muitos parâmetros padrão funcionem bem, é importante entender os campos chave para evitar sobrecarga de disco ou perda de logs durante incidentes.

Alguns parâmetros críticos que você deve revisar incluem:

  • log_file: O caminho do arquivo de log principal (geralmente /var/log/audit/audit.log). Certifique-se de que há espaço em disco suficiente.
  • max_log_file: Define o tamanho máximo do arquivo de log antes do rotação. Para servidores com alto volume de tráfego, aumente esse valor (ex: 128 ou 256 MB).
  • space_left_action: A ação a ser tomada quando o espaço em disco atingir um limite crítico. O padrão email é útil, mas single ou halt são recomendados para ambientes de alta segurança para evitar que logs sejam sobrescritos durante um ataque.
  • admin_space_left_action: Ação para o usuário root quando o espaço restante é ainda menor. Use halt se a integridade dos logs for absoluta prioridade.

Após editar o /etc/audit/auditd.conf, reinicie o serviço para aplicar as mudanças:

sudo systemctl restart auditd

Passo 3: Definindo Regras de Monitoramento (Audit Rules)

Aqui entramos no cerne do segurança vps. As regras são definidas no arquivo /etc/audit/rules.d/audit.rules ou, em sistemas mais modernos com gerenciamento centralizado de regras, em arquivos dentro de /etc/audit/rules.d/*.rules.

Regras podem ser temporárias (aplicadas via linha de comando) ou persistentes (salvas no disco). Para produção, sempre use a abordagem persistente.

3.1 Monitorando Acessos a Arquivos Sensíveis

Para rastreamento de arquivos específicos, utilizamos a chave -w (watch). Vamos monitorar o arquivo de senhas do sistema e o diretório de configurações SSH, alvos comuns para monitoramento de invasão.

# Monitorar alterações no arquivo de senhas
sudo auditctl -w /etc/passwd -p wa -k identity_changes

# Monitorar alterações no arquivo de senhas shadow (hashes)
sudo auditctl -w /etc/shadow -p wa -k identity_changes

# Monitorar configuração do SSH
sudo auditctl -w /etc/ssh/sshd_config -p wa -k sshd_config

Neste exemplo, explicamos os parâmetros:

  • -w /caminho/do/arquivo: O alvo a ser monitorado.
  • -p wa: Permissões para monitorar. w é escrita (alterações), a é acesso de leitura, x é execução e d é atribuição de permissões. Para segurança máxima em arquivos sensíveis, use wa.
  • -k chave: Um nome amigável para filtrar os logs posteriormente.

Para tornar essas regras persistentes, adicione-as ao arquivo /etc/audit/rules.d/audit.rules:

-w /etc/passwd -p wa -k identity_changes
-w /etc/shadow -p wa -k identity_changes
-w /etc/ssh/sshd_config -p wa -k sshd_config

3.2 Monitorando Chamadas de Sistema Críticas

Além de arquivos, devemos monitorar chamadas de sistema que podem indicar tentativas de elevação de privilégios ou manipulação de tempo (ataques de negação de serviço ou evasão).

# Monitorar tentativas de alterar a hora do sistema
sudo auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k clock_changes
sudo auditctl -a always,exit -F arch=b32 -S adjtimex -S settimeofday -k clock_changes

# Monitorar tentativas de desabilitar o firewall (iptables/nftables)
sudo auditctl -w /usr/sbin/iptables -p x -k firewall_modifications
sudo auditctl -w /usr/sbin/ip6tables -p x -k firewall_modifications

Novamente, adicione essas linhas ao arquivo de regras persistente e reinicie o serviço:

sudo systemctl restart auditd

Passo 4: Testando as Regras e Gerando Logs

Agora que as regras estão ativas, vamos simular uma ação para verificar se o sistema está registrando corretamente. Tente editar o arquivo de configuração do SSH:

sudo nano /etc/ssh/sshd_config

Salve e saia (Ctrl+O, Enter, Ctrl+X). Agora, verifique os logs em tempo real ou consulte o log estático.

Passo 5: Interpretando os Logs do Auditd

O formato dos logs do auditd é denso e contém muitos dados técnicos. Para facilitar a leitura e análise, utilize a ferramenta aureport ou ausearch.

Usando Aureport para Relatórios

O aureport gera relatórios resumidos. Para ver um histórico de todas as alterações em arquivos identificados pela chave identity_changes:

sudo aureport --start today --key identity_changes -i

O sinalizador -i torna a saída legível para humanos, traduzindo IDs numéricos (UIDs, GIDs) para nomes de usuário e caminho.

Usandoausearch para Investigação Detalhada

Se você precisa investigar um evento específico, o ausearch é mais poderoso. Para buscar todos os eventos que envolveram o arquivo /etc/shadow:

sudo ausearch -f /etc/shadow --start recent

A saída conterá detalhes como:

  • type=SYSCALL: A chamada de sistema realizada.
  • uid=0: O ID do usuário que realizou a ação (root).
  • exe="/usr/bin/passwd": O executável que originou a ação.
  • key="identity_changes": A chave definida na regra.

Esses dados são vitais para compliance, pois provam exatamente quem acessou o arquivo e quando. Em caso de violação, você pode correlacionar esse timestamp com logs de autenticação (/var/log/auth.log) para determinar se o acesso foi legítimo ou malicioso.

Passo 6: Boas Práticas e Manutenção Contínua

A configuração do auditd não é "instalar e esquecer". Para manter uma postura de segurança vps robusta, considere as seguintes práticas:

  1. Rotação de Logs: Configure o logrotate para gerenciar os arquivos em /var/log/audit/. Logs não rotacionados podem lotar seu disco e parar o serviço.
  2. Proteção dos Logs: Use chattr para tornar os logs de auditoria imutáveis enquanto estão sendo escritos, impedindo que um atacante root apague as evidências.
    sudo chattr +i /var/log/audit/audit.log
    Lembre-se de remover a flag (-i) antes de fazer manutenção ou rotacionar os logs.
  3. Sincronização com SIEM: Para ambientes maiores, configure o audisp-syslog para encaminhar os eventos do auditd para um servidor SIEM centralizado (como Splunk, ELK Stack ou Graylog). Isso permite correlação cruzada e alertas em tempo real.
  4. Revisão Periódica: Revise as regras a cada trimestre. Remova monitoramentos desnecessários que geram ruído e adicione novos alvos conforme a infraestrutura muda.

Conclusão

O auditd é uma ferramenta poderosa e indispensável para qualquer profissional de TI que leve a segurança a sério. Ele fornece a camada de auditoria forense necessária para detectar monitoramento de invasão em estágio inicial, garantir compliance regulatório e manter a integridade dos dados sensíveis da sua empresa.

Ao seguir os passos deste tutorial — instalação, configuração de regras persistentes e interpretação correta dos logs — você transforma sua VPS Linux de um sistema passivo em uma infraestrutura ativa e visível. Lembre-se: a segurança não é um produto, é um processo contínuo. Comece hoje a rastrear seus arquivos críticos.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000