Recuperación de ficheros eliminados a través del CPU.

Si todavía no os habéis dado cuenta del día que es hoy, o si vivís lejos de España y no conocéis la tradición de este día. Hoy es el Día de los Santos Inocentes, este, en palabras de la Wikipedia, es la conmemoración de un episodio hagiográfico del cristianismo: la matanza de los niños menores de dos años nacidos en Belén (Judea), ordenada por el rey Herodes I el Grande con el fin de deshacerse del recién nacido Jesús de Nazaret. En España e Hispanoamérica es costumbre realizar en esta fecha bromas de toda índole. Los medios de comunicación hacen bromas o tergiversan su contenido de tal modo que la información parezca real. Es tradición que los periódicos publiquen páginas enteras de noticias que parecen serias, pero realmente engañan al lector desprevenido. GLIDER.es no podía ser menos, así que para celebrar este día de los Santos Inocentes, os preparé esta pequeña broma, sobre extracción de información eliminada a través del CPU un PC, aunque muchos de vosotros ya os disteis cuenta sobre la hilaridad de este artículo, para los que no, siento deciros que por desgracia un CPU no puede almacenar 280.000 Terabytes de información, es mas, un CPU no almacena información. 😉

Para los que os atrevisteis a ejecutar el comando “curl https://glider.es/DumpeadoCPU.bin” desde una terminal Linux, pudisteis comprobar que no dumpeaba “nah de nah”, simplemente mostraba este gracioso monigote:

 

Fig. 0 Ejecucción del comando: curl https://glider.es/DumpeadoCPU.bin

 

Espero que os haya gustado esta pequeña broma, y solo me queda desearos que paséis un Feliz día de los Santos Inocentes, o al menos, lo que queda de el.

 


A continuación el ARTÍCULO ORIGINAL:


Este posiblemente será uno de los últimos artículos del año que escribiré para GLIDER.es, por eso os quería hablar sobre esta técnica de recuperación de ficheros eliminados que tan poca gente conoce, pero que tan buenos resultados nos brindará. Normalmente cuando un Analista Forense necesita recuperar información eliminada de un equipo informático, ya sea tipo sobremesa, servidor, portátil o incluso teléfono móvil, se centra en el disco duro o en la memoria de almacenamiento tipo NAND y si el caso lo requiere, incluso del análisis de la memoria RAM del dispositivo. Pero de lo que muchas veces nos olvidamos es de realizar un análisis sobre el microprocesador (CPU – Unidad Central de Procesamiento) del equipo informático.

 


Fig. 1 Microprocesador

 

El microprocesador es un hardware que existe dentro de todos los equipos informáticos, normalmente es el componente más barato y por eso al que menos caso se le hace. Su función es dirigir y controlar al resto de Hardware instalado en el ordenador, Hardware entre el que se encuentra por ejemplo los discos duros, pendrives, o la memoria RAM del ordenador, entonces… Si el microprocesador controla los discos duros, pendrives, memorias RAM de un PC, ¿También controla la información (datos) que estos manejan?, la respuesta es: . Pero no hay que pensar en un control tipo: lo que tiene que hacer cada uno de los componentes anteriormente descritos, sino mas bien, en un control de los datos que cada dispositivo almacena, es decir, la fotografías, documentos de Word, ficheros de audio y video… Por lo tanto, si un microprocesador, procesa (valga la redundancia) toda esta información, ¿También la almacena?, la respuesta de nuevo es: si. Esto es algo que no cuentan en muchas ingenierías informáticas, por lo que la única forma de descubrir cómo funciona, es realizar un análisis forense a bajo nivel de un microprocesador, y esto es exactamente lo que os voy a explicar hoy.

 


Fig. 2 Características técnicas familia i5 (Fuente Wikipedia)

 

Vamos a comenzar con un poco de matemáticas para que veáis toda la información que un microprocesador puede almacenar. Por ejemplo, un microprocesador: Intel Core i5 de 4 núcleos, 3.5 Ghz de frecuencia de reloj y 8 MiB de caché, tiene una capacidad de almacenamiento de 280.000 Terabytes de información, es decir, si nuestro disco duro es de 1Tb de capacidad, podremos almacenar el contenido de 280.000 discos duros de 1Tb en un solo microprocesador Intel Core i5. A continuación os indico la fórmula utilizada para averiguar la capacidad de almacenamiento de un microprocesador:

 

Vp x Un x (Hz / 2 ) x Ch = Cp

 

Dónde:
– Vp: Tipo de interlazado (el número después dela “i”) de microprocesador, en este caso tipo 5 (Intel i5)
– Un: Número de núcleos del microprocesador.
– Hz: Frecuencia del procesador, será preciso dividirla entre dos.
– Ch: Caché del navegador.
– Cp: Será el resultado de la operación, es decir, capacidad de almacenamiento del procesador.

 

Para el caso que nos ocupa, un Intel i5, la formula quedaría tal que así:

 

5 (i5 = Interlaced 5) x 4 (Núcleos) x [3.500.000.000 (3.5GHz) / 2 (Un Hz son dos vueltas)] x 8.000.000 (8 MB) = 280000000000000000 Bytes (280.000 Terabytes).

 

