Yazılım geliştiricilerin projelerinde sıklıkla başvurduğu npm (Node Package Manager) kayıt defterine sızan devasa bir zararlı yazılım ağı tespit edildi. Windows, macOS ve Linux sistemlerini hedef alan platformlar arası bir uzaktan erişim truva atı (RAT) ile bilgi hırsızı (infostealer) dağıttığı ortaya çıktı. OpenSourceMalware araştırmacısı Paul McCarty tarafından belgelenen kampanya, alışılmış yazılım tedarik zinciri saldırılarından farklı bir yöntem izliyor: Geliştiricileri, paketleri require() fonksiyonuyla manuel olarak yüklemeye yönlendiriyor.
Alışılmışın Dışında Bir Sızma Yöntemi: WEL1DROPPER
npm ekosistemindeki geleneksel saldırılar genellikle preinstall veya postinstall gibi kurulum aşamasındaki otomatik tetikleyicileri kullanır. Ancak bu yeni saldırı dalgası, güvenlik yazılımlarını atlatmak için geliştiricileri doğrudan hedef alıyor. Zararlı paketler, standart bir modül gibi görünerek geliştiricilerin bu modülleri require() fonksiyonu ile projelerine manuel olarak dahil etmelerini sağlayan yanıltıcı README dosyaları içeriyor.
Paket sisteme dahil edildiğinde, WEL1DROPPER adı verilen bir indirici devreye giriyor. Bu indirici, hedef sistemin işletim sistemini ve işlemci mimarisini tespit ettikten sonra üç Cloudflare Workers alan adından birine bağlanarak uyumlu payload’ı çekiyor:
- oob-worker.cf103-070.workers[.]dev
- oob-worker.cf102-baf.workers[.]dev
- oob-worker.cf99-9b3.workers[.]dev
HTTPS tabanlı indirme başarısız olursa kötü amaçlı yazılım, DNS TXT kayıtları üzerinden veri almak gibi sıra dışı bir yönteme başvuruyor. İlk olarak wel1[.]ru alan adından bir TXT kaydı sorguluyor. Yanıtı, payload parça sayısı olarak yorumladıktan sonra her bir parçayı sırayla çekiyor. Elde ettiği verileri Base64 ile çözerek nihai payload’ı oluşturuyor. Platforma göre hedef alan adları şöyle:
- Linux x64: sdk.dl.wel1[.]ru
- Linux ARM64: ext.dl.wel1[.]ru
- macOS: pkg.dl.wel1[.]ru
- Windows: net.dl.wel1[.]ru
Son aşamada payload geçici bir klasöre yazılıyor ve Linux/macOS’te /bin/sh, Windows’ta ise cmd.exe üzerinden çalıştırılıyor.
İşletim Sistemlerine Göre Özel Saldırı Vektörleri
Bu tehdidin en tehlikeli yanı, sızdığı işletim sisteminin mimarisine göre farklı ve son derece gelişmiş taktikler izlemesi. Sonatype’ın Flooding Dropper adıyla takip ettiği kampanyanın Windows ayağında, zararlı yazılım kalıcılık sağlamak için Windows Olay İzleme (ETW) ve Kötü Amaçlı Yazılım Tarama Arayüzü’nü (AMSI) devre dışı bırakıyor, sanal ortam ve sandbox kontrolleri yapıyor, Registry Run anahtarı ve zamanlanmış görev üzerinden sistemde tutunuyor. Sonrasında şifrelenmiş bir payload (/pkg/update_win.exe) indirip çalıştırıyor.
macOS bulaşma zinciri benzer bir yol izliyor. Hata ayıklayıcıları ve analiz araçlarını tespit ettikten sonra uzak sunucudan uyumlu payload’ı (/pkg/beacon_mac.bin) alıyor. Bu başarısız olursa DNS TXT yöntemine düşüyor ve LaunchAgent üzerinden kalıcılık kuruyor.
Linux örneği ise UPX ile paketlenmiş bir ELF binary’si. Cloudflare Worker URL’sinden yardımcı payload’lar indiriyor ve son aşamada açık kaynaklı komuta-kontrol (C2) çerçevesi Sliver‘ı sisteme yerleştiriyor.
Gizlenme Stratejisi: Sahte Telemetri SDK’sı
Paketlerin içinde bulunan lib/telemetry.js dosyası, ilk bakışta masum bir telemetri yazılım geliştirme kiti (SDK) gibi görünüyor. Ancak bu dosya, paket giriş noktası tarafından içe aktarılmamasına rağmen aynı indirme mantığını barındırıyor. OpenSourceMalware araştırmacıları, “Bu şişirilmiş telemetri uygulaması, hızlı bir kod incelemesi sırasında kötü amaçlı davranışı doğal profil oluşturma veya analitik işlevi gibi göstermek için gürültü eklemek üzere tasarlanmış” değerlendirmesinde bulundu.
Araştırmacılar ayrıca macOS payload’ında tcsbank[.]ru ve cloudpayments[.]ru gibi alan adlarının bulunmasının, kampanyanın Rus finans kuruluşlarını ve mobil ödeme sistemlerini hedef alabileceğine işaret ettiğini belirtiyor.
npm ve PyPI’de Eş Zamanlı Tehditler
Palo Alto Networks Unit 42, aynı dönemde npm ve Python Package Index (PyPI) depolarını hedef alan birden fazla kampanya daha belgeledi:
- Kripto para cüzdanı çalan 10 npm paketi: getPlugin fonksiyonu üzerinden harici sunucudan şifrelenmiş kripto hırsızı ve RAT indiriyor.
- Çok aktörlü npm ve PyPI paketleri: Bulut kimlik bilgisi sızdırma, EtherHiding blok zinciri tabanlı C2, Solana cüzdan anahtarı çalma, sahte CAPTCHA ile sosyal mühendislik ve Discord token hırsızlığı gibi farklı saldırı vektörleri içeriyor.
Tehdit aktörleri ayrıca Chrome uzantılarını da kullanmaya başladı. Oyun emülatörü, şifre yöneticisi ve üretkenlik aracı gibi görünen bu uzantılar, tarayıcıyı bir web tarama proxy’sine dönüştürüyor ve sayfa içeriğini Markdown’a çevirip uzak sunucuya gönderiyor.
Geliştiriciler Kendilerini Nasıl Koruyabilir?
npm ekosisteminde çalışan yazılım ekipleri için bu kampanya, paket seçiminde dikkat edilmesi gereken birkaç kritik noktayı yeniden gündeme getiriyor:
- Paket isimlerini dikkatle kontrol edin: AI tarafından üretilmiş veya rastgele isimlendirilmiş paketler, tipik typo-squatting saldırılarından daha zor fark edilebiliyor. Popüler paketlere benzeyen isimler yerine tamamen anlamsız isimler kullanılması, geliştiricilerin bu tuzağa düşme ihtimalini azaltıyor gibi görünse de saldırganlar README manipülasyonuyla bu açığı kapatmaya çalışıyor.
- Paketlerin yükleme sonrası otomatik kod çalıştırmasına güvenmeyin: Bu kampanya, preinstall/postinstall gibi otomatik tetikleyiciler yerine require() ile manuel yüklemeyi kullanarak güvenlik taramalarından kaçmayı başardı.
- Kod incelemesi sırasında telemetri ve analitik dosyalarını atlamayın: Saldırganlar, kötü amaçlı kodu şişirilmiş ve karmaşık görünen masum dosyaların arkasına saklayabiliyor.
npm ve açık kaynak paket yöneticileri üzerindeki bu tür tedarik zinciri saldırıları, yalnızca bireysel geliştiricileri değil, bu paketleri bağımlılık olarak kullanan kurumsal yazılımları da zincirleme şekilde etkiliyor. Paket seçimi ve düzenli bağımlılık denetimi, modern yazılım geliştirme sürecinin ihmal edilemez bir parçası haline gelmiş durumda.
Türkiye’deki yazılım ekosistemi, özellikle e-ticaret altyapıları ve yeni nesil girişimler (startup’lar) büyük ölçüde npm paketlerine bağımlı çalışıyor. Bu tarz isim benzerliği (typosquatting) tabanlı saldırılar, yoğun mesai harcayan bir geliştiricinin tek bir harf hatasıyla tüm şirket veritabanının dışarı sızmasına neden olabilir.
Yalnızca npm değil, Python paket dizini (PyPI) ve Google Chrome eklentilerinde de benzer veri hırsızlığı vakaları hızla artıyor. Projelerde kullanılan üçüncü taraf bağımlılıkların sadece isimlerine göre değil, kaynak kod bazında da denetlenmesi şart. Açık kaynaklı kütüphaneleri projelerinize dahil etmeden önce, paketlerin indirilme istatistiklerini ve yayınlanma tarihlerini mutlaka gözden geçirin. Kurumsal altyapılarda ise gelişmiş ağ izleme araçlarıyla dışarıya çıkan anormal DNS ve HTTPS trafiği sürekli takip edilmelidir.