
Datei-Carving- und Indexierungswerkzeug für die digitale Forensik zur Wiederherstellung von Dateien aus Datenträgerabbildern auf Basis von Header/Footer-Musterabgleich, regulären Ausdrücken, Multithreading und optional GPU-beschleunigter Verarbeitung.
Stand: 27.06.2013 wurde Scalpel unter der Apache-2.0-Lizenz veröffentlicht, und der Quellcode ist im GitHub-Repository von The Sleuth Kit verfügbar.
Es wird nicht aktiv gepflegt. Das Autopsy-Team begann mit der Arbeit daran, um es über Java/JNI-Bindungen eng zu integrieren, stieß jedoch auf mehrere Speicherlecks, woraufhin die Bemühungen aufgegeben wurden.
Es werden keine offiziellen Releases erstellt. Du kannst Pull-Requests einreichen, aber es kann eine Weile dauern, bis sie überprüft werden.
Scalpel ist eine Anwendung zum Datei-Carving und zur Indizierung, die unter Linux und Windows läuft. Die erste Version von Scalpel, die 2005 veröffentlicht wurde, basierte auf Foremost 0.69. Seit der letzten öffentlichen Version 1.60 gab es eine Reihe interner Releases, hauptsächlich zur Unterstützung unserer eigenen Forschung. Die neueste öffentliche Version v2.0 bietet eine Reihe zusätzlicher Funktionen, darunter:
o minimale Carve-Größen.
o Multithreading für schnellere Ausführung auf Mehrkern-CPUs.
o asynchrone E/A, die es ermöglicht, dass Datenträgeroperationen mit dem Musterabgleich überlappen – dies führt zu einer erheblichen Leistungsverbesserung.
o Unterstützung regulärer Ausdrücke für Header/Footer.
o eingebetteter Header/Footer-Abgleich für eine bessere Verarbeitung strukturierter Dateitypen, die eingebettete Dateien enthalten können.
o für fortgeschrittene Benutzer Unterstützung für massiv parallelisierte Ausführung auf Grafikprozessoren (GPUs). Diese Funktion ist nur unter Linux verfügbar und erfordert die Installation des NVIDIA CUDA SDK, die Änderung von scalpel.h zur Aktivierung des GPU-Threading-Modus sowie die Kompilierung mit der CUDA-Toolchain. Unsere Implementierung erfordert außerdem eine NVIDIA-GPU mit Rechenleistung (Compute Capability) >= 1.2, sodass ältere CUDA-fähige Karten wahrscheinlich nicht funktionieren. Die NVIDIA GTX 260 ist relativ preisgünstig und leistungsstark und verfügt über die entsprechende Rechenleistung. Die GPU-unterstützte Version von Scalpel kann Vorschau-Carving mit Raten durchführen, die die Datenträgerbandbreite der meisten Dateiserver übertreffen. Bei großen Aufträgen kann sich der zusätzliche Aufwand für diese Funktion also lohnen. Beachte, dass Header und Footer auf Basis regulärer Ausdrücke bei Verwendung der GPU-Beschleunigung derzeit NICHT unterstützt werden! Möglicherweise werden wir dies in einem zukünftigen Release angehen.
Scalpel führt Datei-Carving-Operationen auf der Grundlage von Mustern durch, die bestimmte Datei- oder Datenfragment-„Typen“ beschreiben. Diese Muster können entweder auf festen binären Zeichenfolgen oder auf regulären Ausdrücken basieren. Eine Reihe von Standardmustern ist in der im Distributionspaket enthaltenen Konfigurationsdatei „scalpel.conf“ enthalten. Die Kommentare in der Konfigurationsdatei erklären das Format der von Scalpel unterstützten Datei-Carving-Muster.
Wichtiger Hinweis: In der Standardkonfigurationsdatei „scalpel.conf“ sind alle unterstützten Dateimuster auskommentiert – du musst diese Datei bearbeiten, bevor du Scalpel ausführst, um einige Muster zu aktivieren. Widerstehe der Versuchung, einfach alle Datei-Carving-Muster zu aktivieren; das verschwendet Zeit und erzeugt eine große Anzahl falscher Positivmeldungen. Aktiviere stattdessen nur die Muster für die Dateitypen, die du benötigst.
Die Scalpel-Optionen werden auf der Scalpel-Manpage „scalpel.1“ beschrieben. Du kannst Scalpel auch ohne Befehlszeilenargumente ausführen, um eine Liste der Optionen zu sehen.
HINWEIS: Eine Kompilierung ist auf Unix-Plattformen und unter Mac OS X erforderlich. Für Windows-Plattformen wird eine vorkompilierte scalpel.exe bereitgestellt. Wenn du Scalpel unter Windows neu kompilieren möchtest, benötigst du eine mingw-Umgebung (gcc). Scalpel lässt sich nicht mit den Visual-Studio-C-Compilern kompilieren. Beachte, dass unsere Kompilierungsumgebung für Windows derzeit 32-Bit ist; wir haben sie nicht mit der 64-Bit-Version von mingw getestet, werden uns damit aber in der Zukunft befassen.
KOMPILIERANWEISUNGEN AUF UNTERSTÜTZTEN PLATTFORMEN:
Linux/Mac OS X:
% ./bootstrap
% ./configure
% make
Windows (mingw): cd src mingw32-make -f Makefile.win
und viel Spaß. Wenn du die Binärdatei und die Manpage an einem dauerhafteren Ort installieren möchtest, kopiere einfach „scalpel“ (oder „scalpel.exe“) und „scalpel.1“ an geeignete Orte, z. B. unter Linux nach „/usr/local/bin“ bzw. „/usr/local/man/man1“. Unter Windows musst du außerdem die DLLs der pthreads- und tre-Reguläre-Ausdrücke-Bibliothek in dasselbe Verzeichnis wie „scalpel.exe“ kopieren.
ANDERE UNTERSTÜTZTE PLATTFORMEN
Wir unterstützen Scalpel derzeit nicht auf anderen Unix-Varianten als Linux. Versuch ruhig ein ./configure und make und schau, was passiert, aber führe unbedingt gründliche Tests durch, bevor du Scalpel in der Produktion einsetzt. Wenn du daran interessiert bist, eine Version von Scalpel auf einer alternativen Plattform zu unterstützen, kontaktiere uns bitte. Wenn du daran interessiert bist, eine GPU-unterstützte Version von Scalpel unter Windows zu unterstützen, freuen wir uns ebenfalls über eine Nachricht von dir.
EINSCHRÄNKUNGEN:
Das Carving von Windows-Physischen- und Logischen-Gerätedateien (z. B. \.\physicaldrive0 oder \.\c:) wird derzeit nicht unterstützt, da wir dafür einige Teile von Scalpel neu schreiben müssten, um Windows-Datei-E/A-Funktionen anstelle der Standard-Unix-Aufrufe zu verwenden. Dies könnte in einem zukünftigen Release unterstützt werden.
Die Block-Map-Funktionen sind derzeit deaktiviert, da wir dieses Subsystem neu schreiben, um die Interoperabilität mit dem Sleuthkit zu verbessern. Eine verbesserte Version der Block-Map-Funktionen wird in einem späteren Release zurückkehren. Die Befehlszeilenoption -s („skip“) wurde entfernt und wird in der nächsten Hauptversion durch eine robustere Einrichtung ersetzt.
ABHÄNGIGKEITEN:
Scalpel verwendet die POSIX-Threads-Bibliothek. Unter Win32 wird Scalpel mit Pthreads-win32 – POSIX-Threads-Bibliothek für Win32 verteilt, die Copyright(C) 1998 John E. Bossom und Copyright(C) 1999,2005 von den Pthreads-win32-Mitwirkenden ist. Diese Bibliothek ist unter der LGPL lizenziert.
Scalpel für Win32 verwendet die tre-Reguläre-Ausdrücke-Bibliothek und wird mit tre-0.7.5 verteilt, die unter der LGPL lizenziert ist.
Viele Grüße,
--Golden und Vico.