3 poin oleh GN⁺ 22 hari lalu | 1 komentar | Bagikan ke WhatsApp
  • Alat ringan untuk menjalankan agen AI dalam isolasi di lingkungan Linux, memberikan batas eksekusi yang aman dengan satu perintah tanpa konfigurasi container yang rumit
  • Seiring berulangnya kasus alat AI yang menghapus atau merusak data dengan mengakses file system nyata, kebutuhan akan lingkungan eksekusi yang aman semakin menonjol
  • Melindungi home directory dengan overlay copy-on-write dan memisahkan /tmp serta /var/tmp untuk mencegah perubahan pada file asli
  • Menyediakan tiga mode isolasi: Casual, Strict, dan Bare, sehingga tingkat keamanan dan cakupan akses dapat dipilih
  • Proyek open source yang dikembangkan tim peneliti Stanford ini menawarkan sarana perlindungan praktis untuk menggunakan alat AI dengan lebih aman

Alat ringan jai untuk isolasi agen AI

  • jai adalah alat yang dirancang agar agen AI dapat dengan mudah diisolasi (containment) di lingkungan Linux
    • Memberikan batas eksekusi yang aman dengan satu perintah tanpa konfigurasi container atau VM yang rumit
    • Dapat langsung diterapkan ke workflow yang ada, seperti bantuan coding atau eksekusi skrip
  • Contoh kasus nyata

    • Sejumlah pengguna melaporkan kerugian berupa kehilangan file dan penghapusan direktori saat menggunakan alat AI
      • Nick Davidov melaporkan bahwa 15 tahun foto keluarga terhapus oleh perintah terminal
      • Claude Code dari Anthropic menghapus home directory sehingga proyek pengembangan hilang
      • Cursor dilaporkan mengosongkan working tree hingga “semuanya hilang”
      • Seorang pengguna Reddit menyebut Antigravity menghapus seluruh drive D
      • Pengguna Cursor lainnya melaporkan bahwa 100GB file terhapus
    • Kasus-kasus ini menunjukkan adanya celah keamanan ketika alat AI diberi akses ke akun nyata
  • Fitur utama jai

    • Secara otomatis menyiapkan batas antara akun eksekusi dan home directory
      • Working directory tetap memiliki izin baca/tulis penuh
      • Home directory dilindungi dengan overlay copy-on-write sehingga file asli tidak berubah
      • /tmp dan /var/tmp dipisahkan ke ruang independen, sementara file lainnya dibatasi hanya-baca
    • Eksekusi terisolasi dapat dilakukan hanya dengan menambahkan jai di depan perintah
      • Contoh: jai codex, jai claude, atau cukup jai untuk menjalankan shell
    • Dapat langsung digunakan tanpa Dockerfile atau proses build image
      • Tidak perlu mengatur flag bwrap yang rumit atau menulis skrip
  • Pilihan mode isolasi

    • Menyediakan tiga mode: Casual / Strict / Bare
      • Casual: melindungi home directory dengan copy-on-write, dan sebagian besar file tetap bisa dibaca
      • Strict: berjalan sebagai pengguna jai terpisah, dengan home directory kosong untuk isolasi yang lebih kuat
      • Bare: home directory kosong tetapi UID pengguna tetap dipertahankan
    • Tiap mode berbeda dalam kerahasiaan (confidentiality), integritas (integrity), dan dukungan NFS
      • Mode Strict memberikan isolasi terkuat, tetapi tidak mendukung home berbasis NFS
  • Perbandingan dengan alat alternatif

    • Docker
      • Cocok untuk reproduksi lingkungan berbasis image, tetapi terlalu berat untuk sandboxing sementara bagi alat host
      • Tidak memiliki fitur overlay home directory
    • bubblewrap
      • Sandbox namespace yang kuat, tetapi konfigurasi file system harus ditentukan sendiri
      • jai menghilangkan kompleksitas ini
    • chroot
      • Bukan sarana isolasi keamanan, dan tidak memiliki mount namespace, PID namespace, atau pemisahan kredensial, sehingga tidak direkomendasikan untuk sandboxing bahkan di Linux
  • Batasan keamanan

    • jai tidak menjamin keamanan sepenuhnya
      • Sebagai “casual sandbox”, jai mengurangi cakupan kerusakan tetapi tidak menghentikan semua serangan
      • Mode Casual lemah dalam perlindungan kerahasiaan, dan mode Strict pun tetap berbeda dari tingkat isolasi container atau VM
      • Untuk lingkungan multi-tenant atau situasi berisiko tinggi, disarankan menggunakan container atau mesin virtual
  • Latar belakang proyek

    • Dikembangkan bersama oleh kelompok riset Stanford Secure Computer Systems (SCS) dan Future of Digital Currency Initiative (FDCI)
    • Disediakan sebagai perangkat lunak open source gratis, untuk membantu pengguna memanfaatkan AI dengan lebih aman

