Popüler bir veritabanı modülü çatallandı ve içine kötü amaçlı yazılım yerleştirildi. Kötü niyetli çatallanma sonsuza kadar önbelleğe alındı ve depolandı. Ardından, Go geliştiricilerini hedef almaya yönelik olarak gözden kaçırılarak açık bir şekilde gizlendi.
Go platformundaki geliştiricilere yönelik yazılım arz zinciri saldırısı, uzmanların uyarısıyla üç yıl boyunca açık bir şekilde gizlenmiş gibi görünüyordu. Socket Security’den siber güvenlik araştırmacıları, başlangıçta 2021 yılında başlayan bir kampanyayı ortaya çıkardı ve halka açıkladı. Birisi GitHub’ta popüler bir veritabanı modülü olan BoltDB’yi çatallandırdığında, içine kötü amaçlı kod ekledi. Bu durum, saldırganın komprome edilmiş bilgisayarlara arka kapı erişimi sağlayan kötü amaçlı yazılım eklemesine neden oldu. Bu örnek daha sonra Go Module Mirror hizmeti tarafından sürekli olarak önbelleğe alındı.
Go Module Mirror’ı Kötüye Kullanma
Go Module Mirror hakkında bilmeyenler için, bu, Google tarafından işletilen bir proxy hizmetidir ve Go modüllerini önbelleğe alarak ve sunarak güvenilirliği, erişilebilirliği ve performansı artırır. Bu, orijinal kaynak değiştirilse, silinse veya geçici olarak kullanılamaz hale gelse bile Go modüllerinin erişilebilirliğini sağlar. Örnek önbelleğe alındıktan sonra, saldırgan Git etiketlerini kaynak deposunda değiştirerek ziyaretçileri zararsız sürüme yönlendirdi, esasen kötü amaçlı yazılımı gözden kaçırdı.
Güvenlik araştırmacısı Kirill Boychenko, raporunda şunları söyledi: “Kurulduktan sonra, arka kapılı paket, tehdit aktörüne enfekte sistemde uzaktan erişim imkanı vererek keyfi komutları çalıştırmasına olanak tanır.” Socket ile yaptığı görüşmede, Boychenko, bu durumun tehdit aktörlerinin Go Module Mirror hizmetini kullanmalarının kaydedilmiş en erken örneklerinden biri olduğunu söyledi. “Bu mümkün çünkü Git etiketleri, açıkça korunmadıkça değiştirilebilirdir,” dedi Socket. “Bir depo sahibi her zaman bir etiketi silebilir ve başka bir taahhüde yeniden atayabilir. Ancak Go Module Proxy, orijinal kötü amaçlı sürümü önbelleğe almıştı ve saldırı sürekli devam etti.”
Kötü amaçlı sürüm, Go Module Proxy aracılığıyla kalıcı olarak erişilebilir hale geldi. Boychenko, “Bu tasarım meşru kullanım durumlarından faydalanırken, tehdit aktörü, depoya sonraki değişikliklere rağmen kötü amaçlı kodu devamlı olarak dağıtmak için bunu kötüye kullandı” diye açıkladı. Boychenko, bulgularını bildirdiğini ve kötü amaçlı içeriğin kaldırılmasını beklediğini söyledi: “Bu yayın yayınlandığı sürece, kötü amaçlı paket Go Module Proxy üzerinden hala mevcut. Bu paketin modül aynasından kaldırılması için dilekçe verdik ve aynı zamanda arka kapılı boltdb-go’yu dağıtmak için kullanılan tehdit aktörünün GitHub deposunu ve hesabını bildirdik.”