sábado, 1 de agosto de 2015

Unidades de estado sólido. El reto de la computación forense en el mundo de los semiconductores

 

Introducción

Estamos ante una evolución acelerada de la humanidad, frente a una demanda sostenida de servicios de información e inmediatez en los mismos, que con frecuencia nos supera, una exigencia de actualización que genera cada vez más sobrecarga de información y por lo tanto, desborde en nuestra capacidad para procesar la misma.

En este sentido, se hace necesario contar con mejores alternativas para generar, procesar, almacenar, transportar, recuperar y disponer de manera eficiente datos e información. En consecuencia, las tecnologías de información y comunicaciones deben evolucionar y ofrecer nuevas propuestas que permitan estar a la altura de las demandas actuales y futuras, las cuales según informes recientes de Mckinsey (BUGHIN, CHUI y MANYIKA 2013), seguirá en aumento y generando mayores interpretaciones y analítica que claramente reclamará capacidad de procesamiento y almacenamiento.

Habida cuenta de lo anterior, las tecnologías de almacenamiento basadas en platos, brazos mecánicos y cabezas de lectura magnéticas, comienzan a llegar a su límite en cuanto a su velocidad y capacidad de almacenamiento. Con el surgimiento en los 90’s de las memorias USB, se abre la posibilidad de contar con medios de almacenamiento electrónico, con componentes que no se mueven y que se encuentran ajustados a tecnologías de almacenamiento basados en memorias NOR o NAND.

Este cambio de tecnología, nos lleva de la teoría de campos e impedancias magnéticas que se aferran a platos ferromagnéticos a la teoría del estado sólido, es decir, aquella donde las partículas está unidas por fuerzas de atracción grandes, que solo pueden moverse vibrando u oscilando alrededor de posiciones fijas, con una regularidad espacial geométrica, que dan lugar a diversas estructuras cristalinas ((?) 2005), para explicar una nueva forma de almacenar y mantener la información

En términos prácticos, las unidades de estado sólido son dispositivos híbridos que almacenan datos en una memoria de semiconductores conocido como memoria flash, sin partes mecánicas (sin cabezas móviles o discos giratorios) (BLOG Happy SysAdmin 2011). Estos poseen dos zonas de memoria, una en la que se guarda la información y otra que actúa de cache acelerando los accesos, muy parecida a la memoria RAM. (SÁNCHEZ IGLESIAS (?))

Como quiera que estos nuevos desarrollo tecnológicos, disminuyen las eventualidades que tiene los discos magnéticos: aumentan la capacidad de almacenamiento, tiene mayor resistencia a los golpes, un menor consumo de energía y rapidez en el acceso (pues no es susceptible a la fragmentación de los archivos) (idem), estamos ante una nueva forma de respaldar información que nos permite ser consecuentes con la eficiencia en el uso de los datos y la velocidad necesaria para suscribirse a nuevos servicios de información disponibles.

En este contexto, este documento busca comprender algunas de las características técnicas de las unidades de estado sólido, sus ventajas y limitaciones, así como los retos propios para los informáticos forenses que deben repensar sus procedimientos y análisis frente a este desafío tecnológico ahora basado en sistemas de archivos asociados con memorias flash y borrado intrínseco después de cada operación, entre otras características.

Las memorias flash (TAL 2002)

Las memorias flash fueron inventadas por el Dr. Fujio Masuoka mientras trabajaba para Toshiba en 1984. El nombre de "flash" fue sugerido por el investigador dado que el proceso de borrado de los contenidos de la memoria le recordó el flash de una cámara fotográfica. Los chips de memoria flash almacenan datos en un gran arreglo de transistores de puerta flotante (MOS) de metal-óxido-semiconductor. Las pastillas de silicio se fabrican con una dimensión microscópica de un transistor, que actualmente son de aproximadamente de 40 nanómetros. (OLSON y LANGLOIS 2008)

