Popüler açık kaynak API belgeleme aracı AsyncAPI'nin npm paketlerinde ciddi bir güvenlik ihlali tespit edildi. OX Security, SafeDep, Socket ve StepSecurity gibi siber güvenlik firmalarının ortak araştırmasına göre, @asyncapi ad alanındaki dört farklı paketin kötü niyetli sürümleri, çok aşamalı bir botnet yükleyicisi dağıtıyor. Etkilenen paketler arasında @asyncapi/[email protected], @asyncapi/[email protected], @asyncapi/[email protected] ve @asyncapi/specs'in iki sürümü (v6.11.2 ve v6.11.2-alpha.1) bulunuyor. Bu paketler, geliştiricilerin projelerinde kullandıkları temel araçlar olduğu için saldırının etkisi oldukça geniş olabilir.
Tehlikeye atılan paketler, gizlenmiş bir ilk aşama yükü barındırıyor. Bu yük, IPFS (InterPlanetary File System) üzerinden şifrelenmiş ikinci aşama yükü indiriyor. Socket tarafından Miasma olarak tanımlanan bu ikinci aşama yük, Node.js ortamında çalıştırıldığında devreye giriyor. Önceki saldırılardan farklı olarak, kötü amaçlı kod yükleme kancaları (install hooks) yerine, enfekte modül Node.js tarafından yüklendiğinde doğrudan çalışıyor. Bu, npm install --ignore-scripts gibi yaygın koruma yöntemlerini etkisiz hale getiriyor.
Saldırının teknik detayları oldukça karmaşık. İlk aşama yük, "sync.js" adlı şifrelenmiş bir JavaScript yükleyicisini işletim sistemine özgü yollara yazıp çalıştırıyor. İndirme URL'si ipfs.io/ipfs/QmQobZSp1wRPrpSEQ56qnyq7ecZh5Bg5k1fnjt4SUwwHb9 olarak tespit edildi. Bu yükleyici iki bileşen içeriyor: Miasma görevlendirme çerçevesine dönüşen şifrelenmiş nihai JavaScript yükü ve çalışma zamanının spawn-chain çerçevesi tarafından kullanılan büyük bir şifrelenmiş veri yığını. Miasma çerçevesi, 744 modül içeren ve altı farklı komuta ve kontrol (C2) iletişim kanalını destekleyen bir komut altyapısı olarak tasarlanmış. Bu kanallar HTTP, Nostr relay, IPFS, BitTorrent DHT, libp2p GossipSub P2P mesh ve bir Ethereum akıllı sözleşmesini kapsıyor.
Miasma'nın yetenekleri sadece botnet yönetimiyle sınırlı değil. Kimlik bilgisi hırsızlığı, yapay zeka araçlarının zehirlenmesi, yerel ağda yanal hareket ve npm, PyPI, Cargo kayıt defterlerinde solucan benzeri yayılma gibi özelliklere sahip. Ayrıca, kalıcılık mekanizması olarak systemd, crontab, macOS launchd ve Windows Registry otomatik başlatma anahtarları oluşturuyor. OX Security araştırmacıları, bu kötü amaçlı yazılımın daha önce görülen Shai-Hulud ve Miasma kampanyalarıyla benzerlikler taşımasına rağmen, aynı olmadığını ve Miasma/Shai-Hulud/TeamPCP gruplarına atfedilemeyeceğini belirtiyor.
Sistem Güvenliği
Saldırının en dikkat çekici yönlerinden biri, ölü adam anahtarı (dead man's switch) mekanizması. Çalınan bir token iptal edildiğinde, kötü amaçlı yazılım tüm dizini silerek büyük hasar verebiliyor. Ayrıca, kum havuzları veya sanal ortamlar, Rusça dil ayarları ve CrowdStrike, SentinelOne, Microsoft Defender, CarbonBlack, Cylance, Osquery, Tanium, Qualys gibi güvenlik araçlarını tespit ederek bu sistemlerden kaçınıyor. StepSecurity'e göre saldırgan, depolara push erişimi sağlayarak projenin meşru GitHub Actions sürüm iş akışını kullanmış ve geçerli OIDC kanıtlarıyla paketleri yayınlamış. Bu, tedarik zinciri saldırısının tipik bir CI/CD boru hattı ihlali olduğunu gösteriyor.
Microsoft, bu kampanyayı MiasmStealer ve Supychain adlarıyla takip ediyor ve saldırının modül yükleme zamanında tetiklendiğini vurguluyor. Şirket, ihlalin asyncapi/generator deposundaki yanlış yapılandırılmış bir GitHub Actions iş akışından (pull_request_target) kaynaklandığını belirtiyor. Wiz araştırmacılarına göre, bu iş akışı pull_request_target kullanarak çekme isteklerini tetikliyor ancak temel dal yerine çekme isteğinin kodunu kontrol ediyor. Bu, saldırganın kontrolündeki kodun gizli bilgilere erişmesine olanak tanıyor. Tüm kötü niyetli sürümler npm kayıt defterinden kaldırılmış olsa da, bu paketleri içe aktaran veya çalıştıran herhangi bir uç noktanın potansiyel olarak tehlikeye girdiği kabul edilmeli.
Geliştiricilerin ve güvenlik ekiplerinin bu saldırıdan çıkaracağı önemli dersler var. İlk olarak, npm paketlerini kullanırken yalnızca yükleme sonrası komut dosyalarına değil, aynı zamanda modül yükleme zamanındaki davranışlara da dikkat edilmelidir. İkinci olarak, CI/CD boru hatlarının güvenliği, özellikle pull_request_target gibi hassas iş akışlarının doğru yapılandırılması hayati önem taşır. Üçüncü olarak, tedarik zinciri güvenliği için SLSA kanıtları tek başına yeterli değildir; kaynak kod incelemeleri ve bağımlılık analizi gibi ek önlemler alınmalıdır. Son olarak, IPFS gibi merkezi olmayan depolama sistemlerinin kötü amaçlı yazılım dağıtımında kullanılabileceği unutulmamalı ve ağ trafiği bu açıdan izlenmelidir.
Kaynak: thehackernews.com