google cloud api keylerini github'a atanlar gemini'ye de erişim vermiş

Posted on 1 Mar 2026

arkadaşlar, yeni bir araştırma ortaya çıktı ve durum hiç iç açıcı değil. truffle security adlı firma, github’da ve açık kaynaklarda dolaşan google cloud api keylerini incelemiş. sonuç: yaklaşık 3.000 tane “AIza” ile başlayan api key bulmuşlar ve bunların bir kısmı gemini api’sine erişim veriyor. yani siz faturalama için kullanılır diye düşündüğünüz bu keyleri client-side kodlara gömmüşseniz, tebrikler, gemini’ye de erişim vermişsiniz.

olay ne tam olarak?

google cloud api keyleri normalde proje tanımlayıcısı ve faturalama için kullanılır. maps, translate, youtube gibi servislere erişim için client tarafında kullanılması normal karşılanır. ama işin içine gemini girince durum değişiyor.

truffle security’nin bulduğu keylerin bir kısmı gemini api endpoints’lerine erişim sağlıyor. bu ne demek? kötü niyetli birisi sizin keyinizi bulursa:

  • gemini ile konuşabilir (sizin faturanıza)
  • özel prompt’larınıza erişebilir
  • fine-tune edilmiş modellerinizi kullanabilir
  • proje verilerinize ulaşabilir
  • faturanızı şişirebilir (quota bitene kadar)

spoiler: bu keyler github’da, mobil uygulamalarda, javascript dosyalarında, hatta apk’larda bile bulunmuş. klasik “client-side’a secret koymayın” hikayesi yine başımıza geldi.

etkilenen sistemler

SistemDurum
Google Cloud API Keys (AIza*)🔴 Etkileniyor
Gemini API erişimi olan keyler🔴 Kritik risk
Maps/Translate gibi keyler🟡 Daha az riskli ama yine de sorun
GitHub public repo’lar🔴 Key sızıntısı kaynağı
Mobil uygulamalar (APK)🔴 Key sızıntısı kaynağı

hemen yapmanız gerekenler

1. keyinizi kontrol edin

# github'da kendi repo'larınızı tarayın
git log -p | grep -i "AIza"

# veya trufflehog kullanın
trufflehog git https://github.com/kullanici/repo --only-verified

2. sızan keyleri iptal edin

google cloud console’a gidin:

  1. APIs & Services → Credentials
  2. “AIza” ile başlayan keyinizi bulun
  3. Regenerate key’e tıklayın
  4. Eski keyi silin

3. key yetkilerini kısıtlayın

önemli: api keyinize mutlaka kısıtlama koyun:

API restrictions:
- Sadece ihtiyacınız olan API'leri seçin
- Gemini'ye ihtiyacınız yoksa KALDIR

Application restrictions:
- HTTP referrer kısıtlaması ekleyin
- IP adresi kısıtlaması ekleyin (mümkünse)

4. backend’e taşıyın

client-side’da api key kullanmayı bırakın:

// YANLIŞ ❌
const apiKey = "AIzaSyDxxxxxxxxxxxxxx";
fetch(`https://api.google.com/gemini?key=${apiKey}`);

// DOĞRU ✅
// backend'inize istek atın, key orada kalsın
fetch(`https://kendi-backend.com/api/gemini-proxy`);

5. secret scanning aktif edin

github’da secret scanning’i açın:

  • Settings → Code security and analysis
  • Secret scanning → Enable
  • Push protection → Enable

google ne diyor?

google’ın resmi açıklaması şu ana kadar yok ama truffle security ile çalıştıkları söyleniyor. beklenen:

  • api key yetkilerinde daha granular kontrol
  • gemini api için ayrı authentication mekanizması
  • otomatik key rotation önerileri

edit: google cloud’un best practices dokümanında zaten “api keylerini public kod’a gömmeyin” yazıyor ama kim okur ki onu.

geçici çözümler

yamayı (yani yeni authentication sistemini) beklerken:

  1. quota limitleri koyun: günlük/aylık harcama limiti belirleyin
  2. billing alerts: fatura alarm’ları kurun, anormal kullanım görürseniz hemen keyi iptal edin
  3. audit logs: cloud logging’de api çağrılarını izleyin
  4. key rotation: düzenli olarak keyinizi değiştirin (ayda bir falan)

teknik detaylar

zafiyet türü: hardcoded credentials, improper access control
risk seviyesi: 🔴 kritik (gemini erişimi varsa), 🟡 orta (sadece maps vs. varsa)
sömürü zorluğu: çok kolay, key bulunca direkt kullanılıyor
etki: veri sızıntısı, fatura şişmesi, özel model erişimi

kaynaklar

son söz

agalar, bu olay ciddi ciddi github’daki her public repo’yu taramanız gerektiğini gösteriyor. “benim keyim önemsiz” demeyin, içinde gemini erişimi varsa birisi sizin faturanıza konuşabilir veya daha kötüsü özel verilerinize ulaşabilir.

yapmanız gereken şeyler:

  • ✅ hemen github’ı tarayın
  • ✅ sızan keyleri iptal edin
  • ✅ yeni keyler oluştururken kısıtlama koyun
  • ✅ mümkünse backend’e taşıyın
  • ✅ secret scanning aktif edin
  • ✅ billing alerts kurun

dikkat: bu iş sadece google cloud değil, aws, azure, openai ne varsa hepsinde geçerli. client-side’a secret koymayın, sonra ağlarsınız.

şimdi gidin repo’larınızı kontrol edin, ben uyardım.


Bu içerik yapay zeka tarafından oluşturulmuştur.