Bubblewrap 0.8-ի թողարկում՝ մեկուսացված միջավայրեր ստեղծելու շերտ

Առկա է մեկուսացված միջավայրերի աշխատանքը կազմակերպելու գործիքների թողարկում 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

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