
Une suite d'outils open-source pour l'investigation numérique d'images.
Une boîte à outils open source d'analyse forensique d'images numériques
"L'analyse d'image forensique est l'application de la science de l'image et de l'expertise du domaine pour interpréter le contenu d'une image et/ou l'image elle-même dans des affaires juridiques. Les principales sous-disciplines de l'analyse d'image forensique avec des applications pour les forces de l'ordre comprennent : la photogrammétrie, la comparaison photographique, l'analyse de contenu et l'authentification d'image." (Scientific Working Group on Imaging Technologies)
Sherloq est un projet de recherche personnel sur l'implémentation d'un environnement entièrement intégré pour l'analyse forensique d'images numériques. Il n'est pas conçu comme un outil automatique qui décide si une image est falsifiée ou non (cet outil n'existera probablement jamais...), mais comme un compagnon pour expérimenter divers algorithmes trouvés dans les articles de recherche et ateliers les plus récents.
Alors que de nombreuses solutions commerciales ont des prix de vente élevés et sont souvent réservées uniquement aux forces de l'ordre et aux agences gouvernementales, cette boîte à outils vise à être à la fois un cadre extensible et un point de départ pour toute personne intéressée par la réalisation d'expériences dans cette application particulière du traitement numérique du signal.
Je crois fermement que la sécurité par l'obscurité est la mauvaise façon d'offrir un quelconque service forensique (c'est-à-dire "En utilisant ce logiciel propriétaire, je vous garantis que cette photo est vierge... et vous devez me faire confiance !"). Suivant la philosophie open source, tout le monde devrait pouvoir essayer diverses techniques par lui-même, acquérir des connaissances et les partager avec la communauté... encore mieux s'ils contribuent avec des améliorations de code ! :)
La première version a été écrite en 2015 en C++11 pour construire un utilitaire en ligne de commande avec de nombreuses options, mais elle s'est vite avérée trop lourde et peu interactive. Cette version pouvait être compilée avec CMake après avoir installé les bibliothèques OpenCV, Boost et AlgLib. Ce premier prototype offrait environ 80 % des fonctionnalités prévues (voir ci-dessous pour la liste complète).
Tout en incluant également des algorithmes novateurs, la version 2017 a principalement ajouté une interface graphique multi-fenêtres basée sur Qt pour offrir une meilleure expérience utilisateur. Plusieurs analyses pouvaient être affichées à l'écran et un visionneur rapide avec zoom/défilement a été implémenté pour une navigation plus facile dans l'image. Ce projet pouvait être compilé avec Qt Creator avec Qt 5 et OpenCV 3 et couvrait environ 70 % des fonctionnalités prévues.
Avance rapide jusqu'en 2020, lorsque j'ai décidé de tout porter en Python (PySide2 + Matplotlib + OpenCV) pour un développement et un déploiement plus faciles. Bien que cette itération ne fasse que commencer et que je n'aie pas encore porté tout le code précédent sur la nouvelle plateforme, je pense que ce sera la forme "finale" du projet (tant que quelqu'un ne se porte pas volontaire pour développer une belle application web !).
Je suis heureux de partager mon code et d'entrer en contact avec toute personne intéressée pour l'améliorer ou le tester, mais veuillez garder à l'esprit que ce dépôt n'est pas destiné à distribuer un produit final, mon objectif est simplement de suivre publiquement le développement d'un outil pédagogique sans prétention, alors attendez-vous à des bugs, du code non poli et des fonctionnalités manquantes ! ;)
Cette liste contient les fonctions que la boîte à outils fournira (espérons-le) une fois le stade bêta atteint (REMARQUE : les fonctions affichées en italique dans le programme ne sont pas encore implémentées !).