Publicado Shufflecake, un conjunto de herramientas para crear particiones de disco cifradas ocultas

La empresa de auditoría de seguridad Kudelski Security ha publicado una herramienta llamada Shufflecake que le permite crear sistemas de archivos ocultos dispersos en el espacio libre disponible en particiones existentes e indistinguibles de los datos residuales aleatorios. Las particiones se crean de tal manera que sin conocer la clave de acceso, es difícil probar su existencia incluso durante un análisis forense. El código de las utilidades (shufflecake-userland) y del módulo del kernel de Linux (dm-sflc) está escrito en C y distribuido bajo la licencia GPLv3, lo que imposibilita la inclusión del módulo del kernel publicado en el kernel principal de Linux debido a incompatibilidad con la licencia GPLv2 bajo la cual se suministra el kernel.

El proyecto se posiciona como una solución más avanzada que Truecrypt y Veracrypt para ocultar datos que requieren protección, que tiene soporte nativo para la plataforma Linux y permite colocar hasta 15 particiones ocultas en el dispositivo, anidadas una dentro de otra para confundir el análisis. de su existencia. Si el uso de Shufflecake en sí no es un secreto, como se puede juzgar, por ejemplo, por la presencia de las utilidades correspondientes en el sistema, entonces no se puede determinar el número total de particiones ocultas creadas. Las particiones ocultas creadas se pueden formatear a discreción del usuario para acomodar cualquier sistema de archivos, por ejemplo, ext4, xfs o btrfs. Cada partición se trata como un dispositivo de bloque virtual independiente con su propia clave de desbloqueo.

Para confundir los rastros, se propone utilizar el modelo de comportamiento de "negación plausible", cuya esencia es que los datos valiosos se ocultan como capas adicionales en secciones cifradas con datos menos valiosos, formando una especie de jerarquía oculta de secciones. En caso de presión, el propietario del dispositivo puede revelar la clave de la partición cifrada, pero otras particiones (hasta 15 niveles anidados) pueden estar ocultas en esta partición, y determinar su presencia y demostrar su existencia es problemático.

La ocultación se logra construyendo cada partición como un conjunto de porciones cifradas colocadas en posiciones aleatorias en el dispositivo de almacenamiento. Cada segmento se crea dinámicamente cuando se necesita espacio de almacenamiento adicional en la partición. Para dificultar el análisis, se alternan porciones de diferentes secciones, es decir, Las secciones de Shufflecake no están vinculadas a regiones contiguas y las porciones de todas las secciones se mezclan. La información sobre los sectores usados ​​y libres se almacena en un mapa de ubicación asociado con cada partición, al que se hace referencia mediante un encabezado cifrado. Las tarjetas y el encabezado están cifrados y, sin conocer la clave de acceso, no se pueden distinguir de los datos aleatorios.

El encabezado se divide en espacios, cada uno de los cuales define su propia sección y sectores asociados. Las ranuras en el encabezado están apiladas y vinculadas de forma recursiva: la ranura actual contiene la clave para descifrar los parámetros de la sección anterior en la jerarquía (la menos oculta), lo que permite usar una contraseña para descifrar todas las secciones menos ocultas asociadas con la sección seleccionada. Cada partición menos oculta trata las porciones de particiones anidadas como libres.

De forma predeterminada, todas las subsecciones de Shufflecake tienen el mismo tamaño visible que la sección de nivel superior. Por ejemplo, si hay tres particiones en un dispositivo de 1 GB, cada una de ellas será visible para el sistema como una partición de 1 GB y el espacio total disponible en disco se compartirá entre todas las particiones, si el tamaño total de los datos almacenados excede el tamaño real del dispositivo, se iniciará y se generará un error de E/S.

Las secciones anidadas que no están abiertas no participan en la asignación de espacio, es decir. un intento de llenar una partición de nivel superior dará como resultado que los datos se destruyan en particiones anidadas, pero no permitirá revelar su presencia mediante el análisis del tamaño de los datos que se pueden colocar en la partición antes de que comience el error (no Se supone que las particiones superiores contienen datos inmutables para distraer la atención y nunca no se utilizan por separado, y el trabajo regular siempre se realiza con la sección anidada más reciente, el esquema en sí implica que es más importante mantener el secreto de la existencia de datos que perderlos).

De hecho, siempre se crean 15 particiones de Shufflecake: la contraseña de usuario se adjunta a las particiones utilizadas y las particiones no utilizadas reciben una contraseña generada aleatoriamente (es imposible saber cuántas particiones se utilizan realmente). Cuando se inicializan las particiones de Shufflecake, el disco, la partición o el dispositivo de bloque virtual asignado para su ubicación se llena con datos aleatorios, lo que hace imposible identificar los metadatos y datos de Shufflecake en el contexto general.

La implementación de Shufflecake tiene un rendimiento bastante alto, pero debido a la presencia de sobrecarga, su rendimiento es aproximadamente dos veces más lento en comparación con el cifrado de disco basado en el subsistema LUKS. El uso de Shufflecake también genera costos adicionales de RAM y espacio en disco para almacenar datos de servicio. El consumo de memoria se estima en 60 MB por partición y el espacio en disco en el 1% del tamaño total. A modo de comparación, la técnica WORAM, de propósito similar, provoca una desaceleración de 5 a 200 veces con una pérdida del 75% de espacio utilizable en el disco.

El kit de herramientas y el módulo del kernel solo se han probado en Debian y Ubuntu con los kernels 5.13 y 5.15 (compatibles con Ubuntu 22.04). Cabe señalar que el proyecto aún debe considerarse como un prototipo funcional, que no debe usarse para almacenar datos importantes. En el futuro, planeamos realizar optimizaciones adicionales de rendimiento, confiabilidad y seguridad, además de brindar la capacidad de arrancar desde particiones Shufflecake.

Fuente: opennet.ru

Añadir un comentario