Giriş
Geçtiğimiz günlerde, Node Package Manager (npm) üzerinde beş adet kötü amaçlı AsyncAPI paketi yayımlandı. Bu olay, yazılım tedarik zinciri güvenliğinin ne kadar kritik olduğunu bir kez daha gözler önüne serdi.
Saldırı Nasıl Çalışıyor?
Saldırı, yanlış yapılandırılmış bir GitHub Actions iş akışının istismar edilmesiyle gerçekleştirildi ve @asyncapi ad alanında trojan içerikli paketler yayımlandı. Yayımlanan paketlerin haftalık indirme sayısı toplamda 2.25 milyon ‘dan fazla oldu. 14 Temmuz tarihinde, bir saldırgan iki AsyncAPI GitHub deposunu ele geçirerek, proje dosyalarına kötü amaçlı yazılım enjekte etti.
Araştırmacılar, saldırının CI/CD boru hattı üzerinden gerçekleştirildiğini belirtiyor. Saldırgan, sahte bir Git kimliğiyle gönderiler (commit) yaptı ve her bir deponun gerçek dağıtım işleminde npm‘in GitHub OIDC güvenilir yayıncı entegrasyonu sayesinde paketlerin yayımlanması sağlandı. Bu sayede, yayımlanan paketlerin meşru SLSA köken attestasyonlarına sahip olması garanti edildi.
Etkilenen Sistemler
Yayımlanan kötü amaçlı AsyncAPI paketlerinin ilk aşaması, JavaScript ‘te obfuscate edilmiş bir ifade. Bu ifade, enfekte dosya içe aktarıldığında bir indirgici (downloader) başlatmaktadır. İkinci aşamadaki script ise, konfigürasyon detayları ve ana çalışma zamanını içeren, IPFS eşler arası içerik dağıtım ağından indiriliyor ve gizli bir işlem olarak çalıştırılıyor.
Üçüncü aşama nesne yükü ise, 92,000 satır koddan oluşan bir kötü amaçlı yazılım framework’ü. Bu framework, sistem üzerinde kalıcı bir yapı oluşturuyor ve bir komut ve kontrol (C2) sunucusuyla çeşitli kanallar üzerinden iletişim kuruyor: HTTP, Nostr relays, Ethereum akıllı sözleşmeleri, ve libp2p mesh ağı.
Araştırmacılar, son yükün daha önceki yazılım tedarik zinciri saldırılarında görülen Miasma arka kapısını işaret ettiğini belirtiyor. SafeDep araştırmacıları, bunun ya aynı operatörler tarafından oluşturulmuş özel bir yapı olduğunu ya da Miasma markasını benimseyen ayrı bir grubun ürünü olduğunu düşünüyor.
Çözüm ve Korunma
Kötü amaçlı yazılımın amacı, çok sayıda hassas bilgiyi çalmaktır. Bu bilgiler arasında şunlar yer alıyor:
- Kullanıcı kimlik bilgileri
- Kimlik doğrulama anahtarları
- Token’lar
- Tarayıcı verileri
- CI/CD sistemlerinden hassas bilgiler
- Kripto para cüzdanları
- Veritabanları
Ancak, bir siber güvenlik şirketi olan Aikido’nun raporuna göre, kötü amaçlı yazılımın tüm bu işlevleri çalışmamaktadır; veri toplama aracı, herhangi bir veriyi toplamadan çıkış yapmaktadır. Buna rağmen, araştırmacılar bunun elle de gerçekleştirilebileceğini belirtmektedir.
Kötü amaçlı yazılım, Rusya’da olup olmadığını yerel olarak kontrol ediyor ve eğer bir eşleşme varsa, sürecini sonlandırıyor.
Mevcut durumda, beş adet kötü amaçlı paket npm’den kaldırılmıştır. Fakat geliştiricilerin, mevcut kurulumlarının ve ifşa süresi boyunca oluşturulmuş kilit dosyalarının (lock files) hala kötü amaçlı sürümleri içerebileceğini unutmamaları gerekmektedir.
Yayılma süresi, 07:10 ile 11:18 UTC arasında yaklaşık dört saat yedi dakika sürmüştür.
Aksiyon
Yapılması gerekenler:
- Bilinçli dosyalara sabitlenin (pin)
- Kilit dosyalarını (lock files) yeniden oluşturun
- Gizli ‘NodeJS/sync.js’ yükünü kaldırın
- Tüm kötü amaçlı süreçleri sonlandırın
- Etki alanındaki sistemlerde kimlik bilgilerini değiştirme (rotate) işlemini gerçekleştirin
Bu adımları takip ederek, sistemlerinizi koruma altına alabilir ve ilerideki olası saldırılara karşı hazırlıklı olabilirsiniz.


