Rilis Bubblewrap 0.6, lapisan untuk menciptakan lingkungan sandbox

Rilis alat untuk mengatur pekerjaan lingkungan terisolasi Bubblewrap 0.6 tersedia, biasanya digunakan untuk membatasi aplikasi individual dari pengguna yang tidak memiliki hak istimewa. Dalam praktiknya, Bubblewrap digunakan oleh proyek Flatpak sebagai lapisan untuk mengisolasi aplikasi yang diluncurkan dari paket. Kode proyek ditulis dalam C dan didistribusikan di bawah lisensi LGPLv2+.

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, program yang dijalankan di bawah 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 Firejail serupa, yang juga menggunakan model peluncuran setuid, adalah bahwa dalam Bubblewrap lapisan pembuatan kontainer hanya mencakup kemampuan minimum yang diperlukan, dan semua fungsi lanjutan yang diperlukan untuk menjalankan aplikasi grafis, berinteraksi dengan desktop, dan memfilter permintaan. ke Pulseaudio, ditransfer ke sisi Flatpak dan dieksekusi setelah hak istimewa disetel ulang. Firejail, di sisi lain, menggabungkan semua fungsi terkait dalam satu file yang dapat dieksekusi, sehingga sulit untuk mengaudit dan menjaga keamanan pada tingkat yang tepat.

Dalam rilis baru:

  • Menambahkan dukungan untuk sistem perakitan Meson. Dukungan untuk membangun dengan Autotools masih dipertahankan untuk saat ini, namun akan dihapus pada rilis mendatang.
  • Menerapkan opsi "--add-seccomp" untuk menambahkan lebih dari satu program seccomp. Menambahkan peringatan bahwa jika Anda menentukan opsi "--seccomp" lagi, hanya parameter terakhir yang akan diterapkan.
  • Cabang master di repositori git telah diubah namanya menjadi main.
  • Menambahkan dukungan parsial untuk spesifikasi REUSE, yang menyatukan proses penentuan informasi lisensi dan hak cipta. Banyak file kode yang ditambahkan header SPDX-License-Identifier. Mengikuti pedoman REUSE memudahkan untuk secara otomatis menentukan lisensi mana yang berlaku untuk bagian mana dari kode aplikasi.
  • Menambahkan pemeriksaan nilai penghitung argumen baris perintah (argc) dan menerapkan pintu keluar darurat jika penghitungnya nol. Perubahan ini membantu memblokir masalah keamanan yang disebabkan oleh kesalahan penanganan argumen baris perintah yang diteruskan, seperti CVE-2021-4034 di Polkit.

Sumber: opennet.ru

Tambah komentar