Ringkasan
Claude Code menampilkan sandboxing asli untuk menyediakan lingkungan yang lebih aman untuk eksekusi agen sambil mengurangi kebutuhan akan prompt izin yang konstan. Alih-alih meminta izin untuk setiap perintah bash, sandboxing menciptakan batas 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: Terus-menerus mengklik “setujui” dapat menyebabkan pengguna membayar perhatian lebih sedikit pada apa yang mereka setujui
- Produktivitas berkurang: Gangguan konstan memperlambat alur kerja pengembangan
- Otonomi terbatas: Claude Code tidak dapat bekerja seefisien mungkin saat menunggu persetujuan
- Mendefinisikan batas yang jelas: Tentukan dengan tepat direktori dan host jaringan mana yang dapat diakses Claude Code
- Mengurangi prompt izin: Perintah aman dalam sandbox tidak memerlukan persetujuan
- Mempertahankan keamanan: Upaya untuk mengakses sumber daya di luar sandbox memicu notifikasi segera
- Memungkinkan otonomi: Claude Code dapat berjalan lebih independen dalam batas yang ditentukan
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 prompt 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
Memulai
Aktifkan sandboxing
Anda dapat mengaktifkan sandboxing dengan menjalankan perintah slash/sandbox:
Konfigurasi sandboxing
Sesuaikan perilaku sandbox melalui filesettings.json Anda. Lihat Settings untuk referensi konfigurasi lengkap.
Claude Code mencakup mekanisme escape hatch yang disengaja yang memungkinkan perintah berjalan di luar sandbox saat diperlukan. Ketika perintah gagal karena pembatasan sandbox (seperti masalah konektivitas jaringan atau alat yang tidak kompatibel), Claude diminta untuk menganalisis kegagalan dan dapat mencoba kembali perintah dengan parameter
dangerouslyDisableSandbox. Perintah yang menggunakan parameter ini melalui alur izin Claude Code normal yang memerlukan izin pengguna untuk dieksekusi. Ini memungkinkan Claude Code menangani kasus tepi di mana alat tertentu atau operasi jaringan tidak dapat berfungsi dalam batasan sandbox.Anda dapat menonaktifkan escape hatch ini dengan mengatur "allowUnsandboxedCommands": false dalam pengaturan sandbox Anda. Saat dinonaktifkan, parameter dangerouslyDisableSandbox sepenuhnya diabaikan dan semua perintah harus berjalan bersandbox atau secara eksplisit terdaftar dalam excludedCommands.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
- 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
- Semua upaya akses di luar sandbox diblokir di tingkat OS
- Anda menerima notifikasi segera ketika batas diuji
- Anda dapat memilih untuk menolak, mengizinkan sekali, atau secara permanen memperbarui konfigurasi Anda
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 untuk menjalankan perintah berbahaya
- Prompt injection: Serangan yang menipu Claude untuk menjalankan perintah berbahaya
Operasi transparan
Ketika Claude Code mencoba mengakses sumber daya jaringan di luar sandbox:- Operasi diblokir di tingkat OS
- Anda menerima notifikasi segera
- Anda dapat memilih untuk:
- Menolak permintaan
- Mengizinkan sekali
- Memperbarui konfigurasi sandbox Anda untuk secara permanen mengizinkannya
Keterbatasan Keamanan
- Keterbatasan Network Sandboxing: Sistem penyaringan jaringan beroperasi dengan membatasi domain yang diizinkan untuk terhubung oleh proses. Sistem ini tidak melakukan inspeksi lain terhadap lalu lintas yang melewati proxy dan pengguna bertanggung jawab untuk memastikan mereka hanya mengizinkan domain terpercaya dalam kebijakan mereka.
- Privilege Escalation melalui Unix Sockets: Konfigurasi
allowUnixSocketsdapat 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.sockini akan secara efektif memberikan akses ke sistem host melalui eksploitasi soket docker. Pengguna didorong untuk mempertimbangkan dengan hati-hati soket unix apa pun yang mereka izinkan melalui sandbox. - Privilege Escalation Izin Filesystem: Izin penulisan filesystem yang terlalu luas dapat memungkinkan serangan privilege escalation. Mengizinkan penulisan ke direktori yang berisi executable dalam
$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
enableWeakerNestedSandboxyang 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 ditegakkan.
Penggunaan lanjutan
Konfigurasi proxy khusus
Untuk organisasi yang memerlukan keamanan jaringan tingkat lanjut, 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
Integrasi dengan alat keamanan yang ada
Alat bash bersandbox bekerja bersama dengan:- Kebijakan IAM: Gabungkan dengan pengaturan izin untuk pertahanan berlapis
- Kontainer pengembangan: Gunakan dengan devcontainers untuk isolasi tambahan
- Kebijakan perusahaan: Terapkan konfigurasi sandbox melalui pengaturan terkelola
Praktik terbaik
- Mulai ketat: Mulai dengan izin minimal dan perluas sesuai kebutuhan
- Pantau log: Tinjau upaya pelanggaran sandbox untuk memahami kebutuhan Claude Code
- Gunakan konfigurasi khusus lingkungan: Aturan sandbox berbeda untuk konteks pengembangan vs. produksi
- Gabungkan dengan izin: Gunakan sandboxing bersama dengan kebijakan IAM untuk keamanan komprehensif
- Konfigurasi uji: 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: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