Ikhtisar

Claude Code menampilkan sandboxing asli untuk menyediakan lingkungan yang lebih aman untuk eksekusi agen sambil mengurangi kebutuhan akan permintaan izin yang konstan. Alih-alih meminta izin untuk setiap perintah bash, sandboxing menciptakan batasan yang ditentukan di awal di mana Claude Code dapat bekerja lebih bebas dengan risiko yang berkurang. Alat bash bersandbox menggunakan primitif tingkat OS untuk memberlakukan isolasi filesystem dan jaringan.

Mengapa sandboxing penting

Keamanan berbasis izin tradisional memerlukan persetujuan pengguna yang konstan untuk perintah bash. Meskipun ini memberikan kontrol, hal ini dapat menyebabkan:
  • Kelelahan persetujuan: Berulang kali mengklik “setujui” dapat menyebabkan pengguna kurang memperhatikan apa yang mereka setujui
  • Produktivitas berkurang: Gangguan konstan memperlambat alur kerja pengembangan
  • Otonomi terbatas: Claude Code tidak dapat bekerja seefisien mungkin saat menunggu persetujuan
Sandboxing mengatasi tantangan ini dengan:
  1. Mendefinisikan batasan yang jelas: Tentukan dengan tepat direktori dan host jaringan mana yang dapat diakses Claude Code
  2. Mengurangi permintaan izin: Perintah aman dalam sandbox tidak memerlukan persetujuan
  3. Mempertahankan keamanan: Upaya mengakses sumber daya di luar sandbox memicu notifikasi segera
  4. Memungkinkan otonomi: Claude Code dapat berjalan lebih independen dalam batas yang ditentukan
Sandboxing yang efektif memerlukan keduanya isolasi filesystem dan jaringan. Tanpa isolasi jaringan, agen yang dikompromikan dapat mengeksfiltrasikan file sensitif seperti kunci SSH. Tanpa isolasi filesystem, agen yang dikompromikan dapat memasang pintu belakang pada sumber daya sistem untuk mendapatkan akses jaringan. Saat mengonfigurasi sandboxing, penting untuk memastikan bahwa pengaturan yang dikonfigurasi tidak menciptakan bypass dalam sistem ini.

Cara kerjanya

Isolasi filesystem

Alat bash bersandbox membatasi akses sistem file ke direktori tertentu:
  • Perilaku penulisan default: Akses baca dan tulis ke direktori kerja saat ini dan subdirektorinya
  • Perilaku baca default: Akses baca ke seluruh komputer, kecuali direktori tertentu yang ditolak
  • Akses terblokir: Tidak dapat memodifikasi file di luar direktori kerja saat ini tanpa izin eksplisit
  • Dapat dikonfigurasi: Tentukan jalur yang diizinkan dan ditolak khusus melalui pengaturan

Isolasi jaringan

Akses jaringan dikendalikan melalui server proxy yang berjalan di luar sandbox:
  • Pembatasan domain: Hanya domain yang disetujui yang dapat diakses
  • Konfirmasi pengguna: Permintaan domain baru memicu permintaan izin
  • Dukungan proxy khusus: Pengguna tingkat lanjut dapat menerapkan aturan khusus pada lalu lintas keluar
  • Cakupan komprehensif: Pembatasan berlaku untuk semua skrip, program, dan subproses yang dihasilkan oleh perintah

Penegakan tingkat OS

Alat bash bersandbox memanfaatkan primitif keamanan sistem operasi:
  • Linux: Menggunakan bubblewrap untuk isolasi
  • macOS: Menggunakan Seatbelt untuk penegakan sandbox
Pembatasan tingkat OS ini memastikan bahwa semua proses anak yang dihasilkan oleh perintah Claude Code mewarisi batasan keamanan yang sama.

Memulai

Aktifkan sandboxing

Anda dapat mengaktifkan sandboxing dengan menjalankan perintah slash /sandbox:
> /sandbox
Ini mengaktifkan alat bash bersandbox dengan pengaturan default, memungkinkan akses ke direktori kerja saat ini sambil memblokir akses ke lokasi sistem yang sensitif.

Konfigurasi sandboxing