Las memorias flash son memorias no volátiles que puede ser borradas y reprogramadas en unidades de memoria llamadas bloques. Una operación de escritura en cualquier dispositivo de flash sólo se puede realizar en una unidad vacía o borrada, por lo que en la mayoría de los casos, una operación de borrado debe preceder a la operación de escritura. La operación de borrado es bastante sencilla para los dispositivos NAND, mientras que para los NOR, se requiere que todos los bytes del bloque de destino se escriban con ceros antes de que puedan ser borrados.

Dado que el tamaño de un bloque de borrado en dispositivos NOR oscila desde 64 hasta 128 Kbytes, una operación de escritura o borrado puede tardar hasta 5 segundos. Por el contrario, el uso de bloques de borrado de 8 a 32 Kbytes en un componente NAND realiza la misma operación en un máximo de 4 milisegundos.

Las diferencia de tiempo en las operaciones de escritura y borrado aumenta aún más la brecha de rendimiento entre los componentes NOR y NAND. Estadísticamente se adelantan más operaciones de borrado en las unidades con dispositivos NOR, ​​por cualquier conjunto de operaciones de escritura que se haga sobre este componente (sobre todo en la actualización de archivos pequeños). Por lo tanto, al seleccionar una solución de almacenamiento local, se deben considerar, al menos, los siguientes factores:

  • Las NOR leen un poco más rápido que las NAND.
  • Las NAND escriben mucho más rápido que las NOR
  • Las NAND eliminan mucho más rápido que las NOR - 4 ms frente a 5 s, respectivamente.
  • La mayoría para escribir requiere una operación de borrado previo.
  • Las NAND tienen unidades de borrado pequeñas, por lo que necesitan borrar menos.

De otra parte, JONES (2008) detalla los retos actuales que tienen las memorias flash, que ponen de manifiesto las condiciones de operación de las mismas, frente a los usos previstos asociados con almacenamientos masivos e intensos en procesamiento. Los desafíos a resolver en estas memorias son la recolección de basura (bloques no válidos), el manejo de bloques defectuosos y el manejo del desgate físico del dispositivo.

La recolección de basura es el proceso de recuperación de bloques no válidos (los que contienen una cierta cantidad de datos no válidos). Dicha recuperación consiste en mover los datos válidos para un nuevo bloque, y luego borrar el bloque no válido para que esté disponible. Este proceso se lleva a cabo habitualmente como proceso en “background” o cuando sea necesario, si el sistema de archivos tiene poco espacio disponible.

Con el tiempo, los dispositivos de flash pueden desarrollar bloques defectuosos bien por el uso o incluso por fallas en su fabricación, que no pueden ser utilizados. Se puede detectar la presencia de bloques defectuosos al tratar de ejecutar una operación sobre la memoria flash y ésta falla, como puede ser borrar o una acción de escritura no válida.

Una vez identificados los bloques dañados, se marcan en la memoria flash en sí en una tabla de bloques defectuosos. La forma de hacer esto depende del dispositivo, pero puede ser implementado con un conjunto seleccionado de bloques reservados gestionados por separado a partir de bloques de datos normales. Esta funcionalidad se implementa en el hardware por un microcontrolador interno y por lo tanto es transparente para el sistema de archivos de nivel superior.

Finalmente y no menos importante, es el manejo del desgaste físico del dispositivo. Para maximizar la vida útil de la memoria flash, se proporcionan algoritmos de nivelación de desgaste, los cuales pueden ser dinámicos o estáticos.

Los dinámicos abordan el problema de un número limitado de ciclos de borrado para un bloque dado. En lugar de utilizar bloques al azar, los algoritmos de nivelación de desgaste dinámicos intentan distribuir uniformemente el uso de los bloques.

De otra parte, los algoritmos de nivelación de desgaste estáticos enfrentan un problema aún más interesante. Además de un número máximo de ciclos de borrado, ciertas memorias flash sufren de un número máximo de ciclos de lectura entre los ciclos de borrado. Esto significa que si los datos se almacenan por mucho tiempo en un bloque y se lee muchas veces, los datos pueden disiparse y provocar la pérdida de los mismos. Algoritmos de nivelación de desgaste estáticos enfrentan esta situación moviendo periódicamente datos antiguos a nuevos bloques disponibles.

Sistemas de archivos para memorias flash

Para comprender cómo funcionan los sistemas de archivos en memorias flash, es preciso comprender la siguiente arquitectura interna de los dispositivos con memorias flash embebidas.

Sistema de archivos en memorias flash. (Tomado de: HU 2007)

El nivel de traducción de la memoria flash (Flash Translation Layer – FTL) es el controlador que funciona en conjunto con el sistema de archivos propio del sistema operacional para hacer parecer la memoria flash como si fuese un disco magnético. En primer lugar crea pequeños bloques de datos virtuales, diferentes de los grandes bloques de borrado que requiere la memoria para sus procesos internos como se vio previamente. Luego, gestiona los datos sobre la memoria flash como “asignados”, a pesar que internamente esté almacenado en diferentes lugares, para finalmente administrar los bloques limpios disponibles, así como los borrados para almacenar los datos. (INTEL 1998)

El FTL emula un dispositivo de bloques. En este contexto, aparece el componente flash como si fuese una matriz contigua de bloques de almacenamiento numerados de cero al número total de bloques menos uno. En consecuencia, FTL se convierte en una traducción nativa del sistema de archivos y la memoria flash. Esto es, FTL reasigna los datos en una posición física donde van a ser escritos, esto permite que el sistema de archivo trate al dispositivos con memorias flash como cualquier dispositivo de almacenamiento por bloques, ignorando las características propias de las flash.

En realidad lo que ocurre, es que FTL ubica los datos en una ubicación disponible o de borrado, señalando la localización real de los mismos. Es importante anotar que previamente, antes de escribir, invalida el bloque que previamente contenía los datos (si es del caso).

Como podemos ver, el controlador de traducción de la memoria flash, desarrolla las actividades propias de los sistemas de archivos, creando la ilusión requerida por el usuario final en el sistema de archivos, para tener acceso a la memoria flash. Así mismo, un error en la traducción puede generar una pérdida de datos o inconsistencias sobre el almacenamiento de datos, toda vez que este componente de software (algunas veces de hardware) es el que mantiene la consistencia de los datos almacenados en la memoria flash.


Unidades de estado sólido

Una unidad de estado sólido (Solid Disk Drive – SSD en inglés) es un elemento electrónico basado generalmente (a partir de 2010) en memorias flash NAND, el cual define un tipo de memoria no volátil diseñado como almacenamiento auxiliar. Todo este sistema es gobernado por un controlador, que establece un conjunto bloques de memorias NAND que actúan como un arreglo en miniatura, lo cual permite aumentar la velocidad de acceso, ya que es posible realizar varias lecturas y escrituras al mismo tiempo, haciendo que el dispositivo sea más resistente a fallos. (SÁNCHEZ IGLESIAS (?)).

Las unidades de estado sólido a diferencia de los tradicionales discos duros magnéticos, no tienen componentes mecánicos, ni tiempos de latencia de rotación, ni platos de almacenamiento basados en óxido ferroso, sino componentes electrónicos basados en memorias no volátiles que a través de controladores como el FTL, es posible interpretarlos como discos magnéticos para efectos de acceder a ellos de manera tradicional y natural.

