Keluaran Bubblewrap 0.8, lapisan untuk mencipta persekitaran terpencil

Keluaran alat untuk mengatur kerja persekitaran terpencil Bubblewrap 0.8 tersedia, biasanya digunakan untuk menyekat aplikasi individu pengguna yang tidak mempunyai hak istimewa. Dalam amalan, Bubblewrap digunakan oleh projek Flatpak sebagai lapisan untuk mengasingkan aplikasi yang dilancarkan daripada pakej. Kod projek ditulis dalam C dan diedarkan di bawah lesen LGPLv2+.

Untuk pengasingan, teknologi virtualisasi kontena tradisional Linux digunakan, berdasarkan penggunaan cgroup, ruang nama, Seccomp dan SELinux. Untuk melaksanakan operasi istimewa untuk mengkonfigurasi bekas, Bubblewrap dilancarkan dengan hak akar (fail boleh laku dengan bendera suid) dan kemudian menetapkan semula keistimewaan selepas bekas itu dimulakan.

Pengaktifan ruang nama pengguna dalam sistem ruang nama, yang membolehkan anda menggunakan set pengecam anda sendiri yang berasingan dalam bekas, tidak diperlukan untuk operasi, kerana ia tidak berfungsi secara lalai dalam banyak pengedaran (Bubblewrap diletakkan sebagai pelaksanaan suid terhad a subset keupayaan ruang nama pengguna - untuk mengecualikan semua pengecam pengguna dan proses daripada persekitaran, kecuali yang semasa, mod CLONE_NEWUSER dan CLONE_NEWPID digunakan). Untuk perlindungan tambahan, program yang dilaksanakan di bawah Bubblewrap dilancarkan dalam mod PR_SET_NO_NEW_PRIVS, yang melarang pemerolehan keistimewaan baharu, contohnya, jika bendera setuid hadir.

Pengasingan pada peringkat sistem fail dicapai dengan mencipta ruang nama pelekap baharu secara lalai, di mana partition akar kosong dibuat menggunakan tmpfs. Jika perlu, partition FS luaran dilampirkan pada partition ini dalam mod "mount β€”bind" (contohnya, apabila dilancarkan dengan pilihan "bwrap β€”ro-bind /usr /usr", partition /usr dimajukan daripada sistem utama dalam mod baca sahaja). Keupayaan rangkaian terhad kepada akses kepada antara muka gelung balik dengan pengasingan tindanan rangkaian melalui bendera CLONE_NEWNET dan CLONE_NEWUTS.

Perbezaan utama daripada projek Firejail yang serupa, yang juga menggunakan model pelancaran setuid, ialah dalam Bubblewrap lapisan penciptaan kontena hanya merangkumi keupayaan minimum yang diperlukan, dan semua fungsi lanjutan yang diperlukan untuk menjalankan aplikasi grafik, berinteraksi dengan desktop dan permintaan penapisan ke Pulseaudio, dipindahkan ke bahagian Flatpak dan dilaksanakan selepas keistimewaan telah ditetapkan semula. Firejail, sebaliknya, menggabungkan semua fungsi yang berkaitan dalam satu fail boleh laku, yang menyukarkan untuk mengaudit dan mengekalkan keselamatan pada tahap yang sepatutnya.

Dalam keluaran baharu:

  • Menambahkan pilihan "--disable-userns" untuk melumpuhkan penciptaan ruang nama pengguna bersarangnya sendiri dalam persekitaran kotak pasir.
  • Menambahkan pilihan "--assert-userns-disabled" untuk menyemak sama ada ruang ID pengguna sedia ada digunakan apabila menggunakan pilihan "--disable-userns".
  • Kandungan maklumat mesej ralat yang berkaitan dengan melumpuhkan tetapan CONFIG_SECCOMP dan CONFIG_SECCOMP_FILTER dalam kernel telah ditingkatkan.

Sumber: opennet.ru

Tambah komen