MRU. ¿Qué son?
Los archivos MRU, por sus siglas en inglés Most Recently Used [files]
son de gran ayuda en un análisis forense a la hora de averiguar cuáles
fueron los últimos ficheros que se manipularon en un espacio de tiempo
determinado. Si bien es verdad que para sistemas Windows hay, desde hace
muchísimo tiempo, innumerables herramientas que facilitan la labor de
extracción, parseo y presentación de este tipo de información (en su
mayoría del registro de Windows), no hay tantas para sistemas Linux de
escritorio.
Aunque no es un escenario frecuente, puede darse el caso de que el
perito/analista
forense se tenga que enfrentar a una máquina Linux con
KDE, Gnome o cualquiera de los múltiples escritorios disponibles. Por
ello decidí empezar a escribir
MRUTools, y al hacerlo descubrí algunos hechos que no saltan inmediatamente a la vista.
- No hay una forma ‘estándar’ de
almacenar esta información. Cada aplicación que posee esta
funcionalidad, e incluso cada escritorio, lo hace de una forma distinta,
si bien algunas aplicaciones integradas, o de uso mayoritario en un
escritorio particular se atañen a ciertas ‘reglas’.
- Como consecuencia del punto anterior,
en muchos casos no basta con ‘eliminar’ las referencias a estos ficheros
desde la opción que da el escritorio (lo cual me ha brindado alguna que
otra sorpresa al ejecutarlo en mi propia máquina).
Al lío: Buscando información en KDE
Usando el viejo método de ensayo-error, abrimos un fichero de prueba con
Kate, el editor de textos por defecto en KDE: prueba.txt
Como no sabemos a priori dónde almacena esta información, podríamos ir a
la documentación de KDE y buscarlo, pero siendo un poco impacientes,
ejecutamos un grep en nuestro $HOME y obtenemos lo siguiente:
Vaya, la cosa se pone interesante. Aparecen varias referencias a nuestro
fichero de prueba. Tomamos nota de las ubicaciones para inspeccionarlas
más a fondo:
- $HOME/.kde/share/apps/RecentDocuments
- $HOME/.kde/share/apps/kate/katerc
- $HOME/.kde/share/apps/kate/metainfos
Si investigamos el contenido de estas ubicaciones, vemos que:
- El escritorio KDE almacena la información de los ficheros que abrimos desde él en una carpeta llamada RecentDocuments. Cada fichero abierto (más info: ver xdg-open)
genera una entrada en este directorio (hasta un máximo de diez, después
van rotando) con una estructura definida (¡y parseable! :D).
- Parece que cada aplicación
independiente que tenga funcionalidad de ‘Recent Files…’ también posee
su propio listado de ficheros. Lo interesante aquí es que si pulsamos
botón derecho en el menú de KDE ‘Usados Recientemente’ y hacemos click
en ‘Limpiar documentos recientes’, éstas entradas efectivamente
desaparecen del menú (se vacía el contenido del directorio
$HOME/.kde/share/apps/RecentDocuments), pero si ejecutamos de nuevo el
grep anterior…
![](http://1.bp.blogspot.com/-hv1dtw0m_7I/VUkgoLsbxZI/AAAAAAAAAeQ/aivjl3mnT7o/s1600/grep_tras%2Bborrado.png)
Efectivamente, las referencias a ficheros abiertos permanecen de forma
independiente por cada aplicación (por lo que he podido comprobar ocurre
en varias como VLC, Dragon Player y como estamos viendo aquí, Kate).
MRUTools surge de la idea de automatizar el proceso de extracción,
parseo y presentación de este tipo de información:
Ejemplo y Timeline
Evidentemente al ejecutar la herramienta en un entorno real obtenemos
gran cantidad de datos que por sí solos no aportan una visión general de
la situación. Es necesario estructurar los datos, por ejemplo en una
línea temporal.
Para ello nos viene muy bien el proyecto
Timeline.
Esta herramienta escrita en Python se adapta perfectamente a nuestras
necesidades. Tras leer la documentación disponible en su web y entender
cómo funciona, adaptamos MRUTools para que exporte un fichero XML que
Timeline sea capaz de entender.
Y el resultado final, tras ejecutarlo en una máquina real ejecutando KDE
es el siguiente:
Un gran punto a favor de Timeline es que nos permite visualizar de forma
interactiva los eventos que hayamos generado, mostrando de una forma
muy gráfica y ordenada la salida de MRUTools.
Conclusiones
A partir de los resultados obtenidos hemos podido comprobar que los
archivos MRU son de mucha ayuda en un análisis forense, y además, cada
aplicación mantiene los suyos, lo que dificulta el borrado de huellas.
No es una fuente del todo fiable, ya que como (casi) todo lo digital,
puede ser manipulable, pero eso lo dejamos para otra entrega.
Artículo cortesía de Ángel Suárez-B. Martín (n0w)
@asuarezbm