Teknoloji

Claude Code şifreleri düz metin olarak sakladı, 1.122 dosya GitHub’da açıkta

Susan Hill
Bizi Google'a ekleyin

Anthropic’in Claude Code aracı, çoğu kabuk komutunu çalıştırmadan önce izin istiyor. Sunulan seçeneklerden biri de “Evet, bir daha sorma”. Veritabanına giriş komutu gibi parola içeren bir komut için bu seçeneği işaretlerseniz Claude Code, parola dâhil komutun tamamını projenizin içindeki düz metin bir ayar dosyasına yazabiliyor. Güvenlik araştırmacıları şimdi GitHub’daki herkese açık kod depolarında, herkesin okuyabileceği binlerce parola ve anahtar buldu.

Claude Code kullanıyorsanız aramanız gereken dosyanın adı settings.local.json. Depo kökündeki gizli .claude klasöründe bulunuyor ve siz engellemediğiniz sürece projeyle birlikte taşınıyor. Araç hangi ülkede kullanılırsa kullanılsın davranış aynı. Alışkanlıklarınızı değiştirmek bir dakika sürerken sızdırılmış bir parolayı temizlemek çok daha uzun sürüyor; çünkü dosyayı silmek, onu git geçmişinden ya da başkalarının çatallarından kaldırmıyor.

Yazılım güvenliği şirketi Apiiro, The Hacker News’in aktardığı araştırmasına göre herkese açık GitHub depolarında dosyanın 103.617 depoda bulunan 104.185 kopyasını taradı. Kopyaların yaklaşık yüzde 1,1’inde, yani 1.122’sinde en az bir gizli bilgi yer alıyor; toplamda 1.379 farklı kimlik bilgisi söz konusu. Bunların üçte birinden fazlası bir veritabanına doğrudan erişim sağlıyor; aralarında 379 veritabanı parolası var. Buluntular arasında ayrıca herkese açık sunucular için 43 SSH girişi, GitHub, GitLab ve npm için 42 belirteç ve 23 Amazon Web Services anahtarı bulunuyor.

Dosyaların sahipleri yalnızca hobi amaçlı yazılım geliştiren kişiler değil. Apiiro, çoğu farklı büyüklüklerde yazılım şirketleri olan 63 kuruluşun izini sürdü. En çarpıcı örnekler arasında bir veritabanı sağlayıcısının kendi yönetici düzeyindeki bulut anahtarı ve tıbbi kayıtlar veritabanının sahibi parolası yer alıyor. Git geçmişindeki dosyanın eski sürümlerinde 509 depoya yayılmış 734 ek gizli bilgi bulunuyor; 74 deponun 211 çatalında da asıllardaki gizli bilgiler aynen yer alıyor. Ekiplerin bilerek kaydettiği paylaşılan ayar dosyaları ve saklanan ajan sohbet günlükleri de hesaba katıldığında sayı, 1.994 depoda 2.539 gizli bilgiye ulaşıyor.

Claude Code dosyanın sürüm kontrolüne girmesini önlemeye çalışıyor. Anthropic’in ayar belgelerine göre araç dosyayı ilk kez yazdığında kullanıcının genel git dışlama listesine bir kural ekliyor; böylece git o bilgisayarda dosyayı yok sayıyor. Ancak bu kural projeyle birlikte bir ekip arkadaşının dizüstü bilgisayarına, derleme sunucusuna ya da yeni bir makineye taşınmıyor ve önceden kaydedilmiş bir dosya için de işe yaramıyor. Araştırmacıların izini sürdüğü 1.105 deponun 539’unda, Claude’un ortak yazar olarak listelendiği bir commit dosyayı değiştirmiş; bu da ajanın dosyayı sık sık kendisinin commit ettiğine işaret ediyor. Apiiro’nun belgelerini karşılaştırdığı 16 kodlama ajanı arasında, onaylanan komutun tamamını varsayılan olarak proje dosyasına kaydettiği doğrulanan tek araç Claude Code.

