
Um conjunto de ferramentas forenses de imagem digital de código aberto
Um conjunto de ferramentas forenses de imagem digital open source
"Análise Forense de Imagem é a aplicação da ciência da imagem e expertise no domínio para interpretar o conteúdo de uma imagem e/ou a própria imagem em questões legais. As principais subdisciplinas da Análise Forense de Imagem com aplicações na aplicação da lei incluem: Fotogrametria, Comparação Fotográfica, Análise de Conteúdo e Autenticação de Imagem." (Scientific Working Group on Imaging Technologies)
Sherloq é um projeto de pesquisa pessoal sobre implementação de um ambiente totalmente integrado para forense de imagem digital. Não é destinado como uma ferramenta automática que decide se uma imagem é falsificada ou não (essa ferramenta provavelmente nunca existirá...), mas como um companheiro na experimentação de vários algoritmos encontrados em artigos de pesquisa e workshops recentes.
Embora muitas soluções comerciais tenham preços de varejo altos e muitas vezes reservadas apenas para agências de aplicação da lei e governamentais, este conjunto de ferramentas visa ser um framework extensível e um ponto de partida para qualquer pessoa interessada em fazer experimentos nesta aplicação particular de processamento digital de sinais.
Acredito firmemente que segurança por obscuridade é a maneira errada de oferecer qualquer tipo de serviço forense (ou seja, "Usando este software proprietário, garanto que esta foto é pura... e você tem que confiar em mim!"). Seguindo a filosofia open-source, todos deveriam ser capazes de experimentar várias técnicas por conta própria, adquirir conhecimento e compartilhá-lo com a comunidade... ainda melhor se contribuírem com melhorias de código! :)
A primeira versão foi escrita em 2015 usando C++11 para construir um utilitário de linha de comando com muitas opções, mas logo se tornou muito pesado e pouco interativo. Essa versão podia ser compilada com CMake após instalar as bibliotecas OpenCV, Boost e AlgLib. Esta primeira prova de conceito oferecia cerca de 80% das funcionalidades planejadas (veja abaixo a lista completa).
Embora também incluísse novos algoritmos, a versão de 2017 adicionou principalmente uma GUI multi-janela baseada em Qt para fornecer uma melhor experiência do usuário. Múltiplas análises podiam ser exibidas na tela e um visualizador rápido de zoom/rolagem foi implementado para facilitar a navegação na imagem. Esse projeto podia ser compilado com Qt Creator com Qt 5 e OpenCV 3 e cobria cerca de 70% das funcionalidades planejadas.
Avançando para 2020, quando decidi portar tudo para Python (PySide2 + Matplotlib + OpenCV) para facilitar o desenvolvimento e a implantação. Embora esta iteração esteja apenas começando e eu ainda tenha que portar todo o código anterior para a nova plataforma, acredito que esta será a forma final do projeto (desde que alguém não se voluntarie para desenvolver uma bela aplicação web!).
Estou feliz em compartilhar meu código e entrar em contato com qualquer pessoa interessada em melhorá-lo ou testá-lo, mas lembre-se de que este repositório não se destina a distribuir um produto final, meu objetivo é apenas acompanhar publicamente o desenvolvimento de uma ferramenta educacional despretensiosa, então espere bugs, código não polido e funcionalidades faltando! ;)
Esta lista contém as funções que o kit de ferramentas (esperançosamente) fornecerá quando o estágio beta for alcançado (NOTA: funções exibidas em itálico no programa ainda não foram implementadas!).