Tutorial lengkap tentang sandboxing di Linux dengan Firejail dan lainnya.

Pembaharuan Terakhir: 22/02/2026
penulis: Isaac
  • Sandboxing di Linux mengandalkan namespace, seccomp-BPF, MAC, dan chroot untuk mengisolasi proses dan membatasi dampak kerentanan.
  • Firejail menawarkan cara yang ringan dan sederhana untuk mengisolasi aplikasi desktop dan server dengan profil yang telah ditentukan sebelumnya dan opsi lanjutan.
  • Alat-alat seperti Bubblewrap, Flatpak, AppArmor, SELinux, dan Kata Containers memperluas kemungkinan isolasi dalam skenario yang lebih kompleks.
  • Menggabungkan keamanan memori dengan sandboxing, seperti pada pendekatan Fil-C dan OpenSSH, memberikan pertahanan berlapis untuk aplikasi-aplikasi penting.

Penggunaan sandbox di Linux

Amankan aplikasi Anda di Linux Hal ini hampir menjadi keharusan jika Anda menjelajahi situs web yang penuh dengan iklan agresif, menjalankan biner yang tidak tepercaya, atau mengelola layanan yang terekspos ke internet. Meskipun Linux sudah merupakan sistem yang cukup tangguh, kenyataannya adalah bahwa browser, pemutar media, atau klien jaringan apa pun dapat menjadi titik masuk yang sempurna untuk malware, cryptojacking, atau pencurian data jika Anda tidak mengisolasinya dengan benar.

Dalam tutorial lengkap ini tentang Penggunaan sandbox di Linux dengan alat-alat seperti Firejail, Bubblewrap, AppArmor, dan teknologi kernel. Anda akan melihat bagaimana isolasi proses benar-benar bekerja, mekanisme keamanan apa yang digunakan sistem (namespace, seccomp-BPF, chroot, batasan sumber daya, dll.), dan bagaimana Anda dapat menggabungkannya secara praktis untuk meminimalkan dampak dari potensi eksploitasi. Tujuannya adalah agar Anda meninggalkan tempat ini dengan pemahaman yang jelas, contoh yang siap digunakan, dan fondasi yang kuat untuk meningkatkan keamanan aplikasi desktop dan server Anda.

Cara menggunakan Firejail
Artikel terkait:
Cara menggunakan Firejail di Linux untuk mengisolasi dan melindungi aplikasi.

Apa itu sandbox di Linux dan mengapa Anda harus menggunakannya?

Ketika kita berbicara tentang sandboxing di Linux, yang kita maksud adalah menjalankan program dalam lingkungan terbatas, terpisah dari bagian sistem lainnya, sehingga jika terjadi kesalahan (eksploitasi, malware, skrip berbahaya di situs web, dll.) kerusakannya terbatas di dalam "sandbox" tersebut dan tidak mudah memengaruhi bagian sistem operasi lainnya, dokumen Anda, atau layanan lainnya.

Pendekatan ini sangat berguna untuk aplikasi yang sangat rentanseperti peramban web, klien email, aplikasi perpesanan, program torrent, pemutar media, atau layanan jaringan yang dapat diakses dari internet. Dalam semua kasus ini, risiko pemrosesan konten yang tidak tepercaya sangat tinggi, sehingga masuk akal untuk melindunginya dengan beberapa lapisan perlindungan.

Di Linux, sandboxing modern terutama didasarkan pada mekanisme kernel asli: Ruang nama LinuxKebijakan kontrol akses (MAC) seperti AppArmor atau SELinux, filter seccomp-BPF, pembatasan dengan setrlimit, chroot, dan eksekusi di bawah pengguna yang tidak memiliki hak istimewa. Alat-alat seperti Firejail, Bubblewrap, Flatpak, atau bahkan sistem kontainer seperti Docker bergantung pada blok bangunan dasar ini.