1 komentar

 
GN⁺ 22 hari lalu
Komentar Hacker News
  • Cukup tambahkan pengaturan berikut ke .claude/settings.json

    {
      "sandbox": {
        "enabled": true,
        "filesystem": {
          "allowRead": ["."],
          "denyRead": ["~/"],
          "allowWrite": ["."],
          "denyWrite": ["/"]
        }
      }
    }
    

    Jika ingin mengizinkan akses ke direktori luar, cukup ubah bagian allowRead
    Fitur ini adalah opsi sandbox baru yang ditambahkan 10 hari lalu

    • Pernah melihat claude bingung soal direktori saat ini atau menjalankan perintah seperti rm -rf *
      Untungnya itu tidak terjadi bersamaan, tapi membayangkannya saja sudah mengerikan
      Ide sandbox ini bagus, tetapi harus dipaksakan di level rendah agar efektif
      Karena claude sendiri adalah program besar yang dibuat AI, menambahkan lapisan keamanan buatan manusia dengan kurang dari 3000 baris kode bisa menjadi pertahanan yang berarti
    • Versi mendatang claude-code bisa saja diam-diam mengganti nama pengaturan ini atau menghapusnya
      Karena itu orang mungkin lebih memilih perangkat lunak sandboxing terpisah
    • Ada contoh konfigurasi bercanda yang mengizinkan GPU dipakai tetapi hanya mencegah penghapusan /
      Konfigurasi itu mengizinkan akses ke perangkat /dev/nvidia*, dan merupakan pengaturan satir yang menerima risiko kebocoran data
    • Alat keamanan lama yang sudah teruji puluhan tahun sebenarnya sudah ada
      Jika claude dijalankan sebagai pengguna dengan hak terbatas, isolasi akan otomatis diwarisi ke subprocess
    • Fitur sandbox tidak berjalan dengan baik di Linux (Arch) dan macOS (Tahoe)
      Isu terkait sudah dibuka
      bubblewrap dan seatbelt bekerja baik secara terpisah, tetapi saat dijalankan lewat claude-code tampak seperti dinonaktifkan
  • Mengejutkan melihat orang begitu mudah memasang AI agent di komputer pribadi mereka
    Selama puluhan tahun kita menjaga keamanan sistem, lalu tiba-tiba memberi semua izin ke perangkat lunak yang tidak dapat diprediksi

    • Dulu pun orang mengabaikan peringatan saat alat build otomatis menarik dependensi, dan sekarang serangan supply chain terus berulang
      Kenyamanan jangka pendek mengalahkan keamanan jangka panjang
    • Sebenarnya, orang yang mau mengambil risiko seperti ini dan orang yang menomorsatukan keamanan adalah kelompok yang berbeda
    • Di lingkungan perusahaan, akses biasanya sudah dibatasi, jadi ini lebih sensitif di PC pribadi
      Di VM pengembangan jarak jauh milikku, hanya ada data yang tidak masalah jika dilihat Claude
    • Pada awal Docker juga suasananya mirip: “tinggal unduh image saja!”
      Tetapi industri segera menyadari risiko keamanan dan mengambil tindakan
  • Pemisahan izin Unix yang sederhana pun sudah cukup
    Buat dua akun pengguna, lalu kelompokkan hanya folder yang ingin dibagikan dengan AI
    Lihat tulisan blog terkait

  • Di berandanya tertulis “berhenti percaya secara membabi buta”, dan metode instalasinya adalah build manual alih-alih curl | bash

    • Mengekstrak file tar sendiri lalu memasang dengan makepkg -i jauh lebih aman
      PKGFILE hanya sekitar 30 baris, dan fungsi build-nya pun cuma 7 baris
      Sebaliknya, skrip seperti rustup (910 baris), claude (158 baris), dan opencode (460 baris) jauh lebih rumit
    • Sebaliknya, merangkai curl | tar | makepkg dalam satu baris adalah cara yang tidak bisa dipercaya
  • Proyek ini dirancang dengan baik, dan tampak sedikit lebih aman dan nyaman daripada caraku
    Aku membuat akun pengguna terpisah untuk mengisolasi agent
    Hanya saja, kadang izin jadi berantakan sehingga aku memperbaikinya dengan skrip
    Pada akhirnya, cara yang paling pasti adalah memberi laptop terpisah sepenuhnya
    Tidak ada yang lebih aman daripada perangkat yang dipisahkan secara fisik

    • Namun untuk berkomunikasi dengan layanan eksternal, tetap perlu memberikan API key, sehingga ada risiko kunci itu bocor
      Agent punya kemampuan setingkat penetration testing keamanan, jadi pemisahan pengguna saja terasa kurang menenangkan
    • Saat ini aku juga memakai pendekatan pemisahan pengguna
      Jika memakai container, agent malah bingung ketika harus membuat container sendiri
  • Situsnya terlihat berkualitas rendah karena terkesan “vibe-coded”, tetapi tool aslinya benar-benar diimplementasikan langsung oleh profesor Stanford
    Lihat tautan FAQ

    • Sebagai penulisnya, izinkan aku bilang langsung: aku memang tidak jago desain web, tetapi aku ahli sistem operasi
      Isi dokumentasinya sudah kuperbaiki agar akurat, jadi bisa dipercaya
      Situsnya sendiri dibiarkan seperti hasil AI, yang justru agak ironis
    • Penulisnya adalah David Mazieres, orang yang meneliti user-level filesystem sejak awal 2000-an
      Ia memimpin Stanford Secure Computer Systems Group
    • jai adalah tool berisiko tinggi, tetapi websitenya sederhana, jadi walaupun vibe-coded masih bisa dimaklumi
    • Meski begitu, secara pribadi aku tetap lebih suka halaman HTML yang ringkas
  • Yang mengkhawatirkan adalah jika agent punya izin tulis ke direktori proyek, maka eksploit yang persisten jadi mungkin dilakukan
    File seperti .pyc, .venv, dan .git/hooks bisa dijalankan di luar sandbox
    Percakapan ChatGPT juga menunjukkan kerentanan seperti ini
    Karena itu, cara paling aman adalah transfer file berbasis git patch
    File yang diubah di sandbox seharusnya hanya diekspor keluar jika termasuk item yang sudah di-commit di git

    • Akan bagus jika ada opsi untuk membuat direktori .git/ menjadi read-only
      Dengan jai -D, CWD bisa dijadikan overlay, tetapi menggabungkan perubahannya rumit
    • Aku menjalankan kode hanya di dalam sandbox itu sendiri (setingkat VM)
      Agent bekerja di cabang git worktree terpisah, lalu hanya di-merge setelah ditinjau
      Dengan begitu, alur keamanan berbasis review bisa dipertahankan
    • git hook sama sekali tidak boleh diizinkan
  • Sebagai alternatif sederhana, agent dijalankan lewat ssh di akun pengguna terpisah
    Direktori proyek di-bind mount agar aksesnya bisa dikendalikan
    Ini cocok dengan fitur ssh remote di VSCode

    • Aku juga sudah 6 bulan memakai akun khusus, dan yang perlu dikelola hanya direktori yang boleh diakses
      Ini jauh lebih sederhana dan merupakan cara isolasi yang efisien dibanding sistem keamanan yang rumit
  • Dalam praktiknya, ada banyak masalah yang lebih halus daripada rm -rf
    claude-code pernah membuat folder /public/blog/ saat ingin menyimpan SVG, sehingga routing Apache rusak
    Ini bukan masalah penghapusan atau izin, tetapi perilaku tak diinginkan membuat blog mengembalikan 404
    jai mungkin bisa mencegah kesalahan besar seperti ini, tetapi masalah yang lebih detail seperti ini tetap sulit

  • Proyek yang hebat, tetapi judulnya kurang pas
    Aku suka strukturnya: akses penuh ke direktori saat ini, sisanya read-only, dan home directory diperlakukan dengan copy-on-write
    Pendekatan seperti ini seharusnya menjadi model keamanan default untuk AI agent

    • Karena situsnya tidak punya judul, nama seperti “jai - filesystem containment for AI agents” mungkin lebih cocok