Security Blog

Seluruh industri baru saja sepakat bahwa agen Anda tidak boleh melihat kunci Anda. Mereka menyembunyikannya di tempat yang salah.

#249

October 2, 2026 · By Marketing team

← All posts

Dalam satu minggu, Claude Code, Hermes, dan Codex semuanya merilis perbaikan untuk menghentikan agen melihat kredensial mentah. Patch yang konvergen bukan sebuah arsitektur: kunci seharusnya tidak tinggal di dalam harness sama sekali.

Minggu ini Anthropic merilis satu baris kecil di changelog Claude Code: "Fixed MCP servers requiring authentication exposing auth-stub tools to the model in headless/SDK mode" [1]. Artinya — ketika Claude Code berjalan headless (cara ia berjalan di CI dan pipeline agen otomatis), alat autentikasi yang seharusnya tetap tersembunyi terekspos ke model: AI bisa melihat nama alat autentikasi tersebut, parameternya, dan berpotensi menyentuhnya. Pada coding agent yang paling banyak digunakan di dunia — 133k bintang — lapisan kredensial bocor ke satu tempat yang paling tidak Anda inginkan: konteks model itu sendiri.

Masalahnya sudah diperbaiki. Tapi perbaikannya adalah bagian kecil dari cerita. Bagian besarnya adalah mengapa setiap harness agen yang serius tiba-tiba sedang melawan pertempuran yang sama.

Tiga harness, satu minggu, insting yang sama

Perhatikan apa yang dirilis dalam satu jendela 24 jam:

  • Claude Code menambal kebocoran auth-stub di atas dan memperketat gating autentikasi MCP [1].
  • Hermes (v0.17.0) menambahkan "Managed Scope" — rahasia yang dikunci oleh admin, tidak dapat diubah pengguna, terkunci pada filesystem sehingga operator agen tidak bisa menimpanya — plus penyensoran rahasia pada dump debug dan pemblokiran konfigurasi MCP berbentuk eksfiltrasi sebelum dijalankan [2].
  • Codex (v0.141.0) membungkus lalu lintas eksekusi jarak jauh dalam kanal Noise terenkripsi dan mulai mengarahkan plugin berdasarkan mode autentikasinya [3].

Tiga pesaing, tiga pendekatan, satu kesimpulan yang sama: harness harus memiliki kendali atas rahasia, dan agen tidak boleh melihat kunci mentah. Ketika para pesaing berkonvergensi seperti itu dalam minggu yang sama, itu bukan tren sesaat. Itu adalah sebuah kategori yang akhirnya mengakui tujuannya.

Masalah berikutnya adalah penyebaran kredensial

Ada satu hal yang perlu diperhatikan. Setiap perbaikan itu hidup di dalam harness. Dan bug Claude Code itu adalah buktinya: ketika autentikasi hidup di dalam harness, tepat di sebelah model, "agen tidak boleh melihatnya" berhenti menjadi sebuah fakta dan berubah menjadi properti yang harus terus Anda rancang — dan sesekali gagal dipertahankan, di mode headless, di mana tidak ada manusia yang mengawasi. Anda tidak bisa menyatakannya sekali saja. Anda harus mempertahankannya, rilis demi rilis.

Tetapi masalah yang lebih dalam bukanlah satu kebocoran tertentu — melainkan apa yang terjadi ketika setiap harness, setiap vendor, dan setiap kasus penggunaan merilis jawabannya sendiri. Anda berakhir dengan sebuah vault di dalam Claude Code, sebuah vault di dalam Hermes, sebuah vault di dalam Codex, kumpulan OAuth di sini, berkas rahasia di sana — penyimpanan kredensial terpisah untuk setiap alat yang Anda jalankan. Itulah penyebaran kredensial, dan itu adalah masalah berikutnya, bukan masalah yang sudah terselesaikan.

Penyebaran itu tetap merupakan kegagalan meski tidak satu pun silo yang bocor. Rahasa Anda disalin ke masing-masing agar bisa bekerja — lebih banyak salinan, lebih banyak tempat untuk dicuri. Rotasi harus dilakukan N kali, secara manual, dan yang Anda lupakan adalah yang akan membakar Anda. Dan tidak ada yang bisa menjawab satu-satunya pertanyaan yang benar-benar penting — agen mana yang memakai kunci mana, terhadap apa, kapan — karena jawabannya tersebar di lusinan penyimpanan yang tidak saling terhubung. Anda tidak bisa memasang vault baru untuk setiap vendor dan setiap alur kerja. Itu tidak skalabel. Itu adalah hal yang akan rusak.

