DIFERENCIAS FORENSES ENTRE DISCOS DUROS DE ESTADO SÓLIDO Y DISCOS DUROS DE PLATOS.

Actualmente los Discos Duros de Estado Sólido (SSD por sus siglas en inglés) están siendo más comercializados día a día, debido a que son más rápidos y no hay problema que se rayen si la máquina se está moviendo, problemas que se tienen con Discos Duros de platos. Pero ¿Cómo puede diferir un análisis forense  de un Disco Duro de Platos a un Disco Duro de Estado Sólido? (le llamaremos HDD al de platos y SSD al de Estado Sólido para no escribir tanto).

Empecemos con una rápida explicación del HDD, que es el que la mayoría conocemos. Una cajita que está adentro de nuestra computadora. Esta cajita contiene platos que son leídos por unas agujas (como las tornamesas). Estos platos contienen sectores, que es donde el HDD guarda nuestra información. Hasta aquí todo genial,  ahora seguimos con el SSD, éste vamos a imaginarlo como una memoria USB grandota y esta, al igual que la USB, guarda la información en chips, este también contiene sectores, pero no como el HDD, esto lo explicaremos más adelante.

Después de saber a grosso modo cómo funcionan estos discos vamos a seguir con nuestro tema inicial que es: ¿Cómo puede diferir un análisis forense en un HDD a un SSD? Y la respuesta a esta pregunta es: de muchas maneras. Así que empecemos con la primera diferencia:

Los sectores en un SSD no siempre están en un mismo lugar. Esta diferencia es importante saberla, ya que con esta vamos a entender las siguientes. ¿A qué me refiero cuando digo que no están en un mismo lugar? Pues en un HDD los sectores están en lugares específicos de los platos. Como los tracks en un CD. Pero un SSD tiene sus sectores en los chips, y cada sector tiene una dirección. En  un HDD estos sectores son inamovibles, cosa que en un SSD no pasa, las direcciones de los sectores pueden ir cambiando, esto sucede cuando se borra un archivo y esto nos lleva a nuestra segunda diferencia.

La información en un SSD no prevalece después de ser borrada. Por si se lo preguntaban, sí, en un HDD la información se queda, y puede ser accedida una vez que esta es borrada, aunque no la podemos ver y esto nos puede ayudar en una investigación forense a recuperar los archivos borrados. En un SSD literal, se elimina. ¿Cómo sucede esto? Pues el Sistema Operativo le manda al SSD un comando llamado TRIM que lo que hace es quitar los sectores “desocupados” del nivel lógico (o sea no los podemos ver ni accesar a ellos). Esto es llamadoWearLevelling. Cuando la información está ahí, ya no puede ser recuperada de nuevo ni quedan rastros en ningún registro de la máquina de que documentos fueron borrados o que alguna vez existieron. Al hacer esto, la tabla de direcciones es modificada y por consiguiente tenemos nuestra última diferencia (hay más, pero son las más significativas que hay que tener en cuenta para una investigación forense).

Un HASH de un SSD nunca va a ser igual. Nota rápida, un HASH es como sacarle una huella digital a un Disco Duro. En el caso de un HDD si le sacamos un HASH ahorita y otro en 5 años (sin haberle modificado la información y si el HDD no ha sufrido daños) el HASH va a ser igual. Pero en un SSD no va a pasar esto, ya que el comando TRIM va a modificar la tabla de direcciones y esto va a hacer que se modifique su HASH. Así que en una corte no podríamos comprobar que una imágenes forense (copia bit a bit de un disco) es igual al disco original, pero si podríamos hacer esta comprobación de una copia forense (copia lógica de un disco duro).

En conclusión el estar analizando un SSD nos puede complicar un poco el caso al no poder acceder a los archivos borrados y siempre hay que tener en cuenta el hacer una copia lógica de este para poder comprobar su paridad con el original en un futuro. Fuera de ahí sigue siendo un Disco Duro y contiene información útil para concluir nuestro caso. Como siempre, el dato es buscarle.

Comando TRIM:
En informática, una orden TRIM permite a un sistema operativo comunicarle a una unidad de estado sólido (SSD) qué bloques de datos ya no están en uso, como los datos dejados al borrar ficheros. Una operación del SO como un borrado generalmente sólo marca los bloques implicados como no usados. TRIM permite que el SO pase esa información al controlador de la SSD, que de otra manera no sabría qué bloques puede eliminar.
El propósito de la instrucción es mantener la velocidad de la SSD durante toda su vida útil, evitando la ralentización que los primeros modelos sufrían al llegar a escribir en todas las celdas al menos una vez.
Aunque ya existían herramientas para reiniciar algunos modelos de SSD a su estado original, no se podían considerar herramientas de optimización ya que necesitaban borrar todos los datos de la unidad.
La causa inicial del problema es que las unidades SSD no saben qué bloques están realmente en uso y cuáles están libres. Las SSD no entienden la estructura del sistema de ficheros usada por el sistema operativo del ordenador y no puede acceder a su lista de clusters sin usar. Esto causa problemas en dos lugares:

-     Las SSD pueden escribir bloques de 4KiB, pero debido a limitaciones del hardware, deben borrar bloques mayores (p.e., de 128KiB-512KiB). Debido a que la unidad no puede saber cuál de los bloques de 4KiB está aún en uso si antes ha sido escrito, cada escritura requiere un ciclo mayor de lectura-borrado-modificación-escritura, asumiendo que ningún bloque libre adicional está disponible en la SSD (p.e., después de que todos los bloques han sido marcados como grabados al menos parcialmente). El término para este fenómeno es amplificación de escritura.
-      El wear levelling permite a una unidad recolocar sus datos para que las escrituras no estén confinadas a una esquina del chip flash. Las células flash toleran sólo un número limitado de escrituras antes de fallar, así que algunas SSD mueven los datos para repartir la carga de escrituras de manera más equitativa entre todos los bloques en la unidad. Debido a que la unidad no sabe qué bloques están realmente en uso por el sistema de ficheros, cada bloque de datos escrito por la unidad requiere una escritura adicional debido al bloque desplazado.

WearLevelling (Nivelación de uso):

Es un proceso que está diseñado para extender la vida de almacenamiento de dispositivos de estado sólido. Almacenamiento de estado sólido se compone de microchips que almacenan datos en bloques . Cada bloque puede tolerar un número finito de ciclos de programa / borrado antes de convertirse en poco fiables. Por ejemplo, SLC NAND flash se clasifican normalmente en alrededor de 100.000 / programa de ciclos de borrado . De nivelación de desgaste datos arregla para que escritura / borrado ciclos se distribuyen de manera uniforme entre todos los bloques en el dispositivo.