Penting juga untuk memahami bahwa Keamanan memori dan sandboxing adalah konsep yang berbeda namun saling melengkapi.Suatu program dapat ditulis dalam bahasa yang aman terhadap memori (atau dilindungi oleh runtime yang mencegah kesalahan umum C/C++), tetapi jika program tersebut memiliki akses penuh ke sistem file dan semua panggilan sistem, program tersebut tetap berbahaya jika disusupi. Sebaliknya, program yang diisolasi dalam sandbox dapat mengandung kerentanan memori yang dapat dieksploitasi dari dalam. Keamanan sejati berasal dari penggabungan kedua pendekatan tersebut.

Firejail: sandbox paling populer untuk aplikasi desktop.

Penjara api mungkin adalah alat sandboxing paling terkenal di desktop LinuxProgram ini ditulis dalam bahasa C dan berfungsi sebagai program yang dapat dieksekusi dengan bit SUID yang mengandalkan namespace, seccomp-BPF, dan fitur kernel lainnya untuk menciptakan lingkungan terisolasi di sekitar program yang ingin Anda jalankan.

Keuntungan besarnya adalah itu Sangat ringan dan mudah digunakan.Kecepatan aplikasi di dalam sandbox hampir identik dengan eksekusi normal; ia tidak menambahkan proses residen saat sistem dimulai dan memiliki sangat sedikit ketergantungan. Dalam praktiknya, ia hanya mengonsumsi sumber daya saat Anda meluncurkan aplikasi melaluinya, sehingga cocok bahkan untuk mesin dengan spesifikasi rendah.

Selain itu, Firejail hadir dengan Profil konfigurasi yang telah ditentukan sebelumnya untuk lebih dari 300-1000 aplikasi umum. (tergantung pada versi yang Anda lihat): peramban seperti Firefox dan Chromium, VLC, Transmission, pembaca PDF, editor teks, dan banyak lagi. Profil ini menentukan bagian mana dari sistem file yang dilihat oleh setiap program, izin apa yang dimilikinya, apakah dapat menggunakan suara, jenis akses jaringan apa yang dimilikinya, dll.

Anda juga dapat menggunakan Firejail untuk program server dan alat terminalSebagai contoh, untuk membatasi akses server web Apache atau layanan khusus yang mendengarkan pada port tertentu. Modelnya selalu sama: proses berjalan dalam serangkaian namespace dan batasan yang membatasi dampak pelanggaran keamanan.

Bagaimana cara kerja Firejail secara teknis

Agar Firejail dapat mengangkat sangkarnya, mereka menggunakan secara intensif Ruang nama LinuxFungsi ini, yang mulai hadir di kernel pada versi 2.6.23, telah diperluas untuk menawarkan berbagai jenis isolasi: PID, jaringan, pengguna, mount, UTS (hostname), IPC, dll. Setiap namespace merangkum sekumpulan sumber daya, sehingga proses yang berbagi namespace melihat realitas yang berbeda dari proses di luar namespace tersebut.

Dengan kata lain, sebuah program yang dimulai dengan Firejail. Perangkat tersebut tidak melihat sistem file, tabel proses, tumpukan jaringan, atau nama host yang sama. alih-alih seluruh sistem, tetapi versi yang difilter atau sebagian dirakit tergantung pada profil yang digunakan. Inilah dasar dari banyak teknologi kontainer, seperti Docker, dan merupakan alasan utama mengapa teknologi ini sangat efisien.

Firejail melengkapi namespace dengan Kebijakan kontrol akses (MAC) pada sistem fileDengan aturan-aturan ini, Anda dapat, misalnya, mengizinkan program untuk mengakses hanya subdirektori tertentu dari direktori beranda Anda, seperti Unduhan atau folder konfigurasi khusus aplikasi, sambil memblokir akses ke sisanya. Banyak profil default sudah menyertakan aturan yang terdefinisi dengan baik yang memungkinkan program untuk berfungsi tanpa membiarkannya menjelajahi disk Anda secara bebas.

