Välja antud Bubblewrap 0.6, kiht isoleeritud keskkondade loomiseks

Saadaval on tööriistade väljalase isoleeritud keskkondade töö korraldamiseks Bubblewrap 0.6, mida tavaliselt kasutatakse privilegeerimata kasutajate üksikute rakenduste piiramiseks. Praktikas kasutab Flatpaki projekt Bubblewrapi kihina pakettidest käivitatud rakenduste isoleerimiseks. Projekti kood on kirjutatud C-keeles ja seda levitatakse LGPLv2+ litsentsi all.

Isoleerimiseks kasutatakse traditsioonilisi Linuxi konteinerite virtualiseerimistehnoloogiaid, mis põhinevad cgroupide, nimeruumide, Seccompi ja SELinuxi kasutamisel. Konteineri konfigureerimiseks privilegeeritud toimingute tegemiseks käivitatakse Bubblewrap juurõigustega (käivitatav fail lipuga suid) ja lähtestab seejärel õigused pärast konteineri lähtestamist.

Kasutajanimeruumide aktiveerimine nimeruumisüsteemis, mis võimaldab konteinerites kasutada oma eraldi identifikaatorite komplekti, ei ole tööks vajalik, kuna see ei tööta vaikimisi paljudes distributsioonides (Bubblewrap on positsioneeritud kui piiratud sobiv rakendus kasutajanimeruumide võimaluste alamhulk - kõigi kasutajate ja protsesside identifikaatorite välistamiseks keskkonnast, välja arvatud praegune, kasutatakse režiime CLONE_NEWUSER ja CLONE_NEWPID). Täiendava kaitse tagamiseks käivitatakse Bubblewrap all käivitatavad programmid režiimis PR_SET_NO_NEW_PRIVS, mis keelab uute õiguste omandamise, näiteks kui setuid lipp on olemas.

Failisüsteemi tasemel isoleerimine saavutatakse vaikimisi uue mounti nimeruumi loomisega, milles luuakse tmpfs abil tühi juurpartitsioon. Vajadusel lisatakse sellele partitsioonile välised FS-i partitsioonid režiimis “mount —bind” (näiteks kui käivitatakse suvandiga “bwrap –ro-bind /usr /usr”, edastatakse /usr partitsioon põhisüsteemist kirjutuskaitstud režiimis). Võrguvõimalused on piiratud juurdepääsuga tagasisilmusliidesele koos võrgupinu isoleerimisega lippude CLONE_NEWNET ja CLONE_NEWUTS kaudu.

Peamine erinevus sarnasest Firejaili projektist, mis kasutab ka setuid käivitusmudelit, seisneb selles, et Bubblewrapis sisaldab konteineri loomise kiht ainult vajalikke minimaalseid võimalusi ja kõiki täiustatud funktsioone, mis on vajalikud graafiliste rakenduste käitamiseks, töölauaga suhtlemiseks ja päringute filtreerimiseks. Pulseaudiole, kantakse üle Flatpaki poolele ja käivitatakse pärast õiguste lähtestamist. Firejail seevastu ühendab kõik seotud funktsioonid ühte täitmisfaili, mis muudab kontrollimise ja turvalisuse õigel tasemel hoidmise keeruliseks.

Uues väljaandes:

  • Lisatud tugi Mesoni montaažisüsteemile. Autotoolsiga ehitamise tugi on praegu säilinud, kuid tulevases versioonis see eemaldatakse.
  • Rakendatud suvand "--add-seccomp", et lisada rohkem kui üks seccomp-programm. Lisatud hoiatus, et kui määrate uuesti valiku "--seccomp", rakendub ainult viimane parameeter.
  • Git-hoidlas olev põhiharu on ümber nimetatud põhiharuks.
  • Lisatud osaline tugi REUSE spetsifikatsioonile, mis ühendab litsentsi ja autoriõiguse teabe täpsustamise protsessi. Paljudele koodifailidele on lisatud SPDX-License-Identifier päised. TAASKASUTAMISE juhiste järgimine muudab lihtsamaks automaatse määramise, milline litsents kehtib rakenduse koodi millistele osadele.
  • Lisati käsurea argumentide loenduri (argc) väärtuse kontrollimine ja rakendati avariiväljapääsu, kui loendur on null. Muudatus aitab blokeerida turbeprobleeme, mis on põhjustatud läbitud käsurea argumentide (nt Polkiti CVE-2021-4034) valest käsitlemisest.

Allikas: opennet.ru

Lisa kommentaar