Pagpagawas sa Bubblewrap 0.4.0, usa ka lut-od alang sa paghimo sa nahilit nga mga palibot

Magamit bag-ong pagpagawas sa toolkit Bubble wrap 0.4.0, gidesinyo sa pag-organisar sa trabaho sa nahilit nga mga palibot sa Linux ug naglihok sa lebel sa aplikasyon sa walay pribilehiyo nga mga tiggamit. Sa praktis, ang Bubblewrap gigamit sa proyekto sa Flatpak isip usa ka layer aron ihimulag ang mga aplikasyon nga gilunsad gikan sa mga pakete. Ang code sa proyekto gisulat sa C ug giapod-apod sa lisensyado ubos sa LGPLv2+.

Alang sa pag-inusara, ang tradisyonal nga Linux container virtualization nga mga teknolohiya gigamit, base sa paggamit sa cgroups, namespaces, Seccom ug SELinux. Aron mahimo ang mga pribilihiyo nga mga operasyon sa pag-configure sa usa ka sudlanan, ang Bubblewrap gilunsad nga adunay mga katungod sa gamut (usa ka ma-executable nga file nga adunay usa ka bandila sa suid) ug dayon i-reset ang mga pribilehiyo pagkahuman masugdan ang sudlanan.

Ang pagpaaktibo sa mga namespace sa user sa sistema sa namespace, nga nagtugot kanimo sa paggamit sa imong kaugalingon nga separado nga set sa mga identifier sa mga sudlanan, dili kinahanglan alang sa operasyon, tungod kay dili kini molihok nga default sa daghang mga distribusyon (Ang Bubblewrap gipahimutang ingon usa ka limitado nga pagpatuman sa suid sa usa ka subset sa mga kapabilidad sa user namespaces - aron dili iapil ang tanang user ug process identifiers gikan sa environment, gawas sa kasamtangan, ang CLONE_NEWUSER ug CLONE_NEWPID mode ang gigamit). Para sa dugang nga proteksyon, executable under control
Ang mga programa sa Bubblewrap gilusad sa PR_SET_NO_NEW_PRIVS mode, nga nagdili sa pagbaton ug bag-ong mga pribilehiyo, pananglitan, kon ang setuid nga bandila anaa.

Ang pag-inusara sa lebel sa sistema sa file nahimo pinaagi sa paghimo og bag-ong mount namespace pinaagi sa default, diin ang usa ka walay sulod nga partition sa ugat gihimo gamit ang tmpfs. Kung gikinahanglan, ang mga eksternal nga partisyon sa FS gilakip niini nga partisyon sa mode nga "mount β€”bind" (pananglitan, kung gilansad gamit ang kapilian nga "bwrap β€”ro-bind /usr /usr", ang partisyon /usr gipasa gikan sa panguna nga sistema. sa read-only mode). Ang mga kapabilidad sa network limitado sa pag-access sa loopback interface nga adunay network stack isolation pinaagi sa CLONE_NEWNET ug CLONE_NEWUTS nga mga bandera.

Importante nga kalainan gikan sa susama nga proyekto prisohan sa sunog, nga naggamit usab sa usa ka setuid nga modelo sa paglansad, mao nga sa Bubblewrap ang sulud sa paghimo sa sulud naglakip lamang sa gikinahanglan nga minimum nga kapabilidad, ug ang tanan nga mga advanced nga gimbuhaton nga gikinahanglan alang sa pagpadagan sa mga graphical nga aplikasyon, pakig-uban sa desktop ug pagsala sa mga tawag sa Pulseaudio gi-outsource sa Flatpak ug gipatuman. human ma-reset ang mga pribilehiyo. Ang Firejail, sa laing bahin, naghiusa sa tanan nga may kalabutan nga mga function sa usa ka executable file, nga nagpalisud sa pag-audit ug pagpadayon sa seguridad sa sa saktong lebel.

Ang bag-ong pagpagawas kay bantogan alang sa pagpatuman sa suporta alang sa pag-apil sa kasamtangan nga user namespaces ug proseso pid namespaces. Aron makontrol ang koneksyon sa mga namespace, ang "--userns", "--userns2" ug "-pidns" nga mga bandila gidugang.
Kini nga bahin wala molihok sa setuid mode ug nanginahanglan sa paggamit sa usa ka bulag nga mode nga mahimong molihok nga wala makakuha mga katungod sa gamut, apan nanginahanglan pagpaaktibo
mga namespace sa user sa sistema (na-disable pinaagi sa default sa Debian ug RHEL/CentOS) ug wala iapil ang posibilidad pagpahimulos kalagmitan nahibilin mga kahuyang alang sa "user namespaces" restrictions rim. Ang mga bag-ong feature sa Bubblewrap 0.4 naglakip usab sa abilidad sa pagtukod gamit ang musl C library imbes sa glibc ug suporta sa pag-save sa impormasyon sa namespace ngadto sa file nga adunay estadistika sa JSON format.

Source: opennet.ru

Idugang sa usa ka comment