Lapisan penting lainnya adalah seccomp-BPFMekanisme ini memungkinkan filter panggilan sistem (syscall) dikaitkan dengan suatu proses. Filter tersebut dijelaskan menggunakan BPF (Berkeley Packet Filter) dan mendefinisikan panggilan sistem mana yang diizinkan dan dengan parameter apa; panggilan lain menyebabkan kernel menghentikan proses atau mengembalikan kesalahan. Browser seperti Chrome dan sistem kontainer seperti Docker juga memanfaatkan teknik ini untuk membatasi apa yang dapat dilakukan oleh kode yang sedang berjalan.

  Cara menginstal dan mengkonfigurasi Java di Linux langkah demi langkah

Akhirnya, Firejail bisa Hidup dengan AppArmor dan SELinuxSistem MAC ini bekerja pada tingkat kernel untuk membatasi akses ke file, soket, kemampuan, dan lain-lain. Firejail menambahkan lapisan isolasi lain: ia tidak hanya menentukan sumber daya mana yang dapat diakses oleh suatu aplikasi, tetapi juga memisahkannya ke dalam namespace sehingga bahkan beberapa aplikasi dengan izin serupa tidak harus saling melihat atau memanipulasi satu sama lain.

Instal Firejail dan antarmuka grafisnya, Firetools.

Di sebagian besar distribusi GNU/Linux, Firejail Fitur ini tidak terpasang secara bawaan, tetapi tersedia di repositori resmi.Di Debian, Ubuntu, dan turunannya, cukup gunakan APT untuk mengintegrasikannya ke dalam sistem tanpa dependensi tambahan atau layanan latar belakang tambahan.

Untuk menginstal paket dasar Firejail, Anda dapat menjalankan perintah berikut:

sudo apt-get install firejail

Dengan satu perintah itu saja, Anda akan memiliki Semua yang Anda butuhkan untuk menggunakan Firejail dari terminal.Anda tidak perlu menyentuh file konfigurasi untuk memulai; dengan mengetahui beberapa perintah dasar, Anda sudah dapat melakukan jailbing pada aplikasi pertama Anda.

Jika Anda menginginkan antarmuka grafis yang lebih ramah pengguna Untuk meluncurkan dan mengkonfigurasi aplikasi, Anda juga dapat menginstal Firetools, yang berfungsi sebagai peluncur dengan ikon di system tray dan wizard pengaturan.

sudo apt-get install firetools

Setelah instalasi, Anda akan melihat dua entri baru di menu aplikasi: satu untuk tray dengan peluncur dan satu lagi untuk Panduan Konfigurasi Penjara Api, sebuah wizard langkah demi langkah yang memungkinkan Anda memilih aplikasi, memutuskan apakah akan menggunakan profil default atau profil kustom, dan menyesuaikan izin pada direktori, suara, jaringan, dan perlindungan kernel lainnya.

Menggunakan Firejail dari terminal: dasar-dasar dan selengkapnya

Penggunaan Firejail yang paling umum adalah untuk tambahkan perintah firejail ke dalam file yang dapat dieksekusi. yang ingin Anda isolasi. Jika program memiliki profil yang telah ditentukan sebelumnya, profil tersebut akan diterapkan secara otomatis; jika tidak, konfigurasi umum akan digunakan ditambah konfigurasi apa pun yang Anda tambahkan melalui baris perintah.

Sebagai contoh, untuk membuka Firefox di dalam sandbox, perintahnya adalah:

firejail firefox

Perlu diingat bahwa pada distribusi seperti Ubuntu 22.04 dan yang lebih baru, Firefox biasanya hadir sebagai paket Snap, jadi Perintah ini mungkin tidak berfungsi secara langsung.Dalam hal ini, Anda perlu menggunakan versi yang dikemas oleh APT atau menyesuaikan profil ke jalur yang benar dari biner yang sebenarnya berjalan.

Hal yang sama berlaku untuk aplikasi desktop lainnya. Beberapa contoh umum antara lain:

firejail gedit
firejail evince
firejail vlc
firejail transmission-gtk

