Liberasyon Bubblewrap 0.6, yon kouch pou kreye anviwònman izole

Yon lage nan zouti pou òganize travay la nan anviwònman izole Bubblewrap 0.6 disponib, anjeneral yo itilize mete restriksyon sou aplikasyon endividyèl itilizatè san privilèj. Nan pratik, pwojè Flatpak la itilize Bubblewrap kòm yon kouch pou izole aplikasyon yo te lanse nan pakè yo. Kòd pwojè a ekri an C epi distribye anba lisans LGPLv2+.

Pou izòlman, yo itilize teknoloji tradisyonèl Linux kontenè Virtualization, ki baze sou itilizasyon cgroups, namespaces, Seccomp ak SELinux. Pou fè operasyon privilejye pou konfigirasyon yon veso, Bubblewrap lanse ak dwa rasin (yon fichye ègzèkutabl ak yon drapo suid) ak Lè sa a, retabli privilèj apre veso a inisyalize.

Aktivasyon espas non itilizatè yo nan sistèm espas non an, ki pèmèt ou sèvi ak pwòp seri idantifyan ou yo nan resipyan, pa obligatwa pou operasyon an, paske li pa travay pa defo nan anpil distribisyon (Bubblewrap pozisyone kòm yon aplikasyon limite suid nan yon sou-ansanm kapasite espas non itilizatè yo - pou eskli tout idantifyan itilizatè ak pwosesis nan anviwònman an, eksepte yon sèl aktyèl la, yo itilize mòd CLONE_NEWUSER ak CLONE_NEWPID). Pou plis pwoteksyon, pwogram ki egzekite anba Bubblewrap yo lanse nan mòd PR_SET_NO_NEW_PRIVS, ki entèdi akizisyon de nouvo privilèj, pou egzanp, si drapo setuid la prezan.

Izolasyon nan nivo sistèm fichye akonpli lè yo kreye yon nouvo espas non mòn pa default, kote yo kreye yon patisyon rasin vid lè l sèvi avèk tmpfs. Si sa nesesè, patisyon FS ekstèn yo tache ak patisyon sa a nan mòd "mount —bind" (pa egzanp, lè yo lanse ak opsyon "bwrap -ro-bind /usr /usr", patisyon /usr la voye soti nan sistèm prensipal la. nan mòd lekti sèlman). Kapasite rezo yo limite a aksè nan koòdone loopback la ak izolasyon pile rezo atravè drapo yo CLONE_NEWNET ak CLONE_NEWUTS.

Diferans kle ak pwojè Firejail menm jan an, ki itilize tou modèl lansman setuid la, se ke nan Bubblewrap kouch kreyasyon veso a gen ladan sèlman kapasite minimòm ki nesesè yo, ak tout fonksyon avanse ki nesesè pou kouri aplikasyon grafik, kominike avèk Desktop la ak demann filtraj. nan Pulseaudio, transfere sou bò Flatpak ak egzekite apre privilèj yo te reset. Firejail, nan lòt men an, konbine tout fonksyon ki gen rapò yo nan yon sèl dosye ègzèkutabl, ki fè li difisil pou odit epi kenbe sekirite nan nivo apwopriye.

Nan nouvo lage a:

  • Te ajoute sipò pou sistèm asanble Meson. Sipò pou bati ak Autotools te konsève pou kounye a, men yo pral retire nan yon lage nan lavni.
  • Aplike "--add-seccomp" opsyon pou ajoute plis pase yon pwogram seccomp. Te ajoute yon avètisman ke si ou presize opsyon "--seccomp" ankò, sèlman dènye paramèt la pral aplike.
  • Branch mèt la nan depo git la te chanje non prensipal la.
  • Te ajoute sipò pasyèl pou spesifikasyon REUSE a, ki inifye pwosesis pou espesifye enfòmasyon sou lisans ak copyright. Anpil fichye kòd gen SPDX-Lisans-Idantifikatè headers te ajoute. Swiv direktiv REUSE yo fè li pi fasil pou detèmine otomatikman ki lisans ki aplike a ki pati nan kòd aplikasyon an.
  • Te ajoute tcheke valè kontwa a agiman liy lòd (argc) ak aplike yon sòti ijans si kontwa an se zewo. Chanjman an ede bloke pwoblèm sekirite ki te koze pa manyen kòrèk nan agiman liy lòd pase, tankou CVE-2021-4034 nan Polkit.

Sous: opennet.ru

Add nouvo kòmantè