Publicēts Shufflecake — ​​rīku komplekts slēptu šifrētu diska nodalījumu izveidošanai

Drošības audita uzņēmums Kudelski Security ir publicējis rīku Shufflecake, kas ļauj izveidot slēptās failu sistēmas, kas ir izkaisītas pa pieejamo brīvo vietu esošajos nodalījumos un nav atšķiramas no nejaušiem atlikušajiem datiem. Starpsienas ir izveidotas tā, ka, nezinot piekļuves atslēgu, to esamību ir grūti pierādīt pat veicot kriminālistikas analīzi. Utilītu (shufflecake-userland) un Linux kodola moduļa (dm-sflc) kods ir rakstīts C valodā un tiek izplatīts saskaņā ar GPLv3 licenci, kas padara neiespējamu publicētā kodola moduļa iekļaušanu galvenajā Linux kodolā nesaderības ar GPLv2 licence, saskaņā ar kuru tiek piegādāts kodols.

Projekts ir pozicionēts kā uzlabotāks risinājums nekā Truecrypt un Veracrypt, lai slēptu datus, kuriem nepieciešama aizsardzība, kam ir vietējais Linux platformas atbalsts un kas ļauj ierīcē ievietot līdz pat 15 slēptiem nodalījumiem, kas ir ligzdoti viens otrā, lai sajauktu parsēšanu. par to esamību. Ja pašas Shufflecake izmantošana nav noslēpums, kā to var spriest, piemēram, pēc atbilstošo utilītu klātbūtnes sistēmā, tad izveidoto slēpto nodalījumu kopējo skaitu nevar noteikt. Izveidotos slēptos nodalījumus var formatēt pēc lietotāja ieskatiem, lai tie atbilstu jebkurai failu sistēmai, piemēram, ext4, xfs vai btrfs. Katrs nodalījums tiek uzskatīts par atsevišķu virtuālo bloku ierīci ar savu atbloķēšanas atslēgu.

Izsekojumu mulsināšanai tiek piedāvāts izmantot “ticamā noliedzamības” uzvedības modeli, kura būtība ir tāda, ka vērtīgie dati tiek paslēpti kā papildu slāņi šifrētās sadaļās ar mazāk vērtīgiem datiem, veidojot sava veida slēptu sadaļu hierarhiju. Spiediena gadījumā ierīces īpašnieks var atklāt šifrētā nodalījuma atslēgu, taču šajā nodalījumā var būt paslēpti citi nodalījumi (līdz 15 ligzdotiem līmeņiem), kuru klātbūtnes noteikšana un esamības pierādīšana ir problemātiska.

Slēpšana tiek panākta, konstruējot katru nodalījumu kā šifrētu slāņu kopu, kas atrodas nejaušās pozīcijās uzglabāšanas ierīcē. Katra sadaļa tiek izveidota dinamiski, kad nodalījumā ir nepieciešama papildu krātuves vieta. Lai analīzi padarītu grūtāku, tiek mainītas dažādu sadaļu šķēles, t.i. Shufflecake sadaļas nav saistītas ar blakus esošajiem reģioniem, un šķēles no visām sadaļām ir sajauktas. Informācija par izmantotajām un brīvajām daļām tiek glabāta atrašanās vietas kartē, kas saistīta ar katru nodalījumu, uz kuru atsaucas ar šifrētu galveni. Kartes un galvene ir šifrētas, un, nezinot piekļuves atslēgu, tās nevar atšķirt no nejaušiem datiem.

Galvene ir sadalīta slotos, no kurām katra nosaka savu sadaļu un saistītās šķēles. Galvenes sloti ir sakrauti un rekursīvi saistīti - pašreizējā slotā ir atslēga, lai atšifrētu iepriekšējās sadaļas parametrus hierarhijā (mazāk slēptā), ļaujot izmantot vienu paroli, lai atšifrētu visas mazāk slēptās sadaļas, kas saistītas ar atlasīto sadaļu. Katrs mazāk slēptais nodalījums ligzdoto nodalījumu daļas uzskata par brīvām.

Pēc noklusējuma visām Shufflecake apakšsadaļām ir tāds pats redzamais izmērs kā augstākā līmeņa sadaļai. Piemēram, ja 1 GB ierīcē ir trīs nodalījumi, katrs no tiem sistēmai būs redzams kā 1 GB nodalījums un kopējā pieejamā diska vieta tiks sadalīta starp visiem nodalījumiem - ja kopējais saglabāto datu apjoms pārsniedz ierīces faktiskā izmēra, tā sāksies, tiek izmesta I/O kļūda.

Nested sadaļas, kas nav atvērtas, nepiedalās telpas piešķiršanā, t.i. Mēģinot aizpildīt augstākā līmeņa nodalījumu, dati tiks sasmalcināti ligzdotajos nodalījumos, taču nebūs iespējams atklāt to klātbūtni, analizējot to datu lielumu, kurus var ievietot nodalījumā pirms kļūdas sākuma (tas tiek pieņemts, ka augšējās starpsienās ir nemainīgi dati, lai novērstu uzmanību, un tie nekad netiek izmantoti atsevišķi, un vienmēr tiek veikts regulārs darbs ar jaunāko ligzdoto sadaļu, pati shēma nozīmē, ka svarīgāk ir saglabāt noslēpumu par datus, nekā pazaudēt šos datus).

Faktiski vienmēr tiek izveidoti 15 Shufflecake nodalījumi - lietotāja parole tiek pievienota izmantotajām nodalījumiem, un neizmantotās nodalījumi tiek piegādāti ar nejauši ģenerētu paroli (nav iespējams saprast, cik nodalījumu faktiski tiek izmantots). Inicializējot Shufflecake nodalījumus, disks, nodalījums vai virtuālā bloka ierīce, kas piešķirta to izvietošanai, tiek aizpildīta ar nejaušiem datiem, kas padara neiespējamu Shufflecake metadatu un datu identificēšanu uz vispārējā fona.

Shufflecake ieviešanai ir diezgan augsta veiktspēja, taču pieskaitāmās izmaksas dēļ tās caurlaidspēja ir aptuveni divas reizes lēnāka salīdzinājumā ar diska šifrēšanu, kuras pamatā ir LUKS apakšsistēma. Shufflecake izmantošana rada arī papildu izmaksas par operatīvo atmiņu un diska vietu pakalpojumu datu glabāšanai. Atmiņas patēriņš tiek lēsts 60 MB uz nodalījumu, un diska vietas apjoms ir 1% no kopējā lieluma. Salīdzinājumam, WORAM tehnika, kuras mērķis ir līdzīgs, palēninās no 5 līdz 200 reizēm, zaudējot 75% izmantojamās diska vietas.

Rīku komplekts un kodola modulis ir pārbaudīti tikai Debian un Ubuntu ar kodoliem 5.13 un 5.15 (atbalstīts Ubuntu 22.04). Tiek atzīmēts, ka projekts joprojām uzskatāms par strādājošu prototipu, kuru nevajadzētu izmantot svarīgu datu glabāšanai. Nākotnē mēs plānojam veikt papildu optimizāciju veiktspējai, uzticamībai un drošībai, kā arī nodrošināt iespēju palaist no Shufflecake nodalījumiem.

Avots: opennet.ru

Pievieno komentāru