Yaygın güvenlik önlemleri bu bilgilerin önemli bir bölümünü yakalayamıyor. Apiiro, her kopyada popüler iki açık kaynaklı gizli bilgi tarayıcısı olan gitleaks ve TruffleHog’u çalıştırdı: gitleaks 1.122 dosyanın 564’ünü, TruffleHog ise 643’ünü işaretledi; 215 dosya ikisinden de kaçtı. Gözden kaçanların çoğu PGPASSWORD=, sshpass -p veya mysql -p ifadelerinden sonra yazılmış parolalardı. Bilinen anahtar biçimlerini arayan araçlara bunlar sıradan sözcükler gibi görünüyor.

Bulguların bazı çekinceleri de var. Apiiro, yapay zekâ destekli yazılım geliştirme için güvenlik araçları satıyor; dolayısıyla bu araştırma aynı zamanda bir satış sunumu niteliği taşıyor. Şirket, kimlik bilgilerinin hâlâ çalışıp çalışmadığını sınamadı; ancak bilgilendirdiği şirketlerden biri anahtarının hâlâ etkin olduğunu doğruladı. Bir değer, bilinen bir anahtar biçimiyle eşleştiğinde ya da herkese açık bir sunucu adresinin yanında yer alıp yapay zekâ destekli incelemeyi geçtiğinde gizli bilgi olarak sayıldı; bu da bazı yanlış pozitiflere açık kapı bırakıyor. Apiiro ayrıca ortak yazar verisinin, açığa çıkan her kimlik bilgisini Claude’un eklediğini kanıtlamadığını söylüyor. Üstelik GitHub yalnızca görünen kısım: dosya proje klasöründe düz metin JSON biçiminde bulunduğundan bir npm paketine, Docker imajına, zip arşivine ya da eşitlenen bir klasöre de eklenebilir.

Araştırmacıların ilk önerisi, ortalığı temizlemeden önce tüm parolaları, belirteçleri ve anahtarları değiştirmek. Çünkü bir gizli bilgi herkese açık hâle geldiyse, geçmişi yeniden yazsanız da artık güvenli değildir. Ardından git rm –cached komutuyla dosyanın git tarafından izlenmesini durdurun, deponun kendi .gitignore dosyasına ekleyin ve Claude Code içindeki /permissions bölümünü açarak gizli bilgi içeren kayıtlı kuralları silin. Kimlik bilgilerine ortam değişkenleri üzerinden başvurmak, kaydedilen kuralda parola yerine $DB_URL gibi bir adın tutulmasını sağlar. Tek seferlik komutlar yerine kalıpları onaylamak da dosyada açık komut bağımsız değişkenlerinin yer almasını baştan önler.

Kullanıcılar bu sorunu daha önce de bildirmişti. 11 Ağustos 2025’te açılan bir hata bildiriminde, API anahtarları ve belirteçler içeren onaylı komutların settings.local.json dosyasına kelimesi kelimesine kaydedildiği belirtiliyordu. Otomatik bir bot, 60 gün boyunca etkinlik görülmemesinin ardından bildirimi 3 Ocak’ta “planlanmadı” diyerek kapattı. Bulgularını 6 Kasım’da yayımlayan Apiiro, atıfta bulunduğu bağlantılı dört bildirimin tamamının aynı bot tarafından kapatıldığını; en yenisinin de 6 Kasım’da, Anthropic’ten yanıt gelmeden kapatıldığını söylüyor. 2 Kasım itibarıyla bulunan açık dosyaların tamamı depolarının ana dalında hâlâ duruyordu; vakaların yarısında en az 217 gündür.

The Hacker News de Apiiro da Anthropic’ten bir yanıt aldıklarını bildirmiyor ve belgelenen davranış değişmiş değil: İçinde parola yazılı bir komut için bir sonraki “bir daha sorma” seçeneğine bastığınızda, parola da kaydedilecek.

Etiketler: , , , , ,

Bizi Google'a ekleyin

Tartışma

0 yorum var.