
Strumento di file carving e indicizzazione per l'informatica forense, che recupera file da immagini disco basandosi su corrispondenza di pattern header/footer, espressioni regolari, multithreading e opzionale elaborazione accelerata tramite GPU.
A partire dal 27/06/2013 Scalpel è stato rilasciato sotto licenza Apache 2.0 e il codice sorgente è disponibile nel repository GitHub di The Sleuth Kit.
Non è mantenuto attivamente. Il team di Autopsy aveva iniziato a lavorarci per integrarlo strettamente tramite binding Java/JNI, ma si è imbattuto in diverse perdite di memoria e lo sforzo è stato abbandonato.
Non vengono effettuate release ufficiali. Puoi inviare pull request, ma potrebbero richiedere del tempo prima di essere revisionate.
Scalpel è un'applicazione di file carving e indicizzazione che gira su Linux e Windows. La prima versione di Scalpel, rilasciata nel 2005, era basata su Foremost 0.69. Ci sono state numerose release interne dall'ultima release pubblica, la 1.60, principalmente per supportare la nostra ricerca. La più recente release pubblica, la v2.0, ha una serie di funzionalità aggiuntive, tra cui:
o dimensioni minime di carving.
o multithreading per un'esecuzione più rapida su CPU multicore.
o I/O asincrono che consente alle operazioni su disco di sovrapporsi alla corrispondenza dei pattern: questo si traduce in un sostanziale miglioramento delle prestazioni.
o supporto alle espressioni regolari per header/footer.
o corrispondenza di header/footer incorporati per una migliore elaborazione di tipi di file strutturati che possono contenere file incorporati.
o per utenti avanzati, supporto per l'esecuzione massicciamente threaded su Graphics Processing Unit (GPU). Questa funzionalità è disponibile solo su Linux e richiede l'installazione dell'NVIDIA CUDA SDK, la modifica di scalpel.h per abilitare la modalità di threading GPU e la compilazione con la toolchain CUDA. La nostra implementazione richiede anche una GPU NVIDIA con compute capability >= 1.2, quindi le schede più vecchie compatibili con CUDA probabilmente non funzioneranno. La NVIDIA GTX 260 è relativamente economica e potente e ha la compute capability appropriata. La versione con accelerazione GPU di Scalpel è in grado di eseguire preview carving a velocità che superano la banda del disco della maggior parte dei file server, quindi per lavori di grandi dimensioni potrebbe valere la pena dello sforzo extra richiesto per usare questa funzionalità. Nota che header e footer basati su espressioni regolari NON sono attualmente supportati quando è in uso l'accelerazione GPU! Potremmo affrontare questo problema in una release futura.
Scalpel esegue operazioni di file carving basate su pattern che descrivono particolari "tipi" di file o frammenti di dati. Questi pattern possono essere basati su stringhe binarie fisse o su espressioni regolari. Nella distribuzione è incluso un file di configurazione, "scalpel.conf", contenente una serie di pattern predefiniti. I commenti nel file di configurazione spiegano il formato dei pattern di file carving supportati da Scalpel.
Nota importante: il file di configurazione predefinito, "scalpel.conf", ha tutti i pattern di file supportati commentati: devi modificare questo file prima di eseguire Scalpel per attivare alcuni pattern. Resisti all'impulso di decommentare semplicemente tutti i pattern di file carving; questo fa perdere tempo e genererà un numero enorme di falsi positivi. Invece, decommenta solo i pattern per i tipi di file di cui hai bisogno.
Le opzioni di Scalpel sono descritte nella pagina man di Scalpel, "scalpel.1". Puoi anche eseguire Scalpel senza alcun argomento da riga di comando per vedere un elenco di opzioni.
NOTA: la compilazione è necessaria sulle piattaforme Unix e su Mac OS X. Per le piattaforme Windows viene fornito un scalpel.exe precompilato. Se desideri ricompilare Scalpel su Windows, avrai bisogno di un ambiente mingw (gcc). Scalpel non compilerà utilizzando i compilatori C di Visual Studio. Nota che il nostro ambiente di compilazione per Windows è attualmente a 32 bit; non abbiamo testato la versione a 64 bit di mingw, ma affronteremo questo problema in futuro.
ISTRUZIONI DI COMPILAZIONE SULLE PIATTAFORME SUPPORTATE:
Linux/Mac OS X:
% ./bootstrap
% ./configure
% make
Windows (mingw): cd src mingw32-make -f Makefile.win
e buon divertimento. Se vuoi installare il binario e la pagina man in una posizione più permanente, copia semplicemente "scalpel" (o "scalpel.exe") e "scalpel.1" nelle posizioni appropriate, ad esempio su Linux, rispettivamente in "/usr/local/bin" e "/usr/local/man/man1". Su Windows, dovrai anche copiare le dll della libreria pthreads e della libreria di espressioni regolari tre nella stessa directory di "scalpel.exe".
ALTRE PIATTAFORME SUPPORTATE
Al momento non supportiamo Scalpel su varianti Unix diverse da Linux. Prova pure a eseguire ./configure e make e vedi cosa succede, ma assicurati di fare test approfonditi prima di usare Scalpel in produzione. Se sei interessato a supportare una versione di Scalpel su piattaforme alternative, contattaci. Se sei interessato a supportare una versione di Scalpel con accelerazione GPU su Windows, siamo anche interessati a sentire la tua opinione.
LIMITAZIONI:
Il carving di file di dispositivo fisici e logici di Windows (ad esempio, \.\physicaldrive0 o \.\c:) non è attualmente supportato perché richiede di riscrivere alcune parti di Scalpel per utilizzare le funzioni di I/O su file di Windows invece delle chiamate Unix standard. Potrebbe essere supportato in una release futura.
Le funzionalità di block map sono attualmente disabilitate, poiché stiamo riscrivendo questo sottosistema per migliorare l'interoperabilità con Sleuthkit. Una versione migliorata delle funzionalità di block map tornerà in una release successiva. L'opzione della riga di comando -s ("skip") è stata rimossa e sarà sostituita da una funzionalità più robusta nella prossima release principale.
DIPENDENZE:
Scalpel usa la libreria POSIX threads. Su Win32, Scalpel è distribuito con Pthreads-win32 - POSIX Threads Library for Win32, che è Copyright(C) 1998 John E. Bossom e Copyright(C) 1999,2005 dai contributori di Pthreads-win32. Questa libreria è concessa in licenza sotto LGPL.
Scalpel per Win32 usa la libreria di espressioni regolari tre ed è distribuito con tre-0.7.5, che è concessa in licenza sotto LGPL.
Saluti,
--Golden e Vico.