☕ Papatya Çayından Bir Yudum Al ve Dinle #12 — GitHub'a Yanlışlıkla .env Dosyası Atarsanız Ne Olur? (API Key Leaks) Herkese Selamlar, Bugün sizlerle birlikte yazılımcıların gece uykularını kaçıran, tek bir tıklamayla binlerce dolarlık faturalara yol açan bir klavye kazasını ele alıyoruz: GitHub Depolarına API Anahtarı Sızdırmak. Kod geliştirirken yerel ortamımızda tuttuğumuz .env dosyalarını yanlışlıkla public bir depoya git push ile göndermek, dijital dünyada cüzdanınızı kalabalık bir meydanda masanın üzerinde unutmaktan farksızdır. Gelin, bu sessiz felaketin saniyeler içinde nasıl gerçekleştiğine adım adım bakalım: Saniyeler Süren Av (Scraper Botlar): GitHub'a bir kod pushladığınız an, saldırganların çalıştırdığı otomatik tarama botları (GitHub Firehose / Event API) devreye girer. Bu botlar depoyu insan gözünün fark edemeyeceği bir hızla tarayarak AWS_SECRET_ACCESS_KEY, OPENAI_API_KEY veya DATABASE_URL gibi hassas ifadeleri çok kısa sürede tespit edebilir. Bu nedenle anahtarın uzun süre fark edilmeyeceğini varsaymak ciddi bir güvenlik riskidir. Faturanın Geldiği An (Kripto Madenciliği & Sömürü): Saldırgan bot anahtarı yakaladığı an insan müdahalesi bile olmadan otomatik betikler tetiklenir. Ele geçirilen bir AWS anahtarıyla dünyanın dört bir yanındaki sunucularda en pahalı GPU'lu EC2 makineleri açılıp kripto madenciliği başlatılır. Sabah uyandığınızda mail kutunuzda binlerce dolarlık faturalarla karşılaşabilirsiniz. Sahte Güvenlik Hissi (Dosyayı Silmek Yetmez!): Birçok yazılımcı hatasını fark ettiği an .env dosyasını silip yeni bir commit atar. Ancak Git Commit History (Geçmiş) unutulur! Dosyayı yeni bir commit ile silmek, eski commit'lerdeki anahtarı ortadan kaldırmaz. Git geçmişi temizlense bile anahtar daha önce kopyalanmış veya ele geçirilmiş olabileceğinden öncelikle iptal edilmelidir. 📌 Siber Güvenlik ve Yazılım Dersi: Güvenlik, kod tamamlandıktan sonra düşünülecek bir aşama değil; yazılım geliştirme sürecinin (DevSecOps) ilk gününden itibaren koda dahil edilmesi gereken bir kültürdür. Geleceğinizi ve Bütçenizi Nasıl Korursunuz? Disiplinli .gitignore Kullanımı: Projeye başlar başlamaz ilk iş .gitignore dosyasına .env, *.pem, config.json gibi hassas dosyaları eklemek alışkanlık haline getirilmelidir. Pre-Commit / Pre-Push Hook'lar (Gitleaks / TruffleHog): Kod depoya gönderilmeden önce gizli bilgileri tarayan araçlar entegre edilmelidir. Uygun hook yapılandırmasıyla tespit edilen gizli bilgilerin commit veya push aşamasında engellenmesi sağlanabilir. Gizli Anahtar (Secret) Sızarsa Ne Yapılmalı? Adım 1: Sızan API anahtarını GitHub'dan silmekle vakit kaybetmeyin; ilgili servis sağlayıcısından (AWS, OpenAI vb.) anahtarı ANINDA İPTAL EDİN (Revoke). Adım 2: Gerekliyse git-filter-repo veya BFG Repo-Cleaner ile Git geçmişindeki hassas verileri temizleyin. Ancak bu işlem, anahtarın iptal edilmesinin yerini tutmaz. Adım 3: Yeni bir anahtar üretip uygulamaya Environment Variable olarak güvenli şekilde tanımlayın. "Kodunuz açık kaynak olabilir, ama gizli anahtarlarınız asla." 💬 Mustafa soruyor: Geçmişte yanlışlıkla GitHub'a veya herhangi bir ortama gizli anahtar/şifre sızdırdığınız oldu mu? O anki paniği nasıl yönettiniz? Yorumlarda tecrübelerinizi paylaşın, birbirimizi uyaralım! 👇