A la fecha se advierten múltiples ventajas de estas unidades sobre los discos magnéticos dentro de las cuales se tienen: (BLOG Happy SysAdmin 2011)

  • Mayor rapidez de lectura, incluso 10 veces más que los discos duros tradicionales más rápidos gracias a arreglos internos de memorias en una misma unidad.
  • Baja latencia de lectura y escritura, cientos de veces más rápido que los discos mecánicos.
  • Lanzamiento y arranque de aplicaciones en menor tiempo - Resultado de la mayor velocidad de lectura y especialmente del tiempo de búsqueda. Pero solo si la aplicación reside en flash y es más dependiente de la velocidad de lectura que de otros aspectos.
  • Menor consumo de energía y producción de calor, resultado de no tener elementos mecánicos.
  • Sin ruido: La misma carencia de partes mecánicas los hace completamente inaudibles.
  • Mejorado el tiempo medio entre fallos, superando 2 millones de horas, muy superior al de los discos duros.
  • Seguridad, permitiendo una muy rápida "limpieza" de los datos almacenados.
  • Rendimiento determinístico - a diferencia de los discos duros mecánicos, el rendimiento de las unidades de estado sólido es constante y conocido a través del almacenamiento entero. El tiempo de "búsqueda" es constante.
  • El rendimiento no se deteriora mientras el medio se llena. Son inmunes a la fragmentación propia de los discos magnéticos
  • Menor peso y tamaño que un disco duro tradicional de similar capacidad.
  • Son resistentes: soportan caídas, golpes y vibraciones sin estropearse y sin descalibrarse como pasaba con los antiguos discos duros, gracias a carecer de elementos mecánicos.
  • Borrado más seguro e irrecuperable de datos; es decir, no es necesario hacer uso del Algoritmo Gutmann para cerciorarse totalmente del borrado de un archivo.

No obstante lo anterior, estas nuevas unidades de almacenamiento presentan algunas limitaciones conocidas a la fecha que deben ser tenidas en cuenta frente al uso de las mismas, como advertencias que motiven acciones de seguridad y control frente la pérdida de datos que puede presentarse. Los principales inconvenientes son: (idem)

  • Alto costo por gigabyte almacenado. US$ 2 dólares por gigabyte frente a US$0,05-0,10 por gigabyte en los discos magnéticos.
  • El tiempo medio de vida entre fallos (Mean Time Between Failures): la longevidad de este tipo de unidades es más corto que el de disco duro estándar por el hecho de que el número de ciclos de escritura a cualquier celda de memoria es limitada y una vez que se han consumido su cuota para ese bloque, el disco empieza a ser poco fiable.
  • El tamaño de almacenamiento disponible en gigabytes. Es una situación que conforme evolucione la tecnología se irá superando

En consecuencia de lo anterior, las unidades de estado sólido serán los medios de almacenamiento auxiliar estándar a corto y mediano plazo, toda vez que los discos tradicionales presentan importantes limitaciones en velocidad, confiabilidad y latencia de acceso, que los dispositivos electrónicos basados en memorias NAND han superado ampliamente.

Retos de las unidades de estado sólido para la computación forense (WIEBE 2013)

Como quiera que las unidades de estado sólido, establecen bondades tecnológicas importantes relevantes para mejorar el desempeño del almacenamiento en general, muchas de ellas implican limitaciones importantes para adelantar investigaciones forenses en informática dado que, como hemos visto previamente cualquier operación de escritura en una memoria flash exige una acción de borrado previo.

De otra parte, como anota WIEBE (2013) el sistema operativo puede acelerar el funcionamiento de la unidad de estado sólido alertando sobre bloques potencialmente reutilizables mediante el uso del comando "TRIM". Este comando es una innovación reciente en la arquitectura de almacenamiento, que permite al sistema operativo indicarle al dispositivo de almacenamiento de estado sólido que un área particular del mismo está disponible para la limpieza y la reutilización. Por ejemplo, después que un archivo ha sido eliminado por el usuario, el sistema operativo le indicará a la unidad de estado sólido a través de "TRIM" el área que abarca el archivo eliminado. Después de recibir la orden de "TRIM", el SSD moverá el archivo al espacio reservado para provisión, donde finalmente será saneado y marcado para su reutilización.

Esto significa que a diferencia de los discos magnéticos donde se indicaba a través de una marca del sistema operacional la condición del espacio disponible o no asignado, en las unidades de estado sólido el comando “TRIM” elimina la capacidad de recuperar datos sobre los SSD, purgando los datos borrados antes que el sistema operacional llegue allí. (BELL y BODDINGTON 2010, REGAN 2009)

