Yeni bulgular, GitHub’da açıklanan yeni bir güvenlik açığının, binlerce veri deposunu yeniden saldırı saldırıları riskiyle karşı karşıya bırakmış olabileceğini gösteriyor.
Checkmarx güvenlik araştırmacısı Elad Rapoport, The Hacker News ile paylaşılan bir teknik raporda, kusurun “bir saldırganın GitHub’un veri deposu oluşturma ve kullanıcı adı yeniden adlandırma operasyonlarındaki bir yarış koşulundan yararlanmasına izin verebileceğini” söyledi.
“Bu güvenlik açığının başarıyla kullanılması, GitHub eylemlerinin yanı sıra Go, PHP ve Swift gibi dillerdeki 4.000’den fazla kod paketinin ele geçirilmesine olanak sağlayarak açık kaynak topluluğunu etkiliyor.”
1 Mart 2023’teki sorumlu açıklamanın ardından Microsoft’un sahip olduğu kod barındırma platformu, 1 Eylül 2023 itibarıyla sorunu ele aldı.
Depo ele geçirmenin kısaltması olan repojacking, bir tehdit aktörünün popüler depo ad alanı kullanımdan kaldırma adı verilen bir güvenlik mekanizmasını atlayabildiği ve sonuçta bir depoyu kontrol edebildiği bir tekniktir.
Koruma tedbirinin yaptığı şey, kullanıcı hesabı yeniden adlandırıldığında diğer kullanıcıların 100’den fazla klon içeren bir depoyla aynı adda bir depo oluşturmasını engellemektir. Başka bir deyişle, kullanıcı adı ile depo adının birleşimi “kullanımdan kaldırıldı” olarak kabul edilir.
Bu korumanın önemsiz bir şekilde aşılması durumunda, tehdit aktörlerinin aynı kullanıcı adıyla yeni hesaplar oluşturmasına ve kötü amaçlı depolar yüklemesine olanak tanınabilir ve bu da potansiyel olarak yazılım tedarik zinciri saldırılarına yol açabilir.
Checkmarx’ın ana hatlarıyla ortaya koyduğu yeni yöntem, bir veri havuzunun oluşturulması ile yeniden ele geçirmeyi gerçekleştirmek için kullanıcı adının yeniden adlandırılması arasındaki potansiyel yarış koşulundan yararlanıyor. Özellikle aşağıdaki adımları gerektirir:
- Kurban “victim_user/repo” ad alanına sahiptir
- Kurban, “kurban_kullanıcı”nın adını “yeniden adlandırılmış_kullanıcı” olarak değiştirdi
- “victim_user/repo” deposu artık kullanımdan kaldırıldı
- Kullanıcı adı “attacker_user” olan bir tehdit aktörü aynı anda “repo” adında bir depo oluşturur ve “attacker_user” kullanıcı adını “victim_user” olarak yeniden adlandırır.
Son adım, veri havuzu oluşturmak için bir API isteği ve kullanıcı adı değişikliği için yeniden adlandırılmış bir istek müdahalesi kullanılarak gerçekleştirilir. Bu gelişme, GitHub’un repojacking saldırılarına kapı açabilecek benzer bir bypass kusurunu düzeltmesinden yaklaşık dokuz ay sonra gerçekleşti.
Rapoport, “GitHub’ın depo oluşturma ve kullanıcı adı yeniden adlandırma operasyonlarında bu yeni güvenlik açığının keşfedilmesi, ‘popüler depo ad alanı kullanımdan kaldırma’ mekanizmasıyla ilişkili kalıcı risklerin altını çiziyor” dedi.