Bubblewrap 0.8 kaleratzea, ingurune isolatuak sortzeko geruza

Ingurune isolatuetako lana antolatzeko tresnen bertsioa eskuragarri dago Bubblewrap 0.8, normalean pribilegiorik gabeko erabiltzaileen aplikazio indibidualak mugatzeko erabiltzen dena. Praktikan, Flatpak proiektuak Bubblewrap erabiltzen du geruza gisa paketeetatik abiarazitako aplikazioak isolatzeko. Proiektuaren kodea C-n idatzita dago eta LGPLv2+ lizentziapean banatzen da.

Isolatzeko, Linux edukiontzien birtualizazio teknologia tradizionalak erabiltzen dira, cgroups, namespaces, Seccomp eta SELinux-en erabileran oinarrituta. Edukiontzi bat konfiguratzeko pribilegiozko eragiketak egiteko, Bubblewrap abiarazten da root eskubideekin (suid bandera duen fitxategi exekutagarria) eta, ondoren, pribilegioak berrezartzen dira edukiontzia hasieratu ondoren.

Erabiltzaileen izen-eremuen sisteman aktibatzea, edukiontzietan zure identifikatzaile-multzo bereizia erabiltzeko aukera ematen duena, ez da beharrezkoa funtzionatzeko, ez baita lehenespenez funtzionatzen banaketa askotan (Bubblewrap-a baten ezarpen suid mugatu gisa kokatzen da. erabiltzailearen izen-espazioen gaitasunen azpimultzoa - erabiltzaile eta prozesu-identifikatzaile guztiak ingurunetik baztertzeko, oraingoa izan ezik, CLONE_NEWUSER eta CLONE_NEWPID moduak erabiltzen dira). Babes gehigarrirako, Bubblewrap-en exekutatzen diren programak PR_SET_NO_NEW_PRIVS moduan abiarazten dira, eta horrek pribilegio berriak eskuratzea debekatzen du, adibidez, setuid bandera badago.

Fitxategi-sistemaren mailan isolatzea lehenespenez muntaketa-izen-espazio berri bat sortuz lortzen da, eta bertan tmpfs erabiliz erro-partizio huts bat sortzen da. Beharrezkoa bada, kanpoko FS partizioak partizio honi eransten zaizkio β€œmount β€”bind” moduan (adibidez, β€œbwrap β€”ro-bind /usr /usr” aukerarekin abiarazten denean, /usr partizioa sistema nagusitik birbidaltzen da. irakurtzeko soilik moduan). Sare-gaitasunak sare-pila isolatuta duen loopback interfazera atzitzeko mugatuta daude CLONE_NEWNET eta CLONE_NEWUTS banderen bidez.

Firejail antzeko proiektuaren gakoa, setuid abiarazte eredua ere erabiltzen duena, Bubblewrap-en edukiontziak sortzeko geruzak beharrezko gutxieneko gaitasun guztiak eta aplikazio grafikoak exekutatzeko, mahaigainarekin elkarreragiten eta eskaerak iragazteko beharrezkoak diren funtzio aurreratu guztiak barne hartzen dituela da. Pulseaudiora, Flatpak-era transferitu eta pribilegioak berrezarri ondoren exekutatu. Firejail-ek, berriz, erlazionatutako funtzio guztiak fitxategi exekutagarri batean konbinatzen ditu, eta horrek zaildu egiten du segurtasun maila egokian ikuskatzea eta mantentzea.

Argitalpen berrian:

  • "--disable-userns" aukera gehitu da sandbox ingurunean habiaraturiko erabiltzaile-izen-espazio propioa sortzea desgaitzeko.
  • "--assert-userns-disabled" aukera gehitu da lehendik dagoen erabiltzailearen ID espazio bat erabiltzen dela egiaztatzeko "--disable-userns" aukera erabiltzean.
  • Nukleoan CONFIG_SECCOMP eta CONFIG_SECCOMP_FILTER ezarpenak desgaitzearekin lotutako errore-mezuen informazio-edukia handitu egin da.

Iturria: opennet.ru

Gehitu iruzkin berria