API Anahtarını Yanlışlıkla GitHub'a Atarsanız Ne Olur? Bu Koruma Sizi Durdurabilir
Bir yazılım geliştirirken en tehlikeli hatalardan biri şudur:
Kodun içine bir API anahtarı veya erişim sırrı yazmak.
Sonra:
git push
dersiniz.
Ve anahtar GitHub'a gider.
GitHub'ın Push Protection özelliği tam olarak bu tür kazaları önlemeye yardımcı oluyor.
GitHub'ın güncel dokümantasyonuna göre Push Protection, desteklenen gizli bilgilerin GitHub'a gönderilmesini tespit edip gönderimi engelleyebiliyor.
Hangi bilgilerden bahsediyoruz?
Örneğin:
-
API anahtarları
-
Erişim belirteçleri
-
Bulut servis anahtarları
-
Kimlik doğrulama sırları
-
Bazı servis sağlayıcılarına ait gizli bilgiler
gibi veriler.
Sistem nasıl çalışıyor?
Örneğin kodunuzda yanlışlıkla bir gizli anahtar olduğunu düşünelim.
Kod:
git push
ile GitHub'a gönderilmeye çalışılıyor.
GitHub desteklenen bir gizli bilgi tespit ederse gönderimi engelleyebilir.
Böylece sır GitHub'a ulaşmadan önce durdurulmuş olur.
GitHub size ne gösteriyor?
Push engellendiğinde GitHub:
-
Tespit edilen gizli bilginin türünü
-
Nerede bulunduğunu
-
Push işleminin neden durdurulduğunu
gösterebiliyor.
“Ama o gerçek bir API anahtarı değil”
Bazen sistem yanlış pozitif üretebilir.
GitHub'ın arayüzünde bunun için:
It's a false positive
seçeneği bulunuyor.
Yani tespit edilen metnin gerçek bir gizli bilgi olmadığını belirtebilirsiniz.
“Test için kullandığım anahtar”
GitHub'ın Push Protection arayüzünde testlerde kullanılan ve risk taşımayan bir değer için ayrı bir gerekçe de bulunuyor:
It's used in tests.
Ancak gerçek bir gizli anahtarı test dosyasına koymak yine de iyi bir uygulama değildir.
“Sonra düzeltirim” seçeneği neden tehlikeli?
GitHub arayüzünde gerçek bir sır olduğunu bilip daha sonra düzeltmek istediğinizi belirtebileceğiniz bir seçenek de bulunuyor.
Ama burada kritik nokta şu:
Gerçek bir API anahtarını GitHub'a gönderdikten sonra sadece koddan silmek yeterli olmayabilir.
Çünkü anahtarın erişim yetkisi artık açığa çıkmış olabilir.
Bu durumda ilgili servis sağlayıcısında:
Anahtarı iptal et → yeni anahtar oluştur
yaklaşımı daha güvenli olabilir.
Push Protection neden önemli?
Çünkü insan hatasını tamamen ortadan kaldırmaz ama son anda fren görevi görebilir.
Örneğin:
Geliştirici → yanlışlıkla API anahtarını commit etti → git push → GitHub engelledi
şeklinde bir güvenlik bariyeri oluşur.
GitHub'a hiç gizli bilgi koymamak daha iyi
Push Protection iyi bir savunma katmanı ama:
“GitHub beni yakalar.”
diye API anahtarlarını kod içine yazmak doğru değil.
Daha iyi yöntemler:
-
Ortam değişkenleri
-
GitHub Actions Secrets
-
Harici secret yönetim sistemleri
-
Yerel
.envdosyaları -
Gizli bilgileri kaynak kodundan ayrı tutmak
gibi yöntemleri kullanmaktır.
Gizli bilgi GitHub'a gittiyse
Öncelik:
-
Anahtarı tespit edin.
-
Anahtarı kullanan servise gidin.
-
Anahtarı iptal edin.
-
Yeni anahtar oluşturun.
-
Koddan eski anahtarı kaldırın.
-
Gerekirse Git geçmişindeki izleri temizleme prosedürünü uygulayın.
-
Yeni anahtarı güvenli bir secret yönetimine taşıyın.
En kritik nokta: Anahtar GitHub'a gerçekten ulaştıysa, “commit'i sildim, sorun bitti” diye düşünmeyin.
Henüz yorum yapılmamış. İlk yorumu siz yapın!
Bir Yorum Bırakın