Հրապարակվել է Shufflecake, գործիքակազմ՝ թաքնված գաղտնագրված սկավառակի միջնորմներ ստեղծելու համար

Անվտանգության աուդիտ Kudelski Security ընկերությունը հրապարակել է Shufflecake կոչվող գործիքը, որը թույլ է տալիս ստեղծել թաքնված ֆայլային համակարգեր, որոնք ցրված են առկա միջնորմների առկա ազատ տարածության վրա և չեն տարբերվում պատահական մնացորդային տվյալներից: Միջնորմները ստեղծվում են այնպես, որ առանց մուտքի բանալին իմանալու դժվար է դրանց գոյությունն ապացուցել նույնիսկ դատաբժշկական վերլուծություն կատարելիս։ Կոմունալ ծրագրերի ծածկագիրը (shufflecake-userland) և Linux միջուկի մոդուլը (dm-sflc) գրված է C-ով և տարածվում է GPLv3 լիցենզիայի ներքո, ինչը անհնարին է դարձնում հրապարակված միջուկի մոդուլը ներառել հիմնական Linux միջուկում՝ անհամատեղելիության պատճառով։ GPLv2 լիցենզիան, որով մատակարարվում է միջուկը:

Նախագիծը դիրքավորվում է որպես ավելի առաջադեմ լուծում, քան Truecrypt-ը և Veracrypt-ը՝ պաշտպանություն պահանջող տվյալները թաքցնելու համար, որն ունի Linux պլատֆորմի բնիկ աջակցություն և թույլ է տալիս սարքի վրա տեղադրել մինչև 15 թաքնված միջնորմ՝ միմյանց ներսում՝ վերլուծությունը շփոթեցնելու համար: դրանց գոյության մասին։ Եթե ​​Shufflecake-ի օգտագործումն ինքնին գաղտնիք չէ, ինչպես կարելի է դատել, օրինակ, համակարգում համապատասխան կոմունալ ծառայությունների առկայությամբ, ապա ստեղծված թաքնված միջնապատերի ընդհանուր թիվը հնարավոր չէ որոշել: Ստեղծված թաքնված միջնորմները կարող են ֆորմատավորվել օգտագործողի հայեցողությամբ՝ ցանկացած ֆայլային համակարգ տեղավորելու համար, օրինակ՝ ext4, xfs կամ btrfs: Յուրաքանչյուր բաժին դիտվում է որպես առանձին վիրտուալ բլոկ սարք՝ իր սեփական ապակողպման բանալիով:

Հետքերը շփոթելու համար առաջարկվում է օգտագործել «հավանական հերքման» վարքագծի մոդելը, որի էությունն այն է, որ արժեքավոր տվյալները թաքնված են որպես լրացուցիչ շերտեր գաղտնագրված հատվածներում՝ պակաս արժեքավոր տվյալներով՝ ձևավորելով բաժինների մի տեսակ թաքնված հիերարխիա: Ճնշման դեպքում սարքի սեփականատերը կարող է բացահայտել գաղտնագրված միջնորմի բանալին, սակայն այս միջնորմում կարող են թաքնված լինել այլ միջնորմներ (մինչև 15 ներդիր մակարդակ), և դրանց առկայությունը որոշելը և դրանց գոյությունն ապացուցելը խնդրահարույց է։

Թաքցնելը ձեռք է բերվում յուրաքանչյուր միջնորմ կառուցելով որպես պահեստավորման սարքի վրա պատահական դիրքերում տեղադրված գաղտնագրված հատվածների մի շարք: Յուրաքանչյուր հատված ստեղծվում է դինամիկ կերպով, երբ միջնորմում լրացուցիչ պահեստային տարածք է անհրաժեշտ: Վերլուծությունն ավելի բարդացնելու համար տարբեր հատվածների կտորները փոխարինվում են, այսինքն. Shufflecake-ի բաժինները կապված չեն հարակից շրջանների հետ, և բոլոր հատվածներից հատվածները խառնվում են: Օգտագործված և անվճար հատվածների մասին տեղեկատվությունը պահվում է յուրաքանչյուր բաժանման հետ կապված տեղանքի քարտեզում, որը հղում է արվում կոդավորված վերնագրի միջոցով: Քարտերը և վերնագիրը կոդավորված են և, առանց մուտքի բանալին իմանալու, չեն տարբերվում պատահական տվյալներից:

Վերնագիրը բաժանված է սլոտների, որոնցից յուրաքանչյուրը սահմանում է իր բաժինը և հարակից հատվածները: Վերնագրի բնիկները կուտակված են և ռեկուրսիվորեն կապված են. ընթացիկ բնիկը պարունակում է հիերարխիայում նախորդ հատվածի պարամետրերի վերծանման բանալին (ավելի քիչ թաքնված), ինչը թույլ է տալիս օգտագործել մեկ գաղտնաբառ՝ վերծանելու բոլոր ավելի քիչ թաքնված բաժինները, որոնք կապված են դրա հետ։ ընտրված հատվածը: Յուրաքանչյուր պակաս թաքնված միջնորմ վերաբերվում է տեղադրված միջնապատերի հատվածներին որպես ազատ:

Լռելյայնորեն, Shufflecake-ի բոլոր ենթաբաժիններն ունեն նույն տեսանելի չափը, ինչ վերին մակարդակի բաժինը: Օրինակ, եթե 1 ԳԲ սարքի վրա կա երեք բաժին, ապա դրանցից յուրաքանչյուրը տեսանելի կլինի համակարգի համար որպես 1 ԳԲ բաժանում, և սկավառակի ընդհանուր հասանելի տարածքը կբաժանվի բոլոր բաժանմունքների միջև, եթե պահպանված տվյալների ընդհանուր չափը գերազանցի: սարքի իրական չափը, այն կսկսվի I/O սխալ է նետվում:

Ներդրված հատվածները, որոնք բաց չեն, չեն մասնակցում տարածության հատկացմանը, այսինքն. վերին մակարդակի միջնորմը լրացնելու փորձը կհանգեցնի տվյալների մանրացմանը տեղադրված միջնապատերի մեջ, բայց հնարավոր չի տա բացահայտել դրանց առկայությունը տվյալների չափի վերլուծության միջոցով, որոնք կարող են տեղադրվել բաժանման մեջ նախքան սխալի սկիզբը (դա Ենթադրվում է, որ վերին միջնորմները պարունակում են անփոփոխ տվյալներ՝ ուշադրությունը շեղելու համար և երբեք առանձին չեն օգտագործվում, և կանոնավոր աշխատանք միշտ կատարվում է ամենավերջին տեղադրված հատվածի հետ, սխեման ինքնին ենթադրում է, որ ավելի կարևոր է պահպանել գոյության գաղտնիքը։ տվյալներ, քան կորցնել այս տվյալները):

Իրականում, միշտ ստեղծվում են 15 Shufflecake միջնորմներ. օգտագործողի գաղտնաբառը կցվում է օգտագործված միջնորմներին, իսկ չօգտագործված միջնորմներին տրվում է պատահականորեն ստեղծված գաղտնաբառ (անհնար է հասկանալ, թե իրականում քանի բաժանմունք է օգտագործվում): Երբ Shufflecake միջնորմները սկզբնավորվում են, դրանց տեղադրման համար հատկացված սկավառակը, բաժանումը կամ վիրտուալ բլոկի սարքը լցվում է պատահական տվյալներով, ինչը անհնարին է դարձնում Shufflecake մետատվյալների և տվյալների նույնականացումը ընդհանուր ֆոնի վրա:

Shufflecake-ի իրականացումն ունի բավականին բարձր կատարողականություն, սակայն վերադիրների առկայության պատճառով այն մոտավորապես երկու անգամ ավելի դանդաղ է թողունակությամբ՝ համեմատած LUKS ենթահամակարգի վրա հիմնված սկավառակի կոդավորման հետ: Shufflecake-ի օգտագործումը նաև հանգեցնում է RAM-ի և սկավառակի տարածքի լրացուցիչ ծախսերի՝ ծառայության տվյալների պահպանման համար: Հիշողության սպառումը գնահատվում է 60 ՄԲ մեկ բաժանման համար, իսկ սկավառակի տարածությունը՝ ընդհանուր չափի 1%-ի չափով: Համեմատության համար նշենք, որ WORAM տեխնիկան, որը նման է նպատակին, հանգեցնում է 5-ից 200 անգամ դանդաղեցման՝ օգտագործելի սկավառակի տարածության 75% կորստով:

Գործիքակազմը և միջուկի մոդուլը փորձարկվել են միայն Debian-ում և Ubuntu-ում 5.13 և 5.15 միջուկներով (աջակցվում է Ubuntu 22.04-ում): Նշվում է, որ նախագիծը դեռ պետք է դիտարկել որպես աշխատանքային նախատիպ, որը չպետք է օգտագործվի կարեւոր տվյալներ պահելու համար։ Ապագայում մենք նախատեսում ենք կատարել լրացուցիչ օպտիմալացումներ կատարման, հուսալիության և անվտանգության համար, ինչպես նաև ապահովել Shufflecake միջնորմներից բեռնման հնարավորություն:

Source: opennet.ru

Добавить комментарий