[ Update 18/04/2011 ]
Hoje fui responder a um post sobre o assunto do meu colega de trabalho e amigo - Luiz Sales Rabelo, acabei escrevendo tanto que virou uma atualização por aqui:
Segue mais uma referência interessante: (pdf) - que apresenta as seguintes técnicas de "near match":
- Diff Analysis
- Hashing
- Fuzzy Hashing
- Entropy
O título é - Utilizing Entropy to Identify Undetected Malware - de Tom Davis, Product Manager, Cybersecurity Solutions (Guidance Software)
Acrescentaria ainda uma técnica que já utilizei para sair de sinucas de bico durante duas investigações, importantes, onde tudo parecia perdido - chamada File Block Hash Analysis:
Download do Enscript aqui: https://support.guidancesoftware.com/forum/downloads.php?do=file&id=657
[ Post Original - 2009/11/09 ]
Fuzzy está na moda.
Dois dos meus blogs preferidos publicaram nos últimos dias artigos sobre métodos Fuzzy (Difusos). Um para Forense Computacional (Fuzzy Hashing), outro para Correlação de Logs / SIEM (Fuzzy Logic) .
O assunto é muito interessante e meu objetivo neste post post é comentar as excelentes contribuições feitas pela dupla de blogueiros brazucas.
Post I - Alexandre Teixeira: Fuzzy Hashing na Prática
São apresentados os conceitos e comandos para utilização do utilitário de linha de comando ssdeep (do inventor do Fuzzy Hashing via context triggered piecewise hashes (CTPH) - Jesse Kornblum).
Em linhas gerais, o Fuzzy Hashing torna possível a um analista forense, por exemplo, comparar diferentes arquivos para descobrir o grau de semelhança entre eles, independente da computação de hash tradicional (MD5, SHA1).
Em linhas gerais, o Fuzzy Hashing torna possível a um analista forense, por exemplo, comparar diferentes arquivos para descobrir o grau de semelhança entre eles, independente da computação de hash tradicional (MD5, SHA1).
A técnica é útil também para análise de malwares (através de comparação de dump de processos em execução). Possivelmente códigos similares (diferentes versões) terão fuzzy hashings próximos.
Além disto, pode ser usado para encontrar vazamento de informação a partir de documentos conhecidos - que mesmo ao serem alterados manterão um fuzzy hashing próximo ao do arquivo original.
Meu comentário sobre outras implementações para Forense:
Post II - Luiz Zanardo: Fuzzy Logic aplicada a busca de padrões em Logs
Não vou lembrar quem me falou, mas já ouvi alguém dizer que a Inteligência artificial costuma ser sempre o 2o melhor jeito de resolver um problema.. o que não é nada mal se resolver mesmo =)
Neste post o Zanardo introduz o leitor a algums conceitos de Lógica Difusa e Teoria de Conjuntos, incluindo Regras de Associação Difusas, Quantificadores Relativos, Suporte e Confiança - entre outros.
O maior ganho em utilizar a Lógica Difusa (ou Fuzzy Logic) está em sua capacidade de gerar respostas com base em informações qualitativamente incompletas e imprecisas ou ambíguas - como um conjunto de logs de segurança, por exemplo =) Em resumo, a lógica difusa generaliza a distribuição binária entre impossível e possível em uma representação gradativa (de 0 a 1) de possibilidade.
A melhor referência de introdução ao ssunto Fuzzy Logic que encontrei online foram estas aulas (powerpoint+video) da Universidade de Konstanz, na Alemanha (em inglês).
Conclusão:
Em ambos os casos, o objetivo é aproveitar o poder de reconhecimento de padrões que os algorítimos Fuzzy fornecem para melhorar a qualidade de identificação de objetos em produtos na área de Segurança.
Do ponto de vista de desenvolvimento de software, existem algumas implementações interessantes, seja via binders como o pyssdeep do python (fuzzy hashing) e o módulo AI::Fuzzy do Perl (fuzzy logic).
Do ponto de vista da implementação da tecnologia em produtos existentes no mercado - no que tange a utilização de Fuzzy Logic para SIEM/ Correlação de Eventos e Logs, a ArcSight é a melhor referência.
Já para Forense Computacional, a AccessData o Fuzzy Hashing no FTK saiu na frente e a Guidance Software utilizando "Entropy" em seu produto CyberSecurity também já apresenta alternativa com o mesmo objetivo.
Além disto, pode ser usado para encontrar vazamento de informação a partir de documentos conhecidos - que mesmo ao serem alterados manterão um fuzzy hashing próximo ao do arquivo original.
Meu comentário sobre outras implementações para Forense:
Alexandre, desde Janeiro de 2009 o FTK da AccessData (nas versões 2 e 3) já possui a funcionalidade de Fuzzy Hashing (ou CTPH) , inclusive com gerenciamento via KFF (Known File Filter) no BD Oracle que acompanha a solução.
Existe uma boa referência da utiilização de Fuzzy Hashing para Forense Digital no site da AccessData: http://www.accessdata.com/downloads/media/Fuzzy_Hashing_for_Investigators.pdf
Post II - Luiz Zanardo: Fuzzy Logic aplicada a busca de padrões em Logs
Não vou lembrar quem me falou, mas já ouvi alguém dizer que a Inteligência artificial costuma ser sempre o 2o melhor jeito de resolver um problema.. o que não é nada mal se resolver mesmo =)
Neste post o Zanardo introduz o leitor a algums conceitos de Lógica Difusa e Teoria de Conjuntos, incluindo Regras de Associação Difusas, Quantificadores Relativos, Suporte e Confiança - entre outros.
O maior ganho em utilizar a Lógica Difusa (ou Fuzzy Logic) está em sua capacidade de gerar respostas com base em informações qualitativamente incompletas e imprecisas ou ambíguas - como um conjunto de logs de segurança, por exemplo =) Em resumo, a lógica difusa generaliza a distribuição binária entre impossível e possível em uma representação gradativa (de 0 a 1) de possibilidade.
A melhor referência de introdução ao ssunto Fuzzy Logic que encontrei online foram estas aulas (powerpoint+video) da Universidade de Konstanz, na Alemanha (em inglês).
Conclusão:
Em ambos os casos, o objetivo é aproveitar o poder de reconhecimento de padrões que os algorítimos Fuzzy fornecem para melhorar a qualidade de identificação de objetos em produtos na área de Segurança.
Do ponto de vista de desenvolvimento de software, existem algumas implementações interessantes, seja via binders como o pyssdeep do python (fuzzy hashing) e o módulo AI::Fuzzy do Perl (fuzzy logic).
Do ponto de vista da implementação da tecnologia em produtos existentes no mercado - no que tange a utilização de Fuzzy Logic para SIEM/ Correlação de Eventos e Logs, a ArcSight é a melhor referência.
Já para Forense Computacional, a AccessData o Fuzzy Hashing no FTK saiu na frente e a Guidance Software utilizando "Entropy" em seu produto CyberSecurity também já apresenta alternativa com o mesmo objetivo.
Gostei do ssdeep, nao conhecia.. e nao entendi nada do artigo sobre fuzzy logic hahhah
ReplyDeleteSeria bom se existisse alguma implementação open-source de correlação que utilize este módulo AI::Fuzzy do PERL que você citou! Nao achei nada.. Voce conhece?
ReplyDeleteMuito interessante. Ainda bem que não tinha o ssdeep quando eu fiz a minha monografia... :-)
ReplyDeleteFala, Sandro !
ReplyDeleteNa minha palestra no H2HC eu comentei do uso do ssdeep para filtragem por hash usando a base da NSRL (que ainda n está publicada para todo mundo, infelizmente). Eu tenho alguns artigos no meu blog tb comentando sobre o ssdeep e um port para jogar ele dentro de um SGBD para agilizar buscas.
Uma das coisas que está para sair da pesquisa e virar utilitário é usar fuzzy hash (e hash comum tb) em setores para ajudar no carving. Bacana, né ?
Abração !