Bubblewrap 0.4.0 buraxılışı, sandboxed mühitlər yaratmaq üçün təbəqələr

Mövcuddur alətlər dəstinin yeni buraxılışı Bubble wrap 0.4.0, Linux-da təcrid olunmuş mühitlərin işini təşkil etmək üçün nəzərdə tutulmuş və imtiyazsız istifadəçilərin tətbiqi səviyyəsində fəaliyyət göstərir. Təcrübədə Bubblewrap Flatpak layihəsi tərəfindən paketlərdən işə salınan tətbiqləri təcrid etmək üçün təbəqə kimi istifadə olunur. Layihə kodu C dilində yazılmışdır və yayılır LGPLv2+ altında lisenziyalıdır.

İzolyasiya üçün qruplar, ad fəzaları (ad boşluqları), Seccomp və SELinux istifadəsinə əsaslanan ənənəvi Linux konteyner virtuallaşdırma texnologiyalarından istifadə olunur. İmtiyazlı konteyner quraşdırma əməliyyatlarını yerinə yetirmək üçün Bubblewrap kök kimi işə salınır (suid bayrağı ilə icra olunan fayl) konteyner işə salındıqdan sonra imtiyazların sonradan sıfırlanması ilə.

Konteynerlərə ayrı-ayrı identifikatorlar dəstindən istifadə etməyə imkan verən ad məkanları sistemində istifadəçi ad boşluqlarının aktivləşdirilməsi iş üçün tələb olunmur, çünki o, bir çox paylamalarda standart olaraq işləmir (Bubblewrap alt çoxluqların məhdud suid həyata keçirilməsi kimi yerləşdirilib. istifadəçi ad məkanı imkanları - istisna olaraq, caridən başqa, ətraf mühitdən olan bütün istifadəçi və proses identifikatorları CLONE_NEWUSER və CLONE_NEWPID rejimlərindən istifadə edin). Əlavə qorunma üçün icra olunanlar işləyir
Bubblewrap proqramları PR_SET_NO_NEW_PRIVS rejimində işləyir, bu, məsələn, setuid bayrağı mövcud olduqda yeni imtiyazların əldə edilməsinin qarşısını alır.

Fayl sistemi səviyyəsində izolyasiya standart olaraq tmpfs istifadə edərək boş kök bölməsinin yaradıldığı yeni bağlama ad sahəsi yaratmaqla həyata keçirilir. Lazım gələrsə, xarici FS-nin arakəsmələri bu bölməyə “mount --bind” rejimində əlavə olunur (məsələn, “bwrap --ro-bind /usr /usr” seçimi ilə başladıqda, /usr bölməsi əsas sistemdən yalnız oxumaq rejimində ötürülür). Şəbəkə CLONE_NEWNET və CLONE_NEWUTS bayraqları vasitəsilə şəbəkə yığınının izolyasiyası ilə geri dönmə interfeysinə daxil olmaq ilə məhdudlaşır.

Bənzər bir layihədən əsas fərq Atəş həbsxanası, həmçinin setuid işə salma modelindən istifadə edir, Bubblewrap-da konteynerləşdirmə təbəqəsi yalnız minimum funksiyaları ehtiva edir və qrafik proqramları işə salmaq, iş masası ilə qarşılıqlı əlaqə qurmaq və Pulseaudio-ya zəngləri süzmək üçün lazım olan bütün qabaqcıl xüsusiyyətlər yan Flatpak və imtiyazların sıfırlanmasından sonra icra edilir. Digər tərəfdən, Firejail bütün əlaqəli funksiyaları bir icra edilə bilən faylda birləşdirir, bu da onun auditini və təhlükəsizliyini təmin etməyi çətinləşdirir. lazımi səviyyədə.

Yeni buraxılış, mövcud istifadəçi identifikatoru ad fəzalarının (istifadəçi adları) və proseslərin (pid ad boşluqları) əlavə edilməsi üçün dəstəyin həyata keçirilməsi ilə diqqət çəkir. Ad sahəsi bağlantısını idarə etmək üçün "--userns", "--userns2" və "--pidns" bayraqları əlavə edildi.
Bu funksiya setuid rejimində işləmir və kök hüquqlarını əldə etmədən işləyə bilən, lakin aktivləşdirmə tələb edən ayrıca rejimin istifadəsini tələb edir.
sistemdəki istifadəçi ad boşluqları (Debian və RHEL/CentOS-da standart olaraq qeyri-aktivdir) və mümkünlüyünü istisna etmir istismar potensial olaraq qalan zəifliklər "istifadəçi adları" məhdudlaşdırma halqası üçün. Bubblewrap 0.4-ün yeni xüsusiyyətləri arasında glibc əvəzinə musl C kitabxanası və ad boşluqları haqqında məlumatı JSON formatında statistika ilə fayla saxlamaq dəstəyi ilə qurmaq da mümkündür.

Mənbə: opennet.ru

Добавить комментарий