Tüm sektör az önce ajanınızın anahtarlarınızı görmemesi gerektiği konusunda anlaştı. Onları yanlış yere saklıyorlar.
Bir hafta içinde Claude Code, Hermes ve Codex; ajanların ham kimlik bilgilerini görmesini engelleyen düzeltmeler yayımladı. Yakınsayan yamalar bir mimari değildir: anahtarlar hiç olmaması gereken yerde, yani ajan yürütme katmanında durmamalı.
Bu hafta Anthropic, Claude Code sürüm notlarına sessiz bir satır ekledi: "Kimlik doğrulaması gerektiren MCP sunucularının, kimlik doğrulama taklit araçlarını (auth-stub) headless/SDK modunda modele açmasını düzeltti" [1]. Açık bir dille — Claude Code headless çalıştığında (CI'da ve otomatik ajan hatlarında çalıştığı şekilde), gizli kalması gereken kimlik doğrulama araçları modele açığa çıkıyordu: yapay zekâ bu araçların adlarını, parametrelerini görebiliyor ve muhtemelen üzerinde oynayabiliyordu. Dünyanın en çok kullanılan kodlama ajanında — 133k yıldız — kimlik bilgisi katmanı, en az isteyeceğiniz yere sızıyordu: modelin kendi bağlamına.
Düzeltildi. Ama düzeltmenin kendisi küçük hikâye. Büyük hikâye her ciddi ajan yürütme katmanının neden birden aynı savaşı veriyor olduğu.
Üç yürütme katmanı, bir hafta, aynı refleks
Tek bir 24 saatlik pencerede nelerin yayımlandığına bakın:
- Claude Code, yukarıdaki auth-stub sızıntısını yamaladı ve MCP kimlik doğrulama kapısını sıkılaştırdı [1].
- Hermes (v0.17.0) "Managed Scope" ekledi — yönetici tarafından sabitlenen, kullanıcı tarafından değiştirilemeyen ve dosya sisteminde kilitlenen sırlar; böylece bir ajan operatörü bunların üzerine yazamaz — ayrıca hata ayıklama dökümlerinde sır maskelenmesi ve sızıntı biçimindeki MCP yapılandırmalarının başlatılmadan önce engellenmesi [2].
- Codex (v0.141.0) uzaktan yürütme trafiğini şifreli Noise kanallarıyla sarmaladı ve eklentileri kimlik doğrulama modlarına göre yönlendirmeye başladı [3].
Üç rakip, üç yaklaşım, tek ortak sonuç: sırların sahibi yürütme katmanı olmalı ve ajan ham anahtarları asla görmemeli. Rakipler aynı hafta içinde böyle yakınsıyorsa bu bir moda değildir. Bir kategori nihayet ne olduğunu itiraf ediyor.
Bir sonraki sorun: kimlik bilgisi dağınıklığı
Şimdi püf noktası. Bu düzeltmelerin her biri yürütme katmanının içinde yaşıyor. Ve Claude Code hatası bunu ele veriyor: kimlik doğrulama yürütme katmanında, modelin hemen yanında yaşadığında, "ajan onu asla görmemeli" bir olgu olmaktan çıkar ve sürekli mühendislik yapmanız gereken bir niteliğe dönüşür — bazen de, kimsenin izlemediği headless modunda, bu nitelikte başarısız olursunuz. Bunu bir kez deklare edip kurtulamazsınız. Sürüm sürüm savunmanız gerekir.
Ama daha derin sorun tek bir sızıntı değil — her yürütme katmanının, her sağlayıcının ve her kullanım senaryosunun kendi cevabını yayımlaması sonucunda olanlar. Sonunda Claude Code içinde bir kasa, Hermes içinde bir kasa, Codex içinde bir kasa, burada bir OAuth havuzu, şurada bir sırlar dosyası olur — çalıştırdığınız her araç için ayrı bir kimlik bilgisi deposu. Bu, kimlik bilgisi dağınıklığıdır ve çözülmüş bir sorun değil, bir sonraki sorundur.
Hiçbir silo sızmasa bile dağınıklık başlı başına bir arızadır. Sırlarınız çalışması için her birine kopyalanır — daha fazla kopya, çalınabilecek daha fazla yer. Anahtar yenileme N kez, elle yapılmalıdır ve unuttuğunuz bir tanesi sizi yakar. Ve kimse gerçekten önemli olan tek soruyu yanıtlayamaz — hangi ajan hangi anahtarı, neye karşı, ne zaman kullandı — çünkü cevap birbiriyle konuşmayan bir düzine deponun içine dağılmıştır. Her sağlayıcı ve her iş akışı için sıfırdan bir kasa kuramazsınız. Bu ölçeklenmez. Arıza çıkaran şey budur.
Anahtarların yeri yürütme katmanı hiç değil
Hiç yayımlamak zorunda kalmadığınız düzeltme, ajanın kimlik bilgilerini baştan hiç elinde tutmadığı düzeltmedir. Kimlik bilgilerini her yürütme katmanının dışında duran tek bir otoriteye koyun — sağlayıcı başına bir kasa değil, hepsinin altında bir tane. Ajan — Claude Code'da, Codex'te, Hermes'te, fark etmez — adlandırılmış tek bir eylem ister ve tam olarak o eylem için kapsamlı, geçici bir kimlik bilgisi enjekte edilir; canlı olarak alınır ve sonrasında yok olur. Modelin bağlamında yanlışlıkla açığa çıkarılabilecek bir auth-stub yoktur, çünkü kimlik bilgileri hiç yürütme katmanında olmamıştır. Dağınıklık yoktur, çünkü araç başına bir yerine tek bir depo vardır — N kez değil, bir kez yenilenir. Ve her erişim, kim-ne-kullandı sorusunu yanıtlayamayan bir düzine siloya dağılmak yerine tek bir denetim izine düşer. (Sırrın kodun çalıştığı yerin dışında tutulması, bir kimlik bilgisi aracının uyması gereken kuralların en başında yer alır — sektör bunu keşfetmekle tam bir hafta harcadı.)
Ve burası bir kolaylık değil, bir güvenlik sınırıdır: kimlik bilgisi ajanla aynı sistemde yaşayamaz. Yan yana koyarsanız aynı etki alanını paylaşırlar — bir istem enjeksiyonu, zehirlenmiş bir MCP sunucusu, ortak bir hata ayıklama dökümü, bir sonraki auth-stub hatası; ve ajana ulaşan her şey anahtarlara da onunla birlikte ulaşır. Bu yüzden görünürlüğün kendisi ihlaldir: bir sır ajanın görebileceği bir yere düştüğü anda, onu zaten sızdırılmış kabul edip anahtarları yenilersiniz — her dikkatli ekibin o Claude Code auth-stub'ını yayımlandığı gün davrandığı gibi. Kimlik bilgilerini kol mesafesinde tutun; ajanın yalnızca isteyebileceği — asla okuyamayacağı, asla elinde tutamayacağı — bir sistemde; ve tamamen ele geçirilmiş bir ajan bile hiç erişemeyeceği bir şeyi sızdıramaz. Bir eylem isteyebilir. Anahtarı alıp yürüyemez. Mesafenin kendisi savunmadır; süreç içi bir kasa bunu hiçbir bedelle size vermez.
Clavitor'ın çizdiği çizgi budur. Tüm alan az önce ilkeyi kanıtladı — ajan anahtarları görmemeli. Biz sadece, çalıştırdığınız her yürütme katmanının içinde bunu yeniden kanıtlamanız gerektiğini düşünmüyoruz ve anahtarlarınızı tutan şeyin bir saldırganın az önce ele geçirdiği şeyin aynısı olmaması gerektiğini düşünüyoruz.
Yürütme katmanı ekiplerine hakkını verelim: yönetici tarafından sabitlenen sırlar, şifreli aktarımlar, kapalı tarafta başarısız olan (fail-closed) varsayılanlar gerçek ve iyi mühendisliktir. Ama sürekli yeniden ortaya çıkan bir sızıntı için haftanın düzeltmesi bir mimari değildir — bir belirtidir. Mimari, sızdırılacak anahtarın orada olmamasıdır.
Üç rakip aynı yarayı aynı hafta içinde yamalıyorsa, yaranın kendisi tasarımdır. Ajan anahtarlarınızı görmemeli — o halde onları görebileceği yerde tutmayı bırakın.
Clavitor (@clavitorai), yapay zekâ ajanları için ve onlara karşı tasarlanmış kimlik bilgisi kasasıdır. clavitor.ai
Kaynaklar
[1] Claude Code v2.1.183 — "Kimlik doğrulaması gerektiren MCP sunucularının auth-stub araçlarını headless/SDK modunda modele açmasını düzeltti" — https://github.com/anthropics/claude-code/releases/tag/v2.1.183
[2] Hermes Agent v0.17.0 — Managed Scope (yönetici sabitli sırlar), sır maskelenmesi, sızıntı yapılandırması engelleme — https://github.com/NousResearch/hermes-agent/releases
[3] OpenAI Codex v0.141.0 — şifreli Noise aktarım kanalları, kimlik doğrulama moduna göre eklenti yönlendirme — https://github.com/openai/codex/releases