Monday, April 18, 2011

Fuzzy Hash sem mistérios

Já falei sobre fuzzy hash a algum tempo atrás, volto agora para detalhar melhor como este recurso funciona e o que não funciona.

Primeiro, vamos ao conceito de HASH: basicamente, é uma "impressão digital" do arquivo.


Observe que, por causa de um ponto ( . ) no final do segundo documento, a Função Hash gera um valor de MD5 completamente diferente do primeiro.

Já o fuzzy hash consegue "tratar" estas pequenas alterações nos arquivos. Basicamente, o que o algoritmo do fuzzy hash faz é "quebrar" o arquivo em pedaços e então analisar estes pedaços separadamente:


Desta forma, o fuzzy hash nos indica que temos um arquivo que tem 80% de similaridade com o arquivo original.

Claro que este é um exemplo didático e é falho: Se o ponto estivesse no começo da segunda sentença, pelo meu exemplo, eu teria um deslocamento de todo o bloco e não haveriam matches, mas o fuzzy hash consegue tratar isso muito bem. Novamente: este é um exemplo DIDÁTICO.

Para maiores informações, recomendo muito a leitura do documento da AccessData sobre o tema, disponível em: http://accessdata.com/downloads/media/Fuzzy_Hashing_for_Investigators.pdf

Também recomendo a leitura do The Digital Standard, que tem um post muito bom sobre o tema.

2 comments:

Sandro Süffert said...

Muito bacana o post Luizão - escrevi tanto no seu comentário que virou um atualização de post no meu blog: http://sseguranca.blogspot.com/2009/11/fuzzy-logic-e-fuzzy-hashing.html

=)

Luiz Rabelo said...

Sandrão! Sempre bom sua participação por aqui! O documento do Tom Davis é muito bom!

[ ]'s

Post a Comment