Intinya
Anthropic secara tidak sengaja mengirimkan file .map bersama dengan paket npm Claude Code, sehingga seluruh kode sumber CLI mereka terekspos. Kebocoran ini membongkar mekanisme anti-distilasi memakai injeksi alat palsu, deteksi frustrasi berbasis regex, "mode penyamaran" untuk menyamarkan kepengarangan AI, serta mode agen otonom KAIROS yang belum dirilis. Berikut implementasi teknis dan langkah-langkah yang bisa diambil pengembang API untuk memahami cara kerja alat pengkodean AI.
Pendahuluan
Pada 31 Maret 2026, ditemukan bahwa Anthropic tanpa sengaja memaketkan file .map TypeScript readable ke npm Claude Code. File ini seharusnya hanya untuk debugging, tapi akhirnya seluruh kode sumber, komentar, hingga arsitektur internal bisa diakses publik.
Insiden ini langsung viral di Hacker News dan komunitas developer. Anthropic sudah menghapus paketnya, namun kode sudah telanjur tersebar dan dianalisis.
💡 Baik pakai Claude Code, Cursor, GitHub Copilot, atau Apidog, kebocoran ini memberi insight teknis soal bagaimana AI coding tools beroperasi. Memahami mekanisme internal ini membantu Anda memilih tool yang tepat untuk keamanan kode. Coba Apidog gratis untuk pengembangan API yang transparan dan minim ketergantungan.
Artikel ini menganalisis temuan teknis utama dan dampaknya bagi pengembang yang menggunakan AI coding tools.
Bagaimana kode sumber bocor
Penyebab utama: bug di alat build Bun
Claude Code dibangun dengan Bun (runtime JavaScript). Pada 11 Maret 2026, bug oven-sh/bun#28001 menyebabkan file .map tetap terikut saat build production. Anthropic tanpa sadar mem-publish paket npm yang berisi kode sumber readable.
Cukup jalankan:
npm pack @anthropic-ai/claude-code
tar -xvf @anthropic-ai-claude-code-*.tgz
cat package/dist/*.map
Seluruh source dan komentar internal bisa diakses.
Apa yang terekspos
- Kode TypeScript lengkap
- Komentar engineering internal
- Flag fitur dan konfigurasi eksperimen
- Template perintah sistem & mekanisme keamanan
- Nama kode dan fitur unreleased
- Detail optimasi performa
Ini bukan leak parsial—kode produksi, lengkap dengan konteks engineering.
Anti-distilasi: Melindungi dari pencurian model
Injeksi alat palsu
Dalam claude.ts (baris 301-313):
if (process.env.ANTI_DISTILLATION_CC) {
request.anti_distillation = ['fake_tools'];
}
Server Anthropic akan menyuntikkan definisi alat palsu ke prompt. Tujuannya: jika kompetitor mencoba merekam lalu lintas API untuk mendistilasi/meniru Claude, data mereka akan berisi tools fiktif yang membuat model hasil distilasi menjadi error.
Ringkasan teks konektor
Di betas.ts (baris 279-298), sistem server-side meringkas teks asisten antara panggilan tool, lalu mengembalikan ringkasan dengan tanda tangan kriptografi:
const summary = summarizeAssistantText(originalText);
const signed = signSummary(summary);
Perekam lalu lintas API hanya mendapatkan ringkasan, bukan reasoning lengkap.
Bypass anti-distilasi
- Proxy dapat menghapus kolom
anti_distillationsebelum request ke server. - Set variabel
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS= nonaktifkan semua sistem anti-distilasi. - Perlindungan hanya efektif untuk perekaman pasif, tidak untuk API aktif.
Mode Penyamaran: Menyembunyikan kepengarangan AI
Cara kerja mode penyamaran
Dalam undercover.ts:
- Menyensor nama kode internal ("Capybara", "Tengu") dalam output
- Menyembunyikan referensi channel Slack/repo internal
- "Claude Code" tidak pernah muncul di output
Komentar kode:
"TIDAK ADA pemaksaan NONAKTIF. Ini menjaga dari kebocoran nama kode model."
Implikasi open source
Saat digunakan di luar repo Anthropic, mode ini menyembunyikan jejak AI pada commit, pull request, atau code review. Ini bisa bertentangan dengan kebijakan open source yang mewajibkan disclosure AI-generated code.
Deteksi frustrasi dengan regex
Implementasi deteksi frustrasi
File userPromptKeywords.ts memakai regex untuk mendeteksi kata kasar dan bahasa emosional pada input user.
const frustrationPattern = /(sial|capek|payah|kenapa nggak|gagal|jelek)/i;
if (frustrationPattern.test(userInput)) { ... }
Alasan teknis
Regex lebih cepat dan murah daripada inferensi LLM untuk sentimen, sehingga tidak menambah latensi tiap interaksi.
Atestasi Klien Native
Verifikasi permintaan secara kriptografi
Di system.ts (baris 59-95):
- Permintaan API menyertakan placeholder header (
cch=554eb) - HTTP stack native Bun (Zig) mengganti dengan hash
- Server memverifikasi hash untuk memastikan request berasal dari biner Claude Code asli
Tujuan
Mencegah fork/wrapper tidak sah mengakses backend. Bisa dinonaktifkan via flag seperti CLAUDE_CODE_ATTRIBUTION_HEADER.
Untuk pengujian API yang membutuhkan client attestation, gunakan Apidog untuk validasi interaksi dan pemasangan sertifikat.
KAIROS: Mode agen otonom yang belum dirilis
Scaffolding KAIROS yang ditemukan
- Skill
/dreamuntuk distilasi memori malam hari - Catatan harian append-only
- Webhook GitHub untuk monitoring repo events
- Worker daemon background (refresh tiap 5 menit)
Implikasi workflow API
Mode KAIROS = agen AI yang terus-menerus memantau repo dan bisa mengubah kode secara otonom. Jika API endpoint diubah, apakah OpenAPI spec, test, dan dokumen ikut update? Apidog menjaga semua tetap sinkron.
Optimasi performa yang terekspos
Rendering terminal ala game engine
File ink/screen.ts dan ink/optimizer.ts:
- Buffer layar pakai
Int32Array - Patch width calculation 50x lebih efisien saat streaming token
Contoh:
const screenBuffer = new Int32Array(terminalWidth * terminalHeight);
renderDiff(screenBuffer, incomingTokens);
Prompt cache dan "gerendel lengket"
promptCacheBreakDetection.ts melacak 14 pemicu cache break. Setiap break = prompt harus diproses ulang (mahal). Prompt caching dioptimalkan untuk menghemat biaya API.
Bug autokompak
Di autoCompact.ts (baris 68-70):
"1.279 sesi mengalami 50+ kegagalan berturut-turut... membuang ~250 ribu panggilan API/hari."
Fix: batasi ke MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3.
Detail pengerasan keamanan
23 pemeriksaan keamanan Bash
bashSecurity.ts implementasi:
- Mitigasi exploit Zsh
- Deteksi null unicode/injeksi IFS
- Perlindungan dari bug yang dilaporkan via HackerOne
Contoh praktik:
function isCommandSecure(cmd: string): boolean {
if (cmd.includes('\u0000') || cmd.match(zshExploitPattern)) return false;
// ...21 cek lain...
return true;
}
API developer yang menjalankan shell test perlu perhatian pada lapisan ini.
Apa yang harus dipelajari pengembang API
1. Audit perilaku AI tool Anda
Cek: data apa yang dikirim, fitur tersembunyi (anti-distilasi, detection, disguise), serta apakah ada telemetry yang tidak diekspos.
2. Toolchain build = attack surface
Pastikan pipeline CI/CD Anda:
- Tidak membocorkan
.map,.env, atau config privat - Menggunakan dependency yang teraudit
- Minimalkan ketergantungan pihak ketiga atau gunakan platform terintegrasi
3. AI coding tools menuju mode otonom
Agen AI bisa mengubah kode tanpa intervensi. Workflow API harus menjaga spesifikasi, test, dan dokumen selalu up-to-date. Gunakan platform yang menjaga sinkronisasi otomatis (Apidog).
4. Transparansi kode sumber itu penting
Evaluasi apakah Anda butuh tool yang source-nya bisa diperiksa atau cukup percaya vendor.
FAQ
Apakah Claude Code aman digunakan setelah kebocoran?
Ya, leak hanya pada source code, bukan data user atau kunci API.
Apa itu mode penyamaran?
Mode yang otomatis menyembunyikan identitas Claude Code dan nama-nama internal saat operate di luar repo Anthropic.
Apa itu alat palsu di Claude Code?
Definisi tool fiktif yang disisipkan server saat anti-distilasi aktif, membuat data training hasil intercept menjadi tidak valid.
Apa itu KAIROS?
Mode agen otonom (belum dirilis) untuk monitoring dan modifikasi kode otomatis.
Bagaimana kode Claude Code bocor?
Bug Bun build sistem menyebabkan .map (source readable) ikut terupload ke npm.
Apakah leak ini memengaruhi user API Claude?
Tidak. Leak hanya pada CLI tool, bukan API atau model weights.
Apakah perlu khawatir deteksi frustrasi?
Tergantung preferensi Anda. Claude Code hanya memakai regex cepat, tidak inference LLM. Data tampaknya hanya untuk internal UX.
Hubungan dengan serangan npm Axios?
Kebetulan waktu saja. Axios = supply chain attack, Claude Code = build misconfig.
Poin-poin penting
- Source Claude Code bocor karena bug Bun build, kirim
.mapke npm - Mekanisme anti-distilasi = alat palsu + ringkasan reasoning untuk cegah pencurian model
- Mode penyamaran sembunyikan identitas Claude Code di repo non-Anthropic
- Deteksi frustrasi via regex, bukan LLM
- KAIROS = mode agen otonom, scaffolding sudah di kode
- Client attestation = validasi request berasal dari biner asli
- Kebocoran ini menyoroti pentingnya transparansi dan auditability pada tool pengembangan API
Memahami cara kerja AI coding tool secara internal = langkah vital untuk keamanan, privasi, dan workflow API yang konsisten. Pilih alat yang bisa diaudit, dan pastikan workflow Anda tetap sinkron meski diubah manusia maupun AI.
Top comments (0)