Saat aplikasi-aplikasi tersebut terbuka, jika Anda melihat monitor sumber daya, Anda akan melihat bahwa setiap proses muncul sebagai anak dari proses firejailUntuk melihat pohon proses lengkap yang berjalan di dalam sandbox pada waktu tertentu, Anda dapat menggunakan:

firejail --tree

Jika Anda ingin menjelajahi semua opsi yang didukung (ada banyak untuk jaringan, X11, bandwidth, profil khusus, dll.), Anda memiliki opsi yang biasa tersedia:

firejail --help

Profil konfigurasi Firejail: di mana letaknya dan bagaimana cara mengaksesnya

Kekuatan sejati Firejail berasal dari... profil konfigurasiSetiap profil menjelaskan bagaimana program tertentu harus diisolasi: direktori mana yang dipasangnya sebagai hanya baca atau baca-tulis, apakah ia memiliki akses ke folder pengguna, apakah akselerasi 3D diizinkan, apakah ia dapat mengakses Internet, DNS mana yang digunakannya, apakah ia mendengarkan server suara, dll.

Profil global sistem biasanya disimpan di /etc/firejail/Untuk melihat daftar lengkap yang tersedia di mesin Anda, Anda dapat menjalankan perintah berikut:

ls /etc/firejail/

Setiap file dengan ekstensi .Profil menentukan aturan untuk suatu program. Jika Anda ingin memodifikasi, misalnya, profil Firefox default, Anda dapat mengeditnya dengan editor teks favorit Anda dengan menjalankannya dengan hak akses administrator:

sudo nano /etc/firejail/firefox.profile

Di dalamnya Anda akan menemukan arahan Firejail yang mengontrol perakitan khusus, akses, kapasitas, dan opsiUntuk memahami semua parameter yang tersedia, sangat disarankan untuk meninjau halaman manual khusus untuk profil:

man 5 firejail-profile

Selain memodifikasi profil yang sudah ada, Anda dapat Buat profil baru untuk program yang belum memiliki profil sendiri.Dalam kasus-kasus ini, Firejail biasanya menggunakan konfigurasi generik yang lebih permisif. Jika Anda ingin menyesuaikan perilaku aplikasi tertentu, Anda dapat menentukan file profil dengan namanya dan menyesuaikannya dengan kebutuhan Anda, menggunakan dokumentasi resmi dan contoh dari pengguna lain.

Profil pengguna: menimpa dan memperluas pengaturan standar

Seringkali, menyentuh hal itu bukanlah kepentingan kita. profil sistem di /etc/firejailBaik untuk mempermudah pembaruan di masa mendatang atau karena Anda ingin memiliki variasi sendiri untuk pengguna tertentu, Firejail mendukung profil di direktori konfigurasi pengguna, yang dapat mencakup profil global dan menambahkan atau memodifikasi aturan.

Langkah pertama adalah membuat folder tempat profil pengguna ini akan disimpan:

mkdir -p ~/.config/firejail/

Bayangkan Anda menginginkan VLC. tidak pernah memiliki akses ke internet Saat Anda membukanya dengan Firejail, Anda dapat membuat profil lokal bernama vlc.profile yang menyertakan profil global dan menambahkan pembatasan jaringan. Untuk melakukan ini, buka file:

nano ~/.config/firejail/vlc.profile

Dan masukkan sesuatu seperti berikut ini:

include /etc/firejail/vlc.profile
net none

Pengarahan memasukkan Seret pengaturan VLC default, dan baris berikut akan menambahkan aturan untuk memblokir jaringan. Mulai dari situ, jalankan Penjara Api VLC Program ini juga akan menggunakan file pengguna ini dan, oleh karena itu, VLC tidak akan dapat mengakses internet, sehingga hanya dapat memutar konten lokal.

Ingatlah bahwa nama file di folder pengguna Anda harus cocokkan dengan nama profil standar agar Firejail dapat mendeteksi dan menggabungkannya dengan benar.

Opsi lanjutan Firejail: jaringan, mode privat, dan sumber daya.

