1 poin oleh GN⁺ 2025-12-01 | Belum ada komentar. | Bagikan ke WhatsApp
  • Landlock adalah API keamanan Linux yang membuat aplikasi melakukan sandboxing mandiri di tingkat kernel dengan mendeklarasikan secara eksplisit sumber daya yang boleh diakses
  • Dibandingkan SELinux atau AppArmor, Landlock lebih sederhana, dan kebijakan dapat dibuat serta diterapkan saat runtime tanpa hak istimewa pengembang
  • Kebijakan didefinisikan dalam bentuk allowlist eksplisit untuk file, direktori, port, dan lainnya yang boleh diakses, serta memungkinkan penguatan keamanan bertahap melalui pembatasan hierarkis
  • Tersedia binding untuk Rust, Go, Haskell, sehingga kontrol akses yang terperinci bisa diterapkan di berbagai lingkungan seperti aplikasi GUI, server, dan proses desktop
  • Dalam ekosistem keamanan Linux, Landlock mendapat perhatian sebagai alat sandbox tanpa hak istimewa yang sederhana dan praktis, serta dipandang sebagai komponen kunci untuk memperkuat keamanan desktop ke depan

Gambaran umum Landlock

  • Landlock adalah API yang memungkinkan aplikasi Linux mendeklarasikan secara eksplisit sumber daya yang dapat mereka akses
    • Mirip dengan konsep unveil() dan pledge() di OpenBSD, berlandaskan prinsip “hanya izinkan sumber daya yang diperlukan, blokir sisanya”
  • Menyediakan lapisan pertahanan yang ramah pengembang yang lebih mudah dipahami dan diintegrasikan dibanding mekanisme keamanan Linux yang sudah ada
  • Tujuannya adalah memberi pengenalan yang mudah dipahami sekaligus mendorong penggunaan Landlock

Cara kerjanya

  • Berbentuk Linux Security Module(LSM) dan tersedia sejak Linux 5.13
  • Tidak seperti SELinux atau AppArmor, Landlock menerapkan pembatasan sementara tingkat proses (transient restriction)
    • Kebijakan dibuat saat runtime, hanya berlaku untuk thread saat ini dan proses anaknya, lalu hilang saat proses berakhir
  • Komponen kebijakan
    1. Handled accesses: kategori operasi yang akan dibatasi (misalnya baca/tulis sistem file)
    2. Access grants: daftar eksplisit objek yang diizinkan
  • Contoh kebijakan
    • /home/user hanya-baca
    • /tmp baca/tulis
    • Mengizinkan bind ke port 2222
  • Saat landlock_restrict_self() dipanggil, thread tersebut dan proses anaknya secara permanen masuk ke area terbatas
    • Pembatasan tidak bisa dicabut, dan dapat ditumpuk hingga maksimum 16 lapisan (layer)
    • Lapisan bawah dapat lebih mengurangi akses, tetapi hak yang sudah dihapus pada lapisan atas tidak dapat dipulihkan
  • Bekerja secara tanpa hak istimewa (unprivileged), sehingga aplikasi biasa pun dapat melakukan sandboxing mandiri
  • Melalui manajemen versi ABI, Landlock tetap dapat berjalan sejauh mungkin bahkan pada kernel yang lebih lama
  • Sebagai Stackable LSM, Landlock dapat digunakan bersamaan dengan SELinux atau AppArmor

Alasan menggunakannya

  • Cocok untuk aplikasi dengan pola akses file yang dapat diprediksi
    • Contoh: membatasi web server agar hanya dapat mengakses /var/www/html dan /tmp
  • Tidak memerlukan campur tangan administrator atau pengaturan global sistem, karena kebijakan bisa didefinisikan langsung di dalam kode
  • Dapat digunakan tanpa eskalasi hak akses, sehingga mudah diintegrasikan ke sebagian besar program
  • Ada binding untuk Rust, Go, Haskell, dan juga banyak proyek pembungkus bergaya unveil
  • Belum ada pustaka C resmi, tetapi sudah ada beberapa implementasi tidak resmi yang dapat digunakan
  • Contoh kode Rust mengatur /usr, /etc, /dev sebagai hanya-baca, dan /home, /tmp sebagai baca/tulis

