DEV Community

Cover image for Kebocoran Kode Sumber Claude: Mengungkap Arsitektur Alat Pemrograman AI
Walse
Walse

Posted on • Originally published at apidog.com

Kebocoran Kode Sumber Claude: Mengungkap Arsitektur Alat Pemrograman AI

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.

Coba Apidog hari ini

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
Enter fullscreen mode Exit fullscreen mode

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'];
}
Enter fullscreen mode Exit fullscreen mode

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);
Enter fullscreen mode Exit fullscreen mode

Perekam lalu lintas API hanya mendapatkan ringkasan, bukan reasoning lengkap.

Bypass anti-distilasi

  • Proxy dapat menghapus kolom anti_distillation sebelum 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)) { ... }
Enter fullscreen mode Exit fullscreen mode

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 /dream untuk 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);
Enter fullscreen mode Exit fullscreen mode

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;
}
Enter fullscreen mode Exit fullscreen mode

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 .map ke 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)