GitHub anahtar sızıntıları ve bu sızıntıları engelleme yolları

Nisan 2, 2019

North Carolina State Üniversitesi’nden araştırmacılar yakın zamanda token, kripto anahtar ve açık biçimde saklanabilen diğer gizli bilgi içeren 100,000’den fazla proje olduğunu keşfetti. Genel kullanıma açık alanda, 200,000’den fazlası eşsiz olmak üzere toplamda yarım milyondan fazla bahsi geçen türden nesne bulundu. Dahası, bu tokenlar Google, Amazon MWS, Twitter, Facebook, MailChimp, MailGun, Stripe, Twilio, Square, Braintree ve Picatic gibi büyük firmalar tarfından çıkarılmış.

GitHub ortaklaşa bir şekilde yazılım geliştirmek için popüler bir kaynaktır. Kodları açık ya da sınırlı erişim özelliğiyle birlikte havuzda saklamak, iş arkadaşlarıyla bağlantı kurmak, iş arkadaşlarını program testlerine dahil etmek ve kullanıma hazır açık kaynak geliştirmeleri kullanmak için kullanılmaktadır. Uygulama ve hizmet yaratımını oldukça basitleştirmekte ve hızlandırmaktadır, bu sebeple de çoğu programcı GitHub’ı kullanmaktan memnun. Yazılımlarını açık kaynak modüllerine dayanarak yazan şirketler aktif bir şekilde GitHub’ı kullanmaktadır. Buna ek olarak şeffaf olmak isteyen firmalar da sıklıkla kullanmaktadır.

Buna rağmen, GitHub’a kod yüklerken özel bir dikkat gösterilmeli – bazı geliştiricilerin her zaman dikkate almadığı bir tavsiye.

Genel kullanıma açık alana hangi veriler girdi

GitHub’ın, yetkilendirme aşamalarını geçmek ve kullanıcılar ya da uygulamalar adına belirli eylemleri gerçekleştirmek için yeterli olan tokenleri ve anahtarları içeren, erişime açık kod bloklarına ev sahipliği yaptığı keşfedildi. Farkında olmadan açıklanan bu bilgilerin arasında:

  • Büyük web sayfalarının yönetici hesaplarının oturum açma bilgileri,
  • Uygulama içi API işlevlerinin kullanımı etkinleştiren API anahtarları ya da tokenleri – çeşitli sistem bileşenleri, örneğin bir program ile bir web sayfası- arasındaki etkileşimler için bulunan araç kümesi,
  • Bir çoğu şifre değil de doğrulama için kullanılan ve bir şifreyle kombinasyon halinde olmayan kripto anahtarlar, dolayısıyla da özel ağları da içerecek şekilde çoğu kaynağa erişim sağlamak için tek bir anahtarın yeterli olduğu bilinir.

Sızmış tokenler ve kripto anahtarlar niçin bir risk oluşturur

Hesaplarınıza yetkisiz erişim, sınırlı olsa bile, işiniz için ciddi bir tehdit oluşturur. Aşağıdakiler bu tehditler için örnek olarak düşünülebilir.

GitHub’da yayınlamış olan tokenleri kötüye kullanmanın bir yolu posta saldırısı yapmak ve bu postaların da sözde o tokenleri yayınlamış olan firmadan geliyormuş gibi göndermektir. Örneğin içeri sızmış birisi kurumsal web sayfasını ya da Facebook veya Twitter hesabına erişebilir ve zararlı bir gönderi koyabilir ya da şifre avcılığı için oraya bir link yerleştirebilir. Resmi web sayfaları ve hesaplar genellikle güvenilir bilgi kaynakları olarak kabul edildiğinden, birçok okur gönderinin ya da linkin güvenli olduğunu kabul edeceğinden risk yüksektir.

Buna ek olarak siber suçlular takip listenizde bulunan herkesin şifresini çalabilir (örneğin MailChimp kullanıyorsanız). Daha önceki senaryoya gelince buradaki beklenti kullanıcıların, kaydoldukları gerçek bir firmandan gelen postaya güvenecek olmalarıdır. Böylesi saldırılar firmanin itibarına ciddi manada zarar verebilir ve müşteri kaybı ile normal çalışmaya geri dönmek için harcanan zaman bakımından ciddi bir hasar verebilir.

