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

Yalıtılmış ortamların çalışmasını düzenlemek için Bubblewrap 0.6'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:

  • Meson montaj sistemi için destek eklendi. Autotools ile derleme desteği şimdilik korundu ancak gelecekteki bir sürümde kaldırılacak.
  • Birden fazla seccomp programı eklemek için "--add-seccomp" seçeneği uygulandı. "--seccomp" seçeneğini tekrar belirlerseniz yalnızca son parametrenin uygulanacağına dair bir uyarı eklendi.
  • Git deposundaki ana dal, ana olarak yeniden adlandırıldı.
  • Lisans ve telif hakkı bilgilerini belirleme sürecini birleştiren REUSE spesifikasyonu için kısmi destek eklendi. Birçok kod dosyasına SPDX-License-Identifier başlıkları eklenmiştir. YENİDEN KULLANIM yönergelerini takip etmek, hangi lisansın uygulama kodunun hangi bölümleri için geçerli olduğunu otomatik olarak belirlemeyi kolaylaştırır.
  • Komut satırı argüman sayacının (argc) değerinin kontrol edilmesi eklendi ve sayaç sıfırsa acil çıkış uygulandı. Değişiklik, Polkit'teki CVE-2021-4034 gibi aktarılan komut satırı bağımsız değişkenlerinin yanlış işlenmesinden kaynaklanan güvenlik sorunlarının engellenmesine yardımcı olur.

Kaynak: opennet.ru

Yorum ekle