TL; DR
Operatorekî npm şeş hefteyan pakêtên "bikêrhatî" yên TypeScript-ê yên sexte weşandin, wek mînak ts-form-utils, ts-project-lint, û ts-enum-helper.
Her çend pakêt alîkarên pejirandinê yên piçûk ên ku xuya dikin rewa ne, barkêşa rastîn di dema sazkirinê an jî hewcedariya yekem de tê bicîhanîn û şopa tiliya mêvandar, kifşkirina rêxistina GitHub, klona depoyê, û derxistina koda çavkaniyê pêk tîne.
Malware bi taybetî rêxistinên GitHub-ê yên bi nirx bilind hedef digire, di nav de gelek shopify depoyan tomar dike, dûv re darên çavkaniya gihîştî arşîv dike û ji holê radike bo xaleke dawî ya berhevokê ya navendî.
Wekî beşek ji karê lihevhatinê, barkêş commitpelê sa vedigerîne depoyên qurbaniyan dema ku nasnameya kodkirina xweser a Google-ê teqlîd dike google-labs-jules[bot].
Me kampanyayê şopand — bi navê JulesJacker - li seranserê gelek warên weşangeran û bi kêmî ve pênc nifşên barkirinê, tevî guhertoyên şîfrekirî û yên haydar ji sandboxê.
Guhertoya herî nû bi taybetî binesaziya analîza malware hedef digire: ew tenê di hundurê jîngehên analîzê de çalak dibe, nîşaneyên karûbarê metadata ewr didize, û balafirên kontrolê yên Kubernetes û kepçeyên hilanîna ewr vedikole.
IOC-ya sereke ku di hemî nifşên barkêşiyê de tê parve kirin xala dawî ya berhevkirinê ye. aaronstack[.]com/jules-collect.
Giranî: krîtîk.
Êrîş: Çawaniya Karê Wê
Her pakêta JulesJacker heman şablonê dişopîne. pakêt.json alîkarekî TypeScript-ê yê bêkêr bi lîsansa MIT-ê û bê depoyek çavkaniyê ya girêdayî reklam dike. index.js çend fonksiyonên rastîn û xebatkar - regexên e-nameyê, nexşeyên enum, tabloyên qaîdeyên lint - hinarde dike da ku pêşdebirê ku bi rastî pakêtê îtxal dike tevgerên maqûl bibîne. Xerabkarî li cîhek din dijî: di piştî sazkirinê çengel, an jî di blokek li binê index.js ku di gavê de ku modul pêwîst be tê bicîhanîn.
Barkêş bi qonaxên navxweyî yên bi hejmarên zelal pêş ketine (operator bûyerên telemetrîya xwe bi xwe nîşan dide) sc1-, sc3-, sc4-, û hwd.), û temaşekirina wê pêşveçûnê rêya herî zelal e ji bo têgihîştina kampanyayê.
Nifşê 1–2: keşf û dizîna git-config
Pakêtên herî pêşîn dizên agahdariyê yên rasterast bûn. Di dema sazkirinê de wan guherbarên jîngehê, pelê mêvandarên CLI yên GitHub, û mîhenga git a gerdûnî berhev kirin (git config –global –list, git dûr -v), paşê pakêt POST kir bo xala dawî ya berhevkirinê. Ev yek îmzeya operator saz kir: çîrokeke bergê ya "amûrên pejirandina forma TypeScript", nîşanek derketinê bo yek domainê, û tama bawernameyên pêşdebiran li şûna daneyên xerîdaran.
Nifşa 3: hîpervîzor û lêpirsînên revê yên kernel
Guhertoyek di nîvê kampanyayê de bi tundî ber bi êrîşên binesaziyê ve çû. Li şûna dizîna mîhengan, wê rêbazek keşfê ya ceribandinê meşand. AF_VSOCK soket, herêmên virtio MMIO, / dev / mem, û alên hişkkirina kernel, û tewra hewlên têkçûna kernelê yên ji hêla sysrq ve têne çalak kirin - tevgerên ku bi hewildanên derketina ji makîneyek an konteynirek virtual ve girêdayî ne. Etîketên telemetrîyê (s0-vmm-vedîtin, s1-vmm-vsock-fuzz, s2-vmm-mmio, proba-kernel-s3) niyet eşkere kir. Ev varyant bi eşkereyî armanc dikir ku jîngehên cloud-sandbox û serverless-runner - cureyê VM-ya demkî ku koda ne pêbawer ava dike û diceribîne.
Nifşa 3 (SC3): kurmê nivîsandinê yê cross-repo
Navenda giraniya kampanyayê bû dizek depoyê ku xwe belav dike. Dema sazkirinê, barkêş rêzek pênc-qonaxî ya demjimêrkirî dimeşîne:
- Stage 0 (~100 ms): şopa tiliya mêvandar — navê mêvandar, agahdariya bikarhêner, nasnameya git.
- Stage 1 (~3 çirke): bi vekolînê diyar bike ka qurbanî ji kîjan rêxistinê ye git dûr -v, paşê li kodeke hişk bigerin ORG_CONFIG gihîştina depoya tabloyê û ceribandinê bi git ls-remote — bi rêya proxy-ya SSRF-ê ya ku ji hêla êrîşkar ve tê kontrolkirin ve tê rêve kirin li http://git@192.168.0.1:8080.
- Stage 2 (~10 çirke): klîtika gît her depoyek gihîştî di navnîşa hedef de, darê tarball û gzip bike, wê base64-kod bike, û wê chunk-exfiltrate bike.
- Stage 3 (~45 çirke): "delîla gihîştinê" - depoyek nivîsandinê klon bike, pelek bi navê SECURITY-POC.md bavêje, û commit nivîskar wekî google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> saz bike û peyama "kar: keşeya girêdayîbûnê nûve bike, dûv re bişîne şaxa xeta sereke ya mexdûrê".
Lîsteya hedefên kodkirî ne gelemperî ye. Ew ji sî zêdetir hejmar dike. shopify depoyên bi navê — Shopify/shopify, Shopify/nasname, Shopify/faturkirin, Shopify/depo, Shopify/razên, Shopify/binesaziyê, Shopify/.github, û gelekên din - ligel rêxistineke ceribandinê, AaronStackBarnes, ku operator xuya dike ku kontrol dike û wekî hedefa nivîsandinê bikar tîne.
Nifşê 4 (SC4): şîfrekirî û derîgirtî
Guhertoya herî nû ya ku pêşdebir-rû bi rû ye, du tebeqeyên xapandinê li ser kurmê SC3 zêde dike.
Pêşî, barkêş êdî wekî nivîsa sade nayê şandin. Mantîqa rastîn di blobek AES-256-CBC-şîfrekirî de ye, lib/.perf.dat, bi IV di şazdeh baytên xwe yên pêşîn de. Barker di index.js mifteya şîfrekirinê ji perçeyên rêzikên girêdayî ji nû ve ava dike, blobê şîfre dike, û wê bi kar tîne Fonksiyona nû()Heta navên modulan jî ji bo dûrketina ji skanerên statîk hatine dabeşkirin — pêwîst('krîpt' + 'o'), pêwîst('f' + 's').
Ya duyemîn, ew host-dergehkirî ye. Guhertoyek tenê deşîfre dike û dixebite dema ku os.hostname() wekhev devbox or ubuntu-fc-uvm (mîkroVM-ya Firecracker a xwerû) an jî binrêzê dihewîne devboxDeriyên din li ser hebûna .jules/ navnîşa xebatê:
Bi gotineke din, barkêşiya SC4 hatiye sêwirandin ku li ser laptopa pêşdebirê asayî bêçalak bimîne û tenê di hundurê ajana AI ya otomatîk de şiyar bibe û derdorên sandbox operator bi rastî dixwaze lihevkirinê bike.
Vekirina Laboratuwarê: Guhertoya Analîz-Binesaziyê
Pakêta herî nûjen a di kampanyayê de, alîkarê-ts-enum-ê, qet êrîşî pêşdebiran an Shopify nake. Ew postinstall.sh bi deriyekî vedibe ku lîstikê dide xuyakirin:
Skrîpt tiştekî nake heya ku guhêrbarek jîngehê ya taybetî ji bo platformek analîzkirina malware neyê danîn. Dema ku ew were danîn, barkêş dizane ku ew di hundurê sandboxê de dixebite ku ji bo teqandin û lêkolîna pakêtên mîna vê heye - û ew êrîşî dijber dike.
Ew pêşî nîşana OAuth ya hesabê karûbarê GCP ji servera metadata ya mînakê dikişîne û wê derdixe. Dûv re, bi karanîna wê nîşanê, ew Balafira kontrolê ya Kubernetes gihîştî li kubernetes.default.svc:
- ClusterRoleBindings, ClusterRoles, û Nodes navnîş dike;
- podên lêpirsînê, raz, û nexşeyên mîhengê li seranserê sîstema kube, destçûnî, kube-giştî, kirêkirina-girêka-kube, û namespace ya analîzê;
- pirsgirêkên ku bangên SelfSubjectAccessReview dikin da ku tam nexşeya tiştên ku destûra nasnameya dizîkirî heye nîşan bide.
Di dawiyê de, ew navên buketên Google Cloud Storage-ê yên ku ji ID-ya projeya GCP-ya kodkirî hatine çêkirin bi zorê bikar tîne (îmzekerê-kêm-437603-p9) û jimara projeyê, texmînkirina kombînasyonên wekî *-avakirin, *-berhemên çêkirî, û çend malîz- pêşgir (encamên-malîzê, pakêtên malîzê, skanên malîzê). Her kod û laşê bersivê tê tomar kirin û ji heman navnîşanê re tê şandin berhevkirina jules xala dawî.
Ev rewşa kêmdîtî ya barekî zincîra dabînkirinê ye ku bi taybetî ji bo êrîşkirina binesaziya parêzvanan bi xwe hatiye çêkirin. Çîroka bergê li seranserê kampanyayê - ku perçeyên wê di nav barekî de wekî şîroveyên ku tevgerê wekî "PoC-ya Lêkolîna Ewlehiyê ... nivîsandina depoya xaçerêyî bi rêya nîşana proxy ya git a zêde-scopkirî" çarçove dikin - heman xwe-rewakirin e, çi hedefa dema xebitandinê monorepoyek Shopify be an jî servera metadata ya koma analîzê be.
Demjimêr û Koçberiya Berfireh
JulesJacker ne operasyoneke yekcarî ye. Ew operasyoneke domdar e ku ji hilweşandina qeydê tenê bi guhertina navê xwe sax filitî.
| Heke | Bûyer |
|---|---|
| Nîv-Nîsan 2026 | Pakêtên pêşîn di bin çarçoveya weşangerê orîjînal de xuya dibin: TS-utility facade, environment û git-config exfiltration. |
| Destpêka Gulana 2026an | Hypervisor û guhertoya keşfê ya kernel-escape hatin weşandin. |
| Nîvê heta dawiya Gulana 2026an | Kurmê nivîsandinê yê SC3 cross-repo li kêleka barkêşên Shopify-armanckirî xuya dibe û google-labs-jules[bot] teqlîdkirin. SC4 barkerên şîfrekirî yên AES û host-gated dide nasîn. |
| Dawîya Gulana 2026an | npm çarçoveya weşangerê ya orîjînal radike; navên pakêtan çareser dibin ku cîhên ewlehiyê yên girtinê vala bikin. |
| Heman hefteyê | Operator vedigere bo çarçoveyek hema hema dişibihe hev û kurmê, tevî guhertoya binesaziya analîzê, ji nû ve diweşîne. |
Koçkirin ew beşa ku divê parêzvan pê re rûnin e. Rakirina dûrbîna yekem kampanyayê bi dawî nekir û heta hêdî nekir. Operator berê dûrbînek paralel amade kiribû ku navê wê ji ya orîjînal bi yek tîpê cuda ye, û di heman hefteyê de weşana xwe berdewam kir. Heta dema nivîsandina vê gotarê, dûrbîna nû... ts-form-utils (guhertoyên 1.0.0 heta 1.1.0), wê ts-projeya-lint (1.0.0 û 1.1.0), û serbixwe alîkarê-ts-enum-ê (1.0.0) sazkirinbar bimînin.
Nîşaneyên Lihevhatinê
Hemû nîşaneyên li jêr li hember çavkaniya pakêtê hatin piştrast kirin.
| Awa | indicator | Notes |
|---|---|---|
| Tor (C2) | aaronstack[.]com/jules-collect | Xala dawî ya berhevokê ya yekane li ser her nifşî; telemetrîya JSON û perçeyên tarballê yên depoya base64-gzip distîne. |
| Tor (proksîya SSRF) | http://git@192.168.0.1:8080 | Li pêş nîşaneya proxy ya git a zêdeçavkirî ye ku ji bo gihîştina depoyên rêxistina hedef tê bikar anîn. |
| Tor (ewr) | metadata.google.internal/computeMetadata/v1kubernetes.default.svcstorage.googleapis.com/storage/v1/b | Tenê ji hêla guhertoya binesaziya analîzê ve ji bo dizîna nîşanan û keşfa balafirê kontrolê ya Kubernetes tê bikar anîn. |
| Nasname | google-labs-jules[bot]161369871+google-labs-jules[bot]@users.noreply.github.com | Bîr kirin commit nasnameya nivîskarê hatiye zextkirin nav şaxên sereke yên qurbaniyê. |
| Wêne | lib/.perf.dat | Bloba barkêşiyê ya şîfrekirî ya AES-256-CBC; IV di 16 bytên pêşîn de hatî hilanîn û mifte bi dînamîkî ji nû ve hatî çêkirin. index.js. |
| Wêne | SECURITY-POC.md | Daket û commitbi peyamê vegeriya depoyên qurbaniyan chore: update dependency cache. |
| Wêne | scripts/postinstall.sh | Derî vekiriye $MALYSIS_ANALYSIS_ID; guhertoya hedefgirtina analîz-binesaziyê destnîşan dike. |
| Behavioral | os.hostname() ji bo kontrol dike devbox / ubuntu-fc-uvm | Dergkirina jîngeha sandbox û AI-agent berî şîfrekirin û bicîhanîna barê bikêrhatî. |
| Behavioral | .jules/ û /app/.jules xwendin | Hedefgirtina eşkere ya jîngehên kar ên ajansa AI. |
| Behavioral | sc1-, sc3-, sc4-, s0-vmm-recon | Etîketên qonaxa telemetrîyê yên ji hêla operator ve hatine destnîşankirin ji bo tesbîtkirin û nêçîrê kêrhatî ne. |
| Hedefa ewr | rare-signer-437603-p9malysis-* texmînên kovî | Nasnameyên projeya GCP-ê yên kodkirî yên hişk û şablonên hejmartina depo-buketê yên di guhertoya binesaziya analîzê de hatine bicîhkirin. |
| Şêweya pakêtê | Rûyê pakêta TS-utility bêyî qada depoyê | Şablona kampanyaya hevgirtî: pakêtên amûran ên TypeScript-ê yên sexte bi barkirinên zirardar ên di hundurê de hatine bicîhkirin. postinstall hooks an jî lê hatiye zêdekirin index.js. |




