
Herramienta de carving e indexación de archivos para la informática forense digital, que recupera archivos de imágenes de disco basándose en la coincidencia de patrones de cabecera/pie, expresiones regulares, multihilo y procesamiento opcional acelerado por GPU.
Desde el 27/6/2013, Scalpel se ha liberado bajo la Licencia Apache 2.0 y el código fuente está disponible en el repositorio de GitHub de The Sleuth Kit.
No se mantiene activamente. El equipo de Autopsy comenzó a trabajar en él para integrarlo estrechamente mediante enlaces Java/JNI, pero se encontró con varias fugas de memoria y el esfuerzo se abandonó.
No se están publicando versiones oficiales. Puedes enviar pull requests, pero puede que tarden un tiempo en revisarse.
Scalpel es una aplicación de file carving e indexación que se ejecuta en Linux y Windows. La primera versión de Scalpel, publicada en 2005, se basaba en Foremost 0.69. Ha habido varias versiones internas desde la última versión pública, la 1.60, principalmente para apoyar nuestra propia investigación. La versión pública más reciente, la v2.0, tiene una serie de funciones adicionales, entre ellas:
o tamaños mínimos de carving.
o multithreading para una ejecución más rápida en CPUs multinúcleo.
o E/S asíncrona que permite que las operaciones de disco se solapen con la coincidencia de patrones: esto se traduce en una mejora sustancial del rendimiento.
o soporte de expresiones regulares para cabeceras/pies de página.
o coincidencia de cabeceras/pies de página incrustados para procesar mejor los tipos de archivo estructurados que pueden contener archivos incrustados.
o para usuarios avanzados, soporte de ejecución masivamente multihilo en unidades de procesamiento gráfico (GPUs). Esta función está disponible solo en Linux y requiere la instalación del NVIDIA CUDA SDK, la modificación de scalpel.h para habilitar el modo multihilo de GPU y la compilación con la cadena de herramientas de CUDA. Nuestra implementación también requiere una GPU NVIDIA con compute capability >= 1.2, por lo que las tarjetas antiguas compatibles con CUDA probablemente no funcionen. La NVIDIA GTX 260 es relativamente económica y potente y tiene la capacidad de cómputo apropiada. La versión de Scalpel mejorada con GPU puede realizar carving de vista previa a velocidades que superan el ancho de banda de disco de la mayoría de los servidores de archivos, por lo que para trabajos grandes puede merecer la pena el esfuerzo adicional necesario para usar esta función. Ten en cuenta que las cabeceras y pies de página basados en expresiones regulares NO son compatibles actualmente cuando se utiliza la aceleración por GPU. Puede que lo abordemos en una futura versión.
Scalpel realiza operaciones de file carving basándose en patrones que describen «tipos» concretos de archivos o fragmentos de datos. Estos patrones pueden basarse en cadenas binarias fijas o en expresiones regulares. En el archivo de configuración incluido en la distribución, "scalpel.conf", se incluyen varios patrones predeterminados. Los comentarios del archivo de configuración explican el formato de los patrones de file carving compatibles con Scalpel.
Nota importante: El archivo de configuración predeterminado, "scalpel.conf", tiene todos los patrones de archivo compatibles comentados; debes editar este archivo antes de ejecutar Scalpel para activar algunos patrones. Resiste la tentación de simplemente descomentar todos los patrones de file carving; esto hace perder tiempo y generará una gran cantidad de falsos positivos. En su lugar, descomenta solo los patrones de los tipos de archivo que necesites.
Las opciones de Scalpel se describen en la página man de Scalpel, "scalpel.1". También puedes ejecutar Scalpel sin argumentos de línea de comandos para ver una lista de opciones.
NOTA: Es necesaria la compilación en plataformas Unix y en Mac OS X. Para plataformas Windows, se proporciona un scalpel.exe precompilado. Si deseas recompilar Scalpel en Windows, necesitarás un entorno mingw (gcc). Scalpel no compila con los compiladores de C de Visual Studio. Ten en cuenta que nuestro entorno de compilación para Windows es actualmente de 32 bits; no hemos probado la versión de 64 bits de mingw, pero lo abordaremos en el futuro.
INSTRUCCIONES DE COMPILACIÓN EN PLATAFORMAS SOPORTADAS:
Linux/Mac OS X:
% ./bootstrap
% ./configure
% make
Windows (mingw): cd src mingw32-make -f Makefile.win
y disfruta. Si quieres instalar el binario y la página man en un lugar más permanente, simplemente copia "scalpel" (o "scalpel.exe") y "scalpel.1" a las ubicaciones apropiadas, por ejemplo, en Linux, "/usr/local/bin" y "/usr/local/man/man1", respectivamente. En Windows, también tendrás que copiar las dlls de las bibliotecas de expresiones regulares pthreads y tre en el mismo directorio donde se encuentre "scalpel.exe".
OTRAS PLATAFORMAS SOPORTADAS
Actualmente no damos soporte a Scalpel en variantes de Unix distintas de Linux. Adelante, prueba un ./configure y make y mira qué pasa, pero asegúrate de hacer pruebas exhaustivas antes de usar Scalpel en entornos de producción. Si te interesa dar soporte a una versión de Scalpel en plataformas alternativas, ponte en contacto con nosotros. Si te interesa dar soporte a una versión de Scalpel mejorada con GPU en Windows, también nos gustaría saber de ti.
LIMITACIONES:
Actualmente no se admite el file carving de archivos de dispositivos físicos y lógicos de Windows (p. ej., \.\physicaldrive0 o \.\c:), porque requiere que reescribamos algunas partes de Scalpel para usar funciones de E/S de archivos de Windows en lugar de las llamadas Unix estándar. Esto podría ser compatible en una futura versión.
Las funciones de mapa de bloques están actualmente deshabilitadas, ya que estamos reescribiendo este subsistema para mejorar la interoperabilidad con Sleuthkit. Una versión mejorada de las funciones de mapa de bloques volverá en una próxima versión. La opción -s ("skip") de la línea de comandos se ha eliminado y será reemplazada por una funcionalidad más robusta en la próxima versión principal.
DEPENDENCIAS:
Scalpel utiliza la biblioteca de hilos POSIX. En Win32, Scalpel se distribuye con Pthreads-win32, la biblioteca de hilos POSIX para Win32, que es Copyright(C) 1998 de John E. Bossom y Copyright(C) 1999,2005 de los colaboradores de Pthreads-win32. Esta biblioteca está licenciada bajo la LGPL.
Scalpel para Win32 utiliza la biblioteca de expresiones regulares tre y se distribuye con tre-0.7.5, que está licenciada bajo la LGPL.
Saludos,
--Golden and Vico.