AsyncAPI ad alanındaki dört npm paketinin tehlikeye atıldığı ve çok aşamalı bir botnet yükleyicisi dağıttığı tespit edildi. OX Security, SafeDep, Socket ve StepSecurity gibi güvenlik firmalarının ortak analizine göre, @asyncapi/generator-helpers, @asyncapi/generator-components, @asyncapi/generator ve @asyncapi/specs paketlerinin belirli sürümleri kötü amaçlı kod içeriyor. Bu paketler, özellikle Node.js geliştiricileri tarafından yaygın olarak kullanılan AsyncAPI araçları olduğu için saldırının etkisi geniş olabilir.
Socket tarafından yapılan açıklamaya göre, ele geçirilen paketler, IPFS üzerinden şifrelenmiş ikinci aşama yükü indiren ve Miasma olarak adlandırılan bir ilk aşama yük barındırıyor. Kötü amaçlı kod, önceki saldırılardan farklı olarak kurulum kancaları (install hooks) yerine, modül Node.js tarafından yüklendiğinde tetikleniyor. Bu sayede, npm install sırasında değil, geliştirici veya CI sürecinde modül require edildiğinde çalışıyor. Bu da tespiti zorlaştıran önemli bir detay.
İkinci aşama yük, 'sync.js' adlı şifrelenmiş bir JavaScript yükleyicisi olarak işletim sistemine özgü yollara yazılıyor ve çalıştırılıyor. Yükleyici, IPFS üzerinden indirilen bir URL kullanıyor: ipfs.io/ipfs/QmQobZSp1wRPrpSEQ56qnyq7ecZh5Bg5k1fnjt4SUwwHb9. Bu yükleyici iki bileşen içeriyor: Miasma görev çerçevesine dönüşen şifrelenmiş son JavaScript yükü ve spawn-chain framework tarafından kullanılan büyük bir şifrelenmiş blob. Miasma çerçevesi, 744 modül barındıran ve altı farklı komuta ve kontrol (C2) kanalını destekleyen bir komut çerçevesi olarak çalışıyor.
Nasıl Önlem Alınmalı?
Miasma botneti, HTTP, Nostr relay, IPFS, BitTorrent DHT, libp2p GossipSub P2P mesh ve Ethereum akıllı sözleşmesi gibi çeşitli C2 kanallarını kullanabiliyor. Bu çeşitlilik, tespit ve müdahaleyi zorlaştırıyor. Ayrıca, kimlik bilgisi hırsızlığı, AI araç zehirleme, LAN'da yanal hareket ve npm, PyPI ile Cargo kayıtlarında solucan benzeri yayılma yeteneklerine sahip. Kalıcılık mekanizması olarak systemd, crontab, macOS launchd ve Windows Registry otomatik başlatma anahtarlarını kullanıyor.
Sistem Güvenliği
OX Security'den Moshe Siman Tov Bustan, bu kötü amaçlı yazılımın önceki Shai-Hulud ve Miasma kampanyalarıyla bazı benzerlikler taşımasına rağmen aynı olmadığını belirtiyor. Ayrıca, yazılımda bir 'ölü adam anahtarı' (dead man's switch) bulunuyor: çalınan bir token iptal edilirse dizin silme işlemi tetikleniyor. Sandbox veya sanal ortamlar, Rusça dil ayarlı sistemler ve CrowdStrike, SentinelOne, Microsoft Defender, CarbonBlack, Cylance, Osquery, Tanium ile Qualys gibi güvenlik araçlarının yüklü olduğu sistemler atlanıyor.
StepSecurity'e göre, saldırgan depolara push erişimi elde etmiş ve projenin kendi GitHub Actions release pipeline'ını kullanarak geçerli OIDC kanıtlı paketler yayımlamış. Bu, bir tedarik zinciri saldırısı olup npm token çalma veya kötü niyetli bakımcılar içermiyor. Güvenlik araştırmacısı Rohan Prabhu, her iki saldırının da CI/CD pipeline ihlali olduğunu vurguluyor. Saldırgan, yer tutucu bir git kimliği altında commit'ler itmiş ve her deponun gerçek release workflow'unun npm'in GitHub OIDC güvenilir yayıncı entegrasyonu aracılığıyla yayın yapmasına izin vermiş. Bu nedenle, SLSA kanıtları yalnızca projenin yetkili workflow'unun paketleri ürettiğini kanıtlıyor, tetikleyici commit'lerin meşru olduğunu değil.
Beş kötü amaçlı sürüm npm kaydından kaldırıldı. Etkilenen paket sürümlerini içe aktaran veya çalıştıran tüm uç noktalar potansiyel olarak ele geçirilmiş olarak kabul edilmeli. Ancak, maruziyet, enfekte modülün bir derleme veya geliştirici iş akışı sırasında yüklenip yüklenmediğine bağlı. StepSecurity, hiçbir package.json dosyasında preinstall/postinstall/install betiği olmadığını, bu nedenle dropper'ın yalnızca modül require() edildiğinde, yani normal kullanım sırasında tetiklendiğini belirtiyor. Bu, geliştiricilerin projelerini güncelleyerek ve güvenlik açıklarını gidererek önlem almaları gerektiği anlamına geliyor.
Kaynak: thehackernews.com