Geliştiricilerin GitHub’da açık kaynaklı bir proje kullanıp kullanmayacağına karar verirken baktığı meta veriler kolayca taklit edilebilir ve saldırganlara platform kullanıcılarını kötü amaçlı kod indirmeleri için kandırmak için bir yol sunar.
Checkmarx araştırmacıları yeni bir raporda, geliştiricilerin bu nedenle depoya kod gönderenlerin kimliğini doğrulama konusunda gayretli olmaları ve meta verileri yüz değerinde almamaları gerektiği konusunda uyarıyor.
GitHub’da açık kaynaklı bir proje arayan geliştiriciler, aktif, sürdürülen ve platformda yerleşik bir geçmişe sahip geliştiricilerle ilişkili olanları tercih etme eğilimindedir. Geliştiricilerin dikkate aldığı veri noktaları arasında, GitHub’a açık kaynak kodu katkıda bulunan bir kişinin zaman içinde bir projeye yapmış olabileceği taahhütlerin veya değişikliklerin sayısı vardır. Git, yapılan belirli değişikliği, değişikliği kimin oluşturduğunu ve bunun için bir zaman damgasını açıklayan her değişikliğe benzersiz bir kimlik atar. Genellikle, kendisiyle ilişkili çok sayıda taahhüt içeren bir proje, aktif olarak sürdürüldüğünün bir işareti olarak algılanır.
Ancak bir saldırgan kolayca tüm bu veri noktalarını sahte veya sahte Checkmarx’a göre kodlarına güvenilirlik görünümü kazandırmak ve dikkatsiz geliştiricileri kötü amaçlı kod indirmeleri için kandırmak.
Örneğin, her bir taahhütle ilişkili zaman damgası, değişiklik olduğundan çok farklı bir zamanda olmuş gibi görünmesi için manipüle edilebilir. Rapora göre, bir tehdit aktörünün bunu başarması için tek yapması gereken, yerel makinelerinde iki değişkeni değiştirmek.
Sahte Güvenilirlik Oluşturmak Kolay
GitHub’da yepyeni bir hesap oluşturan kötü niyetli bir aktör, platformda veya uzun süredir aktif olduklarını göstermek için yıllar öncesine dayanan zaman damgalarıyla çok sayıda taahhüt üretebilir. Checkmarx’ın raporunda, “GitHub’daki bir kullanıcı etkinliği için göze çarpan bir ölçü, kullanıcının profil sayfasında sunulan ‘etkinlik grafiği’dir” diyor. “Bu grafik esasen kullanıcının zaman içindeki etkinliğini gösteren bir ısı haritasıdır. Dolayısıyla, istediğimiz herhangi bir zaman damgasına sahip taahhütler üretebilirsek, bu grafiği sahte faaliyetlerle doldurabiliriz.”
Benzer şekilde, bir saldırgan, güvenilir bir katkıda bulunanın kimliğini taklit ederek zehirli bir taahhüdü GitHub deposuna zorlayabilir. Saldırganın yalnızca güvenilir kullanıcının e-posta adresini bulması ve ardından Git komut satırında kullanıcı adını ve e-posta adresini ayarlaması ve değişiklikleri gerçekleştirmesi gerekir. Rapora göre GitHub, geliştiricilere e-posta adreslerini gizlemeleri için yollar sunsa da, çoğu bu özellikleri kullanmaz ve bu da saldırganların onu nispeten kolay bulmasını sağlar.
Bir kullanıcının hesabını taklit etme yeteneği, bir saldırganın kendi projesinin katkıda bulunanlar bölümünü diğer güvenilir kişilerin kimlikleriyle doldurmasını mümkün kılar. Güvenlik sağlayıcısına göre bu, geliştiricileri saldırganın projesinin güvenilir ve güvenilir olduğunu düşünmeye yönlendirebilir.
Bu taktiği endişe verici yapan şey, sahtecilik yapılan kullanıcının hesabının başka bir projeye katkıda bulunan olarak eklendiğine dair herhangi bir bildirim almamasıdır.
Checkmarx’ın tedarik zinciri güvenliği başkanı Tzachi Zornstain, kandırılma riskini azaltmak için geliştiricilerin kullanmayı planladıkları kodun kimliği doğrulanmış biri tarafından gönderilip gönderilmediğini kontrol etmeleri gerektiğini söylüyor. GitHub, geliştiricilerin kod işlerken kimliklerini doğrulamalarına olanak tanıyan bir özellik sunar.
Zornstain, “Bir geliştirici, gördüğü taahhütlerin ‘doğrulanmış taahhütler’ olup olmadığını kontrol edebilir ve buna dayanarak bu geliştiricilere güvenmek isteyip istemediğine karar verebilir” diyor. “Bir proje birden fazla katılımcıya sahip olduğunu iddia ederse, [make sure] bu taahhütler de doğrulanır.”
Ayrıca geliştiricilerin kodlarını dijital olarak imzalamalarına olanak tanıyan bir GitHub özelliği kullanmalarını tavsiye ediyor, böylece katkıları kendilerininmiş gibi doğrulanıyor. Bu özellik, başkalarının kendi adları altında gönderebilecekleri de dahil olmak üzere, ad altında katkıda bulunan tüm kodların durumunu görüntüleyen bir “uyanık mod” içerir, GitHub ayrıca koda katkıda bulunan tüm geliştiricilerin iki faktörlü kimlik doğrulamayı açması gerektiğini de kaydetti. 2023’te bunu yapmaya devam edebilmek istiyorlarsa.
Checkmarx ayrıca, geliştiricilerin kamu projelerine yönelik taahhütler ve doğrulanmamış taahhütler arasında kolayca ayrım yapmalarına yardımcı olacak ve böylece kolayca kandırılamayacakları bir açık kaynak aracı yakında yayınlayacak. “GitHub’ın geliştirici etkinliğini ve projelere katkısını sunma şekli, doğrulanmış taahhütlere dayanacaksa”, “bu, doğrulanmış taahhütlerin benimsenmesine yardımcı olur ve saldırganların geliştiricileri kolayca kandırmasına izin vermez” diyor.