Rilis sistem paket mandiri Flatpak 1.12.0

Cabang stabil baru dari toolkit Flatpak 1.12 telah diterbitkan, yang menyediakan sistem untuk membangun paket mandiri yang tidak terikat dengan distribusi Linux tertentu dan dijalankan dalam wadah khusus yang mengisolasi aplikasi dari seluruh sistem. Dukungan untuk menjalankan paket Flatpak disediakan untuk Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux dan Ubuntu. Paket Flatpak disertakan dalam repositori Fedora dan didukung oleh manajer aplikasi asli GNOME.

Inovasi utama di cabang Flatpak 1.12:

  • Peningkatan pengelolaan lingkungan kotak pasir bersarang yang digunakan dalam paket flatpak dengan klien untuk layanan pengiriman game Steam. Di kotak pasir bersarang, diperbolehkan membuat hierarki terpisah dari direktori /usr dan /app, yang digunakan di Steam untuk meluncurkan game dalam wadah terpisah dengan partisi /usr sendiri, diisolasi dari lingkungan dengan klien Steam.
  • Semua instance paket dengan pengidentifikasi aplikasi yang sama (ID aplikasi) berbagi direktori /tmp dan $XDG_RUNTIME_DIR. Secara opsional, dengan menggunakan flag β€œ--allow=per-app-dev-shm”, Anda dapat mengaktifkan penggunaan direktori bersama /dev/shm.
  • Peningkatan dukungan untuk aplikasi Antarmuka Pengguna Teks (TUI) seperti gdb.
  • Implementasi perintah β€œostree prune” yang lebih cepat telah ditambahkan ke utilitas build-update-repo, dioptimalkan untuk bekerja dengan repositori dalam mode arsip.
  • Kerentanan CVE-2021-41133 dalam penerapan mekanisme portal, terkait dengan kurangnya pemblokiran panggilan sistem baru terkait pemasangan partisi dalam aturan seccomp, telah diperbaiki. Kerentanan tersebut memungkinkan aplikasi membuat kotak pasir bersarang untuk melewati mekanisme verifikasi β€œportal” yang digunakan untuk mengatur akses ke sumber daya di luar penampung.

    Akibatnya, penyerang, dengan melakukan panggilan sistem terkait pemasangan, dapat melewati mekanisme isolasi kotak pasir dan mendapatkan akses penuh ke konten lingkungan host. Kerentanan hanya dapat dieksploitasi dalam paket yang menyediakan aplikasi dengan akses langsung ke soket AF_UNIX, seperti yang digunakan oleh Wayland, Pipewire, dan pipewire-pulse. Dalam rilis 1.12.0, kerentanan tidak sepenuhnya dihilangkan, sehingga pembaruan 1.12.1 segera dirilis.

Izinkan kami mengingatkan Anda bahwa Flatpak memungkinkan pengembang aplikasi menyederhanakan distribusi program mereka yang tidak termasuk dalam repositori distribusi standar dengan menyiapkan satu wadah universal tanpa membuat rakitan terpisah untuk setiap distribusi. Untuk pengguna yang sadar akan keamanan, Flatpak memungkinkan Anda menjalankan aplikasi yang meragukan dalam sebuah wadah, hanya menyediakan akses ke fungsi jaringan dan file pengguna yang terkait dengan aplikasi tersebut. Bagi pengguna yang tertarik dengan produk baru, Flatpak memungkinkan Anda menginstal aplikasi pengujian terbaru dan rilis stabil tanpa perlu melakukan perubahan pada sistem. Misalnya, paket Flatpak dibuat untuk LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, dll.

Untuk mengurangi ukuran paket, ini hanya mencakup dependensi khusus aplikasi, dan sistem dasar serta pustaka grafis (pustaka GTK, Qt, GNOME dan KDE, dll.) dirancang sebagai lingkungan runtime standar plug-in. Perbedaan utama antara Flatpak dan Snap adalah Snap menggunakan komponen lingkungan sistem utama dan isolasi berdasarkan pemfilteran panggilan sistem, sementara Flatpak membuat wadah terpisah dari sistem dan beroperasi dengan kumpulan runtime besar, tidak menyediakan paket sebagai dependensi, tetapi standar lingkungan sistem (misalnya, semua perpustakaan yang diperlukan untuk pengoperasian program GNOME atau KDE).

Selain lingkungan sistem standar (runtime), yang diinstal melalui repositori khusus, dependensi tambahan (bundel) yang diperlukan agar aplikasi dapat berfungsi juga disediakan. Secara total, runtime dan bundel membentuk pengisian wadah, meskipun faktanya runtime diinstal secara terpisah dan diikat ke beberapa wadah sekaligus, yang menghindari duplikasi file sistem yang umum untuk wadah. Satu sistem dapat menginstal beberapa runtime berbeda (GNOME, KDE) atau beberapa versi runtime yang sama (GNOME 3.40, GNOME 3.42). Kontainer dengan aplikasi sebagai dependensi hanya menggunakan pengikatan pada runtime tertentu, tanpa memperhitungkan masing-masing paket yang membentuk runtime tersebut. Semua elemen yang hilang dikemas langsung dengan aplikasi. Ketika sebuah kontainer terbentuk, konten runtime dipasang sebagai partisi /usr, dan bundel dipasang di direktori /app.

Runtime dan wadah aplikasi dibuat menggunakan teknologi OSTree, di mana gambar diperbarui secara atom dari repositori mirip Git, yang memungkinkan metode kontrol versi diterapkan ke komponen distribusi (misalnya, Anda dapat dengan cepat mengembalikan sistem ke a keadaan sebelumnya). Paket RPM diterjemahkan ke dalam repositori OSTree menggunakan lapisan rpm-ostree khusus. Instalasi terpisah dan pembaruan paket dalam lingkungan kerja tidak didukung; sistem diperbarui bukan pada tingkat komponen individual, tetapi secara keseluruhan, mengubah statusnya secara atom. Menyediakan alat untuk menerapkan pembaruan secara bertahap, menghilangkan kebutuhan untuk mengganti gambar sepenuhnya dengan setiap pembaruan.

Lingkungan terisolasi yang dihasilkan sepenuhnya independen dari distribusi yang digunakan dan, dengan pengaturan paket yang tepat, tidak memiliki akses ke file dan proses pengguna atau sistem utama, dan tidak dapat mengakses peralatan secara langsung, kecuali output melalui DRI dan panggilan ke subsistem jaringan. Organisasi keluaran dan masukan grafis diimplementasikan menggunakan protokol Wayland atau melalui penerusan soket X11. Interaksi dengan lingkungan eksternal didasarkan pada sistem pesan DBus dan API Portal khusus.

Untuk isolasi, lapisan Bubblewrap dan teknologi virtualisasi container Linux tradisional digunakan, berdasarkan penggunaan cgroups, namespace, Seccomp dan SELinux. PulseAudio digunakan untuk mengeluarkan suara. Dalam hal ini, isolasi dapat dinonaktifkan, yang digunakan oleh pengembang banyak paket populer untuk mendapatkan akses penuh ke sistem file dan semua perangkat di sistem. Misalnya, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity, dan VLC hadir dengan mode isolasi terbatas yang memberikan akses penuh ke direktori home.

Jika paket dengan akses ke direktori home disusupi, meskipun ada label β€œsandboxed” di deskripsi paket, penyerang hanya perlu mengubah file ~/.bashrc untuk mengeksekusi kodenya. Masalah terpisah adalah kontrol atas perubahan paket dan kepercayaan pada pembuat paket, yang seringkali tidak terkait dengan proyek atau distribusi utama.

Sumber: opennet.ru

Tambah komentar