Análise Forense com Expressões Regulares no Linux: Identificando alterações em sistemas comprometidos
A análise forense digital é fundamental para identificar atividades maliciosas em sistemas comprometidos. Uma das técnicas mais eficazes para detectar alterações suspeitas — como arquivos criados, excluídos, modificações em diretórios ou adulteração de logs — é o uso de expressões regulares (regex) combinadas com ferramentas nativas do Linux. Neste artigo, vamos explorar como aplicar regex para investigar mudanças em uma máquina potencialmente comprometida, passo a passo.
1. Introdução ao cenário
Suponha que uma máquina Linux esteja apresentando comportamentos anômalos: alto uso de recursos, arquivos desconhecidos ou logs inconsistentes. O objetivo é utilizar expressões regulares para:
-
Identificar arquivos criados ou modificados recentemente.
-
Detectar exclusões de arquivos críticos.
-
Analisar alterações em diretórios sensíveis.
-
Investigar logs adulterados.
2. Identificando arquivos criados ou modificados
Arquivos maliciosos são frequentemente criados ou modificados durante um ataque. Para localizar arquivos alterados nos últimos 7 dias, use o comando find com regex:
find / -type f -mtime -7 -regextype posix-extended -regex ".*\.(sh|py|conf|log)$"
-
Explicação:
-
-mtime -7: Filtra arquivos modificados nos últimos 7 dias. -
-regex ".*\.(sh|py|conf|log)$": Busca arquivos com extensões comumente alvo de ataques (.sh, .py, .conf, .log). -
Use
-exec ls -l {} \;para listar detalhes como permissões e proprietários.
-
Exemplo de Saída:
-rwxr-xr-x 1 root root 1024 Jun 10 15:30 /var/log/.hidden_script.sh
Arquivos ocultos em /var/log ou com permissões incomuns (ex: 777) devem ser investigados.
3. Detectando exclusões de arquivos
Logs do sistema, como /var/log/syslog ou /var/log/auth.log, registram operações de exclusão. Use grep com regex para buscar entradas relacionadas ao comando rm:
grep -E “rm -[rf]|unlink” /var/log/syslog
-
Regex:
rm -[rf]|unlinkcaptura comandos de exclusão recursiva (-r) ou forçada (-f).
Padrão Suspeito:
Jun 10 14:45 user: root COMMAND=/usr/bin/rm -rf /var/www/html/*
Exclusões em massa em diretórios críticos (ex: /var/www) podem indicar atividade maliciosa.
4. Analisando alterações em diretórios
Diretórios como /etc, /bin, ou /home são alvos comuns. Para listar alterações recentes em /etc, combine ls com regex:
ls -lt /etc | grep -E "Jun [0-9]{2} (14|15|16):[0-9]{2}"
-
Regex:
Jun [0-9]{2} (14|15|16):[0-9]{2}filtra arquivos modificados entre 14h e 16h no mês de junho.
Casos de Atenção:
-
Arquivos de configuração modificados fora de janelas de manutenção (ex:
/etc/passwd). -
Novos diretórios ocultos (ex:
/etc/.backdoor).
5. Investigando logs adulterados
Ataques frequentemente incluem a adulteração de logs para apagar evidências. Use regex para identificar lacunas ou inconsistências:
5.1. Verificando Lacunas Temporais
cat /var/log/auth.log | grep -E "Jun [0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}" | awk
'{print $1,$2,$3}' | uniq -c
-
Regex:
Jun [0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}captura timestamps. -
Saída Suspeita: Intervalos de tempo ausentes (ex: logs das 02:00 às 04:00 apagados).
5.2. Buscando padrões de ataque
Para detectar tentativas de injeção de comandos em logs do Apache (/var/log/apache2/access.log):
grep -E "union select|<?php|wget|curl" /var/log/apache2/access.log
-
Regex:
union select|<?php|wget|curlidentifica tentativas de exploração via SQLi ou download de payloads.
6. Monitorando Atividades com Auditd
O framework auditd registra alterações em tempo real. Para rastrear acesso ao diretório /bin, configure uma regra:
auditctl -w /bin -p war -k system_binaries
-
Análise dos Logs:
ausearch -k system_binaries | grep -E "execve|rename|unlink"
-
Regex:
execve|rename|unlinkfiltra operações de execução, renomeação ou exclusão.
7. Conclusão
Expressões regulares são indispensáveis na análise forense para filtrar grandes volumes de dados e identificar padrões sutis de comprometimento. Ao combinar regex com ferramentas como find, grep, awk e auditd, é possível:
-
Detectar arquivos maliciosos criados ou modificados.
-
Identificar exclusões não autorizadas.
-
Correlacionar eventos em logs adulterados.
No entanto, a análise forense exige uma abordagem holística: valide sempre os resultados com múltiplas ferramentas (ex: stat, md5sum) e documente todas as evidências para garantir a integridade do processo.
Referências Bibliográficas
-
Robbins, A. (2005). Unix in a Nutshell. O’Reilly Media.
-
Friedl, J. E. F. (2006). Mastering Regular Expressions. O’Reilly Media.
-
Nikkel, B. (2021). Practical Linux Forensics: A Guide for Digital Investigators. No Starch Press.
Estas obras fornecem bases técnicas aprofundadas sobre expressões regulares, ferramentas Linux e metodologias de análise forense, complementando os exemplos práticos deste artigo.








