Shufflecake, alat za stvaranje skrivenih volumena

shufflecake

Shufflecake je alat za Linux koji omogućuje stvaranje više skrivenih svezaka na uređaju za pohranu na takav način da je vrlo teško, čak i pod forenzičkim pregledom, dokazati postojanje takvih svezaka.

Tvrtka za reviziju sigurnosti Kudelski Security predstavio je set alata Shufflecake, koji vam omogućuje stvaranje skrivenih datotečnih sustava koji su raspoređeni preko slobodnog prostora dostupnog na postojećim particijama i koji se ne mogu razlikovati od nasumičnih preostalih podataka. Dijelovi su kreirani na način da je bez poznavanja pristupnog ključa problematično dokazati njegovo postojanje čak i pri provođenju forenzike.

Projekt pozicioniran je kao naprednije rješenje od Truecrypta i Veracrypta za skrivanje osjetljivih podataka, koji ima izvornu podršku za Linux platformu i omogućuje postavljanje do 15 skrivenih particija na uređaj, ugniježđenih jedna u drugu kako bi se zamaglila analiza njihovog postojanja.

Stvorene skrivene particije, prema nahođenju korisnika, može se formatirati da odgovara bilo kojem datotečnom sustavu, na primjer, ext4, xfs ili btrfs. Svaka se particija tretira kao zaseban virtualni blok uređaj s vlastitim ključem za otključavanje.

Kako bi se prikrili tragovi, predlaže se model ponašanja «uvjerljive poricanja», čija je suština da se vrijedni podaci skrivaju kao dodatni slojevi u šifriranim dijelovima s manje vrijednim podacima, tvoreći svojevrsnu skrivenu hijerarhiju odjeljaka. U slučaju pritiska, vlasnik uređaja može otkriti ključ kriptiranog odjeljka, ali drugi odjeljci (do 15 ugniježđenih razina) mogu biti skriveni u ovom dijelu, te je problematično utvrditi njihovu prisutnost i dokazati njihovo postojanje.

Shufflecake i kernel modul testirano samo na Debianu i Ubuntuu s jezgrama 5.13 i 5.15 (podržan je Ubuntu 22.04). Treba napomenuti da projekt bi se još uvijek trebao smatrati radnim prototipom, koji se ne bi trebao koristiti za pohranu važnih podataka.

U budućnosti planiramo napraviti dodatne optimizacije za izvedbu, pouzdanost i sigurnost, kao i omogućiti mogućnost pokretanja sa Shufflecake particija.

O Shufflecakeu

prikrivanje postiže se formiranjem svake particije kao skupa šifriranih segmenata postavljene na nasumične položaje na uređaju za pohranu. Svaka se kriška dinamički stvara kada particiji treba dodatni prostor za pohranu. Kako bi se analiza komplicirala, rezovi iz različitih dijelova su isprepleteni.

Odjeljci Shufflecakea nisu povezani sa susjednim regijama, a dijelovi iz svih odjeljaka pomiješani su zajedno. Informacije o iskorištenim i besplatnim dijelovima pohranjuju se u lokacijsku kartu priloženu uz svaki odjeljak, na koju upućuje šifrirano zaglavlje. Kartice i zaglavlje su šifrirani i, bez poznavanja lozinke, ne mogu se razlikovati od nasumičnih podataka.

Zaglavlje je podijeljeno na razmake, svaki od njih definira svoj odjeljak i njemu pridružene sektore. Utori u zaglavlju složeni su i rekurzivno povezani: trenutni utor sadrži ključ za dešifriranje parametara prethodnog (najmanje skrivenog) odjeljka u hijerarhiji, dopuštajući korištenje jedne lozinke za dešifriranje svih manje skrivenih odjeljaka povezanih s zaglavljem odabrano. Svaki manje skriveni odjeljak tretira dijelove ugniježđenih odjeljaka kao slobodne.

Prema zadanim postavkama, svi ugniježđeni dijelovi Shufflecakea imaju istu vidljivu veličinu nego odjeljak najviše razine. Na primjer, ako se na uređaju od 1 GB koriste tri particije, svaka će particija biti vidljiva sustavu kao particija od 1 GB, a ukupni raspoloživi prostor na disku dijelit će se među svim particijama, ako ukupno spremljena količina podataka premašuje stvarne veličine uređaja, počet će generirati I/O pogrešku.

Neotvoreni ugniježđeni dijelovi ne sudjeluju u dodjeli prostora, tj. pokušaj popunjavanja odjeljka najviše razine prebrisat će podatke u ugniježđenim odjeljcima, ali neće otkriti svoju prisutnost analizom veličine podataka koji se mogu smjestiti u odjeljak prije nego što se generira pogreška (viši odjeljci trebali bi sadržavati nepromjenjive podatke) podaci odvraćanjem pažnje i nikad se zasebno ne koriste, a redoviti rad uvijek se obavlja s novijim ugniježđenim odjelom, sama shema implicira da glavno je čuvati tajnost postojanja podataka, čak i po cijenu gubitka podataka).

Provedba Shufflecake ima prilično visok prinos, ali zbog prisutnosti režijskih troškova ima dva puta niže performanse u usporedbi s disk enkripcijom temeljenom na LUKS podsustavu. Korištenje Shufflecakea također izaziva dodatne troškove za RAM i prostor za pohranjivanje servisnih podataka na disk. Troškovi memorije procjenjuju se na 60 MB po particiji a prostor na disku procjenjuje se na 1% ukupne veličine. Za usporedbu, WORAM tehnika slične namjene dovodi do usporavanja 5-200x uz 75% gubitka iskoristivog prostora na disku.

Kod za uslužne programe (shufflecake-userland) i Linux kernel modul (dm-sflc) napisan je u C-u i objavljen pod GPLv3 licencom, što onemogućuje uključivanje objavljenog kernel modula u glavnu Linux kernel. zbog nekompatibilnosti pod GPLv2 licencom pod kojom se kernel isporučuje.

Ako ste zainteresirani za više informacija o tome, možete pogledati detalje U sljedećem linku.