Objavljen Shufflecake, komplet orodij za ustvarjanje skritih šifriranih diskovnih particij

Podjetje za varnostno revizijo Kudelski Security je objavilo orodje, imenovano Shufflecake, ki vam omogoča ustvarjanje skritih datotečnih sistemov, razpršenih po razpoložljivem prostem prostoru na obstoječih particijah in jih ni mogoče razlikovati od naključnih preostalih podatkov. Particije so ustvarjene tako, da je brez poznavanja ključa za dostop težko dokazati njihov obstoj tudi pri izvajanju forenzične analize. Koda pripomočkov (shufflecake-userland) in modula jedra Linuxa (dm-sflc) je napisana v C in se distribuira pod licenco GPLv3, zaradi česar objavljenega modula jedra ni mogoče vključiti v glavno jedro Linuxa zaradi nezdružljivosti z licenco GPLv2, pod katero je dobavljeno jedro.

Projekt je postavljen kot naprednejša rešitev kot Truecrypt in Veracrypt za skrivanje podatkov, ki zahtevajo zaščito, ki ima izvorno podporo za platformo Linux in vam omogoča, da na napravo postavite do 15 skritih particij, ugnezdenih ena v drugo, da zmedete razčlenjevanje njihovega obstoja. Če sama uporaba Shufflecake ni skrivnost, kot je mogoče soditi na primer po prisotnosti ustreznih pripomočkov v sistemu, potem skupnega števila ustvarjenih skritih particij ni mogoče določiti. Ustvarjene skrite particije je mogoče formatirati po lastni presoji uporabnika, da se prilagodi kateremu koli datotečnemu sistemu, na primer ext4, xfs ali btrfs. Vsaka particija se obravnava kot ločena virtualna blokovna naprava z lastnim ključem za odklepanje.

Da bi zamenjali sledi, je predlagana uporaba vedenjskega modela "verjetne zavrnitve", katerega bistvo je, da so dragoceni podatki skriti kot dodatni sloji v šifriranih odsekih z manj dragocenimi podatki, ki tvorijo nekakšno skrito hierarhijo odsekov. V primeru pritiska lahko lastnik naprave razkrije ključ do šifrirane particije, vendar so lahko v tej particiji skrite druge particije (do 15 ugnezdenih nivojev), ugotavljanje njihove prisotnosti in dokazovanje obstoja pa je problematično.

Skrivanje je doseženo tako, da se vsaka particija izdela kot niz šifriranih rezin, postavljenih na naključne položaje v napravi za shranjevanje. Vsaka rezina se ustvari dinamično, ko je na particiji potreben dodaten prostor za shranjevanje. Za otežitev analize se izmenjujejo rezine različnih odsekov, tj. Odseki Shufflecakea niso povezani s sosednjimi regijami in rezine vseh odsekov so pomešane. Informacije o uporabljenih in prostih rezinah so shranjene v zemljevidu lokacije, povezanem z vsako particijo, na katero se sklicuje šifrirana glava. Kartice in glava so šifrirani in jih brez poznavanja ključa za dostop ni mogoče razlikovati od naključnih podatkov.

Glava je razdeljena na reže, od katerih vsaka definira svoj odsek in povezane rezine. Reže v glavi so zložene in rekurzivno povezane – trenutna reža vsebuje ključ za dešifriranje parametrov prejšnjega odseka v hierarhiji (manj skritega), kar omogoča uporabo enega gesla za dešifriranje vseh manj skritih odsekov, povezanih z izbranem razdelku. Vsaka manj skrita particija obravnava rezine ugnezdenih particij kot proste.

Privzeto imajo vsi pododdelki Shufflecake enako vidno velikost kot razdelek na najvišji ravni. Na primer, če so na napravi z 1 GB tri particije, bo vsaka od njih vidna sistemu kot particija z 1 GB in skupni razpoložljivi prostor na disku bo razdeljen med vse particije – če skupna velikost shranjenih podatkov presega dejanske velikosti naprave, se bo začela I/O napaka.

Ugnezdeni razdelki, ki niso odprti, ne sodelujejo pri dodeljevanju prostora, tj. poskus zapolnitve particije najvišje ravni povzroči, da bodo podatki razrezani v ugnezdenih particijah, vendar ne bo mogoče razkriti njihove prisotnosti z analizo velikosti podatkov, ki jih je mogoče postaviti v particijo, preden se začne napaka (to Predpostavlja se, da zgornje particije vsebujejo nespremenljive podatke za odvračanje pozornosti in se nikoli ne uporabljajo ločeno, redno delo pa se vedno izvaja z najnovejšim ugnezdenim odsekom, sama shema pomeni, da je bolj pomembno ohraniti skrivnost obstoja podatkov, kot da bi te podatke izgubili).

Pravzaprav se vedno ustvari 15 particij Shufflecake - uporabniško geslo je priloženo uporabljenim particijam, neuporabljene particije pa so opremljene z naključno ustvarjenim geslom (nemogoče je razumeti, koliko particij je dejansko uporabljenih). Ko so particije Shufflecake inicializirane, je disk, particija ali virtualna blokovna naprava, dodeljena za njihovo namestitev, napolnjena z naključnimi podatki, zaradi česar je nemogoče prepoznati metapodatke in podatke Shufflecake na splošnem ozadju.

Izvedba Shufflecake ima precej visoko zmogljivost, vendar je zaradi prisotnosti režijskih stroškov približno dvakrat počasnejša v primerjavi s šifriranjem diska, ki temelji na podsistemu LUKS. Uporaba Shufflecake povzroča tudi dodatne stroške za RAM in prostor na disku za shranjevanje servisnih podatkov. Poraba pomnilnika je ocenjena na 60 MB na particijo, prostor na disku pa na 1 % celotne velikosti. Za primerjavo, tehnika WORAM, ki ima podoben namen, vodi do 5- do 200-kratne upočasnitve s 75-odstotno izgubo uporabnega prostora na disku.

Komplet orodij in modul jedra sta bila preizkušena samo na Debianu in Ubuntuju z jedri 5.13 in 5.15 (podprto na Ubuntu 22.04). Opozoriti je treba, da je treba projekt še vedno obravnavati kot delujoč prototip, ki se ne sme uporabljati za shranjevanje pomembnih podatkov. V prihodnosti nameravamo izvesti dodatne optimizacije za zmogljivost, zanesljivost in varnost ter zagotoviti možnost zagona s particij Shufflecake.

Vir: opennet.ru

Dodaj komentar