Publicouse Shufflecake, un conxunto de ferramentas para crear particións de disco cifradas ocultas

A empresa de auditoría de seguridade Kudelski Security publicou unha ferramenta chamada Shufflecake que permite crear sistemas de ficheiros ocultos espallados polo espazo libre dispoñible nas particións existentes e indistinguibles dos datos residuais aleatorios. As particións créanse de tal forma que sen coñecer a clave de acceso é difícil probar a súa existencia mesmo cando se realizan análises forenses. O código das utilidades (shufflecake-userland) e do módulo do núcleo de Linux (dm-sflc) está escrito en C e distribúese baixo a licenza GPLv3, o que fai imposible incluír o módulo do núcleo publicado no núcleo principal de Linux debido á incompatibilidade con a licenza GPLv2 baixo a cal se proporciona o núcleo .

O proxecto sitúase como unha solución máis avanzada que Truecrypt e Veracrypt para ocultar datos que requiren protección, que ten soporte nativo para a plataforma Linux e permite colocar ata 15 particións ocultas no dispositivo, aniñadas unhas dentro das outras para confundir a análise. da súa existencia. Se o uso de Shufflecake non é un segredo, como se pode xulgar, por exemplo, pola presenza das utilidades correspondentes no sistema, non se pode determinar o número total de particións ocultas creadas. As particións ocultas creadas pódense formatar segundo o criterio do usuario para acomodar calquera sistema de ficheiros, por exemplo, ext4, xfs ou btrfs. Cada partición trátase como un dispositivo de bloque virtual separado coa súa propia chave de desbloqueo.

Para confundir as trazas, proponse empregar o modelo de comportamento de "negación plausible", cuxa esencia é que os datos valiosos se ocultan como capas adicionais en seccións cifradas con datos menos valiosos, formando unha especie de xerarquía oculta de seccións. En caso de presión, o propietario do dispositivo pode revelar a clave da partición cifrada, pero outras particións (ata 15 niveis aniñados) poden estar ocultas nesta partición e determinar a súa presenza e probar a súa existencia é problemático.

A ocultación conséguese construíndo cada partición como un conxunto de porcións cifradas colocadas en posicións aleatorias no dispositivo de almacenamento. Cada porción créase de forma dinámica cando se necesita espazo de almacenamento adicional na partición. Para dificultar a análise, altérnanse porcións de diferentes seccións, é dicir. As seccións Shufflecake non están ligadas a rexións contiguas e as porcións de todas as seccións mestúranse. A información sobre porcións usadas e libres gárdase nun mapa de localización asociado con cada partición, ao que se fai referencia mediante unha cabeceira cifrada. As tarxetas e a cabeceira están cifradas e, sen coñecer a clave de acceso, son indistinguibles dos datos aleatorios.

A cabeceira divídese en slots, cada un dos cales define a súa propia sección e as franxas asociadas. As ranuras da cabeceira están apiladas e enlazadas recursivamente: a ranura actual contén a chave para descifrar os parámetros da sección anterior da xerarquía (a menos oculta), permitindo que se use un contrasinal para descifrar todas as seccións menos ocultas asociadas con a sección seleccionada. Cada partición menos oculta trata as partes das particións aniñadas como libres.

Por defecto, todas as subseccións de Shufflecake teñen o mesmo tamaño visible que a sección de nivel superior. Por exemplo, se hai tres particións nun dispositivo de 1 GB, cada unha delas será visible para o sistema como unha partición de 1 GB e o espazo total dispoñible no disco compartirase entre todas as particións, se o tamaño total dos datos almacenados supera tamaño real do dispositivo, iniciará un erro de E/S.

As seccións aniñadas que non están abertas non participan na asignación de espazo, é dicir. un intento de encher unha partición de nivel superior provocará que os datos sexan destruídos en particións aniñadas, pero non permitirá revelar a súa presenza mediante a análise do tamaño dos datos que se poden colocar na partición antes de que comece o erro (é asúmese que as particións superiores conteñen datos inmutables para distraer a atención e nunca por separado non se usan, e o traballo regular sempre se realiza coa sección aniñada máis recente, o esquema en si implica que é máis importante manter o segredo da existencia de datos que perder estes datos).

De feito, sempre se crean 15 particións Shufflecake: o contrasinal do usuario está unido ás particións usadas e as particións non utilizadas entréganse cun contrasinal xerado aleatoriamente (é imposible entender cantas particións se usan realmente). Cando se inicializan as particións de Shufflecake, o disco, a partición ou o dispositivo de bloque virtual asignado para a súa colocación énchese con datos aleatorios, o que fai imposible identificar os metadatos e os datos de Shufflecake nun contexto xeral.

A implementación de Shufflecake ten un rendemento bastante alto, pero debido á presenza de sobrecarga, o rendemento é aproximadamente o dobre que o cifrado de disco baseado no subsistema LUKS. Usar Shufflecake tamén supón custos adicionais para a memoria RAM e o espazo no disco para almacenar os datos do servizo. O consumo de memoria estímase en 60 MB por partición e o espazo no disco nun 1% do tamaño total. A modo de comparación, a técnica WORAM, de propósito similar, leva a unha desaceleración de 5 a 200 veces cunha perda do 75% de espazo utilizable en disco.

O kit de ferramentas e o módulo do núcleo só se probaron en Debian e Ubuntu cos núcleos 5.13 e 5.15 (compatible con Ubuntu 22.04). Nótase que o proxecto aínda debe considerarse como un prototipo de traballo, que non debe usarse para almacenar datos importantes. No futuro, pensamos facer optimizacións adicionais para o rendemento, a fiabilidade e a seguridade, así como ofrecer a posibilidade de iniciar desde particións Shufflecake.

Fonte: opennet.ru

Engadir un comentario