Firejail'de sisteme root erişimine izin veren bir güvenlik açığı tespit ettiler

Geçenlerde şu haberi yayınladılar bir güvenlik açığı tespit edildi (zaten CVE-2022-31214 altında listelenmiştir) Firejail uygulaması korumalı alan aracında, tespit edilen kusurun yerel bir kullanıcının ana bilgisayar sisteminde kök olmasına izin verebileceği ayrıntılı olarak açıklanmıştır.

Firejail, izolasyon için Linux'ta ad alanları mekanizmasını, AppArmor'u ve sistem çağrı filtrelemesini (seccomp-bpf) kullanır, ancak suid kök bayrak yardımcı programına bağlanarak veya sudo ile çalıştırarak elde ettiği yalıtılmış bir sürümü yapılandırmak için yükseltilmiş ayrıcalıklar gerektirir.

Güvenlik açığı, “–join=” seçeneğinin mantığındaki bir hatadan kaynaklanmaktadır. », içinde çalışan işlemin kimliği tarafından tanımlanan ortamla, halihazırda çalışmakta olan yalıtılmış bir ortama (bir sanal alan ortamı için oturum açma komutuna benzer) bağlanmak üzere tasarlanmıştır. Lansman öncesi aşamada, firejail belirtilen sürecin ayrıcalıklarını algılar ve bunları “–join” seçeneğiyle ortama katılan yeni sürece uygular.

Bağlanmadan önce, firejail ortamında belirtilen işlemin çalışıp çalışmadığını kontrol eder. Bu kontrol, /run/firejail/mnt/join dosyasının varlığını değerlendirir. Güvenlik açığından yararlanmak için, bir saldırgan, hayali, yalıtılmamış bir yangın hapishanesi ortamını simüle edebilir mount ad alanını kullanarak ve ardından "--join" seçeneğini kullanarak ona bağlanın.

Yapılandırma, yeni işlemlerde (prctl NO_NEW_PRIVS) ek ayrıcalıklar almayı yasaklama modunu etkinleştirmezse, firejail kullanıcıyı hayali bir ortama bağlar ve başlatma işleminin kullanıcı tanımlayıcılarının (ad alanı kullanıcısı) kullanıcı ad alanı yapılandırmasını uygulamaya çalışır ( PID 1).

Join işlevinin arkasındaki mantığın çoğu kaynak kodundadır. `src/firejail/join.c` dosyasından. Kodun kritik bölümleri ile yürütülür yükseltilmiş ayrıcalıklar (etkili UID 0). Komut olarak geçirilen işlemin kimliği satır argümanı bir r olup olmadığını belirlemek için incelenirkapsayıcı ve sahip olduğu bazı özelliklerini belirlemek Yeni giriş süreci için de geçerlidir.

Hedef sürece katılıp katılmamaya karar vermek için ana kriterler başarılı olan, hedefin bağlama ad alanında bir dosyanın bulunmasıdır, /run/firejail/mnt/join içinde işlem bulundu. Bu doğrulama f üzerinde yapılır.`is_ready_for_join()` işlevi. Dosya l kullanılarak açılır`O_RDONLY|O_CLOEXEC` bayrakları ve izleme `fstat()` sonucu aşağıdaki gereksinimleri karşılayın:

– dosya normal bir dosya olmalıdır.
– dosyanın sahibi 0 kullanıcı kimliği olmalıdır (ilk kullanıcıdan görüldüğü gibi
ad alanı).
– dosyanın boyutu 1 bayt olmalıdır.

Sonuç olarak, "firejail --join" ile bağlanan süreç ad alanında sona erecek kullanıcının orijinal kullanıcı kimliği değişmeyen ayrıcalıklarla, ancak tamamen saldırgan tarafından kontrol edilen farklı bir bağlama noktası alanında.

Ortaya çıkan "birleştirilmiş" kabuk artık ilk kullanıcıda yaşayacak
ad alanı, yine de orijinal normal kullanıcı ayrıcalıklarını korur mount ad alanı, saldırgan tarafından kontrol edilen ad alanı olacaktır. Olarak
nonewprivs yapılandırması uygulanmadı, saldırgan şimdi
bu bağlama ad alanı içinde setuid-root programlarını çalıştırın

Özellikle, bir saldırgan oluşturduğu bağlama noktasının alanında setuid-root programları çalıştırabilir, bu da örneğin dosya hiyerarşisindeki /etc/sudoers yapılandırmasını veya PAM parametrelerini değiştirmesine ve komutları root olarak çalıştırma yeteneği kazanmasına olanak tanır. sudo veya yardımcı programlarını kullanarak.

Son olarak, firejail yardımcı programı kurulu olarak openSUSE, Debian, Arch, Gentoo ve Fedora'nın mevcut sürümlerinde test edilen işlevsel bir istismarın geliştirildiğini belirtmekte fayda var.

Firejail 0.9.70 sürümünde sorun düzeltildi. Güvenlik düzeltmesi olarak, yapılandırmayı (/etc/firejail/firejail.config) "katılma yok" ve "force-nonewprivs evet" olarak ayarlayabilirsiniz.

Nihayet onun hakkında daha fazla bilgi edinmekle ilgileniyorsanayrıntılarını kontrol edebilirsiniz. aşağıdaki bağlantı.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.