forge-jsxy npm Infostealer: IOC'ler ve Tespit Kılavuzu

forge-jsxy: Adını Sürekli Değiştiren npm Bilgi Hırsızı

TL; DR

Yaklaşık olarak iki ayTek bir npm bilgi hırsızı, neredeyse hiç değişmemiş bir içerikle birlikte, değişen bir dizi paket adı altında yeniden ortaya çıktı. Başlangıçta açıkça şu şekildeydi: forge-jsxy, ortaya çıktı forge-jsx3 / forge-jsx4 kardeşler, daha sonra geliştirici altyapısı gibi görünmek için "forge" markasını tamamen bıraktılar - ilk olarak zredis-typedve en yakın zamanda pinokio-redis.

Her varyant şunları taşır: aynı dahili araç zinciri: adlandırılmış dosyalar forge-jsx-explorer-*, relayPackageServe bir hizmet veren modül forge-jsxy-package.tgzAyrıca, npm paketinin silinmesi durumunda bile çalışmaya devam etmesi için noktalı bir dizin altında gizlenmiş dayanıklı bir çalışma ortamı da mevcuttur.

Veri yükü şu şekilde okunuyor: kripto para cüzdanı malzemesi ve sunucudan geliştirici kimlik bilgilerini alır ve bunları Discord web sunucusuna iletir.hooksHuggingFace Hub yüklemeleri ve sabit kodlu bir C2 uç noktası içerir. İşletim sistemi düzeyinde otomatik başlatma özelliği yükleyerek yeniden başlatmanın ardından tekrar çalışmasını sağlar ve pano, klavye ve ekran etkinliklerini yakalar. En son sürüm, pinokio-redisKendisini "Autodesk Forge" entegrasyonu olarak tanımlıyor; bu açıklama kodun ne yaptığıyla ilgili değil.

Ekosistemnpm
Yük sınıfıçok aşamalı bilgi hırsızı + uzaktan kumanda ajanı (RAT)
Birincil hedeflerkripto cüzdanları, tarayıcı cüzdan uzantıları, geliştirici/bulut kimlik bilgileri
SebatGizli, kalıcı çalışma zamanı + işletim sistemi otomatik başlatma (paket kaldırıldıktan sonra da çalışmaya devam eder)
dumpinganlaşmazlık ağıhooks + röle, HuggingFace Hub, 9877 numaralı portta sabit kodlu C2
Gözlemlenen aralıkMayıs 2026 – Temmuz 2026 (devam ediyor)
En son isimpinokio-redis:1.0.127

Saldırı Anatomisi