Son olarak siber suçlular doğrudan bir hizmetin faturalandırılabilir özelliklerini -örneğin, Amazon AWS- sizin zararınıza kullanabilir. Örneğin, blogger Luke Chadwick bir seferinde kendi anahtarının GitHub’da herkese açık hale geldiğine dair Amazon’dan mesaj almıştı. Yaptığı bir araştırma sonucunda bir sebeple kapatmayı unutmuş olduğu eski bir proje olduğunu buldu. Chadwick Amazon hesabına giriş yaptığında ödeme bekleyen 3.493 $ olduğunu gördü. Yetkisiz bir kullanıcının herkese açık olan anahtarı ele geçirdiğini ve hesabını kullanarak kripto para madenciliği yaptığı ortaya çıktı. Sonunda Amazon Chadwick’in kaybını karşıladı. Ancak hikayenin her zaman mutlu sonla bitmediğini unutmayın.

Özel bilgiler nasıl GitHub’a düştü

Araştırma sonuçlarının analizi, genel kullanıma açık alana gizli bilgi bırakanların sadece genç ve tecrübesiz programcılar olmadığını göstermektedir. Örneğin, büyük bir hükümet kurumunun web sayfasına erişim sağlayan veriler 10 yıllık takip kaydı olan bir geliştirici tarafından GitHub’da yayınlanmıştır.

Tokenler ve her türden anahtar çeşitli sebeplerle GitHub havuzlarında yayınlanmaktadır. Bir uygulamayı belirli bir hizmetle entegre etmek için yetkilendirme araçlarına gerek olabilir. Test etme amacıyla bir kodu yayınlarken bazı kullanıcılar hata ayıklama anahtarları yerine geçerli anahtarları kullanmakta ve sonrasında da bu bilgiyi herkesin erişiminden kaldırmayı unutmaktadır.

Örneğin, Securosis analisti ve CEO’su olan Rich Mogull, bir konferans raporu için geliştirmekte olduğu bir uygulamayı GitHub’a göndermiş. Program Amazon AWS’ye arama yapmakta ve yerel olarak yetkilendirme için tüm verileri saklamış. Buna rağmen kodun birbirinden bağımsız bloklarında hata ayıklama yapmak için çeşitli erişim anahtarlarını içeren bir test dosyası yaratmış. Hata ayıklamadan sonra Mogull bu anahtarları dosyadan silmeyi öylece unutmuş. Bu anahtarlar daha sonra içeri sızanlar tarafından bulunmuş ve farke dilene kadar da Amazon hizmetlerinde 500 $ harcanmış.

Buna ek olarak geliştiriciler, GitHub havuzlarında geçerli tokenleri bırakmanın risklerinden ve GitHub’a kodu yerleştirmeden önce tokenleri belirlemenin ve silmenin (ya da değiştirmenin) gerekliliğinden haberdar olmayabilir.

Kaynaklarınızı nasıl korursunuz

  • Geliştiricilerinizin geçerli tokenleri ve anahtarları açık havuzlara yüklemenin zararlı ve tehlikeli olduğundan haberdar edin; programcılar kodu yüklemeden önce, kodun herhangi bir gizli veri içermediğini teyit etme gerekliliğini anlamalıdır.
  • Ürün müdürünün firmanın GitHub projelerinizde herhangi bir gizli bilgi içerip içermediğini kontrol etmesini ve eğer varsa da silmesini sağlayın; değişiklik geçmişinde hiçbir şey kalmayacak şekilde tamamen silinmesi gerektiğine dikkat edin.
  • Firmanızın GitHub’da sakladığı herhangi bir bilgi şifre içeriyorsa, onları değiştirin; herhangi birinin bu şifreleri görüp kodu kaydedip kaydetmediğini bilmenin hiçbir yolu yoktur.
  • Çalışanlarınızın bilgi güvenliği konusundaki farkındalığını düzenli olarak artırın, bu sayede GitHub’ın ve diğer araçlarla kaynakların sorumlu bir şekilde kullanılması alışkanlık haline gelsin. Platformumuz bunları çalışmalarınızı etkilemeyecek şekilde etkin ve pratik olarak gerçekleştirmenize yardımcı olacaktır.