Bol zverejnený Shufflecake, nástroj na vytváranie skrytých šifrovaných oddielov na disku.

Spoločnosť Kudelski Security, ktorá sa špecializuje na bezpečnostné audity, publikovala nástroj Shufflecake, ktorý umožňuje vytvárať skryté súborové systémy rozložené v existujúcom voľnom priestore na existujúcich oddieloch a neodlišujúce sa od náhodných zvyškových údajov. Oddiely sú vytvárané tak, že bez znalosti prístupového kľúča je problematické dokázať ich existenciu aj pri forenznej analýze. Kód utilít (shufflecake-userland) a modulu jadra Linux (dm-sflc) je napísaný v jazyku C a šíri sa pod licenciou GPLv3, čo znemožňuje zaradenie publikovaného modulu jadra do základného zloženia jadra Linux kvôli nekompatibilite s licenciou GPLv2, pod ktorou je dodávané jadro.

Projekt sa prezentuje ako dokonalejšie riešenie na skrývanie údajov vyžadujúcich ochranu jako Truecrypt a Veracrypt, ktoré má natívnu podporu pre Linux a umožňuje umiestniť až 15 skrytých oddielov na zariadení, navzájom vložených na zamieňanie ich existencia. Ak samotné použitie Shufflecake nie je tajomstvom, čo sa dá usúdiť napríklad z prítomnosti príslušných utilít v systéme, celkový počet vytvorených skrytých oddielov je nemožné určiť. Vytvárané skryté oddiely môžu byť podľa rozhodnutia používateľa formátované pre umiestnenie akýchkoľvek FS, napríklad ext4, xfs alebo btrfs. Každý oddiel je spracovávaný ako samostatné virtuálne blokové zariadenie so svojím vlastným odblokovacím kľúčom.

Na zamieňanie stôp sa odporúča používať model správania „plausibilné popieranie“, ktorého podstatou je, že cenné údaje sú skryté ako dodatočné vrstvy v šifrovaných oddieloch s menej cennými údajmi, čím vytvárajú svojský skrytý hierarchický systém oddielov. V prípade tlaku môže majiteľ zariadenia odhaliť kľúč k šifrovanému oddielu, ale v tomto oddiele sa môžu skrývať ďalšie oddiely (až do 15 vložených úrovní), a určiť ich existenciu a dokázať ich existenciu je problematické.

Skrytie je zabezpečené prostredníctvom vytvorenia každej sekcie ako súboru šifrovaných fragmentov, umiestnených na náhodných pozíciách na úložnom zariadení. Každý fragment je dynamicky vytvorený v momente, keď je v sekcii potrebný dodatočný priestor na ukladanie. Pre zťažovanie analýzy sa fragmenty rôznych sekcií striedajú, t.j. sekcie Shufflecake nie sú spojené s kontinuálnymi oblasťami a fragmenty všetkých sekcií sú pomiešané. Informácie o používaných a voľných fragmentoch sú uložené v mape umiestnenia priradenej každej sekcii, na ktorú odkazuje zašifrovaný hlavička. Mapy a hlavička sú zašifrované a bez znalosti prístupového kľúča sú neodlíšiteľné od náhodných údajov.

Hlavička je rozdelená na sloty, z ktorých každý definuje svoju sekciu a s ňou súvisiace fragmenty. Sloty v hlavičke sú umiestnené v zásobníkovom poradí a rekursívne prepojené — aktuálny slot obsahuje kľúč na dešifrovanie parametrov predchádzajúcej sekcie v hierarchii (menej skrytej), čo umožňuje použiť jedno heslo na dešifrovanie všetkých menej skrytých sekcií súvisiacich s vybranou sekciou. Každá menej skrytá sekcia považuje fragmenty vnorených sekcií za voľné.

Predvolene majú všetky vnorené sekcie Shufflecake rovnakú viditeľnú veľkosť ako sekcia najvyššej úrovne. Napríklad, ak sú na zariadení s veľkosťou 1 GB zapojené tri sekcie, každá z nich bude pre systém viditeľná ako sekcia s veľkosťou 1 GB a celkový dostupný diskový priestor bude spolu zdieľaný vo všetkých sekciách — ak celková veľkosť uložených údajov prekročí skutočnú veľkosť zariadenia, začne sa zobrazovať chyba vstupu/výstupu.

Nepoužité vnorené oddiely sa nezapájajú do rozdelenia miesta, t.j. pokus o zaplnenie nadriadeného oddielu povedie k prepisovaniu údajov vo vnorených oddieloch, ale neumožní odhaliť ich existenciu prostredníctvom analýzy veľkosti dát, ktoré sa podarí umiestniť do oddielu pred začiatkom výstupu chyby (predpokladá sa, že nadriadené oddiely obsahujú nemenné údaje na odvrátenie pozornosti a nikdy nie sú používané samostatne, pričom bežná práca sa vždy vykonáva s najnovším vnoreným oddielom; schéma naznačuje, že je dôležitejšie zachovať tajomstvo existencie údajov, než o ne prísť).

V praxi sa vždy vytvára 15 oddielov Shufflecake — k používaniu oddielov je viazané heslo používateľa, zatiaľ čo nepoužívané oddiely sú vybavené náhodne generovaným heslom (nie je možné zistiť, koľko skutočne oddielov sa používa). Pri inicializácii oddielov Shufflecake sa vyhradený disk, oddiel alebo virtuálne blokové zariadenie zaplní náhodnými údajmi, čo neumožňuje identifikovať v pozadí metadáta a údaje Shufflecake.

Implementácia Shufflecake má dostatočne vysoký výkon, ale kvôli prítomnosti režijných nákladov zhruba dvakrát zaostáva v priepustnosti v porovnaní so šifrovaním diskov založeným na subsystéme LUKS. Použitie Shufflecake taktiež vedie k ďalším nákladom na operačnú pamäť a miesto na ukladanie služby údajov na disku. Náklady na pamäť sú odhadované na 60 MB pre každý oddiel, a miesto na disku — na 1% z celkovej veľkosti. Pre porovnanie, podobná technika WORAM vedie k spomaleniu od 5 do 200-krát s 75% stratou užitočného miesta na disku.

Nástroje a modul jadra boli testované iba pri prevádzke v Debiane a Ubunte s kernely 5.13 a 5.15 (podporuje sa prevádzka v Ubunte 22.04). Je potrebné poznamenať, že projekt sa zatiaľ považuje za pracovný prototyp, ktorý nie je vhodný na ukladanie dôležitých údajov. V budúcnosti sa plánuje ďalšia optimalizácia výkonu, spoľahlivosti a bezpečnosti, ako aj zabezpečenie možnosti bootovania z oddielov Shufflecake.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster