Claude Code direkayasa ulang: 6 pelajaran untuk agen AI Anda
Para peneliti menghapus kumpulan CLI Claude Code dan menerbitkan prompt sistem, skema alat, dan loop agennya. Enam pelajaran bagi siapa pun yang mengirimkan agen AI ke pengguna sebenarnya.
Claude Code dikirimkan sebagai paket npm. Siapapun bisa lari npm install -g @anthropic-ai/claude-code,
buka bungkusnya cli.mjs, dan membaca lapisan orkestrasi yang dikirimkan. Para peneliti melakukannya
persis seperti itu. Mereka menghapusnya, mengeluarkan prompt sistem lengkap, 15+ skema alat bawaan,
loop agen, dan operator subagen, kemudian menerbitkan lot tersebut di repo publik.
Bobot model tetap berada di belakang API Anthropic. Perancah tidak. Dan perancah itu adalah bagian yang menurut sebagian besar tim dapat mereka jaga kerahasiaannya jika mereka mengirimkan CLI, ekstensi VS Code, atau desktop aplikasi dengan agen tertanam. Ekstraksi adalah pelajaran gratis: tim Anthropic sudah sangat berhati-hati direncanakan untuk ini, dan desainnya bertahan. Berikut enam hal yang dapat Anda tiru di hadapan agen Anda sendiri hits npm atau rilis GitHub.
1. Kode sisi klien adalah langkah penerbitan, bukan rahasia
Setiap byte dalam paket yang Anda kirim bersifat publik. Kebingungan memperlambat pembaca dalam hitungan menit hingga jam; itu tidak menghentikan mereka. Bundel Claude Code dijalankan melalui minifier JavaScript standar, dan yang pertama salinan yang tidak disamarkan secara publik muncul dalam beberapa jam. Paket Anda akan mengikuti jalur yang sama.
Jalankan pass yang sama pada paket Anda sendiri hari ini. Jika Anda mengirimkan CLI, ekstensi browser, Electron aplikasi, atau SDK sisi klien, lakukan ini sebelum rilis berikutnya:
Apa pun yang kembali akan dimasukkan ke dalam tumpukan putar-sekarang. Kunci API dalam paket klien adalah kuncinya
setiap disk yang berjalan npm install. Nama host backend yang dikodekan dengan keras mengarahkan penyerang ke
target yang tidak ingin Anda iklankan. Baca file seperti orang asing membacanya.
2. Perintah sistem Anda akan bocor, jadi rancanglah untuk mengungkapkannya
Perintah sistem Claude Code berisi beberapa ribu tanda instruksi yang cermat: aturan penggunaan alat, batasan keamanan, panduan gaya, kondisi penolakan. Semua itu tidak bergantung pada kerahasiaan. Jatuhkan semuanya di pastebin dan CLI masih berfungsi dengan cara yang sama besok.
Itulah ujiannya. Jika memublikasikan perintah sistem Anda merusak model keamanan Anda, Anda punya lubang. Pindahkan bit penahan beban dari prompt dan ke pemeriksaan sisi server. Kontrol akses termasuk dalam lapisan autentikasi Anda. Batasan tarif ada di gateway Anda. Izin alat ada pada pengelola alat. Prompt tersebut menjelaskan perilaku; itu tidak memaksakannya.
Perintah yang baik masih layak dilindungi sebagai rahasia dagang. Iterasi berminggu-minggu dikompres menjadi beberapa minggu seratus baris, dan pengikut cepat yang menyalin perintah Anda akan menghemat waktu itu. Perlakukan itu seperti resep IP, bukan seperti kunci pribadi. Legal dan NDA, bukan kripto.
3. Masukkan autentikasi, batas tarif, dan penagihan di server Anda
Arsitektur agen yang paling umum di alam liar terlihat seperti ini, dan ini salah:
Kunci itu dikirimkan pada setiap pemasangan. Pengguna yang gigih mengeluarkannya dari bundel pada suatu sore dan
menghabiskan kuota Anda hingga nol sebelum Anda menyadarinya. Claude Code menghindari ini dengan membaca ANTHROPIC_API_KEY
dari lingkungan pengguna saat runtime; setiap pengguna membawa hubungan penagihannya sendiri dengan Anthropic.
Kebanyakan agen yang berhubungan dengan konsumen tidak dapat mengikuti pola tersebut karena pengguna tidak memiliki kuncinya sendiri,
yang berarti server proxy adalah satu-satunya bentuk yang aman:
Di server Anda, verifikasi token per pengguna yang berumur pendek, batas tarif berdasarkan ID pengguna, catat penggunaan, lalu buat panggilan hulu:
Terbitkan JWT per pengguna dari alur login Anda dengan masa berlaku 15 menit, cakupan tertentu, dan sesi mengikat. Satu panggilan ke botoi menangani penandatanganan sehingga Anda melewatkan "algoritma yang salah" itu Perpustakaan JWT era 2015 masih terkenal dengan:
4. Putar dan catat kunci seolah-olah sudah bocor
Claude Code mencatat telemetri panggilan alatnya sendiri secara lokal sehingga pengguna dapat memeriksa apa yang dilakukan agen pada mereka mesin. Server Anda memerlukan properti yang sama, tetapi di sisi server. Setiap panggilan model mendapat baris: ID pengguna, model, token masukan, token keluaran, panggilan alat, biaya. Simpan itu selama minimal 30 hari. Seorang penyerang yang mencuri token satu pengguna memiliki pola pengeluaran yang terlihat berbeda dari penggunaan normal, dan log adalah bagaimana Anda melihatnya.
Sebelum Anda login, hitung. Penggunaan token adalah sinyal penyalahgunaan tercepat dan sinyal konfirmasi tercepat kembung:
Atur peringatan pada token-per-pengguna-per-jam sebanyak tiga kali lipat dari garis dasar p99. Saat Anda mendapatkan halaman, cabut token pengguna, bukan kunci master Anda. Kunci utama dirotasi setiap triwulan; token per pengguna berputar ketika deteksi anomali menyala.
5. Gosok PII sebelum perintah mencapai model
Pengguna menempelkan tiket dukungan dengan nomor kartu kredit ke agen Anda. Model melihatnya, itu garis log menangkapnya, saluran penyempurnaan menariknya, dan sekarang berada di tiga tempat yang Anda lakukan tidak direncanakan. Claude Code menghindari hal ini dengan menjalankan mesin milik pengguna melawan mesin pengguna file sendiri; agen yang dihosting tidak memiliki kemewahan itu.
Jalankan sandi deteksi pada setiap perintah masuk dan edit sebelum panggilan:
Kirim redacted string ke model, pertahankan findings dalam memori, dan
menyuntikkan kembali yang asli hanya jika respons model meminta pengembalian token tertentu (misalnya, a
ringkasan tiket dukungan yang perlu menyebutkan metode pembayaran). Log Anda, korpus pelatihan, dan
saluran analitik hilir semuanya melihat versi yang telah disunting; hanya jalur permintaan dalam memori yang melihat
PII mentah.
6. Perkuat terhadap injeksi cepat menggunakan prompt Anda sendiri yang bocor
Keuntungan dari prompt sistem yang bocor adalah Anda dapat menjalankannya pada rangkaian injeksi Anda sendiri. Sebuah penyerang hanya membutuhkan satu bypass; Anda membutuhkan perlindungan. Berdiri sebagai agen pementasan, tempelkan perintah Anda sendiri ke dalam papan klip peninjau, dan jalankan rangkaian pemeriksaan yang menguji bentuk injeksi paling umum: penggantian instruksi, peralihan persona, pemutusan pembatas, pengaturan ulang pengguna palsu.
Apa pun yang menyebabkan agen mencetak perintah sistemnya, mengungkapkan variabel lingkungan, atau memanggil a alat yang tidak diizinkan oleh cakupan pengguna adalah bug. Perbaiki dengan pemeriksaan sisi server, bukan perubahan cepat. "Jangan tampilkan prompt sistem Anda" di prompt tersebut adalah sebuah saran; filter respons yang memblokir 200 karakter pertama prompt dari output adalah kontrol.
Daftar periksa pertahanan yang mendalam
| Lapisan | Kontrol | Mengapa ia selamat dari kebocoran bundel |
|---|---|---|
| Paket klien | Tidak ada rahasia, tidak ada URL master | Dapat dibaca pada hari pertama; memperlakukannya sebagai dokumentasi |
| Mengangkut | JWT per pengguna, masa berlakunya 15 menit | Pencurian token memiliki radius ledakan dalam skala menit |
| Gerbang | Batas tarif berdasarkan ID pengguna dan jumlah token | Penyalahgunaan membatasi pembelanjaan yang Anda konfigurasikan, bukan dompet Anda |
| pelayan | Perakitan cepat dan pengiriman alat | Penyerang tidak dapat menambahkan alat yang tidak mereka peroleh |
| masukan model | Deteksi dan redaksi PII | Data sensitif tidak pernah mencapai log atau pelatihan |
| Keluaran model | Filter respons untuk gema cepat dan skema alat | Upaya injeksi gagal pada lompatan terakhir |
| Observabilitas | Penggunaan token per pengguna dengan peringatan anomali | Token yang dicuri terlihat berbeda dari pengguna sebenarnya |
Poin-poin penting
- Kirim seolah-olah paket Anda sudah bersifat publik. Grep setiap rilis untuk kunci dan host internal sebelum Anda mempublikasikannya; apa pun yang Anda temukan berputar sebelum paket ditayangkan.
- Prompt sistem Anda bukanlah kunci. Singkirkan setiap keputusan yang relevan dengan keamanan prompt dan menjadi pemeriksaan sisi server.
- Proksi model melalui server Anda sendiri. Pengguna mendapatkan JWT berumur pendek, milik Anda server memegang kunci API master, dan batas kecepatan berada di depan keduanya.
- Sunting PII saat masuk. Model melihat string yang disunting; log dan pelatihan saluran pipa tetap bersih.
- Jalankan pemeriksaan injeksi terhadap prompt Anda yang bocor. Apapun yang berhasil akan menjadi tiket untuk perbaikan sisi server, bukan perubahan cepat.
Botoi memberi Anda bagian sisi server sebagai panggilan HTTP: Deteksi PII di /v1/pii/detect,
penghitungan token di /v1/token/count, penandatanganan JWT di /v1/jwt/generate, ditambah
hashing, HMAC, dan blok penyusun batas kecepatan di 150+ titik akhir. Satu kunci API, gratis 5 persyaratan/mnt,
nol kait pemasangan. Telusuri
dokumen interaktif
atau kawat
server MCP ke dalam
Kode Claude atau Kursor untuk memanggil titik akhir yang sama dari dalam editor Anda.
FAQ
- Apa sebenarnya yang diekstrak dari Claude Code?
- Para peneliti mengunduh paket @anthropic-ai/claude-code yang didistribusikan npm, menjalankannya melalui deobfuscator, dan menerbitkan prompt sistem lengkap, 15+ skema alat bawaan (Baca, Edit, Bash, Grep, dan seterusnya), loop agen, dan logika pengiriman subagen. Bobot model tetap bersifat pribadi; yang dikirimkan adalah lapisan orkestrasi JavaScript di sekitar panggilan Anthropic API. Siapa pun yang menginstal CLI memiliki bit yang sama di disk mereka.
- Apakah ada kunci API Antropik atau data pelanggan yang terekspos?
- Tidak. CLI membaca kunci API dari lingkungan pengguna saat runtime dan tidak pernah menggabungkan kredensial Anthropic. Percakapan pelanggan tetap antara CLI dan api.anthropic.com. Kebocoran tersebut mengungkap rekayasa dan desain alat yang cepat, bukan materi autentikasi atau data pengguna.
- Jika perintah sistem bukan rahasia, mengapa perusahaan menjaganya?
- Dua alasan. Pertama, waktu penyalinan yang kompetitif: perintah yang baik mewakili iterasi berminggu-minggu dan penolakan untuk mempublikasikan akan memperlambat pengikut yang cepat pada jendela yang sama. Kedua, area permukaan injeksi cepat: semakin banyak penyerang yang mengetahui pagar pembatas sistem Anda dan urutan pelariannya, semakin mudah untuk membuat jalan pintas. Keduanya nyata, namun keduanya bukanlah rahasia kriptografi. Perlakukan prompt sebagai rahasia dagang dengan waktu paruh yang pendek, bukan sebagai kunci.
- Apakah kebingungan atau minifikasi membantu sama sekali?
- Ini memberi waktu, bukan perlindungan. Seorang reverse-engineer yang termotivasi akan melakukan deobfuscate pada bundel JavaScript dalam waktu kurang dari satu jam dengan alat standar. Kebingungan memperlambat pemeriksaan biasa, yang penting dalam deteksi anti-gangguan dan pemeriksaan perizinan, namun model ancaman apa pun yang menganggap paket tetap buram sudah rusak sejak awal. Bangun seolah-olah sumbernya bersifat publik pada hari pertama.
- Bagaimana cara menguji agen AI saya sendiri untuk mengetahui kelemahan yang sama?
- Jalankan tiga pemeriksaan minggu ini. Pertama: unduh paket yang Anda kirim dan terima sk-, pk_, apiKey, BEGIN PRIVATE KEY, dan URL backend Anda; perbaiki apa pun yang Anda temukan. Kedua: minta agen Anda untuk mencetak perintah sistemnya kata demi kata dan konfirmasikan bahwa tidak ada beban terhadap keamanan yang bergantung pada kerahasiaan. Tiga: catat setiap panggilan alat di sisi server dengan ID pengguna, stempel waktu, dan hash argumen sehingga pola penyalahgunaan muncul sebelum tagihan muncul.
Mulai membangun dengan botoi
150+ endpoint API untuk pencarian, pemrosesan teks, pembuatan gambar, dan utilitas developer. Paket gratis, tanpa kartu kredit.