AsyncAPI ad alanındaki dört npm paketinin, çok aşamalı bir botnet yükleyicisi dağıttığı tespit edildi. OX Security, SafeDep, Socket ve StepSecurity gibi güvenlik firmalarının ortak araştırmasına göre, @asyncapi/generator-helpers (sürüm 1.1.1), @asyncapi/generator-components (0.7.1), @asyncapi/generator (3.3.1) ve @asyncapi/specs (6.11.2 ve 6.11.2-alpha.1) paketleri ele geçirildi. Bu paketler, Node.js projelerinde yaygın olarak kullanıldığı için saldırı geniş bir etki alanına sahip.
Socket'un raporuna göre, ele geçirilen paketler, IPFS üzerinden şifrelenmiş ikinci aşama yükü indiren, gizlenmiş bir ilk aşama yük taşıyor. Bu ikinci aşama yük, 'Miasma' olarak adlandırılan bir görev çerçevesi içeriyor. Önceki saldırılardan farklı olarak, kötü amaçlı kod, npm yükleme kancaları yerine modül Node.js tarafından yüklendiğinde çalışıyor. Bu, 'npm install --ignore-scripts' gibi yaygın önlemleri etkisiz kılıyor.
İkinci aşama yük, 'sync.js' adlı şifrelenmiş bir JavaScript yükleyicisi. Bu yükleyici, işletim sistemine özgü yollara yazılıp çalıştırılıyor. İndirme URL'si 'ipfs.io/ipfs/QmQobZSp1wRPrpSEQ56qnyq7ecZh5Bg5k1fnjt4SUwwHb9' olarak belirlendi. Yükleyici iki bileşen içeriyor: Miasma görev çerçevesine dönüşen şifrelenmiş son JavaScript yükü ve çalışma zamanı spawn-chain çerçevesi tarafından kullanılan büyük bir şifrelenmiş blob.
Gelecekte Ne Bekleniyor?
Miasma çerçevesi, 744 modül barındırıyor ve HTTP, Nostr relay, IPFS, BitTorrent DHT, libp2p GossipSub P2P mesh ve Ethereum akıllı sözleşmesi olmak üzere altı bağımsız komuta ve kontrol (C2) kanalını destekliyor. Kimlik bilgisi hırsızlığı, AI araç zehirlenmesi, LAN yanal hareket ve npm, PyPI ile Cargo kayıtlarında solucan benzeri yayılma gibi yeteneklere sahip. Ayrıca, systemd, crontab, macOS launchd ve Windows Registry otomatik başlatma anahtarları ile kalıcılık mekanizması kuruyor.
Uzmanların Görüşleri
OX Security'den Moshe Siman Tov Bustan, bu kötü amaçlı yazılımın geçmişteki Shai-Hulud ve Miasma kampanyalarıyla benzerlikler taşımasına rağmen aynı olmadığını belirtti. 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. Saldırı, Rusça dil ayarına sahip sistemlerden ve CrowdStrike, SentinelOne, Microsoft Defender, CarbonBlack, Cylance, Osquery, Tanium, Qualys gibi güvenlik araçlarının yüklü olduğu ortamlardan kaçınıyor.
StepSecurity'e göre, saldırgan, depolara push erişimi elde etmiş ve projenin meşru GitHub Actions release pipeline'ını kullanarak geçerli OIDC kanıtlama (attestation) ile paketleri yayınlamış. Bu, bir CI/CD boru hattı ihlali olup, npm token hırsızlığı veya kötü niyetli bakımcılar içermiyor. Saldırgan, sahte bir git kimliği kullanarak commit'ler itmiş ve gerçek release iş akışının npm'in GitHub OIDC güvenilir yayıncı entegrasyonu üzerinden yayın yapmasına izin vermiş. Sonuçta, SLSA kanıtlamaları meşru olsa da, tetikleyen commit'lerin meşruiyetini garanti etmiyor.
Microsoft, bu kampanyayı MiasmStealer ve Supychain adlarıyla takip ediyor. Araştırmacılar, saldırının 'asyncapi/generator' deposundaki yanlış yapılandırılmış bir GitHub Actions iş akışından ('pull_request_target') kaynaklandığını belirtti. Bu iş akışı, pull request'leri tetiklemek için pull_request_target kullanıyor ancak temel dal yerine pull request'in kodunu checkout ediyor. Bu, pull_request_target'in temel depo bağlamında ve sırlara tam erişimle çalışması nedeniyle tehlikeli. Saldırgan, pull request'te kontrol ettiği kodu checkout edip çalıştırarak sırlara erişmiş.
Teknik Analiz
Tüm kötü amaçlı sürümler npm kayıt defterinden kaldırıldı. Etkilenen paketleri içe aktaran veya çalıştıran herhangi bir uç noktanın potansiyel olarak tehlikeye atıldığı kabul edilmelidir. Güvenlik uzmanları, geliştiricilere projelerinde kullandıkları bağımlılıkları güncellemelerini ve CI/CD boru hatlarını sıkılaştırmalarını öneriyor. Özellikle, pull_request_target kullanımından kaçınılmalı ve iş akışlarında güvenli kod checkout yöntemleri tercih edilmelidir.
Kaynak: thehackernews.com