Առկա է մեկուսացված միջավայրերի աշխատանքը կազմակերպելու գործիքների թողարկում Bubblewrap 0.8-ը, որը սովորաբար օգտագործվում է ոչ արտոնյալ օգտատերերի անհատական հավելվածները սահմանափակելու համար: Գործնականում Bubblewrap-ը օգտագործվում է Flatpak նախագծի կողմից որպես շերտ՝ փաթեթներից գործարկված հավելվածները մեկուսացնելու համար: Ծրագրի կոդը գրված է C-ով և տարածվում է LGPLv2+ լիցենզիայի ներքո:
Մեկուսացման համար օգտագործվում են Linux կոնտեյներների վիրտուալացման ավանդական տեխնոլոգիաները՝ հիմնված cgroups-ի, namespace-ների, Seccomp-ի և SELinux-ի օգտագործման վրա: Կոնտեյների կազմաձևման համար արտոնյալ գործողություններ կատարելու համար Bubblewrap-ը գործարկվում է արմատային իրավունքներով (գործարկվող ֆայլ՝ suid դրոշակով) և այնուհետև վերակայում է արտոնությունները կոնտեյների սկզբնավորումից հետո:
Անվանատարածքների համակարգում օգտագործողների անունների տարածքների ակտիվացումը, որը թույլ է տալիս օգտագործել կոնտեյներներում նույնացուցիչների ձեր առանձին հավաքածուն, շահագործման համար չի պահանջվում, քանի որ այն լռելյայն չի աշխատում շատ բաշխումներում (Bubblewrap-ը դիրքավորվում է որպես սահմանափակ ինքնակառավարման իրականացում: Օգտվողի անվանատարածքների հնարավորությունների ենթաբազմություն. օգտագործողի և գործընթացի բոլոր նույնացուցիչները շրջակա միջավայրից բացառելու համար, բացառությամբ ընթացիկի, օգտագործվում են CLONE_NEWUSER և CLONE_NEWPID ռեժիմները): Լրացուցիչ պաշտպանության համար Bubblewrap-ի տակ գործարկվող ծրագրերը գործարկվում են PR_SET_NO_NEW_PRIVS ռեժիմով, որն արգելում է նոր արտոնությունների ձեռքբերումը, օրինակ, եթե առկա է setuid դրոշը:
Ֆայլային համակարգի մակարդակում մեկուսացումն իրականացվում է լռելյայնորեն ստեղծելով նոր մոնտաժի անվանատարածք, որում ստեղծվում է դատարկ արմատային բաժին՝ օգտագործելով tmpfs: Անհրաժեշտության դեպքում արտաքին FS միջնորմները կցվում են այս բաժանմանը «mount —bind» ռեժիմով (օրինակ, երբ գործարկվում է «bwrap —ro-bind /usr /usr» տարբերակով, /usr միջնորմը փոխանցվում է հիմնական համակարգից։ միայն կարդալու ռեժիմում): Ցանցի հնարավորությունները սահմանափակվում են CLONE_NEWNET և CLONE_NEWUTS դրոշների միջոցով ցանցային ցցերի մեկուսացման հետ կապի միջերես մուտք գործելու համար:
Նմանատիպ Firejail նախագծից հիմնական տարբերությունը, որն օգտագործում է նաև setuid գործարկման մոդելը, այն է, որ Bubblewrap-ում կոնտեյների ստեղծման շերտը ներառում է միայն անհրաժեշտ նվազագույն հնարավորությունները և բոլոր առաջադեմ գործառույթները, որոնք անհրաժեշտ են գրաֆիկական հավելվածների գործարկման, աշխատասեղանի հետ փոխազդելու և ֆիլտրման հարցումների համար: Pulseaudio-ին, փոխանցվել է Flatpak կողմին և գործարկվել արտոնությունների վերակայումից հետո: Firejail-ը, մյուս կողմից, համատեղում է բոլոր հարակից գործառույթները մեկ գործարկվող ֆայլում, ինչը դժվարացնում է պատշաճ մակարդակով անվտանգության աուդիտը և պահպանումը:
Նոր թողարկումում.
- Ավելացրել է «--disable-userns» տարբերակը՝ ավազատուփի միջավայրում սեփական ներդրված օգտվողի անվան տարածքի ստեղծումը անջատելու համար:
- Ավելացվեց «--assert-userns-disabled» տարբերակը՝ ստուգելու համար, որ օգտագործողի ID-ի գոյություն ունեցող տարածքն օգտագործվում է «--disable-users» տարբերակը օգտագործելիս:
- Միջուկում CONFIG_SECCOMP և CONFIG_SECCOMP_FILTER կարգավորումներն անջատելու հետ կապված սխալ հաղորդագրությունների տեղեկատվական բովանդակությունը մեծացել է:
Source: opennet.ru