Selain profil, Firejail menawarkan beragam fitur yang bagus. parameter baris perintah untuk menyesuaikan perilaku sandbox sementara pada setiap eksekusi, tanpa perlu menyentuh file konfigurasi.

  DLL Windows yang Mencurigakan: Deteksi, Pembajakan, dan Pertahanan

Misalnya, Anda bisa menonaktifkan akses jaringan untuk aplikasi tertentu dengan menggunakan opsi –net=none. Untuk memulai VLC dalam mode internet terisolasi, cukup:

firejail --net=none vlc

Fitur lain yang sangat ampuh adalah mode pribadiDalam mode ini, program berjalan di sistem file sementara (tmpfs), tidak melihat pengaturan atau file pribadi Anda yang sebenarnya, dan semua yang dilakukannya akan hilang saat Anda keluar dari sandbox. Ini ideal untuk operasi sensitif, seperti mengakses perbankan online, menguji situs web yang mencurigakan, atau menjalankan perangkat lunak yang tidak ingin Anda tinggalkan jejaknya.

Contoh praktisnya adalah membuka Google Chrome dengan mode privat dan DNS khusus (misalnya, yang dari Google):

firejail --private --dns=8.8.8.8 --dns=8.8.4.4 google-chrome

Dalam skenario ini, Chrome memulai dengan pengaturan default-nya, tanpa ekstensi atau riwayat penelusuran, mengisolasi dirinya dalam lingkungan tmpfs, dan menggunakan server DNS yang ditentukan. Ini adalah cara yang cukup masuk akal untuk meminimalkan risiko saat mengunjungi situs web sensitif.

Firejail juga mengizinkan hal itu. Aplikasi di dalam sandbox menggunakan antarmuka jaringan virtualnya sendiri.dengan alamat IP internal terpisah, tabel ARP, firewall terpisah, dll., menggunakan macvlan. Anda dapat, misalnya, menjalankan Firefox pada antarmuka eth0 dengan:

firejail --net=eth0 firefox

Jika Anda ingin menetapkan alamat IP tertentu untuk sandbox tersebut:

firejail --net=eth0 --ip=192.168.1.80 firefox

Ingat itu Fungsi ini saat ini biasanya terbatas pada jaringan berkabel.dan mungkin tidak berfungsi pada antarmuka nirkabel tergantung pada konfigurasi dan distribusi sistem Anda.

Kontrol bandwidth dan pemantauan sandbox

Salah satu fitur Firejail yang kurang dikenal adalah kemampuannya untuk batasi bandwidth dari aplikasi yang Anda jalankan di dalam sandbox. Ini sangat cocok untuk pengujian kinerja, mensimulasikan koneksi lambat, atau sekadar mencegah klien torrent menghabiskan seluruh bandwidth Anda.

Pola umumnya terdiri dari berikan nama pada kotak pasir lalu operasikan dari terminal lain. Misalnya, menjalankan Firefox di dalam sandbox bernama browser yang terhubung ke eth0:

firejail --name=navegador --net=eth0 firefox

Di terminal lain, Anda dapat mengatur batas unggah dan unduh dengan opsi –bandwidth, dengan menentukan nama sandbox, antarmuka, dan nilai (dalam KB/s):

firejail --bandwidth=navegador set eth0 80 20

Dengan parameter tersebut, Firefox akan dibatasi pada kecepatan unduh 80 KB/s dan kecepatan unggah 20 KB/s.Jika Anda ingin menghapus pembatasan tersebut di kemudian hari, Anda dapat menghapus aturan bandwidth dengan perintah berikut:

firejail --bandwidth=navegador clear eth0

Untuk mengetahui kapan saja Aplikasi apa saja yang Anda jalankan di dalam Firejail?Perintah `-list` menampilkan daftar PID, pengguna, dan program terkait:

firejail --list

Dan jika yang menarik minat Anda adalah melihat konsumsi sumber daya (memori, CPU, jumlah proses) dari setiap sandbox aktif, yang dapat Anda gunakan:

firejail --top

Masuk ke sandbox yang sudah ada dan gunakan Firejail secara default.

