
Ein Open-Source-Toolset für die digitale Bildforensik
Eine Open-Source-Werkzeugsammlung für die forensische Bildanalyse
"Forensische Bildanalyse ist die Anwendung von Bildwissenschaft und Fachwissen zur Interpretation des Inhalts eines Bildes und/oder des Bildes selbst in rechtlichen Angelegenheiten. Zu den wichtigsten Unterdisziplinen der forensischen Bildanalyse mit Anwendungen für Strafverfolgungsbehörden gehören: Photogrammetrie, fotografischer Vergleich, Inhaltsanalyse und Bildauthentifizierung." (Scientific Working Group on Imaging Technologies)
Sherloq ist ein persönliches Forschungsprojekt zur Implementierung einer vollständig integrierten Umgebung für die digitale Bildforensik. Es ist nicht als automatisches Werkzeug gedacht, das entscheidet, ob ein Bild gefälscht ist oder nicht (dieses Werkzeug wird es wahrscheinlich nie geben...), sondern als Begleiter zum Experimentieren mit verschiedenen Algorithmen aus den neuesten Forschungspapieren und Workshops.
Während viele kommerzielle Lösungen hohe Verkaufspreise haben und oft nur Strafverfolgungsbehörden und Regierungsstellen vorbehalten sind, zielt diese Werkzeugsammlung darauf ab, sowohl ein erweiterbares Framework als auch ein Ausgangspunkt für alle zu sein, die sich für Experimente in dieser besonderen Anwendung der digitalen Signalverarbeitung interessieren.
Ich bin fest davon überzeugt, dass Security-by-Obscurity der falsche Weg ist, um irgendeine Art von forensischem Dienst anzubieten (z.B. "Mit dieser proprietären Software garantiere ich Ihnen, dass dieses Foto makellos ist... und Sie müssen mir vertrauen!"). Der Open-Source-Philosophie folgend, sollte jeder in der Lage sein, verschiedene Techniken selbst auszuprobieren, Wissen zu erlangen und es mit der Gemeinschaft zu teilen... noch besser, wenn sie mit Code-Verbesserungen beitragen! :)
Die erste Version wurde 2015 in C++11 geschrieben, um ein Kommandozeilenwerkzeug mit vielen Optionen zu bauen, aber bald erwies es sich als zu umständlich und nicht sehr interaktiv. Diese Version konnte mit CMake kompiliert werden, nachdem die Bibliotheken OpenCV, Boost und AlgLib installiert wurden. Dieser erste Proof of Concept bot etwa 80% der geplanten Funktionen (siehe unten für die vollständige Liste).
Die Version 2017 enthielt zwar auch neuartige Algorithmen, fügte aber hauptsächlich eine Qt-basierte Multi-Fenster-GUI hinzu, um eine bessere Benutzererfahrung zu bieten. Mehrere Analysen konnten auf dem Bildschirm angezeigt werden, und ein schneller Zoom/Scroll-Viewer wurde für eine einfachere Bildnavigation implementiert. Dieses Projekt konnte mit Qt Creator mit Qt 5 und OpenCV 3 kompiliert werden und deckte etwa 70% der geplanten Funktionen ab.
Schneller Vorlauf bis 2020, als ich mich entschied, alles nach Python (PySide2 + Matplotlib + OpenCV) zu portieren, um die Entwicklung und Bereitstellung zu erleichtern. Obwohl diese Iteration gerade erst begonnen hat und ich noch den gesamten vorherigen Code auf die neue Plattform portieren muss, denke ich, dass dies die endgültige "Form" des Projekts sein wird (solange sich nicht jemand freiwillig meldet, um eine schöne Webanwendung zu entwickeln!).
Ich freue mich, meinen Code zu teilen und mit jedem in Kontakt zu treten, der daran interessiert ist, ihn zu verbessern oder zu testen, aber bitte bedenken Sie, dass dieses Repository nicht dazu gedacht ist, ein endgültiges Produkt zu verteilen. Mein Ziel ist es lediglich, die Entwicklung eines bescheidenen Bildungswerkzeugs öffentlich zu verfolgen, also erwarten Sie Fehler, unpolierte Code und fehlende Funktionen! ;)
Diese Liste enthält die Funktionen, die das Toolkit (hoffentlich) bereitstellen wird, sobald die Beta-Phase erreicht ist (HINWEIS: im Programm kursiv dargestellte Funktionen sind noch nicht implementiert!).