Rilis Bubblewrap 0.8, lapisan untuk menciptakan lingkungan sandbox

Rilis alat untuk mengatur pekerjaan lingkungan terisolasi Bubblewrap 0.8 tersedia, biasanya digunakan untuk membatasi aplikasi individual dari pengguna yang tidak memiliki hak istimewa. Dalam praktiknya, Bubblewrap digunakan oleh proyek Flatpak sebagai lapisan untuk mengisolasi aplikasi yang diluncurkan dari paket. Kode proyek ditulis dalam C dan didistribusikan di bawah lisensi LGPLv2+.

Untuk isolasi, teknologi virtualisasi container Linux tradisional digunakan, berdasarkan penggunaan cgroups, namespace, Seccomp dan SELinux. Untuk melakukan operasi istimewa guna mengonfigurasi wadah, Bubblewrap diluncurkan dengan hak root (file yang dapat dieksekusi dengan tanda suid) dan kemudian menyetel ulang hak istimewa setelah wadah diinisialisasi.

Aktivasi namespace pengguna dalam sistem namespace, yang memungkinkan Anda menggunakan kumpulan pengidentifikasi terpisah dalam container, tidak diperlukan untuk pengoperasian, karena ini tidak berfungsi secara default di banyak distribusi (Bubblewrap diposisikan sebagai implementasi suid terbatas dari a bagian dari kemampuan ruang nama pengguna - untuk mengecualikan semua pengidentifikasi pengguna dan proses dari lingkungan, kecuali yang saat ini, mode CLONE_NEWUSER dan CLONE_NEWPID digunakan). Untuk perlindungan tambahan, program yang dijalankan di bawah Bubblewrap diluncurkan dalam mode PR_SET_NO_NEW_PRIVS, yang melarang perolehan hak istimewa baru, misalnya, jika ada tanda setuid.

Isolasi pada tingkat sistem file dilakukan dengan membuat namespace mount baru secara default, di mana partisi root kosong dibuat menggunakan tmpfs. Jika perlu, partisi FS eksternal dilampirkan ke partisi ini dalam mode β€œmount β€”bind” (misalnya, ketika diluncurkan dengan opsi β€œbwrap β€”ro-bind /usr /usr”, partisi /usr diteruskan dari sistem utama dalam mode hanya baca). Kemampuan jaringan terbatas pada akses ke antarmuka loopback dengan isolasi tumpukan jaringan melalui flag CLONE_NEWNET dan CLONE_NEWUTS.

Perbedaan utama dari proyek Firejail serupa, yang juga menggunakan model peluncuran setuid, adalah bahwa dalam Bubblewrap lapisan pembuatan kontainer hanya mencakup kemampuan minimum yang diperlukan, dan semua fungsi lanjutan yang diperlukan untuk menjalankan aplikasi grafis, berinteraksi dengan desktop, dan memfilter permintaan. ke Pulseaudio, ditransfer ke sisi Flatpak dan dieksekusi setelah hak istimewa disetel ulang. Firejail, di sisi lain, menggabungkan semua fungsi terkait dalam satu file yang dapat dieksekusi, sehingga sulit untuk mengaudit dan menjaga keamanan pada tingkat yang tepat.

Dalam rilis baru:

  • Menambahkan opsi β€œ--disable-userns” untuk menonaktifkan pembuatan namespace pengguna bersarangnya sendiri di lingkungan sandbox.
  • Menambahkan opsi "--assert-userns-disabled" untuk memeriksa apakah ruang ID pengguna yang ada digunakan saat menggunakan opsi "--disable-userns".
  • Isi informasi pesan kesalahan terkait penonaktifan pengaturan CONFIG_SECCOMP dan CONFIG_SECCOMP_FILTER di kernel telah ditingkatkan.

Sumber: opennet.ru

Tambah komentar