Son dönemde npm ekosisteminde tespit edilen birtakım kötü amaçlı paketler, popüler PostCSS araçlarıymış gibi görünerek Windows tabanlı uzaktan erişim truva atı (RAT) yazılımı yayıyor. Bu paketler, özellikle yazılım geliştiricileri hedef alıyor ve npm üzerinden indirilebilir durumda.
Saldırı Zincirinin Detayları
“aes-decode-runner-pro”, “postcss-minify-selector” ve “postcss-minify-selector-parser” isimli paketler, geçen ay bir kullanıcı tarafından yayınlandı ve halen erişilebilir. İlk ikisi AES şifreleme katmanları ve özel kodlayıcılar sunduğunu iddia ederken, üçüncüsü PostCSS seçici küçültücü olarak tanıtılıyor. Ancak hepsi, aslında meşru “postcss-selector-parser” paketine bağımlı görünerek güven sağlıyor.
İndirilen paketler, JavaScript tabanlı bir dropper içeriyor. Bu dropper, diske “settings.ps1” adlı bir PowerShell betiği yazıyor ve çalıştırıyor. PowerShell betiği, “curl.exe” kullanarak dış bir sunucudan ikinci aşama zararlıyı indiriyor. ZIP formatındaki bu dosyadan Visual Basic Script (“update.vbs”) çıkarılıyor ve “wscript.exe” aracılığıyla yürütülüyor. Ayrıca indirilen arşivde Python çalışma zamanı, Python yükleyicisi (“loader.py”) ve Nuitka ile derlenmiş Python genişletme modülleri (*.pyd) bulunuyor.
Visual Basic Script, sistemde Python ortamını hazırlayıp “loader.py”‘yi çalıştırıyor. Bu Python betiği, zararlının ana işlevlerini tetikliyor. RAT, hedef bilgisayardan sistem bilgisi toplama, Google Chrome’daki kimlik bilgilerini çalma, Chrome uzantılarından veri çekme, komut kabuğu komutları çalıştırma ve komut-komuta sunucusuna (C2) dosya gönderip alma gibi yeteneklere sahip. İletişim, “95.216.92[.]207:8080” adresindeki C2 sunucusuyla gerçekleştiriliyor.
Python Modülleriyle İnce İşlenmiş Kötü Amaçlı Yazılım
Zararlının işlevselliği, çeşitli Python genişletme modülleri ile sağlanıyor. Bunlar arasında konfigürasyon sabitlerini içeren “config.pyd”, HTTP tabanlı C2 iletişimini yöneten “api.pyd”, RAT’ın ana döngüsünü kontrol eden “audiodriver.pyd”, sistem profilleme, sanal makine denetimleri, dosya transferi ve kabuk komutları için “command.pyd”, Chrome kimlik bilgisi ve uzantı hırsızlığı yapan “auto.pyd” (app-bound encryption – ABE korumasını aşarak) ile arşiv işlemleri için “util.pyd” yer alıyor.
npm ve TypeScript Ekosisteminde Benzer Tehditler
Bu keşif, npm ve TypeScript ortamlarını hedef alan başka kampanyalarla aynı döneme denk geliyor. Bunlardan biri, “apintergrationpost” adlı paket; Linux için MYRA adlı gelişmiş bir RAT yayıyor. Bu zararlı, C dilinde derlenen bir rootkit kuruyor, üç farklı kalıcılık yöntemi kullanıyor, systemd servisi gibi davranıyor, dosyasız çalışma ve canlı ekran yayını özelliklerine sahip.
Bir diğer kötü amaçlı paket “@withgoogle/stitch-sdk”, Google’ın Stitch AI tasarım aracını taklit ediyor. Ancak sekiz kaynaktan geliştirici kimlik bilgilerini çalıyor; Claude Code, git konfigürasyonu, SSH anahtarları, GitHub CLI, npm ayarları gibi. Çalınan veriler, “stitch-production[.]org/api/v1” adresine sızdırılıyor.
Ayrıca “procwire”, “routecraft”, “endpointmap”, “bytecraft” ve “staticlayer” isimli beş paket, Windows makinelerde dropper ikili dosyası indirip çalıştırıyor. “routecraft” bağımlılığı “procwire” ile başlıyor ve zincir devam ediyor. “staticlayer” ise sunucu tarafında çalışarak dropper’ın User-Agent bilgisini taşıyan istemcilere dosya teslim ediyor.
Siber Güvenlik Uzmanları İçin Pratik Öneriler
Bu paketlerden herhangi biri sisteminizde varsa derhal kaldırılması, oluşturdukları tüm dosyaların temizlenmesi ve etkilenen geliştirici makinelerde kimlik bilgileri değiştirilmelidir. Ayrıca npm ve TypeScript projelerinde kullanılan bağımlılıkların detaylı incelenmesi, şüpheli paketlerin tespiti için önem taşıyor.
Komut kontrol sunucularıyla (C2) gerçekleşen iletişim, özellikle blockchain altyapısına dayalı ikinci aşama komutları ve karmaşık gizleme teknikleri, tespit ve müdahaleyi zorlaştırıyor. Örneğin, bazı saldırı kampanyalarında Tron blok zinciri kullanılarak zararlı komutlar şifrelenip dağıtılıyor.
Kapsamlı Bir Saldırı Zinciri
Analiz edilen vakada, saldırı zinciri basit bir npm paketiyle başlıyor, ardından diske PowerShell ve Visual Basic betikleri yazılıyor. Bunlar Python ortamını kuruyor ve RAT’ın ana modüllerini aktive ediyor. Sonrasında veri sızıntısı, kimlik bilgisi hırsızlığı ve komut yürütme gibi karmaşık eylemler gerçekleşiyor. Bu tür çok aşamalı saldırılar, özellikle yazılım geliştirme ortamlarında tespit edilmesi zor oluyor.
Teknik Özet
- Kötü amaçlı paketler: “aes-decode-runner-pro”, “postcss-minify-selector”, “postcss-minify-selector-parser”
- Zararlı yazılım tipi: Windows RAT (uzaktan erişim truva atı)
- Saldırı zinciri: npm paketi → JavaScript dropper → PowerShell betiği → Visual Basic Script → Python modülleri
- C2 iletişimi: “95.216.92[.]207:8080” ve blockchain tabanlı komutlar
- Hedefler: Yazılım geliştiriciler, npm ve TypeScript kullanıcıları
- Kullanılan teknikler: app-bound encryption (ABE) atlatma, dosyasız yürütme, rootkit kurulumu (Linux için MYRA kampanyasında)
Saldırı Tespiti ve Korunma Yöntemleri
Siber güvenlik ekiplerine yönelik bazı öneriler şöyle:
- npm paket bağımlılıklarını düzenli olarak gözden geçirin ve şüpheli paketleri engelleyin.
- EDR ve SIEM çözümleri ile PowerShell ve Visual Basic Script aktivitelerini yakından takip edin.
- Chrome ve diğer tarayıcıların kimlik bilgilerine erişim izni veren uygulamalara karşı denetimleri sıkılaştırın.
- Ağ segmentasyonu ve Zero Trust politikaları ile dış kaynaklı C2 iletişimlerini sınırlandırın.
- Geliştirici makinelerinde kimlik bilgisi yönetimi (IAM) ve çok faktörlü kimlik doğrulamayı (MFA) zorunlu kılın.
- Olay müdahale (incident response) planlarını, npm kaynaklı tehditlere karşı hazırlıklı hale getirin.
Bu gelişmeler, yazılım tedarik zincirinde artan karmaşıklığı ve tehdidin çok katmanlı doğasını gösteriyor. Örneğin, Kuzey Kore kaynaklı PolinRider kampanyası gibi operasyonlarda, zararlılar yapılandırma dosyalarına gizlice JavaScript enjekte ederek yeni saldırı vektörleri yaratıyor. Bu tür tehditler, özellikle açık kaynak bağımlılıklarının dikkatle kontrol edilmesinin önemini bir kez daha ortaya koyuyor.
