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, dapat dieksekusi di bawah kendali
Program 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 serupa
Rilis baru ini terkenal karena implementasi dukungan untuk bergabung dengan namespace pengguna yang ada dan memproses namespace pid. Untuk mengontrol koneksi namespace, flag “--userns”, “--userns2” dan “-pidns” telah ditambahkan.
Fitur ini tidak berfungsi dalam mode setuid dan memerlukan penggunaan mode terpisah yang dapat bekerja tanpa mendapatkan hak root, tetapi memerlukan aktivasi
ruang nama pengguna pada sistem (dinonaktifkan secara default pada Debian dan RHEL/CentOS) dan tidak mengecualikan kemungkinan
Sumber: opennet.ru