Udgivet Shufflecake, et værktøjssæt til at skabe skjulte krypterede diskpartitioner

Sikkerhedsrevisionsfirmaet Kudelski Security har udgivet et værktøj kaldet Shufflecake, der giver dig mulighed for at oprette skjulte filsystemer spredt ud over tilgængelig ledig plads på eksisterende partitioner og ikke kan skelnes fra tilfældige resterende data. Skillevægge er oprettet på en sådan måde, at det uden at kende adgangsnøglen er svært at bevise deres eksistens, selv når der udføres retsmedicinske analyser. Koden til hjælpeprogrammerne (shufflecake-userland) og Linux-kernemodulet (dm-sflc) er skrevet i C og distribueret under GPLv3-licensen, hvilket gør det umuligt at inkludere det offentliggjorte kernemodul i Linux-hovedkernen på grund af inkompatibilitet med GPLv2-licensen, som kernen leveres under.

Projektet er placeret som en mere avanceret løsning end Truecrypt og Veracrypt til at skjule data, der kræver beskyttelse, som har indbygget understøttelse af Linux-platformen og giver dig mulighed for at placere op til 15 skjulte partitioner på enheden, indlejret inde i hinanden for at forvirre parsingen af deres eksistens. Hvis brugen af ​​Shufflecake i sig selv ikke er en hemmelighed, som det for eksempel kan bedømmes ved tilstedeværelsen af ​​de tilsvarende hjælpeprogrammer i systemet, kan det samlede antal skjulte partitioner, der er oprettet, ikke bestemmes. De oprettede skjulte partitioner kan formateres efter brugerens skøn, så de kan rumme ethvert filsystem, for eksempel ext4, xfs eller btrfs. Hver partition behandles som en separat virtuel blokenhed med sin egen oplåsningsnøgle.

For at forvirre sporene foreslås det at bruge adfærdsmodellen "plausible deniability", hvis essens er, at værdifulde data er skjult som yderligere lag i krypterede sektioner med mindre værdifulde data, der danner en slags skjult hierarki af sektioner. I tilfælde af pres kan ejeren af ​​enheden afsløre nøglen til den krypterede partition, men andre partitioner (op til 15 indlejrede niveauer) kan være skjult i denne partition, og det er problematisk at bestemme deres tilstedeværelse og bevise deres eksistens.

Skjulning opnås ved at konstruere hver partition som et sæt krypterede skiver placeret på tilfældige positioner på lagerenheden. Hvert udsnit oprettes dynamisk, når der er behov for yderligere lagerplads i partitionen. For at gøre analysen sværere, skiftes skiver af forskellige sektioner, dvs. Shufflecake-sektioner er ikke knyttet til sammenhængende områder, og skiver fra alle sektioner blandes. Oplysninger om brugte og gratis udsnit gemmes i et lokationskort, der er knyttet til hver partition, som refereres til af en krypteret overskrift. Kortene og headeren er krypteret og uden at kende adgangsnøglen kan de ikke skelnes fra tilfældige data.

Headeren er opdelt i slots, som hver definerer sin egen sektion og tilhørende udsnit. Slots i headeren er stablet og rekursivt forbundet - den aktuelle slot indeholder nøglen til at dekryptere parametrene i det foregående afsnit i hierarkiet (det mindre skjulte), hvilket gør det muligt at bruge én adgangskode til at dekryptere alle de mindre skjulte sektioner forbundet med det valgte afsnit. Hver mindre skjult partition behandler udsnittene af indlejrede partitioner som gratis.

Som standard har alle Shufflecake-undersektioner den samme synlige størrelse som sektionen på øverste niveau. For eksempel, hvis der er tre partitioner på en 1 GB-enhed, vil hver af dem være synlige for systemet som en 1 GB-partition, og den samlede tilgængelige diskplads vil blive delt mellem alle partitioner - hvis den samlede størrelse af de lagrede data overstiger den faktiske størrelse af enheden, vil det starte en I/O fejl er kastet.

Indlejrede sektioner, der ikke er åbne, deltager ikke i pladstildeling, dvs. et forsøg på at udfylde en partition på topniveau vil resultere i, at data makuleres i indlejrede partitioner, men vil ikke gøre det muligt at afsløre deres tilstedeværelse gennem analyse af størrelsen af ​​de data, der kan placeres i partitionen, før fejlen begynder (det antages, at de øverste partitioner indeholder uforanderlige data for at distrahere opmærksomheden og aldrig separat ikke bruges, og der altid udføres regelmæssigt arbejde med den seneste indlejrede sektion, indebærer selve skemaet, at det er vigtigere at bevare hemmeligheden bag eksistensen af data end at miste disse data).

Faktisk oprettes der altid 15 Shufflecake-partitioner - brugeradgangskoden er knyttet til de brugte partitioner, og de ubrugte partitioner forsynes med et tilfældigt genereret kodeord (det er umuligt at forstå, hvor mange partitioner, der faktisk bruges). Når Shufflecake-partitioner initialiseres, er disken, partitionen eller den virtuelle blokenhed, der er allokeret til deres placering, fyldt med tilfældige data, hvilket gør det umuligt at identificere Shufflecake-metadata og data mod den generelle baggrund.

Shufflecake-implementeringen har ret høj ydeevne, men på grund af tilstedeværelsen af ​​overhead er den cirka dobbelt så langsom i gennemløb sammenlignet med diskkryptering baseret på LUKS-undersystemet. Brug af Shufflecake resulterer også i ekstra omkostninger til RAM og diskplads til lagring af servicedata. Hukommelsesforbrug er estimeret til 60 MB pr. partition og diskplads til 1% af den samlede størrelse. Til sammenligning fører WORAM-teknikken, med lignende formål, til en afmatning på 5 til 200 gange med et tab på 75 % af brugbar diskplads.

Værktøjssættet og kernemodulet er kun blevet testet på Debian og Ubuntu med kernerne 5.13 og 5.15 (understøttet på Ubuntu 22.04). Det bemærkes, at projektet stadig skal betragtes som en fungerende prototype, som ikke skal bruges til at opbevare vigtige data. I fremtiden planlægger vi at foretage yderligere optimeringer for ydeevne, pålidelighed og sikkerhed, samt give mulighed for at starte fra Shufflecake-partitioner.

Kilde: opennet.ru

Tilføj en kommentar