Kunci tidak seharusnya berada di dalam harness sama sekali

Perbaikan yang tidak perlu Anda rilis adalah perbaikan di mana agen tidak pernah memegang autentikasi sejak awal. Taruh kredensial pada satu otoritas yang berada di luar setiap harness — bukan vault untuk tiap vendor, melainkan satu yang mendasari semuanya. Agen — di Claude Code, di Codex, di Hermes, tidak jadi soal — meminta satu aksi bernama dan mendapatkan kredensial berskup sempit dan sementara yang disuntikkan persis untuk itu, diambil secara langsung dan hilang setelahnya. Tidak ada auth-stub di konteks model yang bisa terekspos secara tidak sengaja, karena autentikasi tidak pernah berada di dalam harness. Tidak ada penyebaran, karena hanya ada satu penyimpanan alih-alih satu untuk tiap alat — rotasi sekali, bukan N kali. Dan setiap akses tercatat pada satu jejak audit, alih-alih tersebar di lusinan silo yang tidak bisa menjawab siapa-memakai-apa. (Menjauhkan rahasia dari tempat kode berjalan berada di urutan teratas aturan yang harus dipegang oleh sebuah alat kredensial — industri baru saja menghabiskan satu minggu untuk menemukannya.)

Dan inilah bagian yang merupakan batas keamanan, bukan sekadar kenyamanan: kredensial tidak boleh berada dalam sistem yang sama dengan agen. Tempatkan keduanya bersama dan mereka berbagi radius ledakan yang sama — injeksi prompt, MCP server yang diracuni, dump debug yang dibagikan, bug auth-stub berikutnya, dan apa pun yang mencapai agen akan ikut mencapai kuncinya. Karena itu sekadar terlihat saja sudah merupakan pelanggaran: saat sebuah rahasia jatuh di tempat yang bisa dilihat agen, Anda memperlakukannya sebagai sudah bocor dan merotasinya — sebagaimana setiap tim yang berhati-hati memperlakukan auth-stub Claude Code itu pada hari ia dirilis. Jaga kredensial pada jarak lengan, di dalam sistem yang hanya bisa diminta oleh agen — tidak pernah dibaca, tidak pernah dipegang — dan agen yang sudah sepenuhnya dikompromikan tetap tidak bisa mengekstraksi apa yang tidak pernah ada dalam jangkauannya. Ia bisa meminta sebuah aksi. Ia tidak bisa membawa lari kuncinya. Jarak itu adalah pertahanannya; vault dalam proses tidak memilikinya dengan harga berapa pun.

Itulah garis yang ditarik Clavitor. Seluruh bidang ini baru saja membuktikan prinsipnya — agen tidak boleh melihat kunci. Kami hanya tidak berpikir Anda harus membuktikannya ulang di dalam setiap harness yang Anda jalankan, dan kami tidak berpikir bahwa benda yang memegang kunci Anda seharusnya adalah benda yang baru saja dikompromikan oleh penyerang.

Berikan penghargaan kepada tim-tim harness: rahasia yang dikunci admin, relay terenkripsi, default fail-closed adalah rekayasa yang nyata dan baik. Tetapi perbaikan-minggu-ini untuk kebocoran yang terus muncul kembali bukan sebuah arsitektur — itu gejala. Arsitekturnya adalah kunci yang tidak berada di sana untuk bocor.

Ketika tiga pesaing menambal luka yang sama dalam minggu yang sama, lukanya ada pada desainnya. Agen tidak boleh melihat kunci Anda — jadi berhentilah menyimpannya di tempat yang bisa dijangkaunya.

Clavitor (@clavitorai) adalah vault kredensial yang dibangun untuk agen AI, dan melawan mereka. clavitor.ai

Sumber

[1] Claude Code v2.1.183 — "Fixed MCP servers requiring authentication exposing auth-stub tools to the model in headless/SDK mode" — https://github.com/anthropics/claude-code/releases/tag/v2.1.183

[2] Hermes Agent v0.17.0 — Managed Scope (rahasia yang dikunci admin), penyensoran rahasia, pemblokiran konfigurasi eksfiltrasi — https://github.com/NousResearch/hermes-agent/releases

[3] OpenAI Codex v0.141.0 — kanal relay Noise terenkripsi, routing plugin berdasarkan mode autentikasi — https://github.com/openai/codex/releases