JulesJacker: Sahte npm Solucanı Jules Yapay Zekasını Taklit Ediyor

JulesJacker: Google'ın Jules Agent'ını taklit eden ve onu analiz eden sanal ortamı etkinleştiren sahte bir npm solucanı.

TL; DR

Tek bir npm operatörü, altı hafta boyunca aşağıdakiler gibi sahte TypeScript "yardımcı" paketleri yayınladı: ts-form-utils, ts-project-lint, ve ts-enum-helper.

Paketler küçük, meşru görünümlü doğrulama yardımcıları sunarken, gerçek zararlı yazılım kurulum veya ilk gereksinim sırasında çalışır ve sunucu parmak izi alma, GitHub organizasyon keşfi, depo klonlama ve kaynak kod sızdırma işlemlerini gerçekleştirir.

Bu kötü amaçlı yazılım, özellikle birden fazla GitHub kuruluşunu hedef alıyor; bunlar arasında birçok kuruluş da bulunuyor. Shopify Depoları, ardından arşivleri ve erişilebilir kaynak ağaçlarını merkezi bir toplama uç noktasına aktarır.

Uzlaşma iş akışının bir parçası olarak, yük commitGoogle'ın özerk kodlama kimliğini taklit ederek sa dosyasını kurban depolarına geri gönderiyor. google-labs-jules[bot].

Kampanyayı takip ettik — adı da buydu. JulesJacker — birden fazla yayıncı kapsamı ve şifrelenmiş ve sanal alan farkındalıklı varyantlar da dahil olmak üzere en az beş yük nesli genelinde.

En yeni varyant özellikle kötü amaçlı yazılım analiz altyapısını hedef alıyor: yalnızca analiz ortamlarında etkinleşiyor, bulut meta veri hizmet hesabı belirteçlerini çalıyor ve Kubernetes kontrol düzlemlerini ve bulut depolama kovalarını inceliyor.

Tüm yük nesillerinde ortak olan birincil gösterge, veri toplama uç noktasıdır. aaronstack[.]com/jules-collect.

Ciddiyet: kritik.

Saldırı: Nasıl Çalışıyor?

Her JulesJacker paketi aynı şablonu izler. paket.json MIT lisansına sahip ve bağlantılı kaynak kod deposu bulunmayan, zararsız bir TypeScript yardımcı programının reklamını yapıyor. index.js Bu paket, geliştiricinin paketi gerçekten içe aktardığında makul bir davranış görebilmesi için birkaç gerçek, çalışan işlevi (e-posta düzenli ifadeleri, enum haritaları, lint kural tabloları) dışa aktarır. Kötü niyet başka yerdedir: kurulum sonrası kancada veya alt kısımdaki bir blokta index.js Bu, modülün gerekli olduğu anda çalıştırılan koddur.

Veri yükleri, açıkça numaralandırılmış dahili aşamalardan geçmiştir (operatör kendi telemetri olaylarını etiketler). sc1-, sc3-, sc4-(ve benzeri), ve bu evrimi izlemek, kampanyayı anlamanın en net yoludur.

 1-2. Nesil: keşif ve git-config hırsızlığı

