Keluaran Bubblewrap 0.6, lapisan untuk mencipta persekitaran terpencil

Keluaran alat untuk mengatur kerja persekitaran terpencil Bubblewrap 0.6 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:

  • Menambah sokongan untuk sistem pemasangan Meson. Sokongan untuk membina dengan Autotools telah dikekalkan buat masa ini, tetapi akan dialih keluar dalam keluaran akan datang.
  • Melaksanakan pilihan "--add-seccomp" untuk menambah lebih daripada satu program seccomp. Menambahkan amaran bahawa jika anda menetapkan pilihan "--seccom" sekali lagi, hanya parameter terakhir akan digunakan.
  • Cawangan induk dalam repositori git telah dinamakan semula kepada main.
  • Menambahkan sokongan separa untuk spesifikasi REUSE, yang menyatukan proses menentukan maklumat lesen dan hak cipta. Banyak fail kod mempunyai pengepala SPDX-License-Identifier ditambah. Mengikuti garis panduan REUSE memudahkan untuk menentukan lesen mana yang digunakan untuk bahagian mana kod aplikasi secara automatik.
  • Ditambah menyemak nilai pembilang argumen baris perintah (argc) dan melaksanakan jalan keluar kecemasan jika pembilang adalah sifar. Perubahan ini membantu menyekat isu keselamatan yang disebabkan oleh pengendalian yang salah terhadap argumen baris arahan yang diluluskan, seperti CVE-2021-4034 dalam Polkit.

Sumber: opennet.ru

Tambah komen