Izdanje Bubblewrap 0.12, slojevi za kreiranje izoliranih okruženja

Objavljena je nova verzija alata za organizaciju rada izoliranih okruženja Bubblewrap 0.12, koji se koristi za ograničavanje pojedinačnih aplikacija nedovoljno privilegiranih korisnika. U praksi se Bubblewrap koristi u projektu Flatpak kao sloj za izolaciju aplikacija pokretanih iz paketa. Za izolaciju se koriste tradicionalne tehnologije virtualizacije kontejnera specifične za Linux, temeljene na korištenju cgroups, prostora imena (namespaces), Seccomp i SELinux. Kod projekta napisan je u C jeziku i distribuira se pod LGPLv2.1+ licencom.

Izolacija na razini datotečnog sustava provodi se stvaranjem novog prostora imena točki montiranja (mount namespace) po defaultu, u kojem se pomoću tmpfs stvara prazna korijenska particija. Ova particija se po potrebi povezuje s particijama vanjskih FS-a u načinu „mount —bind“ (na primjer, pokretanjem s opcijom „bwrap —ro-bind /usr /usr“, particija /usr se prosljeđuje iz osnovnog sustava u načinu samo za čitanje). Mrežne mogućnosti su ograničene na pristup loopback sučelju uz izolaciju mrežnog staka putem flagova CLONE_NEWNET i CLONE_NEWUTS.

Za isključivanje svih suvišnih identifikatora korisnika i procesa iz stvorenog izoliranog okruženja mogu se koristiti načini CLONE_NEWUSER (namespace korisnika) i CLONE_NEWPID (PID namespace), a za zabranu dobivanja novih privilegija koristi se način PR_SET_NO_NEW_PRIVS. Za dobivanje potrebnih privilegija koristi se 'namespace korisnika'.

U novom izdanju:

  • Licenca za kod promijenjena je s LGPL 2.0+ na LGPL 2.1+.
  • Prekinuta je podrška za izgradnju u obliku izvršne datoteke koja dobiva dodatne privilegije putem suid root opcije. Sada je obvezna podrška za 'namespace korisnika' u sustavu. Kao razlog navodi se složenost održavanja varijante s suid oznakom u svijetu sveprisutne podrške 'namespace korisnika' u distribucijama.
  • Dodana je opcija '--not-a-security-boundary', pri čemu neka sloma prilikom postavljanja izoliranog sandbox okruženja, kao što je ponovno montiranje poddirektorija, ne vode do hitnog završetka.
  • Dodana je opcija za izgradnju 'assume_kernel', koja onemogućava osiguranje unatradne kompatibilnosti s Linux kernelima starijima od navedene verzije. Na primjer, određivanje verzija 5.6.0+ vodi do isključivanja alternativne implementacije funkcionalnosti 'openat2(RESOLVE_IN_ROOT)'.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster