Keluaran sistem pakej sara diri Flatpak 1.12.0

Cawangan stabil baharu kit alat Flatpak 1.12 telah diterbitkan, yang menyediakan sistem untuk membina pakej serba lengkap yang tidak terikat dengan pengedaran Linux tertentu dan dijalankan dalam bekas khas yang mengasingkan aplikasi daripada sistem yang lain. Sokongan untuk menjalankan pakej Flatpak disediakan untuk Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux dan Ubuntu. Pakej Flatpak disertakan dalam repositori Fedora dan disokong oleh pengurus aplikasi GNOME asli.

Inovasi utama dalam cawangan Flatpak 1.12:

  • Pengurusan yang lebih baik bagi persekitaran kotak pasir bersarang yang digunakan dalam pakej flatpak dengan pelanggan untuk perkhidmatan penghantaran permainan Steam. Dalam kotak pasir bersarang, penciptaan hierarki berasingan bagi direktori /usr dan /app dibenarkan, yang digunakan dalam Steam untuk melancarkan permainan dalam bekas berasingan dengan partition /usr sendiri, diasingkan daripada persekitaran dengan klien Steam.
  • Semua contoh pakej dengan pengecam aplikasi yang sama (app-ID) berkongsi direktori /tmp dan $XDG_RUNTIME_DIR. Secara pilihan, menggunakan bendera "--allow=per-app-dev-shm", anda boleh mendayakan penggunaan direktori kongsi /dev/shm.
  • Sokongan yang dipertingkatkan untuk aplikasi Antara Muka Pengguna Teks (TUI) seperti gdb.
  • Pelaksanaan perintah "ostree prune" yang lebih pantas telah ditambahkan pada utiliti bina-kemas kini-repo, dioptimumkan untuk bekerja dengan repositori dalam mod arkib.
  • Kerentanan CVE-2021-41133 dalam pelaksanaan mekanisme portal, yang dikaitkan dengan kekurangan penyekatan panggilan sistem baharu yang berkaitan dengan pemasangan partition dalam peraturan seccomp, telah diperbaiki. Kerentanan membenarkan aplikasi membuat kotak pasir bersarang untuk memintas mekanisme pengesahan "portal" yang digunakan untuk mengatur akses kepada sumber di luar bekas.

    Akibatnya, penyerang, dengan melakukan panggilan sistem berkaitan pelekap, boleh memintas mekanisme pengasingan kotak pasir dan mendapat akses penuh kepada kandungan persekitaran hos. Kerentanan hanya boleh dieksploitasi dalam pakej yang menyediakan aplikasi dengan akses terus kepada soket AF_UNIX, seperti yang digunakan oleh Wayland, Pipewire dan pipewire-pulse. Dalam keluaran 1.12.0, kelemahan tidak dihapuskan sepenuhnya, jadi kemas kini 1.12.1 telah dikeluarkan dengan hangat.

Biar kami ingatkan anda bahawa Flatpak membenarkan pembangun aplikasi untuk memudahkan pengedaran program mereka yang tidak termasuk dalam repositori pengedaran standard dengan menyediakan satu bekas universal tanpa membuat pemasangan berasingan untuk setiap pengedaran. Bagi pengguna yang mementingkan keselamatan, Flatpak membenarkan anda menjalankan aplikasi yang boleh dipersoalkan dalam bekas, menyediakan akses hanya kepada fungsi rangkaian dan fail pengguna yang dikaitkan dengan aplikasi itu. Bagi pengguna yang berminat dengan produk baharu, Flatpak membenarkan anda memasang ujian terkini dan keluaran aplikasi yang stabil tanpa perlu membuat perubahan pada sistem. Sebagai contoh, pakej Flatpak dibina untuk LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, dsb.

