· kaynak dev.to (home feed)
GitHub'daki herkese açık repolarda gerçek sır içeren 1.100'den fazla Claude Code ayar dosyası bulundu
Apiiro, GitHub'da 104.185 Claude Code ayar dosyası buldu; 1.122'sinde kimlik bilgileri vardı. Bunun nedeni, agent'in onaylanan komutları — sırlar dahil — Git'in ignore kurallarının güvenilir biçimde korumadığı yerel bir dosyaya kaydetmesi.
Kaydedilen bir izin nasıl sızıntıya dönüştü
Anthropic'in komut satırı kodlama agent'i Claude Code, komut çalıştırmadan önce izin ister. Geliştirici "Evet ve bir daha sorma" diye yanıt verdiğinde araç, onaylanan komutu .claude/settings.local.json dosyasına bir allow kuralı olarak kaydeder; bu dosyanın geliştiricinin makinesinde kalması amaçlanır. Komutun içinde bir veritabanı şifresi, API token'ı veya private key gömülüyse — örneğin PGPASSWORD önekiyle başlayan bir psql çağrısı — kimlik bilgisi de izinle birlikte diske yazılır.
Ars Technica'nın haberine göre güvenlik firması Apiiro, herkese açık GitHub repolarında 100.000'den fazla böyle ayar dosyası buldu; yaklaşık 1.100'ünde kimlik bilgileri vardı. Apiiro'nun verilerine dayanan Cole Halton'un dev.io'daki ardından gelen analizi kesin rakamları veriyor: 104.185 dosya tarandı, 1.122'sinde gerçek bir sır vardı ve 1.994 repoya yayılmış 2.539 sır tespit edildi. 734 sır daha yalnızca dosyaların geçmiş sürümlerinde mevcut ve güncel ağaçlarda görünmüyor.
Asla birlikte taşınmayan ignore kuralı
Anthropic'in belgelenmiş koruması, Claude Code bu dosyayı ilk kez oluşturduğunda ayarlar yolunu kullanıcının genel Git exclude dosyasına ekler. Halton, senaryoyu sahte bir şifreyle geçici bir repoda yeniden canlandırarak iki yapısal boşluk tespit etti. Exclude kaydı tek bir geliştiricinin genel yapılandırmasında yaşar, dolayısıyla asla repoyla birlikte bir CI runner'a veya bir ekip arkadaşının bilgisayarına taşınmaz. Ayrıca Git ignore desenleri yalnızca untracked dosyalara uygulanır: dosya bir kez stage'lendikten sonra exclude kaydını eklemek hiçbir şeyi değiştirmez ve sonraki her onay, Git'in zaten takip ettiği dosyaya eklenmeye devam eder. Kaydın bulunmadığı bir makinede sıradan bir git add . komutu ayar dosyasını stage'lemek için yeterlidir.
Claude Code takip edilen ayar dosyalarını elbette algılıyor — Anthropic'in izinler belgelerine göre takip edilen bir dosya, repo tarafından sağlanmış sayılıyor ve allow kuralları klasör güvenilir sayılana kadar bekletiliyor. Ancak Apiiro'ya göre bu algılama debug loglarına yazılıyor, kullanıcıya gösterilmiyor ve yeni onaylar yine de takip edilen dosyaya düşüyor.
Çoğunlukla eski kurulumlar ve bir tarayıcı kör noktası
Halton'un paket kayıt defteri analizi bağlam ekliyor: Claude Code'un yayımlanmış 562 sürümünden 466'sı, yerel ayar dosyasını repo köküne taşıyan 2.1.211 sürümünden (15 Temmuz 2026) daha eski. Apiiro'nun verilerinde gerçek bir sır içeren repoların medyanı dosyayı ilk kez Mart 2026 sonlarında commit'lemiş — yani işaret, tek bir hatalı sürüm değil, birikmiş kurulumlara işaret ediyor.
Tarama kusursuz bir çözüm değil. Apiiro, 104.185 dosyanın tümünde gitleaks ve TruffleHog çalıştırdı: gitleaks 1.122 sır içeren dosyadan 564'ünü, TruffleHog 643'ünü işaretledi ve yaklaşık yüzde 19'u oluşturan 215 dosyayı hiçbiri işaretlemedi. Halton'a göre kör nokta, komutlara gömülü şifreler — algılayıcılar kimlik bilgisi biçimlerini eşleştiriyor ve bir psql çağrısının önündeki şifrenin tanınabilir bir şekli yok. Apiiro'nun verileri ayrıca boyutun riskle ilişkili olduğunu gösteriyor: 8 KB üzeri dosyaların yaklaşık onda birinde gerçek bir sır varken, 500 bayt altı dosyalarda bu oran 500'de birden az.
Tepki ve diğer agent'ların farkı
Claude Code'a liderlik eden Boris Cherny, Althacker'ın aktardığı bir tartışmada Anthropic'in sorunu önlemenin yollarını araştırdığını söyledi, yerel ayar dosyasının commit edilmemesi gerektiğini yineledi ve auto mode ile sır taramasını hafifletici önlemler olarak gösterdi. Apiiro 16 kodlama agent'inin belgelerini inceledi ve onaylanan tam komutu varsayılan olarak bir proje dosyasına kalıcı olarak yazdığı doğrulanan tek agent'in Claude Code olduğunu belirledi; buna karşılık OpenCode izinleri .env dosyalarının okunmasını reddetmek gibi action-and-resource desenleri olarak saklıyor, yani hiçbir komut satırı harfi harfine kaydedilmiyor. Önerilen ürün düzeyi düzeltmeler arasında, onaylanan bir komutta kimlik bilgisi bulunabileceğinde uyarı vermek, kalıcı hale getirmeden önce hassas argümanları sansürlemek veya izin hafızasını ham komut metninden ayırmak yer alıyor.
Neden önemli
Olay, yapay zekâ kodlama agent'ları çevresindeki güvenlik sorusunu yeniden çerçeveliyor. Tehlike yalnızca agent'ların ürettiği kod değil, arkalarında bıraktıkları artefaktlar — geliştiricinin neyi onayladığının kaydını sessizce biriktiren yapılandırma dosyaları. Şifre taşıyan bir ayar dosyası bir diff'te sızıntı gibi değil, sıradan bir yapılandırma gibi görünür ve hem Git'in ignore mekanizması hem de standart sır tarayıcıları sorunun bir kısmını kaçırır. Agent'lar commit iş akışının giderek daha fazlasını kendileri üstlendikçe, dikkatli manuel alışkanlıkları varsayan savunmalar araçların gerçekte nasıl kullanıldığıyla eşleşmemeye başlar; bu da yükü, korumayı belgelerden çok ürüne inşa etmeleri gereken üreticilere kaydırır.
- #claude-code
- #security
- #secrets
- #git
- #ai-agents
İlgili yazılar
- Privometry'nin MCP gateway'i yapay zeka agent'ları ile araçları arasına yetkilendirme katmanı yerleştiriyor
- United Airlines, yetkisiz üçüncü taraf AI ajanlarını bilet rezervasyonu ve mil kullanımından men etti
- Lego'nun BrickLink pazaryeri 'olağandışı aktivite' sonrası bir haftadır çevrimdışı, dönüş tarihi yok