Bubblewrap 0.9, isolatsioonikeskkondade loomiseks mÔeldud kihiksi

PĂ€rast aasta kestnud arendust on avaldatud uus versioon tööriistadest isoleeritud keskkondade haldamiseks, Bubblewrap 0.9, mida kasutatakse piiratud privileegidega kasutajate ĂŒksikrakenduste piiramiseks. T praktikas kasutatakse Bubblewrap'i Flatpak'i projektis kĂ€ivitatavate pakettide rakenduste isoleerimiseks. Projekti kood on kirjutatud C keeles ja levitatakse LGPLv2+ litsentsi alusel.

Isolatsiooni tagamiseks kasutatakse Linuxile omaseid konteinerite virtualiseerimise tehnoloogiaid, mis pĂ”hinevad cgroup'e, nimede nimete (namespaces), Seccomp'i ja SELinuxi kasutamisel. Bubblewrap'i konteinereid seadistavate privileegidega toimingute tegemiseks kĂ€ivitatakse see root'i Ă”igustes (tehtud fail c suid-lipuga) ning privileegid tĂŒhistatakse pĂ€rast konteineri algatamist.

Kasutajate nimede (user namespaces) aktiveerimine sĂŒsteemis, mis vĂ”imaldab konteinerites kasutada oma ainulaadset ID-de kogumit, ei ole vajalik, kuna see ei tööta vaikimisi paljudes distributsioonides (Bubblewrap'i positsioneeritakse piiratud suid-teostusena kasutaja nimede vĂ”imaluste alamhulgas — kĂ”ik kasutaja ja protsessi ID-d kĂ”rvaldatakse keskkonnast, vĂ€lja arvatud praegune, kasutades reĆŸiime CLONE_NEWUSER ja CLONE_NEWPID). TĂ€iendava kaitse pakkumiseks kĂ€ivitatakse Bubblewrap'i halduses olevad programmid PR_SET_NO_NEW_PRIVS reĆŸiimis, mis keelab uute privileegide saamise, nĂ€iteks setuid lipu olemasolu korral.

FailisĂŒsteemi tasemel isolatsioon saavutatakse vaikimisi uue montaaĆŸiruumi (mount namespace) loomisega, milles tmpfs abil luuakse tĂŒhi juurdunder. Sellesse sektsiooni ĂŒhendatakse vajadusel vĂ€liste failisĂŒsteemide jaotised reĆŸiimis „mount —bind“ (nt. kĂ€ivitamisel valikuga „bwrap —ro-bind /usr /usr“ edastatakse /usr jaotis pĂ”hisĂŒsteemist ainult lugemiseks). VĂ”rguvĂ”imalusi piiratakse juurdepÀÀsuga loopback-liidesele, isoleerides vĂ”rguharu CLONE_NEWNET ja CLONE_NEWUTS lipud.

Oluline erinevus sarnase projekti Firejail'iga, mis kasutab samuti setuid mudelit, on see, et Bubblewrap'i konteinerite loomise kiht sisaldab vaid hĂ€davajalikke vĂ”imalusi. KĂ”ik tĂ€iendavad funktsioonid, mis on vajalikud graafiliste rakenduste kĂ€itamiseks, lauaarvutiga suhtlemiseks ning Pulseaudio'le pöördumiste filtreerimiseks, on viidud Flatpak'i poolt ja neid teostatakse juba pĂ€rast privileegide tĂŒhistamist. Firejail aga ĂŒhendab ĂŒhte tĂ€itmisfaili kĂ”ik nĂ”utavad funktsioonid, mis muudab selle kontrollimise ja turvalisuse sĂ€ilitamise keerulisemaks.

Uues vÀljaandes:

  • Algteksti paketist on eemaldatud Autotools'is genereeritud failid. NĂŒĂŒd soovitatakse koostamiseks kasutada Meson koostesĂŒsteemi. Autotools'i valikuline tugi on jĂ€tkuvalt olemas, kuid tulevastes vĂ€ljaannetes kavatsetakse see eemaldada.
  • Lisatud on valik "—argv0", et seadistada kĂ€ivitusargumentide nullargument (argv[0] - tĂ€itmisfaili nimi, nĂ€iteks "—argv0 /usr/bin/test").
  • Valik "—symlink" aktiveeritakse nĂŒĂŒd ainult siis, kui sĂŒmboolne link juba eksisteerib ja osutab Ă”igele eesmĂ€rgifailile.
  • Dokumenditud on valik "—cap-add", mida kasutatakse capability-lippude seadistamiseks, nĂ€iteks "CAP_DAC_READ_SEARCH".
  • TĂ”stetud on vigade informatiivsust, mis kuvatakse mountimise tĂ”rgete korral.
  • Protsessi unit-testide loomine on lihtsustatud.
  • KasutusnĂ€idetes on lĂ”petatud vanade Python'i versioonide tugi.
  • MĂ€lu eraldamise toimingud on paranenud.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster