Panduan Bubblewrap Linux: Membangun Sandbox Mandiri

Pengantar

Bubblewrap (bwrap) merupakan utilitas sandbox tingkat rendah yang memungkinkan pengguna non-root mengisolasi berkas, tumpukan jaringan, serta hierarki proses secara mandiri dan aman. Melalui panduan praktis berbasis Ubuntu 24.04 ini, kita akan mempelajari mekanisme fundamental kontainerisasi Linux dengan mengonfigurasi pembatasan akses sistem secara langsung.

1. Pemasangan Bubblewrap dan Inisialisasi Shell Terisolasi

Langkah awal dimulai dengan mengunduh utilitas bubblewrap dari repositori resmi distribusi.

Menginstal paket bubblewrap via APT

Pemanfaatan bwrap mengandalkan namespace Linux tanpa mewajibkan eskalasi hak istimewa (root/setuid). Dengan membatasi direktori sistem utama ke mode baca-saja, perintah di dalam lingkungan virtual ini terlindungi sepenuhnya dari intervensi luar.

⚙️ [Parameter Konfigurasi Utama]

--ro-bind : Menautkan direktori atau berkas sistem host ke dalam sandbox dalam mode baca-saja (Read-Only).
--bind : Memberikan izin akses penuh (baca dan tulis) pada path yang dipetakan dari host.
--dev : Menyediakan sistem berkas perangkat virtual minimal (/dev) yang esensial di dalam ruang isolasi.
--proc : Memasang struktur /proc baru yang dikaitkan langsung dengan namespace proses mandiri.
--tmpfs : Mengalokasikan partisi berbasis memori (RAM-backed) yang terisolasi dan musnah secara otomatis.
--unshare-all : Memutuskan seluruh keterikatan namespace dengan host secara simultan (User, PID, Network, IPC, UTS, Cgroup).
--symlink : Menyusun tautan simbolik internal untuk menjaga kompatibilitas struktur sistem operasi.

Menjalankan shell minimal terisolasi dengan bwrap

2. Mengamankan Berkas Menggunakan Read-Only Bind Mount

Untuk mengevaluasi proteksi data, kita siapkan direktori simulasi /tmp/bwrap-test beserta berkas teks uji di host.

Membuat berkas pengujian di lingkungan host

Argumen --ro-bind mengaitkan folder /tmp/bwrap-test ke target /test di dalam sandbox. Saat isi dokumen diperiksa, sistem menampilkan data asli tanpa hambatan, menandakan operasi baca bekerja sebagaimana mestinya.

Membaca isi berkas dari dalam sandbox bwrap

Pengujian dilanjutkan dengan memaksakan operasi penulisan ke berkas /test/data.txt tersebut dari dalam ruang kurungan.
Karena sistem berkas dipetakan secara read-only, kernel secara tegas menolak modifikasi data. Berkas di mesin host tetap steril dari manipulasi eksternal, dikonfirmasi oleh keluaran Write protected successfully.

Verifikasi kegagalan penulisan pada mount read-only

3. Kompartementalisasi Ruang Proses dan Tumpukan Jaringan

Integrasi opsi --unshare-pid dan --proc /proc memisahkan tabel proses secara menyeluruh.
Seluruh aktivitas sistem host disembunyikan secara sempurna; program yang dijalankan di dalam sandbox hanya dapat melihat proses internalnya sendiri (bwrap, sh, dan ps), dimulai dari alokasi PID 1.

Daftar proses terisolasi di dalam namespace PID baru

Isolasi jaringan kemudian diterapkan lewat bendera --unshare-net guna memutus komunikasi dengan antarmuka luar.
Hasil eksekusi membuktikan bahwa bahkan antarmuka loopback (lo) tidak dikonfigurasi secara aktif. Dampaknya, aplikasi di dalam kontainer terputus total dari konektivitas internet maupun jaringan lokal.

Memeriksa ketiadaan antarmuka jaringan di dalam sandbox

4. Alokasi Ruang Kerja Sementara Berbasis Memori (tmpfs)

Opsi --tmpfs /tmp menciptakan ruang penyimpanan sementara langsung pada RAM. Di sini, berkas catatan /tmp/sandbox.log dapat dibuat dan dimanipulasi dengan lancar selama sesi berjalan.

Menulis berkas sementara pada partisi tmpfs

Begitu proses kontainer dimatikan, kita dapat memvalidasi status direktori /tmp/sandbox.log pada lingkungan host.
Semua data di partisi tmpfs lenyap seketika bersamaan dengan tertutupnya proses, menjamin lingkungan host tetap higienis tanpa meninggalkan residu digital.

Memverifikasi bahwa filesystem host tidak terpengaruh

Melalui eksplorasi bubblewrap ini, Anda telah menguasai dasar perancangan ruang eksekusi yang kokoh dan mandiri. Terapkan kombinasi opsi isolasi berkas dan jaringan sesuai kebutuhan spesifik beban kerja Anda untuk meminimalkan risiko keamanan sistem.