Sesuaikan perilaku sandbox melalui file settings.json Anda. Lihat Settings untuk referensi konfigurasi lengkap.
Dukungan pola:
  • Jalur mendukung absolut (/home/user), relatif (./src), direktori home (~), dan wildcard (**/*.json)
  • Domain mendukung kecocokan tepat (github.com), wildcard (*.npmjs.org), dan subdomain

Manfaat keamanan

Perlindungan terhadap prompt injection

Bahkan jika penyerang berhasil memanipulasi perilaku Claude Code melalui prompt injection, sandbox memastikan sistem Anda tetap aman: Perlindungan filesystem:
  • Tidak dapat memodifikasi file konfigurasi kritis seperti ~/.bashrc
  • Tidak dapat memodifikasi file tingkat sistem di /bin/
  • Tidak dapat membaca file yang ditolak dalam pengaturan izin Claude Anda
Perlindungan jaringan:
  • Tidak dapat mengeksfiltrasikan data ke server yang dikendalikan penyerang
  • Tidak dapat mengunduh skrip berbahaya dari domain yang tidak sah
  • Tidak dapat melakukan panggilan API yang tidak terduga ke layanan yang tidak disetujui
  • Tidak dapat menghubungi domain apa pun yang tidak secara eksplisit diizinkan
Pemantauan dan kontrol:
  • Semua upaya akses di luar sandbox diblokir di tingkat OS
  • Anda menerima notifikasi segera ketika batasan diuji
  • Anda dapat memilih untuk menolak, mengizinkan sekali, atau memperbarui konfigurasi Anda secara permanen

Permukaan serangan yang berkurang

Sandboxing membatasi potensi kerusakan dari:
  • Dependensi berbahaya: Paket NPM atau dependensi lain dengan kode berbahaya
  • Skrip yang dikompromikan: Skrip build atau alat dengan kerentanan keamanan
  • Rekayasa sosial: Serangan yang menipu pengguna agar menjalankan perintah berbahaya
  • Prompt injection: Serangan yang menipu Claude agar menjalankan perintah berbahaya

Operasi transparan

Ketika Claude Code mencoba mengakses sumber daya jaringan di luar sandbox:
  1. Operasi diblokir di tingkat OS
  2. Anda menerima notifikasi segera
  3. Anda dapat memilih untuk:
    • Menolak permintaan
    • Mengizinkannya sekali
    • Memperbarui konfigurasi sandbox Anda untuk mengizinkannya secara permanen

Keterbatasan Keamanan

  • Keterbatasan Sandboxing Jaringan: Sistem penyaringan jaringan beroperasi dengan membatasi domain yang diizinkan untuk terhubung oleh proses. Sistem ini tidak melakukan inspeksi lalu lintas yang melewati proxy dan pengguna bertanggung jawab untuk memastikan mereka hanya mengizinkan domain terpercaya dalam kebijakan mereka.
Pengguna harus menyadari potensi risiko yang berasal dari mengizinkan domain yang luas seperti github.com yang mungkin memungkinkan eksfiltrasi data. Juga, dalam beberapa kasus mungkin dapat membypass penyaringan jaringan melalui domain fronting.
  • Eskalasi Privilege melalui Unix Sockets: Konfigurasi allowUnixSockets dapat secara tidak sengaja memberikan akses ke layanan sistem yang kuat yang dapat menyebabkan bypass sandbox. Misalnya, jika digunakan untuk memungkinkan akses ke /var/run/docker.sock ini akan secara efektif memberikan akses ke sistem host melalui eksploitasi soket docker. Pengguna didorong untuk mempertimbangkan dengan hati-hati unix socket apa pun yang mereka izinkan melalui sandbox.
  • Eskalasi Izin Filesystem: Izin penulisan filesystem yang terlalu luas dapat memungkinkan serangan eskalasi privilege. Mengizinkan penulisan ke direktori yang berisi executable di $PATH, direktori konfigurasi sistem, atau file konfigurasi shell pengguna (.bashrc, .zshrc) dapat menyebabkan eksekusi kode dalam konteks keamanan yang berbeda ketika pengguna lain atau proses sistem mengakses file ini.
  • Kekuatan Sandbox Linux: Implementasi Linux menyediakan isolasi filesystem dan jaringan yang kuat tetapi mencakup mode enableWeakerNestedSandbox yang memungkinkannya bekerja di dalam lingkungan Docker tanpa namespace yang diprioritaskan. Opsi ini secara konsiderabel melemahkan keamanan dan hanya boleh digunakan dalam kasus di mana isolasi tambahan sebaliknya ditegakkan.

Penggunaan lanjutan

Konfigurasi proxy khusus

Untuk organisasi yang memerlukan keamanan jaringan lanjutan, Anda dapat menerapkan proxy khusus untuk:
  • Mendekripsi dan menginspeksi lalu lintas HTTPS
  • Menerapkan aturan penyaringan khusus
  • Mencatat semua permintaan jaringan
  • Mengintegrasikan dengan infrastruktur keamanan yang ada
{
  "sandbox": {
    "httpProxyPort": 8080,
    "socksProxyPort": 8081,
  }
}

Integrasi dengan alat keamanan yang ada

Alat bash bersandbox bekerja bersama dengan:

Praktik terbaik

  1. Mulai dengan pembatasan: Mulai dengan izin minimal dan perluas sesuai kebutuhan
  2. Pantau log: Tinjau upaya pelanggaran sandbox untuk memahami kebutuhan Claude Code
  3. Gunakan konfigurasi khusus lingkungan: Aturan sandbox yang berbeda untuk konteks pengembangan vs. produksi
  4. Gabungkan dengan izin: Gunakan sandboxing bersama dengan kebijakan IAM untuk keamanan komprehensif
  5. Uji konfigurasi: Verifikasi pengaturan sandbox Anda tidak memblokir alur kerja yang sah

Sumber terbuka

Runtime sandbox tersedia sebagai paket npm sumber terbuka untuk digunakan dalam proyek agen Anda sendiri. Ini memungkinkan komunitas agen AI yang lebih luas untuk membangun sistem otonom yang lebih aman dan lebih aman. Ini juga dapat digunakan untuk sandbox program lain yang mungkin ingin Anda jalankan. Misalnya, untuk sandbox server MCP Anda dapat menjalankan:
npx @anthropic-ai/sandbox-runtime <command-to-sandbox>
Untuk detail implementasi dan kode sumber, kunjungi repositori GitHub.

Keterbatasan

  • Overhead kinerja: Minimal, tetapi beberapa operasi filesystem mungkin sedikit lebih lambat
  • Kompatibilitas: Beberapa alat yang memerlukan pola akses sistem tertentu mungkin memerlukan penyesuaian konfigurasi, atau bahkan mungkin perlu dijalankan di luar sandbox
  • Dukungan platform: Saat ini mendukung Linux dan macOS; dukungan Windows direncanakan

Lihat juga

  • Security - Fitur keamanan komprehensif dan praktik terbaik
  • IAM - Konfigurasi izin dan kontrol akses
  • Settings - Referensi konfigurasi lengkap
  • CLI reference - Opsi baris perintah termasuk -sb