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.