Bubblewrap, alat untuk membuat aplikasi di persekitaran terpencil

Bubblewrap adalah alat apa yang berjaya untuk mengatur kerja kotak pasir di Linux dan lari di peringkat aplikasi pengguna yang tidak istimewa. Dalam praktiknya, Bubblewrap digunakan oleh projek Flatpak sebagai lapisan perantaraan untuk mengasingkan aplikasi yang dilancarkan dari pakej perisian.

Untuk pengasingan, Linux menggunakan teknologi virtualisasi bekas tradisional berdasarkan penggunaan kumpulan, ruang nama, Seccomp dan SELinux. Untuk melakukan operasi istimewa untuk mengkonfigurasi wadah, Bubblewrap dimulakan dengan hak root (fail yang dapat dieksekusi dengan bendera suid), diikuti dengan penetapan semula hak istimewa setelah wadah diinisialisasi.

Tidak perlu mengaktifkan ruang nama pengguna pada sistem, yang membolehkan anda menggunakan set id anda sendiri dalam bekas, kerana secara lalai ia tidak berfungsi pada banyak pengedaran.

Mengenai Bubblewrap

Bubblewrap diposisikan sebagai pelaksanaan suida terhad dari subset fungsi ruang nama pengguna untuk mengecualikan semua id pengguna dan proses dari persekitaran kecuali yang sekarang, gunakan mod CLONE_NEWUSER dan CLONE_NEWPID.

Untuk perlindungan tambahan, program yang berjalan di Bubblewrap bermula dalam mod PR_SET_NO_NEW_PRIVS, yang melarang hak istimewa baru, sebagai contoh, dengan bendera setuid.

Pengasingan pada tahap sistem fail dilakukan dengan membuat ruang nama mount baru secara lalai, di mana partisi root kosong dibuat menggunakan tmpfs.

Sekiranya perlu, bahagian FS luaran dilampirkan pada bahagian ini di «lekapkan – ikat»(Contohnya, bermula dengan pilihan«bwrap –ro-bind / usr / usr', Bahagian / usr diteruskan dari host dalam mod baca sahaja).

Keupayaan rangkaian terhad untuk mengakses ke antara muka loopback terbalik dengan pengasingan timbunan rangkaian melalui penunjuk CLONE_NEWNET dan CLONE_NEWUTS.

Perbezaan utama dengan projek Firejail yang serupa, yang juga menggunakan pelancar setuid, adalah di Bubblewrap, lapisan bekas hanya merangkumi ciri minimum yang diperlukan dan semua fungsi lanjutan yang diperlukan untuk melancarkan aplikasi grafik, berinteraksi dengan desktop, dan menapis panggilan ke Pulseaudio, dibawa ke sisi Flatpak dan dijalankan setelah hak istimewa ditetapkan semula.

Firejail, sebaliknya, menggabungkan semua fungsi yang berkaitan menjadi satu fail yang boleh dilaksanakan, menyukarkan audit anda dan menjaga keselamatan pada tahap yang sepatutnya.

Bubblewrap pada dasarnya berfungsi dengan kaedah membuat ruang nama mount kosong pada sistem fail sementara yang akan dimusnahkan setelah pemprosesan kotak pasir selesai.

Dengan menggunakan suis, pengguna dapat membina persekitaran sistem fail yang diinginkan dalam ruang nama gunung dengan memasang pada pautan direktori yang diinginkan dari sistem host.

Balut gelembung 0.4.0

Pada masa ini Bubblewrap dalam versi 0.4.0 yang baru dikeluarkan. Kod projek ditulis dalam C dan diedarkan di bawah lesen LGPLv2 +.

Versi baru terkenal dengan pelaksanaan sokongan untuk bergabung dengan ruang nama dan proses pengguna sedia ada (ruang nama pid).

Bendera "–serns", "–userns2" dan "–pidns" telah ditambahkan untuk mengawal sambungan ruang nama.

Ciri ini tidak berfungsi dalam mod setuid dan memerlukan mod berasingan yang dapat berfungsi tanpa hak root, tetapi memerlukan ruang nama pengguna diaktifkan pada sistem (dilumpuhkan secara lalai pada Debian dan RHEL / CentOS) dan tidak mengecualikan kemungkinan untuk mengeksploitasi berpotensi kerentanan yang masih ada hingga ke tepi sekatan "ruang nama pengguna".

Dari ciri baru Bubblewrap 0.4, kemungkinan bangunan dengan perpustakaan musl C dan bukannya glibc juga diperhatikan, dan sokongan untuk menyimpan maklumat ruang nama ke fail statistik dalam format JSON.

Kod Bubblewrap, serta dokumentasi mengenainya, boleh dilihat di Github, pautan adalah ini.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.