A utilização de expressões regulares para filtragens, criação de regras, alertas, condições, entre outras funcionalidades é uma das ferramentas técnicas que une as diversas tecnologias utilizadas para resposta a incidentes de segurança e forense computacional.
Antes de prosseguir, precisamos ter em mente que a utilização de pattern matching - apesar de extremamente útil - sempre nos trará um número de falsos-positivos e falsos-negativos.
Praticamente todas as linguagens de programação suportam o uso das expressões regulares, por exemplo: .NET, Java, Javascript, Lua, Perl, PHP, Python, Ruby e Tcl nem mesmo precisam de chamada a módulos externos por suportar nativamente regex.
Do ponto de vista das diferentes implementações, a PCRE (Perl Compatible Regular Expressions) é a mais completa, por suportar diretivas, condicionais, referencias nominais, grupos atômicos, comentários, código embutido, matching parcial e unicode.
No caso da Resposta a Incidentes e Forense computacional, as expressões regulares representam um papel fundamental tanto na 1) Correlação de Logs e Eventos de Segurança, quanto na 2) Monitoração e/ou Forense de Rede, quanto na 3) Forense de Mídias (local ou remotamente).
1) Correlação de Logs e Eventos de Segurança
As expressões regulares são fundamentais para o processamento direto de arquivos de log e outras evidências. em ferramentas como grep, awk, sed e o próprio perl (exemplo). Além disto, as ferramentas empresariais de SIEM/SIM durante as fases filtragem de dados, na normalização e categorização de eventos e também na correlação de informações e criação de alertas (exemplo).
2) Monitoração e/ou Forense de Rede
Desde as ferramentas básicas como IDS/IPS (como o suporte a PCRE do Snort ou o uso de regex com o ngrep) até filtros de conteúdo, e as ferramentas de Forense de Rede (exemplo: no NetWitness você pode utilizar expressões regulares para pesquisas avançadas em conteúdos, metadados, ou para identificação de detalhes de protocolos/aplicações com a tecnologia de FlexParser)
2) Monitoração e/ou Forense de Rede
Desde as ferramentas básicas como IDS/IPS (como o suporte a PCRE do Snort ou o uso de regex com o ngrep) até filtros de conteúdo, e as ferramentas de Forense de Rede (exemplo: no NetWitness você pode utilizar expressões regulares para pesquisas avançadas em conteúdos, metadados, ou para identificação de detalhes de protocolos/aplicações com a tecnologia de FlexParser)
3) Forense de Mídias
O uso de expressões regulares está entre as análises mais comuns que são utilizadas em forense computacional (seja em frameworks GPL como o CAINE e o SIFT, seja em ferramentas comerciais como o FTK e ENCASE).
O uso de expressões regulares está entre as análises mais comuns que são utilizadas em forense computacional (seja em frameworks GPL como o CAINE e o SIFT, seja em ferramentas comerciais como o FTK e ENCASE).
Isto vale tanto na para criação de palavras-chave para pesquisa quanto para a identificação de assinaturas de arquivos / análise de extensão versus header (Exemplo: os primeiros bytes de um JPEG padrão iniciarão com [\xFF\xD8\xFF[\xE0\xEE] - onde \x significa um valor hexadecimal e as chaves significam ou E0 ou EE).
Referências:
Seguem algumas referências para facilitar o treinamento de equipes que precisam utilizar expressões regulares em seu dia-a-dia:
1 - http://gskinner.com/RegExr/ - editor de expressões regulares em versão online e desktop
1 - http://gskinner.com/RegExr/ - editor de expressões regulares em versão online e desktop
2 - http://ryanswanson.com/regexp/#start - flex 3 regular expression explorer (obrigado @welias)
3 - Regex Coach - Programa (Win/Linux) gratuito para auxiliar a criação de regexes;
4 - http://www.regular-expressions.info/ - repositório com exemplos, sintaxe, referências, livros, etc;
Boas as informações e referências.
ReplyDeleteUma pergunta. Existe alguma ferramenta de código aberto que use expressões regulares para capturas "live" de tráfego de rede?
Ola Anonimo =)
ReplyDeleteA mais simples e direta ao ponto que me lembro eh o ngrep - eh bem provavel que voce ja a tenha no seu Linux/BSD - segue pagina oficial: http://ngrep.sourceforge.net/
um abraço e boa sorte,
S.S.