Por otro lado, tenemos las limitaciones propias del controlador FTL que puede ser utilizado por los atacantes para manipular la forma de acceso y distribución de los bloques de las memorias flash disponibles, pudiendo generar estrategias de ocultamiento de información como marcado de bloques defectuosos, fallas en los algoritmos de recolección de basura o lo que es peor, disminuir el tiempo de vida útil de las unidades de estado sólido, acelerando los ciclos de escritura sobre los bloques disponibles.

Un desafío adicional es el ejercicio del saneamiento profundo de los SSD, toda vez que los programas existentes de saneamiento de discos no son efectivos a la hora de entrar a fondo en los discos para eliminar la existencia de información allí disponible, dado que todo el tiempo se está moviendo información de bloques ocupados a bloques libres. Para ello se proponen variaciones del controlador FTL, con el fin de establecer funciones adicionales para borrado seguro que eliminan todos los restos de información en los bloques reservados de la unidad de estado sólido. (LEE, HEO, CHO, HONG y SHIN 2008; WEI, GRUPP, SPADA y SWANSON 2011; SHEWARD 2012)

Estas condiciones previamente establecidas, supone que las herramientas forenses actuales deben ser revisadas para identificar y analizar en detalle el funcionamiento de las unidades de almacenamiento de estado sólido, para comprender la nueva ilusión del sistema de archivos a través del FTL, entender que el borrado efectuado sobre este tipo de medios es irreversible por el saneamiento intrínseco de la tecnología para aumentar su velocidad y ahora sus sustentaciones técnicas no podrán basarse en la lógica de los discos tradicionales de cilindros, pistas y sectores, sino relacionadas con direcciones de bloques lógicos asociados con compuertas NAND, que de manera secuencial se asignan y liberan.


Reflexiones finales

Las unidades de estado sólido establecen una alternativa concreta para almacenamiento auxiliar que cada vez más se posiciona en el mercado de medios de respaldo de información, como una tecnología de alta velocidad, confiable y segura de tal manera que a pesar de su alto costo actual, comienza a desplazar los medios magnéticos tradicionales.

En este sentido, los investigadores forenses en informática deben comenzar a entender en profundidad esta tecnología toda vez que lo que conocen sobre medios de almacenamiento magnético, no podrá ser extrapolado a una tecnología basada en transistores de puerta flotante que almacenan información en celdas de único bloque o multibloque, donde los sistemas de archivo disponibles emulan la vista de un disco magnético tradicional para poder comprender la forma de registro de la información en el medio.

Así las cosas, los procedimientos de saneamiento, recuperación e imagen de discos actuales, deben repensarse a la luz de un avance tecnológico que para mantener su promesa de valor en velocidad y confiabilidad, debe mantener un conjunto de bloques lógicos de información disponibles para efectuar sus operaciones de escritura y borrado, que de hecho suponen actividades de saneamiento de bloques de información que claramente alterarán la integridad del medio, no por acciones no autorizadas, sino por la dinámica misma del dispositivo.

En consecuencia, los SSD representan bien una amenaza o una gran oportunidad para repensar la computación forense como quiera que exige de los peritos informáticos y/o especialistas en informática forense entrar en profundidad de esta nueva tecnología y comprender junto con los fabricantes, la forma como los avances en los semiconductores abren nuevas posibilidades para codificación de información, y que desde la vista de los sistemas de archivo, se puedan desarrollar alternativas que balanceen la necesidad de la trazabilidad de las acciones de los usuarios sobre los medios, así como la confianza y velocidad propia de éstos.

Si bien este documento, no pretende agotar la discusión científica ni las reflexiones prácticas alrededor de la práctica forense sobre los SSD, si busca motivar a todos los interesados para continuar indagando en las nuevas fronteras del conocimiento actual de las memorias flash, que no solamente están en las unidades de estado sólido, sino que cada vez más aparecen en medios inalámbricos, teléfono móviles, cámaras de video y fotografía digitales, así como en las nuevas consolas electrónicas, que están a la espera para continuar retándonos sobre esta realidad de componentes de silicio que supone una transformación y renovación de los profesionales e investigadores en informática forense.


Referencias

