DISEÑO
Justificación de las herramientas elegidas:
Una vez revisadas las herramientas software disponibles para el análisis forense, se han tomado las siguientes decisiones de diseño:
Como base de la aplicación, se utilizará el lenguaje de programación Python.
Para la interfaz gráfica se utilizará el lenguaje wxPython, que forma parte de wxWidgets.
Para realizar la interfaz gráfica se utilizará la aplicación wxGlade.
Para la adquisición de imágenes y su verificación se usará la aplicación “dcfldd”.
Para montar la imagen se utilizará el comando “mount” de UNIX. Algunas aplicaciones funcionarán sobre la imagen y otras sobre el sistema de ficheros montado en solo lectura.
Para la gestión de la imagen y como centro de la aplicación se utilizara “The Sleuth Kit” que nos permitirá hacer lo siguiente:
Ver las propiedades del fichero imagen.
Ver las propiedades del sistema de ficheros que contiene.
Ver el contenido del sistema de ficheros en ASCII y Hexadecimal.
Ver los ficheros borrados.
Ver el contenido de los ficheros, incluyendo el slack space.
Ver los metadatos de los ficheros.
Buscar ficheros según su nombre y según sus sellos de tiempo (MAC Times)
Se usará además el emulador de unidades virtuales QEMU para inicializar la imagen extraída en caso de que esta sea autoarrancable.
Además la aplicación irá acompañada de software que haga posible visualizar el contenido de los ficheros y/o abrirlos según su formato. Estos son:
OpenOffice: Para abrir la mayoría de los documentos.
Evince: Para abrir los documentos PDF y PS.
Gthumb: Para abrir las imágenes.
File-Roller: Para abrir los ficheros comprimidos.
Xmms: Para abrir los archivos de música
VLC: Para abrir los archivos de video
XChm: Para abrir los ficheros con extensión Chm
Scite: Editor de textos para programadoresusado para abrir el resto de ficheros.
Diagrama de Clases
Obtener
ObtenerImagen(origen,destino)
+
+
ComprobarOrigen
(
origen
)
Gestor
-
app
rutaDatos
-
rutaImagen
-
Finalizar()
+
Log(tipo,*args)
+
SistFich
tamBloque
-
-
listaBorrados
datos
-
+
VerFichero(iNodo,modo)
+
VerFicheroCon(nombre,iNodo)
VerDirectorio(iNodo=-1)
+
RecuperarFichero(iNodo,ruta)
+
RecuperarDirectorio(iNodo,ruta)
+
+
Propiedades(iNodo)
+
BusquedaNombre(nombre)
+
BusquedaMAC(fecha1,fecha2)
+
CrearDirectorio(ruta)
Analizar
Emulación(opciones)
+
NuevaNota()
+
+
Ayuda ()
+
VerResumen(tipo)
+
VerNotas()
Log
ext(rutaDatos,msg)
+
res_ext
+
(
rutaDatos,tipo,args
)
rutaDatos
rutaImagen
rutaDatos
tamBloque
rutaImagen
rutaDatos
Error
+
Ruta(tipo)
Disp(tipo)
+
FormtatoImagen()
+
DispositivoIncorrecto()
+
RutaDestinoVacia()
+
+
TamanioDisp()
Obtener(tipo)
+
+
InodoErroneo()
aplicacion
wxPySympleApp
José Arquillo Cruz215