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

Təcrid olunmuş mühitlərin işini təşkil etmək üçün alətlərin buraxılışı Bubblewrap 0.6 mövcuddur, adətən imtiyazsız istifadəçilərin fərdi tətbiqlərini məhdudlaşdırmaq üçün istifadə olunur. 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ə LGPLv2+ lisenziyası altında paylanmış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ərdə öz ayrıca identifikatorlar dəstinizi istifadə etməyə imkan verən ad məkanı sistemində istifadəçi ad məkanlarının aktivləşdirilməsi əməliyyat üçün tələb olunmur, çünki o, bir çox paylamalarda standart olaraq işləmir (Bubblewrap məhdud suid tətbiqi kimi yerləşdirilib. istifadəçi ad məkanı imkanlarının alt dəsti - caridən başqa bütün istifadəçi və proses identifikatorlarını mühitdən çıxarmaq üçün CLONE_NEWUSER və CLONE_NEWPID rejimləri istifadə olunur). Əlavə qorunma üçün Bubblewrap altında icra edilən proqramlar PR_SET_NO_NEW_PRIVS rejimində işə salınır ki, bu da yeni imtiyazların əldə edilməsini qadağan edir, məsələn, setuid bayrağı varsa.

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.

Setuid işə salma modelindən də istifadə edən oxşar Firejail layihəsindən əsas fərq ondan ibarətdir ki, Bubblewrap-da konteyner yaratma təbəqəsi yalnız zəruri minimum imkanları və qrafik proqramları işə salmaq, iş masası ilə qarşılıqlı əlaqə qurmaq və sorğuları süzmək üçün lazım olan bütün qabaqcıl funksiyaları ehtiva edir. Pulseaudio-ya, Flatpak tərəfinə köçürüldü və imtiyazlar sıfırlandıqdan sonra icra edildi. Digər tərəfdən Firejail, bütün əlaqəli funksiyaları bir icra edilə bilən faylda birləşdirir, bu da təhlükəsizliyin lazımi səviyyədə yoxlanılmasını və saxlanmasını çətinləşdirir.

Yeni buraxılışda:

  • Добавлена поддержка сборочной системы Meson. Поддержка сборки при помощи Autotools пока сохранена, но будет удалена в одном из следующих выпусков.
  • Реализована опция «—add-seccomp» для добавления более чем одной программы seccomp. Добавлено предупреждение о том, что при повторном указании опции «—seccomp» будет применён только последний параметр.
  • Ветка master в git-репозитории переименована в main.
  • Добавлена частичная поддержка спецификации REUSE, унифицирующей процесс указания сведений о лицензиях и авторских правах. Во многие файлы с кодом добавлены заголовки SPDX-License-Identifier. Следование рекомендациям REUSE позволяет упростить автоматическое определение какая лицензия применяется к каким из частей кода приложения.
  • Добавлена проверка значения счётчика аргументов командной строки (argc) и реализован экстренный выход в случае если счётчик равен нулю. Изменение позволяет блокировать проблемы с безопасностью, вызванные некорректной обработкой передаваемых аргументов командной строки, такие как CVE-2021-4034 в Polkit.

Mənbə: opennet.ru

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