Paglabas ng Bubblewrap 0.6, mga layer para sa paglikha ng mga sandboxed na kapaligiran

Available ang isang release ng mga tool para sa pag-aayos ng gawain ng mga nakahiwalay na kapaligiran Bubblewrap 0.6, kadalasang ginagamit upang paghigpitan ang mga indibidwal na aplikasyon ng mga walang pribilehiyong user. Sa pagsasagawa, ang Bubblewrap ay ginagamit ng proyekto ng Flatpak bilang isang layer upang ihiwalay ang mga application na inilunsad mula sa mga pakete. Ang code ng proyekto ay nakasulat sa C at ipinamamahagi sa ilalim ng lisensya ng LGPLv2+.

Para sa paghihiwalay, ginagamit ang tradisyonal na Linux container virtualization na teknolohiya, batay sa paggamit ng mga cgroup, namespace, Seccomp at SELinux. Para magsagawa ng mga privileged operation para mag-configure ng container, inilunsad ang Bubblewrap na may mga root rights (isang executable file na may flag ng suid) at pagkatapos ay i-reset ang mga pribilehiyo pagkatapos masimulan ang container.

Ang pag-activate ng mga namespace ng user sa system ng namespace, na nagbibigay-daan sa iyong gamitin ang iyong sariling hiwalay na hanay ng mga identifier sa mga container, ay hindi kinakailangan para sa operasyon, dahil hindi ito gumagana bilang default sa maraming mga distribusyon (Ang Bubblewrap ay nakaposisyon bilang isang limitadong pagpapatupad ng suid ng isang subset ng mga kakayahan ng user namespaces - upang ibukod ang lahat ng user at process identifiers mula sa kapaligiran, maliban sa kasalukuyan, ang CLONE_NEWUSER at CLONE_NEWPID mode ang ginagamit). Para sa karagdagang proteksyon, ang mga programang isinagawa sa ilalim ng Bubblewrap ay inilulunsad sa PR_SET_NO_NEW_PRIVS mode, na nagbabawal sa pagkuha ng mga bagong pribilehiyo, halimbawa, kung ang setuid na bandila ay naroroon.

Ang paghihiwalay sa antas ng file system ay nagagawa sa pamamagitan ng paglikha ng bagong mount namespace bilang default, kung saan ang isang walang laman na root partition ay nilikha gamit ang tmpfs. Kung kinakailangan, ang mga panlabas na partisyon ng FS ay nakakabit sa partisyon na ito sa mode na "mount β€”bind" (halimbawa, kapag inilunsad gamit ang opsyong "bwrap β€”ro-bind /usr /usr", ang /usr partition ay ipinapasa mula sa pangunahing system sa read-only mode). Ang mga kakayahan ng network ay limitado sa pag-access sa loopback interface na may network stack isolation sa pamamagitan ng CLONE_NEWNET at CLONE_NEWUTS na mga flag.

Ang pangunahing pagkakaiba sa katulad na proyekto ng Firejail, na gumagamit din ng setuid launch model, ay ang sa Bubblewrap, ang layer ng paggawa ng lalagyan ay kinabibilangan lamang ng mga kinakailangang minimum na kakayahan, at lahat ng mga advanced na function na kinakailangan para sa pagpapatakbo ng mga graphical na application, pakikipag-ugnayan sa desktop at mga kahilingan sa pag-filter. sa Pulseaudio, inilipat sa bahagi ng Flatpak at naisakatuparan pagkatapos ma-reset ang mga pribilehiyo. Ang Firejail, sa kabilang banda, ay pinagsasama ang lahat ng nauugnay na function sa isang executable file, na nagpapahirap sa pag-audit at pagpapanatili ng seguridad sa tamang antas.

Sa bagong release:

  • Nagdagdag ng suporta para sa sistema ng pagpupulong ng Meson. Ang suporta para sa pagbuo gamit ang Autotools ay napanatili sa ngayon, ngunit aalisin sa susunod na release.
  • Ipinatupad ang "--add-seccomp" na opsyon upang magdagdag ng higit sa isang seccomp program. Nagdagdag ng babala na kung tutukuyin mong muli ang "--seccom" na opsyon, ang huling parameter lang ang ilalapat.
  • Ang master branch sa git repository ay pinalitan ng pangalan sa main.
  • Nagdagdag ng bahagyang suporta para sa detalye ng REUSE, na pinag-iisa ang proseso ng pagtukoy ng impormasyon sa lisensya at copyright. Maraming code file ang may idinagdag na header ng SPDX-License-Identifier. Ang pagsunod sa mga alituntunin ng REUSE ay nagpapadali sa awtomatikong pagtukoy kung aling lisensya ang nalalapat sa kung aling mga bahagi ng code ng aplikasyon.
  • Idinagdag ang pagsuri sa halaga ng command line argument counter (argc) at nagpatupad ng emergency exit kung zero ang counter. Nakakatulong ang pagbabago na harangan ang mga isyu sa seguridad na dulot ng maling pangangasiwa ng mga naipasa na argumento ng command line, gaya ng CVE-2021-4034 sa Polkit.

Pinagmulan: opennet.ru

Magdagdag ng komento