JulesJacker: Saxta npm qurdu Jules AI-ni təqlid edir

JulesJacker: Google-ın Jules Agentini Təqlid Edən və Onu Təhlil Edən Sandbox-u İşə Salan Saxta PoC npm Qurdu

TL; DR

Tək bir npm operatoru altı həftə ərzində saxta TypeScript “kommunal” paketlərini dərc etməyə sərf etdi, məsələn, ts-form-utils, ts-project-lintts-enum-helper.

Paketlər kiçik qanuni görünüşlü doğrulama köməkçilərini ortaya çıxarsa da, əsl faydalı yük quraşdırma və ya tələb etmə zamanı işə düşür və host barmaq izi, GitHub təşkilatının kəşfi, depo klonlaması və mənbə kodunun çıxarılması əməliyyatlarını yerinə yetirir.

Zərərli proqram xüsusilə bir çoxu da daxil olmaqla, yüksək dəyərli GitHub təşkilatlarını hədəf alır. Shopify depoları, sonra isə əlçatan mənbə ağaclarını arxivləşdirir və mərkəzləşdirilmiş toplama son nöqtəsinə eksfiltrasiya edir.

Kompromis iş axınının bir hissəsi olaraq, faydalı yük commitsa faylını Google-ın muxtar kodlaşdırma şəxsiyyətini təqlid edərkən zərərçəkmiş depolarına geri qaytarır google-labs-jules[bot].

Biz kampaniyanı izlədik — adlandırıldı JulesJacker — birdən çox naşir əhatə dairəsi və ən azı beş faydalı yük nəsli, o cümlədən şifrələnmiş və sandbox-dan xəbərdar variantlar.

Ən yeni variant xüsusilə zərərli proqram təhlili infrastrukturunu hədəf alır: yalnız təhlil mühitləri daxilində aktivləşdirir, bulud metaməlumat xidməti hesabı tokenlərini oğurlayır və Kubernetes idarəetmə sistemlərini və bulud saxlama vedrələrini araşdırır.

Bütün faydalı yük nəsilləri arasında paylaşılan əsas IOC toplama son nöqtəsidir aaronstack[.]com/jules-collect.

Şiddət: kritik.

Hücum: Necə İşləyir

Hər JulesJacker paketi eyni şablonu izləyir. paket.json MIT lisenziyası və əlaqəli mənbə deposu olmayan zərərsiz TypeScript köməkçisini reklam edir. indeks.js bir neçə real, işləyən funksiyanı — e-poçt regexes, enum xəritələri, lint qayda cədvəllərini — ixrac edir ki, paketi həqiqətən idxal edən bir geliştirici mümkün davranışı görsün. Pis niyyət başqa yerdə yaşayır: bir quraşdırma sonrası qarmaqda və ya altındakı bir blokda indeks.js modul tələb olunduğu anda icra edir.

Faydalı yüklər aydın şəkildə nömrələnmiş daxili mərhələlərdən keçərək inkişaf etmişdir (operator öz telemetriya hadisələrini etiketləyir) sc1-, sc3-, sc4-və s.) və təkamülün kampaniyanı başa düşməyin ən aydın yolu olduğunu izləmək.

 1-2-ci nəsil: kəşfiyyat və git-config oğurluğu

Ən erkən paketlər sadə məlumat oğurluqları idi. Quraşdırma zamanı onlar mühit dəyişənlərini, GitHub CLI host faylını və qlobal git konfiqurasiyasını (git config –qlobal –siyahısı, git remote -v), sonra paketi toplama son nöqtəsinə POST etdi. Bu, operatorun imzasını təyin etdi: “TypeScript formasının doğrulama proqramları” üz qabığı hekayəsi, tək bir domenə çıxış mayak və istehlakçı məlumatlarından daha çox geliştirici etimadnaməsinə üstünlük.

3-cü nəsil: hipervizor və nüvə qaçış zondları

