Download Adquisición de datos de memorias flash

Document related concepts
no text concepts found
Transcript
Adquisición de datos de memorias flash
1. – Introducción:
El uso creciente de dispositivos electrónicos portátiles (teléfonos móviles, libros
electrónicos...) ha cambiado el uso de la memoria en sistemas digitales. Un tipo de memoria de uso
creciente es la memoria NAND flash, el tipo de memoria usado habitualmente en almacenamiento
portátil (memorias USB y tarjetas de memoria).
La memoria NAND flash se emplea como memoria de lectura y escritura compacta y de
fácil transporte. Aunque tiene ciertas limitaciones al número de escrituras, o, más concretamente, de
borrados, que admite, con esquemas adecuados de reparto de desgaste (wear leveling) puede
alcanzar una vida útil de millones de usos [1-2].
En muchas ocasiones, hay una traducción entre la memoria virtual que ve el usuario y los
contenidos reales del chip de memoria flash. Un circuito específico sirve de traductor y añade
funcionalidades como el reparto de desgaste y la detección y corrección de errores [3].
Normalmente, el acceso a la memoria física está muy limitado, incluso en los casos en los
que hay puertos de acceso como, por ejemplo, JTAG. Esto representa un problema para la
recuperación de datos y el análisis forense digital en los que se intenta recuperar datos tras un error
o borrado accidental o buscar pruebas o ficheros incriminatorios en un dispositivo móvil.
Dada la gran variedad de dispositivos disponibles en el mercado, algunos sin interfaz de
acceso al chip de memoria, la extracción física se plantea como una alternativa factible para
recuperar una mayor cantidad de información [4]. En la extracción física se desuelda el chip de
memoria que posteriormente se introduce en un lector diseñado a medida (por ejemplo con una
FPGA). En el proyecto de investigación propuesto se construirá con la plataforma de desarrollo
Arduino un extractor a medida para ciertos chips de memoria flash. El diseño de este extractor va a
ser parte del proyecto de fin de carrera del solicitante.
2. – Métodos y equipo:
Para el desarrollo del programador/extractor de chips flash se dispone de una plataforma de
desarrollo Arduino Mega Atmel Atmega2560 [5]. El microcontrolador se programará con el
protocolo de lectura de los distintos chips de memoria bajo estudio (chip HY27UF082G2A-TPCB
de 2GB de Hynix y chip de MT29F32G08CBACA de 4GB de Micron) siguiendo sus hojas de
especificaciones [6-7]. Uno de los chips (Hynix) se estudiará por separado, sin integrar en ningún
sistema. El otro (Micron) es parte de una memoria USB (el modelo DataTraveler G3 de Kingston).
El proyecto tiene una parte de desarrollo hardware en la que se montará el chip sobre un
adaptador de lectura que convertirá los niveles lógicos de los chips de memoria (a 3,3V) a los
niveles de 5V del Arduino. El adaptador llevará los pines activos del chip a las entradas digitales del
controlador.
La parte central será la programación del protocolo de lectura. Se prestará una atención
especial a la adquisición de los sectores marcados como defectuosos (de los que aún se puede
extraer mucha información útil) y a la interconexión con un PC para facilitar el almacenamiento de
los volcados de memoria.
Finalmente, se iniciará una etapa de interpretación de los datos leídos en la que se intentará
analizar los diversos campos de la memoria física para asociarlos con la memoria virtual (en nuestro
estudio, lo que ve el usuario de la memoria USB).
Referencias:
[1] R. Bez, E. Camerlenghi, A. Modelli and A. Visconti, Introduction to flash memory, IEEE Proc.
91 489-502 , (2003).
[2] Wear-Leveling Techniques in NAND Flash Devices, Micron Technical Note: TN-29-42 (2008).
[3] NAND Flash ECC Algorithm, Samsung, hoja de aplicación, (2004).
[4] Marcel Breeuwsma, Martien de Jongh, Coert Klaver, Ronald van der Knijff y Mark Roeloffs.
Forensic Data Recovery from Flash Memory, Small Scale Digital Device Forensics Journal, Vol. 1,
No. 1, (2007).
[5] Ver http://arduino.cc/en/Main/ArduinoBoardMega2560 para los detalles técnicos. (Última
consulta 18 de octubre de 2011)
[6] Hoja de especificaciones: Hynix, HY27UF(08/16)2G2A Series 2Gbit (256Mx8bit/128Mx16bit)
NAND Flash.
[7] Hoja de especificaciones:
Micron, NAND Flash Memory MT29F32G08CBACA,
MT29F64G08CEACA, MT29F64G08CFACA, MT29F128G08CXACA, MT29F64G08CECCB,
MT29F64G08CFACB.
Conforme del tutor, en Valladolid a 18 de octubre de 2010.
Fdo. Juan Carlos García Escartín.