(?) (2005) Estado Sólido. Disponible en: http://concurso.cnice.mec.es/cnice2005/93_iniciacion_interactiva_materia/curso/materiales/estados/solido.htm (Consultado: 9-06-2013)

BELL, G. y BODDINGTON, R. (2010) Solid state drives: the beginning of the end for current practice in digital forensic recovery. The Journal of Digital Forensics, Security and Law. Vol 5. No. 3. Disponible en: http://www.jdfsl.org/subscriptions/JDFSL-V5N3-Bell.pdf (Consultado: 10-06-2013)

BLOG Happy SysAdmin (2011) Solid State Drives, some theory and a selection of videos. Disponible en: http://www.happysysadm.com/2011/07/solid-state-drives-some-theory-and.html (Consultado: 9-06-2013)

BUGHIN, J. , CHUI, M. y MANYIKA, J. (2013) Ten IT-enabled business trends for the decade ahead. Mckinsey Quarterly. May. Disponible en: http://www.mckinsey.com/insights/high_tech_telecoms_internet/ten_it-enabled_business_trends_for_the_decade_ahead (Consultado: 3-06-2013)

HU, Y. (2007) Estimating Flash Media Performance for Embedded Systems. Micro Digital. Disponible en: http://www.smxrtos.com/articles/whiteppr/flashperformance.htm (Consultado: 9-06-2013)

INTEL (1998) Understanding flash translation layer specification. Application note. Disponible en: http://staff.ustc.edu.cn/~jpq/paper/flash/2006-Intel%20TR-Understanding%20the%20flash%20translation%20layer%20%28FTL%29%20specification.pdf (Consultado: 9-06-2013)

JONES, M. T. (2008) Anatomy of linux flash file systems. Disponible en: http://www.ibm.com/developerworks/linux/library/l-flash-filesystems/ (Consultado: 9-06-2013)

LEE, J., HEO, J., CHO, Y., HONG, J. y SHIN, S. Y. (2008) Secure deletion for NAND flash file system. Proceedings of SAC’08 – 2008 ACM Symposium on Applied Computing. Disponible en: http://eoslab.ssu.ac.kr/pdf/2008-5.pdf (Consultado: 10-06-2013)

OLSON, A. y LANGLOIS, D. (2008) Solid state drives. Data reliability and lifetime. Imation research document. Disponible en: http://www.csee.umbc.edu/~squire/images/ssd1.pdf (Consultado: 10-06-2013)

REGAN, J. (2009) The forensic potential of flash memory. Naval Postgraduate School. Unpublished Master Thesis. Disponible en: http://simson.net/clips/students/09Sep_Regan.pdf (Consultado: 10-06-2013)

SÁNCHEZ IGLESIAS, A. (?) ¿Qué es un disco duro SSD? Disponible en: http://computadoras.about.com/od/preguntas-frecuentes/a/Que-Es-Un-Disco-Duro-Ssd.htm (Consultado: 9-06-2013)

SHEWARD, M. (2012) Rock solid: Will digital forensics crack SSD? Infosec Institute Resources. Disponible en: http://resources.infosecinstitute.com/ssd-forensics/ (Consultado: 10-06-2013)

TAL, A. (2002) NAND vs. NOR flash technology. The designer should weigh the options when using flash memory. Disponible en: http://www.electronicproducts.com/Digital_ICs/NAND_vs_NOR_flash_technology.aspx (Consultado: 9-06-2013)

WEI, M., GRUPP, L., SPADA, F. y SWANSON, S. (2011) Reliably Erasing Data From Flash-Based Solid State Drives. Proceedings of 9th USENIX Conference on File and Storage Technologies. Disponible en: http://static.usenix.org/events/fast11/tech/full_papers/Wei.pdf (Consultado: 10-06-2013)

WIEBE, J. (2013) Forensic Insight into Solid State Drives. Digital Forensic Investigator. Summer. Disponible en: http://www.dfinews.com/articles/2013/05/forensic-insight-solid-state-drives (Consultado: 9-06-2013)