Kampaniya ortasındakı versiyalardan biri infrastruktur hücumlarına çevrildi. Konfiqurasiyanı oğurlamaq əvəzinə, kəşfiyyat qoşqu zondlamasını işə saldı. AF_VSOCK sockets, virtio MMIO regions, /dev/mem, və nüvənin sərtləşdirilməsi bayraqları və hətta sysrq tərəfindən tetiklenen nüvə qəzalarına cəhdlər — virtual maşından və ya konteynerdən çıxmaq cəhdləri ilə əlaqəli davranış. Telemetriya etiketləri (s0-vmm-recon, s1-vmm-vsock-fuzz, s2-vmm-mmio, s3-nüvə-zondu) niyyəti açıq şəkildə bildirdi. Bu variant açıq şəkildə hədəflənmişdi cloud-sandbox və serversiz-runner mühitləri — etibarsız kodu yaradan və sınaqdan keçirən efemer VM növü.

3-cü Nəsil (SC3): çarpaz repo yazma qurdu

Kampaniyanın ağırlıq mərkəzi öz-özünə yayılan repo oğrusuna çevrildi. Quraşdırma zamanı faydalı yük beş mərhələli zamanlı ardıcıllıqla işləyir:

  • Mərhələ 0 (~100 ms): fingerprint the host — hostname, user info, git identity.
  • Mərhələ 1 (~3 s): qurbanın hansı təşkilata mənsub olduğunu yoxlamaqla müəyyən etmək git remote -v, sonra sərt kodlu bir fayl axtarın ORG_CONFIG cədvəl və test repo girişi ilə git ls-remote — hücumçu tərəfindən idarə olunan SSRF proxy vasitəsilə yönləndirildi http://git@192.168.0.1:8080.
  • Mərhələ 2 (~10 saniyə): git klonu hədəf siyahıdakı hər bir əlçatan depoda ağacı tarball və gzip ilə kodlaşdırın, base64-də kodlaşdırın və hissə-hissə süzün.
  • Mərhələ 3 (~45 s): “giriş sübutu” — yazıla bilən reponu klonlaşdırmaq, SECURITY-POC.md adlı faylı buraxmaq və commit müəllif google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> olaraq təyin edilmiş və mesajın əsas tapşırığı: asılılıq keşini yeniləyin, sonra qurbanın əsas xətt qoluna push edin.

Sərt kodlaşdırılmış hədəf siyahısı ümumi deyil. Otuzdan çoxunu sadalayır Shopify adları ilə depolar — Shopify/shopify, Shopify/şəxsiyyət, Shopify/faktura, Shopify/seyf, Shopify/sirlər, Shopify/infrastruktur, Shopify/.githubvə daha çox — test təşkilatı ilə yanaşı, AaronStackBarnes, operatorun idarə etdiyi və yazma hədəfi kimi istifadə etdiyi görünür.

4-cü Nəsil (SC4): şifrələnmiş və qapalı

Ən yeni geliştiriciyə yönəlmiş versiya, SC3 qurdunun üzərinə iki təbəqə yayınma əlavə edir.

Birincisi, faydalı yük artıq açıq mətn kimi göndərilmir. Əsl məntiq AES-256-CBC ilə şifrələnmiş bir ləkədədir, lib/.perf.dat, IV ilk on altı baytındadır. Yükləyici indeks.js birləşdirilmiş sətir fraqmentlərindən şifrələmə açarını yenidən qurur, blob-u şifrələyir və onu işlədir yeni Funksiya()Hətta modul adları belə statik skanerlərdən yayınmaq üçün bölünüb — tələb edir('crypt' + 'o'), tələb edir('f' + 's').

İkincisi, o, host tərəfindən idarə olunur. Bir variant yalnız şifrələnib işə düşür os.hostname() bərabərdir devbox or ubuntu-fc-uvm (Firecracker microVM standartı) və ya alt sətri ehtiva edir devboxBirinin olması ilə başqa bir qapı .jules/ iş kataloqu:

Başqa sözlə, SC4 faydalı yükü adi bir geliştiricinin noutbukunda hərəkətsiz qalmaq və yalnız avtomatlaşdırılmış süni intellekt agentinin içərisində oyanmaq üçün hazırlanmışdır və sandbox mühitləri operator əslində güzəştə getmək istəyir.

Laboratoriyanın İşə salınması: Təhlil-İnfrastruktur Variantı

Kampaniyanın ən yeni paketi, ts-enum-köməkçi, ümumiyyətlə, geliştiricilərə və ya Shopify-a hücum etmir. postinstall.sh oyunu uzaqlaşdıran bir qapı ilə açılır:

Zərərli proqram təhlili platformasına xas olan bir mühit dəyişkəni təyin edilmədikcə skript heç nə etmir. Təyin edildikdə, faydalı yük paketləri partlatmaq və öyrənmək üçün mövcud olan sandbox-un içərisində işlədiyini bilir və əks-hücumlar edir.

Əvvəlcə GCP xidmət hesabı OAuth tokenini instansiya metaməlumat serverindən çıxarır və süzür. Sonra həmin tokendən istifadə edərək süpürür Kubernetes idarəetmə təyyarəsi ünvanında əldə edilə bilər kubernetes.default.svc:

  • ClusterRoleBindings, ClusterRoles və Nodes siyahılarını təqdim edir;
  • podları, sirləri və konfiqurasiya xəritələrini araşdırır kube-sistem, default, kube-ictimai, kube-düyün-icarəsivə analiz ad sahəsi;
  • Oğurlanmış şəxsiyyətin nə etməyə icazə verildiyini dəqiq şəkildə xəritələşdirmək üçün SelfSubjectAccessReview çağırışları ilə bağlı problemlər.