Untuk mengurangkan saiz pakej, ia termasuk hanya kebergantungan khusus aplikasi, dan sistem asas dan perpustakaan grafik (pustaka GTK, Qt, GNOME dan KDE, dsb.) direka bentuk sebagai persekitaran masa jalan standard pemalam. Perbezaan utama antara Flatpak dan Snap ialah Snap menggunakan komponen persekitaran sistem utama dan pengasingan berdasarkan panggilan sistem penapisan, manakala Flatpak mencipta bekas yang berasingan daripada sistem dan beroperasi dengan set masa jalan yang besar, tidak menyediakan pakej sebagai kebergantungan, tetapi standard persekitaran sistem (contohnya, semua perpustakaan yang diperlukan untuk pengendalian program GNOME atau KDE).

Sebagai tambahan kepada persekitaran sistem standard (masa jalan), dipasang melalui repositori khas, kebergantungan tambahan (bundle) yang diperlukan untuk operasi aplikasi dibekalkan. Secara keseluruhannya, masa jalan dan berkas membentuk pengisian bekas, walaupun pada hakikatnya masa jalan dipasang secara berasingan dan diikat pada beberapa bekas sekaligus, yang membolehkan anda mengelakkan penduaan fail sistem yang biasa kepada bekas. Satu sistem boleh memasang beberapa masa jalan yang berbeza (GNOME, KDE) atau beberapa versi masa jalan yang sama (GNOME 3.40, GNOME 3.42). Bekas dengan aplikasi sebagai kebergantungan menggunakan pengikatan hanya pada masa jalan tertentu, tanpa mengambil kira pakej individu yang membentuk masa jalan. Semua elemen yang hilang dibungkus secara langsung dengan aplikasi. Apabila bekas dibentuk, kandungan masa jalan dilekapkan sebagai partition /usr dan bundle itu dipasang dalam direktori /app.

Masa jalan dan bekas aplikasi dibina menggunakan teknologi OSTree, di mana imej dikemas kini secara atom daripada repositori seperti Git, yang membenarkan kaedah kawalan versi digunakan pada komponen pengedaran (contohnya, anda boleh melancarkan semula sistem dengan cepat kepada keadaan sebelumnya). Pakej RPM diterjemahkan ke dalam repositori OSTree menggunakan lapisan rpm-ostree khas. Pemasangan berasingan dan kemas kini pakej dalam persekitaran kerja tidak disokong; sistem dikemas kini bukan pada tahap komponen individu, tetapi secara keseluruhan, mengubah keadaannya secara atom. Menyediakan alatan untuk menggunakan kemas kini secara berperingkat, menghapuskan keperluan untuk menggantikan imej sepenuhnya dengan setiap kemas kini.

Persekitaran terpencil yang dijana sepenuhnya bebas daripada pengedaran yang digunakan dan, dengan tetapan pakej yang betul, tidak mempunyai akses kepada fail dan proses pengguna atau sistem utama, tidak boleh mengakses peralatan secara langsung, kecuali output melalui DRI, dan panggilan ke subsistem rangkaian. Output grafik dan organisasi input dilaksanakan menggunakan protokol Wayland atau melalui pemajuan soket X11. Interaksi dengan persekitaran luaran adalah berdasarkan sistem pemesejan DBus dan API Portal khas.

Untuk pengasingan, lapisan Bubblewrap dan teknologi virtualisasi bekas Linux tradisional digunakan, berdasarkan penggunaan cgroup, ruang nama, Seccomp dan SELinux. PulseAudio digunakan untuk mengeluarkan bunyi. Dalam kes ini, pengasingan boleh dilumpuhkan, yang digunakan oleh pembangun banyak pakej popular untuk mendapatkan akses penuh kepada sistem fail dan semua peranti dalam sistem. Contohnya, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity dan VLC datang dengan mod pengasingan terhad yang meninggalkan akses penuh kepada direktori rumah.

Jika pakej dengan akses kepada direktori rumah terjejas, walaupun terdapat label "kotak pasir" dalam perihalan pakej, penyerang hanya perlu menukar fail ~/.bashrc untuk melaksanakan kodnya. Isu yang berasingan ialah kawalan perubahan pada pakej dan kepercayaan dalam pembina pakej, yang selalunya tidak dikaitkan dengan projek atau pengedaran utama.

Sumber: opennet.ru

Tambah komen