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
- Mendefinisikan batasan yang jelas: Tentukan dengan tepat direktori dan host jaringan mana yang dapat diakses Claude Code
- Mengurangi permintaan izin: Perintah aman dalam sandbox tidak memerlukan persetujuan
- Mempertahankan keamanan: Upaya mengakses sumber daya di luar sandbox memicu notifikasi segera
- 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
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.
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
- 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 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:- Operasi diblokir di tingkat OS
- Anda menerima notifikasi segera
- 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
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 enterprise: Terapkan konfigurasi sandbox melalui pengaturan terkelola
Praktik terbaik
- Mulai dengan pembatasan: 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 yang berbeda untuk konteks pengembangan vs. produksi
- Gabungkan dengan izin: Gunakan sandboxing bersama dengan kebijakan IAM untuk keamanan komprehensif
- 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: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