Bubblewrap, alat untuk membuat aplikasi di lingkungan yang terisolasi

Bubblewrap adalah alat pekerjaan apa untuk mengatur pekerjaan kotak pasir di Linux dan lari di tingkat aplikasi pengguna yang tidak memiliki hak istimewa. Dalam praktiknya, Bubblewrap digunakan oleh proyek Flatpak sebagai lapisan perantara untuk mengisolasi aplikasi yang diluncurkan dari paket perangkat lunak.

Untuk isolasi, Linux menggunakan teknologi virtualisasi wadah tradisional berdasarkan penggunaan cgroups, namespace, Seccomp dan SELinux. Untuk melakukan operasi dengan hak istimewa untuk mengonfigurasi penampung, Bubblewrap dimulai dengan hak akses root (file yang dapat dieksekusi dengan tanda suid), diikuti dengan penyetelan ulang hak setelah penampung diinisialisasi.

Tidak perlu mengaktifkan ruang nama pengguna di sistem, memungkinkan Anda untuk menggunakan kumpulan id Anda sendiri dalam wadah, karena secara default ini tidak berfungsi pada banyak distribusi.

Tentang Bubblewrap

Bubblewrap diposisikan sebagai implementasi suida terbatas dari subset fungsi namespace pengguna untuk mengecualikan semua ID pengguna dan proses dari lingkungan kecuali yang sekarang, gunakan mode CLONE_NEWUSER dan CLONE_NEWPID.

Untuk perlindungan tambahan, program yang berjalan di Bubblewrap mulai dalam mode PR_SET_NO_NEW_PRIVS, yang melarang hak istimewa baru, misalnya, dengan flag setuid.

Isolasi pada tingkat sistem file dilakukan dengan membuat, secara default, namespace mount baru, di mana partisi root yang kosong dibuat menggunakan tmpfs.

Jika perlu, bagian FS eksternal dilampirkan ke bagian ini di «pasang –ikat»(Misalnya, dimulai dengan opsi«bwrap –ro-bind / usr / usr', Bagian / usr diteruskan dari host dalam mode hanya-baca).

Kemampuan jaringan terbatas pada akses ke antarmuka loopback terbalik dengan isolasi tumpukan jaringan melalui indikator CLONE_NEWNET dan CLONE_NEWUTS.

Perbedaan utama dengan proyek Firejail serupa, yang juga menggunakan peluncur setuid, di Bubblewrap, lapisan penampung hanya mencakup fitur minimum yang diperlukan dan semua fungsi lanjutan yang diperlukan untuk meluncurkan aplikasi grafis, berinteraksi dengan desktop, dan memfilter panggilan ke Pulseaudio, dibawa bersama Flatpak dan dijalankan setelah hak istimewa disetel ulang.

Firejail, di sisi lain, menggabungkan semua fungsi terkait menjadi satu file yang dapat dieksekusi, mempersulit audit Anda dan menjaga keamanan pada tingkat yang tepat.

Bubblewrap pada dasarnya bekerja melalui membuat namespace mount kosong pada sistem file sementara yang akan dihancurkan setelah pemrosesan kotak pasir selesai.

Dengan menggunakan sakelar, pengguna dapat membangun lingkungan sistem file yang diinginkan di dalam ruang nama mount dengan memasang link direktori yang diinginkan dari sistem host.

Bungkus gelembung 0.4.0

Saat ini Bubblewrap dalam versi 0.4.0 yang baru saja dirilis. Kode proyek ditulis dalam C dan didistribusikan di bawah lisensi LGPLv2 +.

Versi baru terkenal karena implementasi dukungan untuk bergabung dengan ruang nama dan proses pengguna yang ada (ruang nama pid).

Bendera "–userns", "–userns2" dan "–pidns" telah ditambahkan untuk mengontrol koneksi namespace.

Fitur ini tidak bekerja dalam mode setuid dan membutuhkan mode terpisah yang dapat bekerja tanpa hak root, tetapi membutuhkan ruang nama pengguna untuk diaktifkan pada sistem (dinonaktifkan secara default pada Debian dan RHEL / CentOS) dan tidak mengecualikan kemungkinan untuk mengeksploitasi secara potensial kerentanan yang tersisa di tepi batasan "ruang nama pengguna".

Dari fitur-fitur baru Bubblewrap 0.4, kemungkinan membangun dengan musl C library alih-alih glibc juga diamati, dan dukungan untuk menyimpan informasi namespace ke file statistik dalam format JSON.

Kode Bubblewrap, serta dokumentasi tentangnya, dapat dilihat di Github, tautannya adalah ini.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.