Ada situasi-situasi di mana Anda mungkin tertarik. mengakses “dari dalam” sebuah sandbox yang sedang berjalanSebagai contoh, untuk memeriksa konfigurasi jaringan Anda, meninjau rute yang terpasang, atau melakukan tugas administratif. Firejail memungkinkan Anda untuk bergabung dengan sandbox tertentu menggunakan opsi `--join`, menggunakan PID dari salah satu proses.

Jika, misalnya, di pintu keluar penjara api – daftar Anda melihat bahwa Firefox memiliki PID 5394, Anda dapat memasuki sandbox-nya dengan:

sudo firejail --join=5394

Firejail sendiri akan menangani peralihan ke proses anak pertama di dalam jail dan membiarkan Anda berada di shell root di dalam lingkungan terisolasi tersebut, dari mana Anda dapat menjalankan pemeriksaan yang Anda perlukan.

Kemungkinan praktis lainnya adalah Jadikan Firejail sebagai cara default untuk memulai program apa pun yang memiliki profil yang tersedia.Untuk melakukan ini, Anda dapat menggunakan perintah firecfg, yang membuat tautan simbolik di /usr/local/bin yang mengarah ke /usr/bin/firejail untuk setiap aplikasi dengan profil.

sudo firecfg

Mulai saat ini, setiap kali Anda menjalankan program dari daftar (dari menu grafis atau terminal), program tersebut akan otomatis berjalan di dalam sandbox. Jika Anda ingin mengembalikan pengaturan ini, cukup hapus tautan simbolik yang dibuat di / usr / local / bin.

Jika Anda lebih suka menerapkan perilaku ini hanya pada satu aplikasi spesifikAnda dapat membuat tautan simbolik sendiri. Misalnya, agar Firefox selalu menggunakan Firejail:

sudo ln -s /usr/bin/firejail /usr/local/bin/firefox

Jika Anda ingin menghentikan penggunaan Firejail secara otomatis untuk program tersebut, Anda hanya perlu menghapus tautan simbolik yang sesuai di /usr/local/bin.

Server grafis alternatif: Xpra dan Xephyr dengan Firejail

Salah satu kritik klasik terhadap model X11 adalah bahwa Hal ini tidak menawarkan isolasi yang baik antara aplikasi grafis.Hal ini membuka peluang bagi keylogger, tangkapan layar, dan teknik pengintaian antar jendela lainnya. Firejail berupaya mengurangi sebagian masalah ini dengan memungkinkan aplikasi berjalan di server grafis alternatif.

Secara khusus, Anda dapat menggunakan Xpra dan Xephyr sebagai server X terpisah, sehingga program yang diisolasi tidak berbagi server X yang sama dengan sisa desktop. Pertama, Anda perlu menginstal paket yang sesuai pada sistem Anda:

sudo apt-get install xpra xserver-xephyr

Kemudian, Anda dapat menjalankan aplikasi dengan menentukan server X yang akan digunakan dengan opsi –x11. Misalnya, untuk memulai VLC tanpa akses jaringan dan menggunakan Xephyr:

firejail --x11=xephyr --net=none vlc

Jika Anda lebih memilih aplikasi berjalan di Xpra, perintahnya akan serupa, dengan mengubah parameternya:

firejail --x11=xpra --net=none vlc

Dengan skema ini, Anda membuat hidup jauh lebih sulit bagi pengguna keylogger dan perekam layar. bahwa mereka mencoba memata-matai apa yang Anda lakukan di aplikasi tertentu itu, karena aplikasi tersebut tetap "terhubung" ke server grafisnya sendiri, terpisah dari bagian desktop lainnya.

Pendekatan sandboxing lainnya di Linux: Bubblewrap, Flatpak, AppArmor, dan kontainer.

Meskipun Firejail sangat nyaman bagi pengguna desktop, terdapat lebih banyak alat dalam ekosistem Linux yang ditujukan untuk mengisolasi proses dan aplikasiTidak ada yang sempurna dan semuanya memiliki kelebihan dan kekurangan masing-masing, tetapi penting untuk mengetahuinya agar dapat memilih yang terbaik dalam setiap kasus.