Nəhayət, sərt kodlu GCP layihə ID-sindən qurulmuş Google Cloud Storage vedrə adlarını kobud şəkildə məcbur edir (nadir-imza-437603-p9) və layihə nömrəsi, kimi kombinasiyaları təxmin edir *-qurğular, *-artefaktlar, və bir neçə malizis- prefikslər (malisin nəticələri, malysis paketləri, malizis müayinələriHər cavab kodu və mətni qeyd olunur və eyni ünvana göndərilir. jules-collection son nöqtə.

Bu, müdafiəçilərin öz infrastrukturuna hücum etmək üçün xüsusi olaraq qurulmuş təchizat zənciri yükünün nadir halıdır. Bütün kampaniyanın üz qabığındakı hekayə - fraqmentlər yüklərin içərisində davranışı "Təhlükəsizlik Tədqiqatı PoC ... həddindən artıq genişlənmiş git proxy token vasitəsilə çarpaz repo yazısı" kimi təsvir edən şərhlər kimi görünür - işləmə hədəfi Shopify monorepo və ya analiz klasterinin metaməlumat serveri olsun, eyni özünü doğrultmadır.

Xronologiya və Əhatə Dairəsi Miqrasiyası

JulesJacker birdəfəlik silinmə deyil. Bu, sadəcə adını dəyişdirməklə qeydiyyatdan çıxarıldıqdan sonra da davam edən davamlı bir əməliyyatdır.

Zaman hadisə
2026-ci ilin aprel ayının ortaları İlk paketlər orijinal naşirin əhatə dairəsi altında görünür: TS-utility fasadı, mühiti və git-config exfiltration.
2026-ci il mayın əvvəli Hipervizor və nüvədən qaçış kəşfiyyat variantı dərc edilib.
2026-cı il may ayının ortalarından sonuna qədər SC3 çarpaz repo yazma qurdu Shopify hədəf yükləri ilə yanaşı görünür və google-labs-jules[bot] təqlid. SC4, AES ilə şifrələnmiş və host-gated yükləyicilərini təqdim edir.
2026-ci ilin may ayının sonu npm orijinal naşir əhatə dairəsini silir; paket adları boş təhlükəsizlik saxlayan yer tutucularına çevrilir.
Eyni həftə Operator, demək olar ki, eyni görünüşlü bir əhatə dairəsinə miqrasiya edir və analiz-infrastruktur variantı da daxil olmaqla qurdu yenidən dərc edir.

Müdafiəçilərin əsas diqqət yetirməli olduğu məsələ miqrasiyadır. Birinci obyektivin ləğvi kampaniyanı nə dayandırdı, nə də yavaşlatdı. Operator artıq adı orijinaldan tək bir simvolla fərqlənən paralel obyektivi səhnələşdirmişdi və eyni həftə ərzində nəşrini davam etdirmişdi. Bu yazı yazıldığı vaxta qədər yeni obyektivin ts-form-utils (1.0.0-dan 1.1.0-a qədər versiyalar), onun ts-layihə-lint (1.0.0 və 1.1.0) və müstəqil ts-enum-köməkçi (1.0.0) quraşdırıla bilər.

Kompromis göstəriciləri

Aşağıdakı bütün göstəricilər bağlama mənbəyinə qarşı təsdiqləndi.

növü Göstərici Qeydlər
Şəbəkə (C2) aaronstack[.]com/jules-collect Hər nəsildə tək kolleksiya son nöqtəsi; JSON telemetriyası və base64-gzip depo tarball hissələrini qəbul edir.
Şəbəkə (SSRF proksi) http://git@192.168.0.1:8080 Hədəf təşkilat depolarına çatmaq üçün istifadə edilən həddindən artıq genişlənmiş git proxy tokeninin ön hissəsi.
Şəbəkə (bulud) metadata.google.internal/computeMetadata/v1
kubernetes.default.svc
storage.googleapis.com/storage/v1/b
Yalnız token oğurluğu və Kubernetes idarəetmə təyyarəsi kəşfiyyatı üçün analiz-infrastruktur variantı tərəfindən istifadə olunur.
identiklik google-labs-jules[bot]
161369871+google-labs-jules[bot]@users.noreply.github.com
Saxta commit müəllif şəxsiyyəti qurbanın əsas xətt qollarına yeridildi.
fayl lib/.perf.dat AES-256-CBC ilə şifrələnmiş faydalı yük bloku; IV ilk 16 baytda saxlanılır və açar dinamik olaraq yenidən qurulur index.js.
fayl SECURITY-POC.md Düşdü və commitmesajla qurban depolarına geri göndərildi chore: update dependency cache.
fayl scripts/postinstall.sh Qapalı $MALYSIS_ANALYSIS_ID; təhlil-infrastruktur-hədəfləmə variantını müəyyən edir.
Davranışçı os.hostname() yoxlamalar devbox / ubuntu-fc-uvm Faydalı yükün şifrəsinin açılmasından və icrasından əvvəl Sandbox və süni intellekt agent mühitinin tənzimlənməsi.
Davranışçı .jules//app/.jules kataloq oxuyur Süni intellekt agenti iş sahəsi mühitlərinin açıq şəkildə hədəflənməsi.
Davranışçı sc1-, sc3-, sc4-, s0-vmm-recon Operator tərəfindən müəyyən edilmiş telemetriya mərhələ etiketləri aşkarlama və ov üçün faydalıdır.
Bulud hədəfi rare-signer-437603-p9
malysis-* vedrə təxminləri
Təhlil-infrastruktur variantına daxil edilmiş sərt kodlu GCP layihə identifikatorları və saxlama vedrəsinin sayma nümunələri.
Paket forması Depo sahəsi olmayan TS-kommunal paket fasadı Ardıcıl kampaniya şablonu: zərərli yükləri daxil edilmiş saxta TypeScript yardım paketləri postinstall hooks və ya əlavə olunur index.js.
sca-tools-proqram-kompozisiya-analiz-alətləri
Proqram təminatı risklərinizi prioritetləşdirin, aradan qaldırın və təhlükəsizləşdirin
Pulsuz Hesabınızı əldə edin.
Kredit kartı tələb olunmur.

Proqram təminatınızın hazırlanması və çatdırılmasını təmin edin

Xygeni Məhsul Dəsti ilə