Bu ailenin her bir varyantı aynı şekilde, yani paket şeklinde monte edilir. Listeleme sayfasında etkisiz gibi görünen ancak kurulum sonrası bir kanca tanımlayan bir şey, yani Yük, paket bağımlılık olarak yüklendiği anda çalışır. Kanca, beş aşamalı bir zinciri çalıştırır.

  • Aşama 1 — somutlaşma. Kurulum betiği, paketlenmiş ve kodlanmış bir dosyayı çözüyor. Blob verilerini bir dizi çalışma zamanı betiğine dönüştürür ve bunları platform yapılandırma konumunun altındaki gizli bir dizine yazar (forge-jsxy sürümleri noktalı .forge-jsxy/runtime/v kullanıyordu). / yolu). Bu kopya node_modules dışında bulunduğundan, npm paketini kaldırmak veya yayınlamayı durdurmak çalışan aracıyı kaldırmaz.
  • 2. Aşama — devam edin. Bu zincir, işletim sistemi otomatik başlatma girişi kaydeder, böylece aracı yeniden başlatmada tekrar çalışır. Windows'ta bu, gizli bir PowerShell tanılama betiği aracılığıyla çalışır; aracı işlemi, konsol penceresi görünmemesi için windowsHide ayarı ile ayrılmış olarak başlatılır.
  • 3. Aşama — kaçınma. Çalışma zamanı, sürekli entegrasyon işaretlerini kontrol eder ve bir CI ortamı algıladığında sessizce çıkar, böylece otomatik derleme sanal ortamları hiçbir şey görmez. forge-jsxy sürümlerinde, bir kaynak yorumunda, görünür bir forgeInstall alanının package.json dosyasından kasıtlı olarak çıkarıldığı belirtilmişti, "çünkü bu alan npm'de görünür olacaktı" — operatör, tetikleyici meta verilerini kasıtlı olarak genel listeden uzak tutmuştu.
  • 4. Aşama — toplama. Çalıştırıldıktan sonra, ajan tek seferde hasat işlemini gerçekleştirir:
  1. Kripto cüzdan malzemesi. Paket halinde bulunan secret_filename_patterns.json hedef listesi, wallet.dat, *.mnemonic dosyaları için dosya sistemi taraması gerçekleştirir..seed / *.phrase dosyaları, keypair.json, Ethereum UTC– Paket içerisinde anahtar depoları ve *.p12 / *.pfx / *.jks anahtar depoları bulunmaktadır. Cüzdan türetme kütüphaneleri (bip39, secp256k1, base58check ve Solana yardımcıları) de mevcuttur.
  2. Tarayıcı cüzdan uzantıları. ChromiumExtensionDbHarvest modülü, tarayıcı tabanlı cüzdan eklentilerinin kasa verilerini sakladığı yer olan Chromium tarayıcılarının yerel uzantı depolama veritabanlarını okur.
  3. Kimlik bilgileri ve sırlar. Aracı, shell geçmişini ve gizli bilgiler içeren dosyaları tarar, geliştirici/bulut kimlik bilgilerini okur ve ardından yükleme için HuggingFace kimlik bilgilerini kodlar.
  4. Canlı giriş. Pano içeriği, klavye girişi ve ekran görüntüleri sürekli olarak kaydedilir.
  • Aşama 5 — sızdırmaToplanan veriler, üç farklı yoldan ana bilgisayardan ayrılır. Paralel olarak çalışan kanallar: Discord webhooks (discordWebhookPost) ve Discord ile iletişim kuran bir dosya yükleyici.discord.com/api/v10` (discordRelayUpload), HuggingFace Hub yüklemeleri (hfUpload) ve bir Sabit kodlanmış C2 uç noktasına 9877 portu üzerinden ulaşıldı. Bir relayPackageServe Bu modül ayrıca forge-jsxy-package.tgz dosyasını da geri gönderir — aynı şekilde. Her yeniden adlandırmada eser adı aynı kalır.

Önemli yapısal nokta, 1-3. aşamaların kurulum sırasında çalıştırılmasıdır. Kullanıcı etkileşimi yok ve 1. aşama, yükü paketin bir yerine yerleştiriyor. Yönetici takip etmiyor. Garip bir bağımlılığı fark eden bir geliştirici ve `npm uninstall` komutu listeyi kaldırır ancak aracıyı kaldırmaz.

Veri yükü ayrıca hızlı okumaya da direnç gösterir. Çalışma zamanı komut dosyaları gönderilmez. Açıkça belirtmek gerekirse: bir kodlama-dağıtım adımı, operasyonel mantığı şu şekilde korur: Yalnızca kurulum zinciri tamamlandıktan sonra okunabilir komut dosyalarına dönüşen kodlanmış veri bloğu. Bunu gizli çalışma zamanı dizinine çözüyor. Görünür dosyalar Listede yer alan ince montaj sonrası şim ve bir dist-malzemeleştirme Yardımcı — nihayetinde neyin çalıştığı hakkında çok az bilgi verir. Bu şifrelenmiş teslimat Tasarımın, aile yaşamı boyunca acil durum müdahalesi üzerinde ölçülebilir bir etkisi olmuştur: Birden fazla doğrulanmış varyant, otomatik sınıflandırma ile güvenli olarak değerlendirildi. ve veri paketi, otomatik incelemeyi tamamen durduracak kadar şeffaf değildi. Aileyi ele veren davranışlar ancak kodlandıktan sonra görünür hale gelir. Aşama genişletilir ve çalışma zamanı doğrudan okunur.

Tarihçesi

Ailenin taşıdığı yük oldukça istikrarlı kaldı; değişen şey ise... Kutunun üzerindeki isim. Kavis, açık "dövme" markalamasından başlayarak şu yöne doğru uzanır. İlgisiz geliştirici araçları gibi gizlenirler.

Tarih (2026)Paket: sürümnot
Mayıs (erken)forge-jsxy:1.0.81, :1.0.90En erken onaylanmış varyantlar — AES-256-GCM şifrelemeli C2'ye sahip RAT
Mayıs 19forge-jsxy:1.0.92 / 1.0.105 / 1.0.107 / 1.0.108Kampanya aktif olarak yayınlanıyor; 1.0.92 sürümü başlangıçta yanlışlıkla güvenli olarak etiketlenmişti ve kodun yeniden incelenmesiyle bu durum düzeltildi.
Mayıs Sonuforge-jsx3 / forge-jsx4:1.0.122 / 1.0.123, zod-pinoAynı araç zincirine sahip kardeş paket adları
Haziran 4forge-jsxy:1.0.120Devam; makine öğrenimi modeli tarafından güvenli olarak sınıflandırıldı (kaçırma)
21-23 Haziranforge-jsxy:1.0.121Modül seti 1.0.120 sürümünden beri değişmeden kaldı.
Temmuz 6zredis-typed:1.0.127"Forge" kelimesi isimden çıkarıldı; yine de sevkiyatlar devam ediyor. forge-jsxy-package.tgz hem de forgeAgent* yapılandırma anahtarları
Temmuz 7pinokio-redis:1.0.127Aynı araç zinciri; yeni C2; kendisini "Autodesk Forge" entegrasyonu olarak tanımlıyor.

Zaman çizelgesinde iki şey dikkat çekiyor. Birincisi, 1.0.127 sürüm numarası hem zredis-typed hem de pinokio-redis tarafından aynen yeniden kullanılıyor; isimlendirme değişiyor ancak derleme soy ağacı sıfırlanmıyor. İkincisi, "forge-*" isimlerinden uzaklaşma, sıradan altyapı (redis, pinokio) olarak okunan isimlere doğru bir geçişle aynı zamana denk geliyor ve bu da geliştiricinin ismi hızlıca okuyup tereddüt etme olasılığını azaltıyor.

Uzlaşma Göstergeleri

Aşağıdaki IOC'ler etkisiz hale getirilmiştir. C2 sunucusu forge-jsxy hattı arasında döndürüldü. ve aynı bağlantı noktasını koruyarak en yeni sürümü.

GöstergeÖzellikGörülen
C2 uç noktası212.193.3[.]61:9877pinokio-redis:1.0.127
C2 uç noktası79.108.162[.]160:9877forge-jsxy satırı, zredis-typed:1.0.127
Çıkış kanalıdiscord.com/api/webhooks/… (webhook gönderisi)tüm varyantlar
Çıkış kanalıdiscord.com/api/v10 (aktarma yüklemesi)tüm varyantlar
Çıkış kanalıHuggingFace Hub yüklemesitüm varyantlar
Sunulan eserforge-jsxy-package.tgz (VIA relayPackageServe)tüm varyantlar
Araç zinciri dosyalarıchromiumExtensionDbHarvest, discordRelayUpload, discordWebhookPost, hfUpload, encode-hf-credentials, forge-jsx-explorer-*tüm varyantlar
Hedef listesisecret_filename_patterns.json (wallet.dat, .mnemonic/.seed/.phrase, keypair.json, UTC--, .p12/.pfx/*.jks)tüm varyantlar
Gizli çalışma zamanınoktalı …/.forge-jsxy/runtime/v<version>/ yapılandırma dizini yoluforge-jsxy satırı
Windows kalıcılığıgizli PowerShell "forge diagnostics" otomatik başlatma betiğitüm varyantlar
Tetikleyiciyi yüklepostinstall kancası, bir dist-materialization komut dosyası zincirini çağırıyor.tüm varyantlar

En kalıcı tespit sinyali tek bir sunucu veya web kancası değil, şunlardan kaynaklanır: döndürme — ancak araç zinciri dosya adları ve forge-jsxy-package.tgz Her isim değişikliğinde kelimesi kelimesine korunmuş olan eserler.

Atıf ve Gözlemlenen Davranış

Paketler birden fazla npm hesabı altında yayınlandı. forge-jsxy Bu satırda jacksonkaandorp2 (jacksonkaandorp2@outlook[.]com) adlı yayıncı kullanılmıştır; Pinokio-Redis varyantının en son sürümü Donimique tarafından yayınlandı. (donimiqueakers@gmail[.]com). Her iki hesapta da doğrulanmış bir e-posta adresi bulunmuyordu. Bağlantılı kaynak deposu. Hesaplar arasındaki ortak nokta şudur: Yayıncı kimliği değil, araç zinciri — aynı modül adları, aynı .tgz formatında sunulan dosyalarda, kimin yayınladığına bakılmaksızın aynı veri sızdırma tasarımı tekrarlanıyor.

Gözlemlenebilir çeşitli davranışlar, kasıtlı gizlemeden ziyade kasıtlı gizlemeye işaret etmektedir. yanlışlıkla fazla tahsilat:

Çalışma ortamı, node_modules'ın dışında gizli bir dizine yerleştirilir, bu nedenle onu sağlayan paketten daha uzun süre varlığını sürdürür.

Ajan, bir CI ortamı tespit ettiğinde devre dışı kalır ve böylece otomatik analiz sanal ortamlarında maruz kalmayı sınırlar.

Ajan süreci bağımsız olarak başlatılır ve pencere-gizli.İçinde Forge-jsxy sürümlerinde, görünür bir kurulum alanının eksikliği, bu alanın "npm'de görünür" olmasıyla ilişkilendirildi.

Herkese açık paket açıklamaları kodla ilgili değildir; pinokio-redis, "Autodesk Forge" entegrasyonu olarak görünmektedir.

Savunmacılar için dikkate değer bir tekrar eden tespit açığı bulunmaktadır. Otomatik sınıflandırma: Bu ailede birden fazla doğrulanmış varyant mevcuttu. Kod incelemesi düzeltmeden önce bir makine öğrenimi sınıflandırıcısı tarafından güvenli olarak puanlandı. Karar. Bir değerlendiricinin dayanak noktası olarak kullanabileceği istikrarlı unsurlar — kurulum süresi zincir, gizli çalışma zamanı, araç zinciri dosya adları — tam olarak bunlar. İsim değişikliklerinden sonra da varlığını sürdürenler.

Yukarıdakileri gözlemlenen davranış olarak tanımlıyoruz. Bunu herhangi bir şeye bağlamıyoruz. Kampanyayı herhangi bir isimli aktöre yönelik olarak düzenlemiyoruz ve operatörün kimliği hakkında herhangi bir iddiada bulunmuyoruz. Kod ve altyapının gösterdiğinin ötesinde kimlik veya hedefler.

Etki, Trendler ve Savunmacı Rehberi

Kimler risk altında? Bu koleksiyon seti doğrudan geliştiricileri hedefliyor. makineler: kripto para cüzdanları ve anahtar depoları, tarayıcı cüzdan uzantıları, Kabuk geçmişi ve bulut/hizmet kimlik bilgileri. Herhangi bir yazılımı yükleyen herkes. etkilenen paket — doğrudan veya dolaylı olarak geçişli bağımlılık — sırasında Canlı yayının yapıldığı pencere kapsam dahilindedir ve kalıcılık tasarımı şu anlama gelir: Paket çıkarıldığında maruz kalma sona ermez.

Azmin önemi neden kaynaklanıyor? Çünkü 1. aşama yükü bir yere kopyalar. gizli çalışma zamanı dizini ve aşama 2 kayıtları otomatik başlatmayı kaydeder, her zamanki gibi. düzeltme içgüdüsü (kötü bağımlılığı kaldır, node_modules'ı sil, (Yeniden yükleme) ajanı devre dışı bırakmaz. Olay müdahale ekibi şunları aramalıdır: Paketin kendisi değil, ağaç dışı çalışma zamanı ve otomatik başlatma girdisi.

Eğilim. Bu aile, dikkat edilmesi gereken bir örüntüyü örnekliyor: İstikrarlı ve olgun bir yük, tek kullanımlık malzemelerden oluşan bir akışla sarılmış.Önceki bir kaldırma işlemiyle oluşturulan herhangi bir addan farklı bir ada taşınan paket adları Tanınabilir, sıradan altyapı olarak algılanan isimlere doğru. İsim tabanlı Bu durum karşısında kara listeler ve yayıncı itibarı hızla geçerliliğini yitiriyor; davranış- ve yapay sinyaller ise böyle değildir.

Geliştiriciler ve tüketiciler için

Kurulum sırasında çalışan komut dosyalarını birincil risk alanı olarak değerlendirin. Mümkün olduğunca komut dosyaları devre dışı bırakılarak kurulum yapın ve bir bağımlılık bildiren her şeyi gözden geçirin. kurulum sonrası. Dolaylı bağımlılıkları belirleyin ve doğrulayın; bu tür kötü amaçlı yazılımlar, doğrudan bir bağımlılık yoluyla olduğu kadar alt bağımlılık yoluyla da kolayca bulaşabilir.

Şüpheli sunucuda, paketin ötesine bakın: platform yapılandırma konumunda gizli bir çalışma zamanı dizini, beklenmedik bir otomatik başlatma girdisi arayın, ve Discord webhook veya :9877 uç noktalarına giden bağlantılar.

Etkilenen sunucuda maruz kalma süresi boyunca bulunan herhangi bir cüzdan kurtarma ifadesinin, anahtar deposunun veya kimlik bilgisinin tehlikeye girdiğini varsayın ve sunucuyu değiştirin.

Siciller ve savunucular için

Kalıcı dosyalarla ilgili uyarı (forge-jsxy-package.tgz, forge-jsx-explorer-* / chromiumExtensionDbHarvest / discordRelayUpload) Paket adı yerine dosya adları kullanılır; paket adı değişir.

Ailenin dayandığı yapısal kombinasyonu işaretleyin — komut dosyalarını gizli bir yapılandırma dizini yoluna yerleştiren bir kurulum sonrası işlemi ve bir işletim sistemi. Otomatik başlatma kaydı — ilgili belirli dizelerden bağımsızdır.

Paketin üzerindeki isim en az dört kez değişti; içindeki sandık da aynı şekilde. Öyle olmadı. Kodun yaptığı işe dayalı tespit yöntemleri her şeyden daha uzun süre varlığını sürdürdü. Şimdiye kadarki yeniden etiketleme.

sca-tools-software-composition-analysis-tools
Yazılım risklerinizi önceliklendirin, giderin ve güvence altına alın.
Ücretsiz hesabınızı alın.
Hiçbir kredi kartı gerekmektedir.

Yazılım Geliştirme ve Teslimatınızı Güvence Altına Alın

Xygeni Ürün Paketi ile