Bubblewrap adalah alternatif yang berfokus pada menawarkan lingkungan runtime sandboxing minimalis.Bubblewrap lebih bersih dan memiliki permukaan serangan yang lebih kecil daripada alat setuid besar. Konfigurasinya lebih sulit secara langsung daripada Firejail, tetapi banyak solusi modern menggunakannya di balik layar. Tidak seperti Firejail, filosofi Bubblewrap adalah menghindari penggunaan SUID sebisa mungkin, sehingga mengurangi dampak potensi kerentanan internal.

  Cara mencegah browser web mengingat kata sandi Anda

Proyek seperti Bubblewrap dibangun di atasnya. Penjara Gelembungyang tujuannya adalah untuk menawarkan pengalaman yang lebih ramah pengguna dengan mencoba memperbaiki beberapa kekurangan organisasi Firejail (profil yang lebih konsisten, konfigurasi yang lebih jelas, dll.). Kekurangannya adalah alat ini kurang dikenal dengan basis pengembang yang kecil, jadi Ini belum diaudit atau teruji di lapangan. serta pilihan-pilihan populer lainnya.

Di sisi lain adalah FlatpakMetode ini banyak digunakan untuk mendistribusikan aplikasi desktop yang terisolasi. Meskipun mengandalkan teknik sandboxing (namespace, portal, izin deklaratif, dll.), banyak ahli menunjukkan bahwa Mengonfigurasikannya tanpa meninggalkan celah bukanlah hal yang mudah.Selain itu, ini hanya berlaku untuk aplikasi yang dikemas sebagai Flatpak, jadi jika program Anda tidak ada dalam format tersebut, ini tidak akan berfungsi untuk Anda.

Dalam bidang kebijakan MAC, AppArmor dan SELinux Mereka memungkinkan Anda untuk menentukan aturan yang sangat rinci tentang file, soket, kapasitas, dan sumber daya mana yang dapat digunakan oleh setiap program. Secara teori, mereka sangat ampuh dan biasanya menawarkan tingkat keamanan yang lebih tinggi daripada solusi yang ditentukan pengguna, tetapi mereka memiliki masalah yang sama: Menyiapkannya dengan benar itu rumit.Membuat profil yang kuat untuk setiap layanan membutuhkan waktu, pengalaman, dan pemeliharaan terus-menerus.

Dalam lingkungan cloud dan Kubernetes, alternatif yang sangat menarik adalah... kontainer berbasis mesin virtual ringan, seperti Kata Containers, yang diintegrasikan oleh Red Hat OpenShift sebagai runtime opsional yang sesuai dengan OCI. Dalam model ini, setiap beban kerja berjalan pada kernel terisolasi sendiri di dalam VM ringan, sehingga memberikan lapisan isolasi tambahan Di atas pemisahan berdasarkan namespace yang biasa. Operator bertanggung jawab untuk menginstal, mengelola, dan memperbarui runtime ini di dalam klaster.

Keamanan memori + sandboxing: pendekatan Fil-C dan kasus OpenSSH

Selain di komputer desktop, banyak aplikasi penting berjalan di server (seperti...) OpenSSH atau komponen platform SaaS) mendapat manfaat dari penggabungan keamanan memori dan sandboxing mendalamDi sinilah pendekatan proyek seperti Fil-C berperan, yang menawarkan implementasi aman untuk C/C++ yang mampu berintegrasi dengan baik dengan mekanisme asli Linux.

OpenSSH di Linux sudah menggunakan beberapa teknik isolasi: chroot (membuat kandang chroot) untuk membatasi tampilan sistem file, eksekusi proses sebagai pengguna dan grup yang tidak memiliki hak istimewa, penggunaan batas setel untuk membatasi sumber daya (membuka file, membuat proses, dll.) dan filter. seccomp-BPF yang hanya mengizinkan sebagian kecil panggilan sistem yang terkontrol; segala sesuatu yang lain menyebabkan proses tersebut dihentikan.