En eski paketler doğrudan bilgi hırsızlığı yapan paketlerdi. Kurulum sırasında ortam değişkenlerini, GitHub CLI hosts dosyasını ve genel git yapılandırmasını (git yapılandırma –genel –liste, git uzak -vArdından, paketi koleksiyon uç noktasına POST etti. Bu, operatörün imzasını oluşturdu: "TypeScript form doğrulama yardımcı programları" kılıfı, tek bir etki alanına yönelik giden bir sinyal ve tüketici verilerinden ziyade geliştirici kimlik bilgilerine olan ilgi.

3. Nesil: hipervizör ve çekirdek kaçış probları

Kampanyanın ortasındaki bir versiyon, altyapı saldırılarına sert bir şekilde yöneldi. Yapılandırma dosyalarını çalmak yerine, keşif amaçlı bir donanım çalıştırarak yoklama yaptı. AF_VSOCK soketler, virtio MMIO bölgeleri, / dev / memve çekirdek güçlendirme bayrakları ve hatta sysrq tarafından tetiklenen çekirdek çökmeleri girişimleri — sanal makineden veya konteynerden çıkma girişimleriyle ilişkili davranışlar. Telemetri etiketleri (s0-vmm-recon, s1-vmm-vsock-fuzz, s2-vmm-mmio, s3-çekirdek-probBu varyant, niyeti açıkça ortaya koydu. Bu varyant açıkça şuna yönelikti: bulut-kum havuzu ve sunucusuz-çalıştırıcı ortamları — güvenilmeyen kodları derleyen ve test eden, geçici nitelikteki sanal makineler.

3. Nesil (SC3): Depolar arası yazma solucanı

Kampanyanın ağırlık merkezi, kendi kendini çoğaltan bir veri hırsızlığı mekanizması haline geldi. Kurulum sırasında, zararlı yazılım beş aşamalı zamanlanmış bir dizi işlem gerçekleştirir:

  • Sahne 0 (~100 ms): Ana bilgisayarın parmak izini alın — ana bilgisayar adı, kullanıcı bilgileri, git kimliği.
  • Sahne 1 (~3 s): Mağdurun hangi kuruluşa mensup olduğunu inceleme yoluyla belirleyin. git uzak -vdaha sonra sabit kodlanmış bir değere bakın. ORG_CONFIG tablo ve test deposuna erişim ile git ls-remote — saldırgan tarafından kontrol edilen bir SSRF proxy'si üzerinden yönlendirildi http://git@192.168.0.1:8080.
  • Sahne 2 (~10 s): git klonu Hedef listedeki erişilebilir her depoyu tarball ve gzip dosyalarıyla sıkıştırın, base64 ile kodlayın ve parça parça sızdırın.
  • Sahne 3 (~45 s): “Erişim kanıtı” — yazılabilir bir depoyu klonlayın, SECURITY-POC.md adlı bir dosya bırakın ve commit Yazar olarak google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> ve mesaj olarak da "bağımlılık önbelleğini güncelle, ardından kurbanın ana dalına gönder" ayarı yapılmış.

Sabit kodlanmış hedef listesi genel nitelikte değildir. Otuzdan fazla hedefi listeler. Shopify Depolar isme göre — Shopify/shopify, Shopify/kimlik, Shopify/faturalama, Shopify/kasa, Shopify/sırlar, Shopify/altyapı, Shopify/.githubve daha birçokları — bir test organizasyonuyla birlikte, AaronStackBarnesOperatörün kontrol ettiği ve yazma hedefi olarak kullandığı şey.

4. Nesil (SC4): şifrelenmiş ve kilitli

Geliştiricilere yönelik en yeni sürüm, SC3 solucanına ek olarak iki katmanlı bir kaçınma mekanizması daha ekliyor.

Öncelikle, veri yükü artık düz metin olarak gönderilmiyor. Gerçek mantık, AES-256-CBC ile şifrelenmiş bir veri bloğunda yer alıyor. lib/.perf.datIV'nin ilk on altı baytında yer aldığı yükleyici. index.js Birleştirilmiş dize parçalarından şifre çözme anahtarını yeniden oluşturur, veri bloğunu şifresini çözer ve çalıştırır. yeni Fonksiyon()Hatta modül adları bile statik tarayıcılardan kaçınmak için bölünmüştür. require('crypt' + 'o'), require('f' + 's').

İkincisi, sunucuya bağlı olarak çalışır. Bir varyant yalnızca şifre çözme işlemi gerçekleştiğinde ve çalıştırıldığında devreye girer. işletim sistemi.ana bilgisayar adı() eşittir devbox or ubuntu-fc-uvm (Firecracker microVM varsayılanı) veya alt dizeyi içerir devboxBir başka kapı da bir varlığın varlığına bağlıdır. .jules/ çalışma dizini:

Başka bir deyişle, SC4 yükü, sıradan bir geliştiricinin dizüstü bilgisayarında pasif kalacak ve yalnızca otomatik yapay zeka ajanı içinde aktif hale gelecek şekilde tasarlanmıştır. korumalı alan ortamları Operatör aslında uzlaşmak istiyor.

Laboratuvarı Etkinleştirme: Analiz-Altyapı Varyantı

Kampanyanın en yenilikçi paketi, ts-enum-yardımcısıBu, geliştiricilere veya Shopify'a hiçbir şekilde saldırmıyor. postinstall.sh Oyunun sırrını ele veren bir kapıyla açılıyor:

Bu komut dosyası, kötü amaçlı yazılım analiz platformuna özgü bir ortam değişkeni ayarlanmadığı sürece hiçbir şey yapmaz. Ayarlandığında ise, zararlı yazılım, tam olarak bu tür paketleri patlatmak ve incelemek için var olan sanal ortamda çalıştığını bilir ve karşı saldırı gerçekleştirir.

Öncelikle GCP hizmet hesabı OAuth belirtecini örnek meta veri sunucusundan çekip dışarı sızdırır. Ardından, bu belirteci kullanarak tarama yapar. Kubernetes kontrol düzlemi ulaşılabilir kubernetes.varsayılan.hizmet:

  • ClusterRoleBindings, ClusterRoles ve Nodes'u listeler;
  • Pod'ları, gizli bilgileri ve yapılandırma haritalarını inceler. kube-sistem, varsayılan, kube-public, kube-node-leaseve analiz ad alanı;
  • SelfSubjectAccessReview çağrıları, çalınan kimliğin tam olarak ne yapmasına izin verildiğini haritalamak için kullanılır.

Son olarak, önceden belirlenmiş bir GCP proje kimliğinden oluşturulan Google Cloud Storage kova adlarını kaba kuvvet yöntemiyle deniyor (nadir-imzacı-437603-s9) ve proje numarası, aşağıdaki gibi kombinasyonları tahmin etme *-oluşturur, *-eserlerve birkaç tane tıbbi analiz ön ekler (analiz sonuçları, analiz paketleri, analiz taramalarıHer yanıt kodu ve gövdesi kaydedilir ve aynı adrese POST yöntemiyle geri gönderilir. jules-topla uç nokta.

Bu, özellikle savunmacıların kendi altyapısına saldırmak için tasarlanmış nadir bir tedarik zinciri zararlı yazılım örneğidir. Kampanyanın tamamındaki örtü hikayesi - zararlı yazılımların içinde "Güvenlik Araştırması PoC... aşırı kapsamlı git proxy belirteci aracılığıyla çapraz depo yazma" şeklinde davranışları çerçeveleyen yorumlar olarak görünen parçalar da dahil olmak üzere - ister çalışma zamanı hedefi bir Shopify monorepo olsun ister analiz kümesinin meta veri sunucusu olsun, aynı öz-haklılaştırmadır.

Zaman Çizelgesi ve Kapsam Geçişi

JulesJacker tek seferlik bir proje değil. Sadece adını değiştirerek kayıt defterinden silinme girişiminden kurtulan, uzun soluklu bir operasyon.

Ne zaman Etkinlikler
2026 Nisan ortası İlk paketler orijinal yayıncının kapsamı altında ortaya çıkıyor: TS-utility façade, environment ve git-config exfiltration.
Mayıs 2026'in başı Hypervisor ve çekirdekten kaçış keşif varyantı yayınlandı.
Mayıs 2026'nın ortaları ile sonları SC3 çapraz depo yazma solucanı, Shopify'ı hedef alan zararlı yazılımlarla birlikte ortaya çıktı ve google-labs-jules[bot] Kimlik taklit etme. SC4, AES şifrelemeli ve ana bilgisayar kontrollü yükleyiciler sunar.
Mayıs 2026 sonu npm, orijinal yayıncı kapsamını kaldırır; paket adları, boş güvenlik tutucu yer tutuculara dönüşür.
Aynı hafta Operatör, neredeyse tamamen aynı görünen benzer bir kapsama alanına geçiş yapar ve analiz altyapısı varyantı da dahil olmak üzere solucanı yeniden yayınlar.

Göç, savunucuların üzerinde durması gereken kısımdır. İlk kapsamın ortadan kaldırılması kampanyayı bitirmedi, hatta yavaşlatmadı bile. Operatör, orijinalinden tek bir karakterle farklı bir isimle paralel bir kapsam oluşturmuş ve aynı hafta içinde yayınlamaya devam etmişti. Bu yazının yazıldığı sırada, yeni kapsamın ts-form-utils (1.0.0'dan 1.1.0'a kadar olan sürümler), onun ts-project-lint (1.0.0 ve 1.1.0) ve bağımsız ts-enum-yardımcısı (1.0.0) yüklenebilir durumda kalır.

Uzlaşma Göstergeleri

Aşağıdaki tüm göstergeler paket kaynağıyla karşılaştırılarak doğrulandı.

Menşei Gösterge notlar
Ağ (C2) aaronstack[.]com/jules-collect Her nesilde tek bir veri toplama noktası; JSON telemetrisi ve base64-gzip formatındaki depo tarball parçalarını alır.
Ağ (SSRF proxy) http://git@192.168.0.1:8080 Hedef kuruluşun depolarına erişmek için kullanılan, kapsamı genişletilmiş bir git proxy belirtecinin ön yüzü.
Ağ (bulut) metadata.google.internal/computeMetadata/v1
kubernetes.default.svc
storage.googleapis.com/storage/v1/b
Yalnızca analiz altyapısı varyantı tarafından token hırsızlığı ve Kubernetes kontrol düzlemi keşfi için kullanılır.
Kimlik google-labs-jules[bot]
161369871+google-labs-jules[bot]@users.noreply.github.com
Sahte commit Yazarın kimliği, mağdur ana akım dallarına itildi.
fileto lib/.perf.dat AES-256-CBC şifreli veri bloğu; IV ilk 16 baytta saklanır ve anahtar dinamik olarak yeniden oluşturulur. index.js.
fileto SECURITY-POC.md Düşürüldü ve commitMesajla birlikte kurban depolarına geri gönderildi. chore: update dependency cache.
fileto scripts/postinstall.sh Kapılı $MALYSIS_ANALYSIS_IDAnaliz altyapısını hedefleyen varyantı tanımlar.
Davranışsal os.hostname() kontrol eder devbox / ubuntu-fc-uvm Veri paketinin şifresinin çözülmesi ve yürütülmesinden önce sanal alan ve yapay zeka ajanı ortamının kontrol edilmesi.
Davranışsal .jules/ hem de /app/.jules dizin okumaları Yapay zekâ ajanlarının çalıştığı ortamların açıkça hedef alınması.
Davranışsal sc1-, sc3-, sc4-, s0-vmm-recon Operatör tarafından tanımlanan telemetri aşama etiketleri, tespit ve avlama için kullanışlıdır.
Bulut hedefi rare-signer-437603-p9
malysis-* kova tahminleri
Analiz altyapısı varyantına yerleştirilmiş, kod içine önceden tanımlanmış GCP proje tanımlayıcıları ve depolama kovası numaralandırma kalıpları.
Paket şekli TS-utility paketinin cephesi, depo alanı içermiyor. Tutarlı kampanya şablonu: Kötü amaçlı yazılımlar içeren sahte TypeScript yardımcı program paketleri. postinstall hooks veya eklenmiş index.js.
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