Yalıtılmış ortamlar oluşturmaya yönelik bir katman olan Bubblewrap 0.8'in sürümü

Yalıtılmış ortamların çalışmasını düzenlemek için Bubblewrap 0.8'in bir araç sürümü mevcuttur ve genellikle ayrıcalıklı olmayan kullanıcıların bireysel uygulamalarını kısıtlamak için kullanılır. Uygulamada Bubblewrap, Flatpak projesi tarafından paketlerden başlatılan uygulamaları izole etmek için bir katman olarak kullanılıyor. Proje kodu C dilinde yazılmıştır ve LGPLv2+ lisansı altında dağıtılmaktadır.

Yalıtım için, gruplar, ad alanları, Secomp ve SELinux kullanımına dayalı geleneksel Linux konteyner sanallaştırma teknolojileri kullanılır. Bir kapsayıcıyı yapılandırmak amacıyla ayrıcalıklı işlemler gerçekleştirmek için Bubblewrap, kök haklarıyla (suid bayrağına sahip yürütülebilir bir dosya) başlatılır ve kapsayıcı başlatıldıktan sonra ayrıcalıkları sıfırlar.

Kaplarda kendi ayrı tanımlayıcı kümenizi kullanmanıza olanak tanıyan ad alanı sistemindeki kullanıcı ad alanlarının etkinleştirilmesi, birçok dağıtımda varsayılan olarak çalışmadığından işlem için gerekli değildir (Bubblewrap, bir uygulamanın sınırlı bir suid uygulaması olarak konumlandırılmıştır). kullanıcı ad alanları yeteneklerinin alt kümesi - geçerli olan dışındaki tüm kullanıcı ve işlem tanımlayıcılarını ortamdan hariç tutmak için CLONE_NEWUSER ve CLONE_NEWPID modları kullanılır). Ek koruma için, Bubblewrap altında yürütülen programlar PR_SET_NO_NEW_PRIVS modunda başlatılır; bu, örneğin setuid bayrağının mevcut olması durumunda yeni ayrıcalıkların edinilmesini yasaklar.

Dosya sistemi düzeyinde izolasyon, varsayılan olarak yeni bir bağlama ad alanı oluşturularak gerçekleştirilir; burada tmpfs kullanılarak boş bir kök bölüm oluşturulur. Gerekirse, harici FS bölümleri bu bölüme "mount —bind" modunda eklenir (örneğin, "bwrap —ro-bind /usr /usr" seçeneğiyle başlatıldığında, /usr bölümü ana sistemden iletilir) salt okunur modda). Ağ yetenekleri, CLONE_NEWNET ve CLONE_NEWUTS bayrakları aracılığıyla ağ yığını izolasyonu ile geridöngü arayüzüne erişimle sınırlıdır.

Setuid başlatma modelini de kullanan benzer Firejail projesinden temel farkı, Bubblewrap'te konteyner oluşturma katmanının yalnızca gerekli minimum yetenekleri ve grafik uygulamaları çalıştırmak, masaüstüyle etkileşim kurmak ve istekleri filtrelemek için gerekli tüm gelişmiş işlevleri içermesidir. Pulseaudio'ya, Flatpak tarafına aktarılır ve ayrıcalıklar sıfırlandıktan sonra yürütülür. Öte yandan Firejail, ilgili tüm işlevleri tek bir yürütülebilir dosyada birleştirir, bu da güvenliğin uygun düzeyde denetlenmesini ve sürdürülmesini zorlaştırır.

Yeni sürümde:

  • Добавлена опция «—disable-userns» отключающая создание в sandbox-окружении своего вложенного пространства идентификаторов пользователей (user namespace).
  • Добавлена опция «—assert-userns-disabled» для проверки, что при использовании опции » —disable-userns» задействовано существующее пространство идентификаторов пользователей.
  • Повышена информативность сообщений об ошибках, связанных с отключением в ядре настроек CONFIG_SECCOMP и CONFIG_SECCOMP_FILTER.

Kaynak: opennet.ru

Yorum ekle