Tantangan bagi runtime seperti Fil-C adalah Beradaptasi dengan batasan-batasan tersebut tanpa merusak program.Sebagai contoh, jika pengumpul sampah (garbage collector) membutuhkan thread latar belakang, Anda harus memastikan bahwa semua thread tersebut dibuat sebelum mengaktifkan sandbox, dan bahwa filter seccomp dipasang pada semua thread tersebut, bukan hanya thread utama, serta memperhatikan pengaturan seperti PR_SET_NO_NEW_PRIVS dan PR_SET_SECCOMP.

Fil-C menawarkan fitur-fitur seperti zlock_runtime_threads()Langkah-langkah ini memaksa inisialisasi semua thread yang diperlukan sebelum mengaktifkan sandbox dan memblokir pembuatan thread baru setelahnya, memastikan bahwa pembatasan diterapkan secara konsisten di seluruh proses. Hal ini juga membutuhkan pengecualian kecil pada filter seccomp, seperti mengaktifkan MAP_NORESERVE di mmap atau syscall sched_yield, yang diperlukan untuk manajemen runtime internal.

Jenis pekerjaan ini menunjukkan bahwa Dimungkinkan untuk menggabungkan lingkungan yang aman dari segi memori, sandbox yang ketat, dan aplikasi yang penting. Seperti OpenSSH tanpa mengorbankan kompatibilitas atau kinerja. Para pengembang Chrome dan Mozilla telah mendokumentasikan praktik serupa untuk sandbox Linux mereka sendiri selama bertahun-tahun, menetapkan standar untuk pertahanan berlapis yang kuat.

Contoh penggunaan praktis: melindungi aktivitas penjelajahan internet dan kehidupan sehari-hari Anda.

Semua ini dapat diterapkan dalam skenario sehari-hari bagi setiap pengguna Linux. Misalnya, saat Anda mengunjungi Situs torrent, situs unduhan yang penuh dengan iklan pop-up, situs web porno, atau portal dengan tautan mencurigakan.Kemungkinan menemukan skrip cryptojacking, iklan berbahaya, atau upaya pengambilan sidik jari digital sangatlah besar.

Ukuran sederhana terdiri dari blokir browser dengan Firejail Setiap kali Anda mengalami masalah seperti itu. Luncurkan browser dengan:

firejail chromium &

O baik:

firejail firefox &

Ini memberi Anda lapisan ketenangan pikiran ekstra. Tanda ampersand (&) di akhir berguna untuk menjaga browser tetap terbuka meskipun Anda tidak sengaja menutup terminal. Jika Anda menggabungkan ini dengan solusi seperti Pi-hole di jaringan lokal Anda, atau ekstensi pemblokiran skrip dan penambangan, Anda sangat mengurangi potensi serangan. saat menjelajahi situs web yang mencurigakan.

Mode privat Firejail, profil yang memblokir akses ke folder sensitif, dan penggunaan DNS terkontrol untuk browser yang Anda gunakan dengan perbankan online Anda adalah keputusan kecil yang, jika digabungkan, Mereka membuat perbedaan antara ketakutan yang serius dan sekadar bulu mata yang tertutup..

Jika dilihat secara keseluruhan, jelas bahwa sandboxing di Linux bukanlah solusi ajaib, tetapi merupakan alat yang sangat ampuh jika Anda tahu cara menggabungkannya: Firejail dan profilnya untuk penggunaan sehari-hari, Bubblewrap dan Flatpak untuk lingkungan yang lebih terkontrol, AppArmor/SELinux dan seccomp-BPF untuk layanan penting, dan teknologi seperti Kata Containers atau runtime yang aman memori seperti Fil-C saat membangun infrastruktur yang lebih kompleks. Pada akhirnya, ini tentang membangun lapisan sehingga bahkan jika satu lapisan gagal, Sisanya akan terus menjaga sistem Anda tetap aman..