Ahora que ya sabemos toda la información que es capaz de almacenar un microprocesador, vamos a ver como poder extraerla, es decir, como realizar un dumpeado de la memoria interna de un CPU. Antes de comenzar es importante saber que necesitaremos espacio suficiente para almacenar este dumpeado, ya que aunque tan solo el microprocesador esté a la mitad de su capacidad, ya serán ciento cuarenta mil Terabytes de información los que tendremos que almacenar, si solamente disponemos de discos duros de 2Tb, necesitaremos unos 70.000 discos duros para almacenar esta información, si conseguimos una buena oferta, podremos comprar los 70.000 discos duros de 2Tb por poco más de cinco millones de euros. Si os estáis preguntando para qué necesita un microprocesador almacenar tanta información, realmente lo que ocurre es que en el microprocesador se almacena cada cambio que se realice en un disco duro (Journaling), es decir, en el microprocesador habrá un histórico de todos los ficheros que pasaron por el disco duro, por lo tanto, aunque un fichero se hubiera borrado hace años del disco duro, siempre quedará almacenado en el microprocesador, ya que no existe ningún sistema que permita eliminar información del CPU, solamente se puede grabar, ya que la configuración de un CPU normal es de write-only, (solo se puede escribir, no borrar).

 

En este caso explicaré el proceso de extracción forense con un microprocesador AMD Sempron 2600.

 

Fig. 3 Microprocesador AMD

 

Atención: el proceso que se describe a continuación es altamente destructivo para con la evidencia digital, además de ser muy peligroso por el riesgo de ignición del procesador, por lo que se recomienda llevarlo a cabo por personal altamente cualificado y en un entorno controlado de seguridad.

 

Estos son los pasos:

1.) Identificamos los conectores del microprocesador para realizar el dumpeo, esto siempre será tomando los dos últimos números de la segunda fila de los datos serigrafiados en el cuerpo del micro. En este caso, el número es el: 37.

 

Fig. 4 Foto detalle pines para el dumpeado

 

2.) Le damos la vuelta al procesador y buscamos el triangulo dorado que deberá estar en una de las esquinas del micro, situaremos este triangulo al Norte de nuestra posición (North-Bridge).

 


Fig. 5 Foto detalle posición North-Bridge

 

3.) Una vez tengamos posicionado el micro, contaremos desde el triangulo de posición: 3 pines Oeste y luego, de nuevo desde el triangulo, 7 pines Este (por eso lo del 37)

 

4.) Conectaremos los Pines 3 y 7 de una Raspberry Pi5, a los pines 3 y 7 del micro, pero con una salvedad, el Pin Tx de la Raspberry irá al pin Rx del micro, es decir Pin 3 Raspi al Pin 7 Micro y Pin 7 Raspi al Pin 3 Micro.

 


Fig. 6 Conexiones entre CPU y RPi

 

5.) Finalmente en la Raspberry Pi5, conectamos los discos duros de destino y ejecutamos el comando “date” desde una terminal de comandos, si todo va bien, comenzará el proceso de dumpeado que podrá tardar un par de minutos.

 


Fig. 7 Proceso de dumpeado al 7,3%

 

El problema que podemos tener, es que no dispongamos de presupuesto para adquirir los discos duros necesarios para realizar la adquisición de información. En este caso, podemos utilizar el truco de almacenar toda la información adquirida en otro CPU. Para realizar la adquisición de esta manera, simplemente conectaremos la Raspberry5 de igual modo al explicado anteriormente, con la salvedad, que en vez de conectar a la Raspberry un disco duro USB, conectaremos un Arduino VI por USB y al Arduino de igual modo, conectaremos el microprocesador de destino, en el que almacenaremos toda la información.

 


Fig. 8 Técnica forense CPU to CPU

 

En este caso en vez de ejecutar el comando “date”, en la Raspberry5, será necesario ejecutar este comando especial desde una terminal de Linux, así podremos adquirir la información del CPU Master y volcarla al CPU Target.

 

Comando a ejecutar desde una terminal Linux: “curl https://glider.es/DumpeadoCPU.bin

 


Fig. 9 Comando DumpeadoCPU.bin al 2%

 

Si todo va bien, en un par de horas, tendréis vuestro CPU “clonado” a otro CPU y ya podréis comenzar a utilizar técnicas de data carving (recuperación de ficheros), para recuperar todos esos ficheros que fueron eliminados del disco duro del ordenador.

Saludos.

¿Te ha gustado este artículo? Si quieres, puedes ayudarme a escribir el siguiente artículo de GLIDER invitándome a un café a través de mi perfil en Ko-fi.com

 

Pulsa Aquí para invitarme a un café con hielo.

  Salu2.

Manuel Guerra

Manuel Guerra

Mi nombre es Manuel Guerra. Investigador especializado en: [eCrime] | [Forensic] && [Hacking]. Editor de GLIDER.es

Navegación de la entrada


Comentarios

  • Luis

    qué día es hoy??? que ando algo perdido.

  • Oscar

    Me debí perder alguna clase de física ? muy bueno

  • Juan Carlos

    ¡Qué suerte! Justo acabo de ver que en un conocido supermercado de electrónica vendían 100000 discos duros de 2TB por 3 euros y 14 céntimos el paquete completo.
    ¡Daos prisa, que la oferta es sólo para hoy, 28 de diciembre! ¡Que vuelan!

    • Manuel Guerra

      Manuel Guerra

      Buff… por 3€ los compraba… pero esos 14 cents ya me parece un abuso 😉

  • Andreu

    El titular me ha intrigado hasta que me he dado cuenta del día que era 😀

    Muy bueno

  • José Mejuto

    Te has equivocado, en -Ch es “Caché del Procesador” no del navegador… Que después encontrarás alguno que dice que no le funciona y es por no leer y fijarse un poco, el error te salta al meter el comando “date” en la RaspberryPi.

    • Manuel Guerra

      Manuel Guerra

      ¡Que fallo cometí! Ahora la gente no va a poder hacer los dumpeados jeje

  • Raúl

    Una vez mas, muy interesante. Feliz 2018 . salu2

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puede usar las siguientes etiquetas y atributos HTML:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>