· kaynak dev.to (home feed)
Regex hook boşlukları ve kimlik bilgisi sınırları: Yapay zeka ajan kontrolüne iki pratik bakış
İki dev.to yazısı, yapay zeka ajan koruma bariyerlerinin gerçek sınırlarını inceliyor: Gizlenmiş komutları kaçıran bir Claude Code hook'u ve ajanların sırrı hiç elinde tutmadan oturum açmasını sağlayan bir tasarım.

Bir regex hook'u gerçekte neyi engelliyor
Claude Code, geliştiricilerin settings.json içinde bir PreToolUse hook'u kaydetmesine izin veriyor: Her tool çağrısından önce çalışan, tool adını ve girdisini JSON olarak alan ve onaylama ya da engelleme kararı döndüren bir shell komutu. Dev.to'daki bir yazıya göre yazar, Bash komutlarını bilinen yıkıcı işlemlerin (rm -rf, git push --force, git reset --hard) regex'iyle karşılaştıran minimal bir Python hook'u yazmış ve bunu özenle hazırlanmış dört girdiyle test etmiş.
Sonuçlar tam ortadan bölünmüş. Güvenli bir komut geçmiş, düz metindeki yıkıcı komut ise tam amaçlandığı gibi engellenmiş. Ama iki varyasyon sızmış: Aynı rm -rf, bayrak bir değişkenden birleştirilmiş halde (x=rf; rm -$x ...), ve aynı yıkıcı amaç, hook'un hiç incelemediği bir MCP tool'u üzerinden yönlendirilmiş (mcp__some-server__delete_everything). İkisi de onaylanmış.
Yazıya göre bu başarısızlıklar bug değil, yapısal. Hook, tek bir tool'un dizi girdisi üzerinde bir desen eşleşmesi: Komutu asla çalıştırmadığı için rm -$x'in neye genişlediğini bilemez ve yazarının kontrol yazmadığı tool'lar hakkında hiçbir fikri yoktur. Ayrıca ajanı daha güvenli bir yaklaşıma yönlendiremez, netleştirici bir soru soramaz ya da art arda iki komutun aynı şeyi denediğini fark edemez. Tek bir düz metin dizesini, önceden yazılmış bir desene karşı, bir kez değerlendirir.
Yazarın sonucu hook'u silmek değil — pek çok yıkıcı komut gerçekten de en bariz biçimde yazılıyor — ama onu birincil kontrolden indirip bir katmana dönüştürmek; bir oturumun baştan hangi tool'lara ve MCP sunucularına erişebileceğini kısıtlamanın yanına. Hiçbir hook'un kontrol etmediği bir tool korunmuyor değildir; sadece izlenmiyordur. Pratik tavsiye şudur: Hook'unuzu, regex'i yazdığınız girdilerle değil, gerçekten korktuğunuz girdilerle test edin.
Kimlik bilgisi sınırı
Edan Harr imzalı ikinci bir dev.to yazısı ise ajan özerkliğinin diğer yüzüne değiniyor: Ajanın oturum açması gerektiğinde ne olur? Günümüzdeki varsayılan, bir şifreyi sohbete yapıştırmak; bu da sırrı bir kayıtta ve modelin context'inde bırakıyor — kapsamsız ve fiilen geri alınamaz. Yazı, beş tasarım ilkesini ve bunların yazarın geliştirdiği ajan kimlik bilgisi kasası AgentKey'de nasıl uygulandığını ortaya koyuyor.
İlk ilke, davranışsal güven yerine yapısal ayrım: Model düz metin kimlik bilgisini asla elinde tutmaz ve o sınırı yalnızca dar bir yürütme katmanı, açık bir sahip onayından sonra geçebilir. Modelin görebildiği bir sırrı kötüye kullanmamayı seçmesine dayanan tasarımlar, güvenlik değil iyimser hayal olarak görülüyor.
Geri kalan ilkeler insan tarafını kapsıyor. Onay tek bir karar olmalı — AgentKey'de ajan bir istek bağlantısı gönderir, sahip telefonunda onaylamak için dokunur ve verilen izin sessizce zaman aşımına uğramak yerine geri alınana dek sürer. İzinler ajan başına ve oturum başına kapsamlıdır, tek bir anahtarla geri alınabilir, bir etkinlik görünümünde kayıt altındadır ve bir arşivden geri yüklenebilir. Ajanlar, altyapı gibi değil kişi gibi eklenmeli; diğer uygulamaların içinde yaşayan ajanlar standart OAuth onay ekranları üzerinden bağlanır — yazı hem Claude'ın hem ChatGPT'nin özel connector'ları desteklediğini belirtiyor — ve connector yalnızca istekleri ve durumları taşır, asla sırları değil.
Son olarak, yürütme kendi başına bir katman: Sandbox'ta çalıştırılmış bir tarayıcı oturumu, düz metne dokunan tek bileşenken ajan, sayfanın değerleri değil etiketleri gösteren temizlenmiş bir görünümüyle çalışır. Yürütücü, elle bakımı yapılan siteye özel adaptörlere bel bağlamak yerine oturum açma sayfalarını doğrudan okur; gerekçesi şudur: Bir uyumluluk listesiyle sınırlı kasa, kasa değil eklenti koleksiyonudur. Yazar, üründen çok ilkeler hakkında açıkça geri bildirim davet ediyor; görev kapsamının nerede olması gerektiği ve nadiren kayıtları kontrol eden bir insana hangi denetim biçiminin uygun düştüğü dahil.
Neden önemli
İki yazı da ajan yığınının karşıt uçlarından aynı derse çıkıyor: Bir system prompt'taki ya da CLAUDE.md dosyasındaki talimatlar tavsiye niteliğindedir — model onları yok sayabilir veya unutabilir. Dayatma, modelin dışında yaşamak zorundadır: Tool çağrılarını kapatan bir hook ya da sırları tamamen context dışında tutan bir sınır. Ama her mekanizma yalnızca adına baktığı şeyi kapsar. Bir regex hook'u, öngördüğünüz yıkıcı komutu durdurur; değişkenlerden birleştirilen ya da kontrolsüz bir tool'dan geçen komutu değil. Bir kasa, sırrın sızmasını ancak ona giden her yol o sınırdan geçiyorsa engeller. Ajanlar shell erişimi kazandıkça ve MCP tool yüzeyleri büyümeye devam ettikçe akıllıca duruş, katmanlı ve test edilmiş kontroller — ve kendisine advers bir girdi vermediğiniz her koruma bariyerine karşı şüphecidir.
- #ai-agents
- #claude-code
- #security
- #credentials
- #mcp
İlgili yazılar
- Stream Vessel, özel MCP client'larının güvenli şekilde oturum açması için kullanıcı başına güvenilir redirect URI'leri öneriyor
- Rapor, Postman güncellemesinin Claude Code ve Codex içine güvenilir plugin'leri sessizce kurduğunu iddia ediyor
- Claude Code 2.1.316, subagent'ların parent oturumdan daha düşük bir effort seviyesinde çalışmasına izin veriyor