~/ / Artikel AI / 2,117 secret valid di berkas konfigurasi MCP publik: temuan GitGuardian, dan cara memeriksa milik Anda
2,117 secret valid di berkas konfigurasi MCP publik: temuan GitGuardian, dan cara memeriksa milik Anda
Berkas konfigurasi yang memberi tahu aplikasi AI server MCP mana yang harus dijalankan sering kali membutuhkan sebuah kunci. Laporan State of Secrets Sprawl 2026 dari GitGuardian menghitung 24,008 secret unik di berkas konfigurasi terkait MCP di GitHub publik, dan 2,117 di antaranya adalah kredensial yang valid. Artikel ini merangkum laporan tersebut, menjelaskan apa kata dokumentasi Claude Code tentang berkas konfigurasi proyek, dan memungkinkan Anda memeriksa berkas Anda sendiri.
Terbit: · Diperiksa terhadap sumber resmi pada 2026-10-24. Artikel ini merangkumnya dan tidak menggantikannya.
Temuan laporan
- GitGuardian menerbitkan laporan State of Secrets Sprawl 2026 pada 17 Maret 2026. Datanya mencakup tahun 2025.
- Laporan itu menghitung 24,008 secret unik yang terekspos di berkas konfigurasi terkait MCP di seluruh GitHub publik, termasuk 2,117 kredensial valid yang unik.
- Pada 2025 saja, 28.65 million secret baru yang ditulis langsung di kode ditambahkan ke commit GitHub publik, yang disebut laporan itu naik 34% dari tahun ke tahun.
- Secret layanan AI mencapai 1,275,105, naik 81% dari tahun ke tahun.
- Laporan itu mengatakan masalah ini sering didorong oleh dokumentasi itu sendiri, yang mendorong pola tidak aman: menaruh kunci API langsung di berkas konfigurasi, argumen baris perintah, atau connection string yang disematkan.
Mengapa berkas MCP sebuah proyek mudah bocor
Claude Code menyimpan server MCP berlingkup proyek dalam berkas .mcp.json di direktori akar proyek, dan dokumentasinya menggambarkan berkas itu sebagai berkas yang dibagikan melalui version control. Kunci yang diketik di dalamnya terlihat oleh semua orang yang dapat membaca repositori.
| Lingkup | Tempat penyimpanan | Siapa yang melihat |
|---|---|---|
| Lokal | ~/.claude.json, di bawah path proyek | Proyek saat ini, privat untuk Anda |
| Proyek | .mcp.json di akar proyek | Proyek saat ini, dibagikan melalui version control |
| Pengguna | ~/.claude.json | Semua proyek Anda |
Jauhkan kunci dari berkas
- Claude Code memperluas ${VAR} dan ${VAR:-default} di command, args, env, url, dan headers, sehingga berkas cukup menyebut sebuah variabel alih-alih menyimpan nilainya. Contoh dalam dokumentasi menulis sebuah header sebagai Authorization: Bearer ${API_KEY}.
- Jika sebuah variabel tidak diatur dan tidak punya nilai default, konfigurasi tetap dimuat. Claude Code menampilkan peringatan dan memakai teks ${VAR} apa adanya.
- Pada url dan headers server jarak jauh, beberapa variabel kredensial terbaca kosong meskipun sudah diatur. Dokumentasi menyebut ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, AWS_BEARER_TOKEN_BEDROCK, HTTPS_PROXY, dan NPM_TOKEN sebagai contoh, dan mengatakan bahwa variabel bernama API_KEY diperluas apa adanya.
- Nilai yang ditulis di args atau url juga tersimpan di dalam berkas, sehingga peringatan laporan tentang argumen baris perintah dan connection string yang disematkan berlaku juga di sana.
Periksa berkas Anda
Pemeriksa di bawah ini membaca .mcp.json atau claude_desktop_config.json di browser Anda. Ia menandai nilai yang tampak seperti secret yang ditulis di args, env, dan headers, memakai detektor yang sama dengan Prompt Redactor, serta referensi variabel yang dibaca Claude Code sebagai kosong. Deteksinya bersifat heuristik, sehingga bisa melewatkan sebuah secret atau menandai nilai yang tidak berbahaya.
Coba sekarang: MCP Config Checker
Aturan dicek terhadap dokumentasi pada 2026-10-23.
Dokumentasi: Claude Code / Model Context Protocol / VS Code
Tidak diperiksa: apakah sebuah command ada, apakah sebuah paket bisa diinstal, apakah server jarak jauh merespons, dan pengaturan yang dibaca secara berbeda oleh aplikasi lain.
Semuanya berjalan di browser Anda. Konfigurasi tidak diunggah.
Sebelum Anda menempelkan konfigurasi ke chat AI
Orang sering menempelkan berkas konfigurasi ke chat AI untuk menanyakan mengapa sebuah server tidak mau berjalan. Prompt Redactor menyamarkan kunci API, token, kata sandi, dan data pribadi dalam teks, serta dapat memulihkannya pada jawaban, semuanya di browser Anda.
Coba sekarang: Prompt Redactor
Teks yang disamarkan
Teks yang disamarkan muncul di sini.
Alat ini menemukan teks yang berpola khas. Ia tidak bisa menemukan informasi rahasia yang ditulis dalam kalimat biasa, jadi tidak menemukan sesuatu bukan berarti aman.
Baca teks yang sudah disamarkan sebelum Anda mengirimkannya.
Format kunci diperiksa terhadap dokumentasi vendor dan RFC pada 2026-10-23.
Semuanya berjalan di browser Anda. Teks Anda maupun tabel pemulihan tidak diunggah.
Jika secret sudah telanjur di-commit
- Dokumentasi GitHub mengatakan langkah pertama adalah mencabut atau merotasi secret, agar tidak bisa lagi dipakai untuk akses.
- Setelah dirotasi, menulis ulang riwayat repositori mungkin tidak diperlukan, karena mencabut secret mungkin sudah cukup untuk menyelesaikan masalah.
- Jika commit itu ada di fork, commit tersebut tetap dapat diakses di sana. GitHub tidak dapat memberikan detail kontak pemilik fork kepada Anda.
- Commit bisa tetap dapat dijangkau lewat hash SHA-1 di tampilan tersimpan (cache) di GitHub. GitHub Support dapat menghapus tampilan tersimpan dan referensi untuk data sensitif yang risikonya tidak dapat dikurangi dengan merotasi kredensial.