Kondisi sandboxing Linux saat ini dan kebutuhannya

  • Seiring meningkatnya penggunaan Linux, malware yang menargetkan desktop juga meningkat
  • Keamanan Linux yang relatif lebih baik lebih disebabkan oleh pangsa pasar dan hambatan teknis, bukan karena keamanan struktural
  • Masalah pada distribusi umum
    • Dapat menjalankan biner yang tidak tepercaya
    • Dapat langsung menjalankan skrip dari internet
    • Menggunakan sudo tanpa kata sandi
    • Aplikasi biasa dapat mengakses file sensitif di dalam $HOME
    • Dapat memantau penekanan tombol di lingkungan X11
    • Dapat melakukan bind ke port arbitrer

Keterbatasan alat keamanan yang ada

  • Containerization (Docker, Podman) : cocok untuk isolasi layanan, tetapi kurang sesuai untuk aplikasi desktop, dan ada kasus isolasi dinonaktifkan melalui opsi --privileged
  • Flatpak / Snap: cocok untuk aplikasi GUI tetapi cakupan izinnya berlebihan, serta kurang cocok untuk alat CLI
  • Firejail: memerlukan profil per aplikasi, dan harus dipanggil secara eksplisit setiap kali dijalankan

Mekanisme yang ada dari sudut pandang pengembang

  • seccomp: kuat tetapi konfigurasi rumit, dan pendekatan blacklist rentan
  • SELinux: kuat tetapi kompleks dan memerlukan kebijakan administrator; pada banyak distribusi dinonaktifkan secara bawaan
  • AppArmor: lebih sederhana daripada SELinux tetapi tetap memerlukan profil administrator, dan dinonaktifkan di sebagian distribusi

Ringkasan keunggulan Landlock

  • Tanpa hak istimewa, berpusat pada aplikasi, mudah diintegrasikan, deny-by-default
  • Didukung luas sejak Linux 5.13, sambil tetap menjaga kompatibilitas maju dan mundur
  • Meski tidak sempurna, Landlock menutup celah sebagai alat sandbox tanpa hak istimewa yang sederhana dan mandiri

Kemungkinan penerapan Landlock

  • Pada proses daemon berhak tinggi yang berjalan lama, Landlock dapat digunakan untuk membatasi cakupan akses
  • Pembaca PDF, penampil gambar, browser web, pengolah kata dan sejenisnya dapat dibatasi agar hanya mengakses file yang dibuka
  • Server FTP/HTTP dapat dikonfigurasi agar hanya mengakses file yang diperlukan
    • Contoh: meskipun nginx berjalan sebagai root, penyerang yang memperoleh shell tetap tidak dapat mengakses file di luar kebijakan
  • Jika usulan Supervisor diterapkan, sistem izin mirip Android dapat diwujudkan di desktop Linux
    • Bila digabungkan dengan GUI dan sistem penyimpanan izin, hal ini dapat menghadirkan pengalaman pengguna yang lebih aman

Pengembangan fitur Landlock yang sedang berlangsung

  • Supervise Mode: menentukan izin/tolak akses secara interaktif dari user space, mirip prompt izin ala Android
  • Socket Restrictions: kontrol rinci atas jenis socket dan port yang dapat digunakan proses
  • LANDLOCK_RESTRICT_SELF_TSYNC: menyebarkan pembatasan ke semua thread dalam proses
  • LANDLOCK_ADD_RULE_QUIET: menekan pesan log audit untuk objek tertentu
  • LANDLOCK_ADD_RULE_NO_INHERIT: mencegah izin direktori induk diwariskan ke bawah, sehingga kontrol sistem file menjadi lebih rinci

Ringkasan

  • Landlock adalah mekanisme sandbox deny-by-default yang sederhana dan berbasis tanpa hak istimewa
  • Mudah dipahami dan diintegrasikan, serta memiliki potensi besar untuk meningkatkan keamanan desktop Linux dan aplikasi
  • Pengembang dapat menerapkan Landlock langsung ke aplikasi untuk memperkuat tingkat keamanannya

Belum ada komentar.

Belum ada komentar.