La nivelación de desgaste en unidades flash modernas es un tema muy complejo, y los grandes fabricantes han ideado algoritmos patentados para él, por lo que es difícil dar una respuesta general, pero lo intentaré.
- Todas las unidades flash modernas tienen más espacio flash de lo que se anuncia al sistema operativo. Hay secciones de flash que se usan solo para nivelar el desgaste y reemplazar los sectores defectuosos. No se puede acceder a estos desde la interfaz del sistema operativo a la unidad flash.
- Los bloques son grandes en comparación con los medios giratorios. No es raro que se borren bloques de un par de MB de tamaño.
- Los intentos de nivelación de desgaste para mantener el promedio número de escrituras por bloque igual. Debido a que los modelos estadísticos se utilizan en unidades flash modernas (esperando que los archivos se escriban de forma natural de forma no aleatoria), esto no significa que en el corto plazo, el número de escrituras por bloque será el mismo.
- Algunos controladores de flash comprimen los datos antes de escribirlos en flash porque el controlador es más rápido que el flash. Esto da velocidades de escritura mejoradas en los puntos de referencia. Especialmente si intentas borrar una unidad flash escribiendo un grupo de
shred
bytes en ella.
En consecuencia, no hay ningún punto en el que esté garantizado en que se haya sobrescrito un bloque determinado, pero existe una probabilidad cada vez mayor de ello. Entonces, ¿cómo se gestiona adecuadamente los medios flash para evitar la pérdida de información confidencial ante un adversario determinado?
- Cifre los datos que se almacenan en medios extraíbles de forma segura. Cualquier tipo de medio extraíble debe estar cifrado (si está permitido) en una empresa que trata con datos confidenciales.
- Si necesita asegurarse de que los medios que no estaban encriptados se destruyan más allá de la recuperación, físicamente destruye el dispositivo, incluidos todos los chips flash que contiene. No tengo conocimiento de ninguna técnica forense que funcione en chips flash convertidos en varias piezas.
- Si está tratando con un SSD y no con una unidad flash USB, puede intentar realizar un borrado seguro ATA. Para los principales fabricantes, estos parecen implementarse correctamente.
- Si la unidad flash necesita ser reutilizada, su próxima mejor opción es llenar completamente la unidad con random data multiple veces. En Linux, puede usar la utilidad
dd if=/dev/urandom of=/dev/flashdrive bs=1M
o shred
. %code% es bueno porque puede hacer los múltiples pases por ti. Se requieren múltiples pasadas para aumentar la probabilidad de sobrescribir los sectores reservados para la nivelación del desgaste.