JulesJacker: Tha cnuimh npm meallta a’ dèanamh aithris air Jules AI

JulesJacker: Cnuimh npm meallta-PoC a bhios ag atharrais air Àidseant Jules aig Google - agus a’ tionndadh air a’ bhogsa gainmhich ga sgrùdadh

TL; DR

Chuir aon obraiche npm sia seachdainean seachad a’ foillseachadh phasganan “goireasachd” TypeScript meallta leithid ts-form-utils, ts-project-lint, agus ts-enum-helper.

Ged a nochdas na pacaidean luchd-cuideachaidh dearbhaidh beaga a tha coltach ri dligheach, bidh an fhìor luchd a’ ruith nuair a thèid a stàladh no iarraidh an toiseach agus a’ dèanamh lorgan-meòir aoigheachd, lorg buidhne GitHub, clònadh stòr-dàta, agus toirt a-mach còd tùsail.

Tha an malware gu sònraichte ag amas air buidhnean GitHub àrd-luachmhor, nam measg grunn… Shopify stòran-dàta, an uairsin a’ tasglannachadh agus a’ toirt a-mach craobhan tùsail ruigsinneach gu ceann-uidhe cruinneachaidh meadhanaichte.

Mar phàirt den t-sruth-obrach co-rèiteachaidh, an luchd-pàighidh commitfaidhle sa air ais gu stòran-dàta luchd-fulaing fhad ’s a tha iad a’ dèanamh aithris air dearbh-aithne còdaidh fèin-riaghlaidh Google google-labs-jules[bot].

Lean sinn an iomairt — ainmichte JulesJacker — thar iomadh raon foillsichear agus co-dhiù còig ginealaichean de luchdan, a’ gabhail a-steach caochlaidhean crioptaichte agus mothachail air bogsa-gainmhich.

Tha an caochladh as ùire ag amas gu sònraichte air bun-structar mion-sgrùdaidh malware: chan eil e ag obair ach taobh a-staigh àrainneachdan mion-sgrùdaidh, a’ goid chomharran cunntas seirbheis meata-dhàta sgòthan, agus a’ sgrùdadh plèanaichean smachd Kubernetes agus bucaidean stòraidh sgòthan.

Is e am prìomh IOC a tha air a cho-roinn thar gach ginealach de luchdan-pàighidh an ceann-uidhe cruinneachaidh aaronstack[.]com/jules-collect.

Doimhneachd: èiginneach.

An Ionnsaigh: Mar a tha e ag Obrachadh

Bidh gach pasgan JulesJacker a’ leantainn an aon teamplaid. pasgan.json a’ sanasachadh neach-cuideachaidh TypeScript neo-chùramach le cead MIT agus gun stòr-dàta stòr ceangailte. clàr-amais.js a’ cur a-mach dòrlach de ghnìomhan fìor, obrachail — regexes puist-d, mapaichean enum, clàran riaghailt lint — gus am faic leasaiche a bhios a’ toirt a-steach am pasgan giùlan reusanta. Tha an droch-rùn a’ fuireach ann an àite eile: ann an às dèidh an stàlaidh dubhan, no ann am bloc aig bonn clàr-amais.js a bhios a’ cur an gnìomh an t-àm a bhios feum air a’ mhodal.

Tha na luchdan air atharrachadh tro ìrean a-staigh le àireamh soilleir (bidh an gnìomhaiche a’ comharrachadh nan tachartasan telemeatraidh aige fhèin) sc1-, sc3-, sc4-, agus mar sin air adhart), agus ’s e a bhith a’ coimhead air an mean-fhàs sin an dòigh as soilleire air tuigse fhaighinn air an iomairt.

 Ginealach 1–2: taisgealadh agus goid git-config

B’ e goid fiosrachaidh sìmplidh a bh’ anns na pacaidean as tràithe. Nuair a chaidh an stàladh, chruinnich iad caochladairean àrainneachd, faidhle aoigheachd GitHub CLI, agus an rèiteachadh git cruinneil (rèiteachadh git –cruinneil –liosta, git iomallach -v), an uairsin POST am pasgan chun cheann-uidhe cruinneachaidh. Stèidhich seo ainm-sgrìobhte an obraiche: sgeulachd còmhdaich “goireasan dearbhaidh foirmean TypeScript”, comharra a-mach gu aon àrainn, agus blas airson teisteanasan leasaiche seach dàta luchd-cleachdaidh.

Ginealach 3: proban teicheadh ​​​​​​an hypervisor agus an kernel

Thionndaidh aon dreach meadhan-iomairt gu làidir a dh’ionnsaigh ionnsaighean bun-structair. An àite a bhith a’ goid rèiteachaidh, ruith e sgrùdadh acfhainn ath-sgrùdaidh. AF_VSOCK socaidean, roinnean virtio MMIO, /dev/mem, agus brataichean cruadhachadh eithne, agus eadhon oidhirpean air tubaistean eithne air an adhbhrachadh le sysrq - giùlan co-cheangailte ri oidhirpean briseadh a-mach à inneal no soitheach brìgheil. Na tagaichean telemetry (s0-vmm-ath-sgrùdadh, s1-vmm-vsock-fuzz, s2-vmm-mmio, s3-kernel-probe) rinn e an rùn soilleir. Bha an caochladh seo gu soilleir ag amas air àrainneachdan bogsa-gainmhich sgòthan agus ruitheadair gun fhrithealaiche — an seòrsa VM sealach a bhios a’ togail agus a’ dèanamh deuchainn air còd neo-earbsach.

Ginealach 3 (SC3): a’ chnuimh sgrìobhaidh thar-stòrais

Thàinig meadhan cudthromachd na h-iomairt gu bhith na mhèirleach stòrais fèin-sgaoilidh. Nuair a thèid a stàladh, bidh an luchd a’ ruith sreath còig-ìrean le ùine:

  • Ìre 0 (~100 ms): lorgan-meòir an aoigh — ainm an aoigh, fiosrachadh an neach-cleachdaidh, dearbh-aithne git.
  • Ìre 1 (~3 s): faigh a-mach dè an eagrachadh dhan bhuineas an neach-fulang le bhith a’ sgrùdadh git iomallach -v, an uairsin coimhead suas còd cruaidh ORG_CONFIG ruigsinneachd stòr-dàta is clàr deuchainn le git ls-iomallach — air a stiùireadh tro neach-ionaid SSRF fo smachd ionnsaigh aig http://git@192.168.0.1:8080.
  • Ìre 2 (~10 diogan): git clone gach stòr-tasgaidh a ghabhas ruighinn air an liosta targaid, tarball agus gzip a’ chraobh, base64-encode a dhèanamh dheth, agus chunk-exfiltrate a dhèanamh dheth.
  • Ìre 3 (~45 diogan): an “dearbhadh ruigsinneachd” — clòn stòr-tasgaidh a ghabhas sgrìobhadh, leig às faidhle leis an ainm SECURITY-POC.md, agus commit e leis an ùghdar air a shuidheachadh gu google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> agus an teachdaireachd chore: update dependency tasgadan, an uairsin brùth gu prìomh mheur an neach-fulang.

Chan eil an liosta targaid cruaidh-chòdaichte coitcheann. Tha barrachd air trithead ann. Shopify stòran-tasgaidh air an ainmeachadh — Shopify/shopify, Shopify/dearbh-aithne, Shopify/bileachadh, Shopify/seòladh, Shopify/dìomhaireachdan, Shopify/bun-structar, Shopify/.github, agus mòran eile — còmhla ri buidheann deuchainn, AaronStackBarnes, a tha coltas gu bheil an gnìomhaiche a’ cumail smachd air agus a’ cleachdadh mar an targaid sgrìobhaidh.

Ginealach 4 (SC4): crioptaichte agus geataichte

Tha an caochladh as ùire a tha mu choinneimh luchd-leasachaidh a’ cur dà shreath de sheachnadh air mullach a’ chnuimh SC3.

An toiseach, chan eil an luchd air a chur mar theacsa soilleir tuilleadh. Tha an fhìor loidsig ann am blob crioptaichte le AES-256-CBC, lib/.perf.dat, leis an IV anns a’ chiad sia-deug bytes aige. An luchdadair ann an clàr-amais.js ag ath-thogail an iuchair dhì-chrioptachaidh bho phìosan sreang ceangailte, a’ dì-chrioptachadh a’ bhlob, agus ga ruith le Gnìomh ùr ()Tha eadhon ainmean nam modalan air an roinn gus sganairean statach a sheachnadh — feumaidh('crioptaichte' + 'o'), feumaidh('f' + 's').

San dàrna àite, tha e fo smachd an aoigh. Chan eil aon caochladh a’ crioptachadh agus a’ ruith ach nuair a bhios ainm-aoigheachd os.os() co-ionann bogsa-leasachaidh or ubuntu-fc-uvm (bun-roghainn Firecracker microVM) no anns a bheil an fho-shreang bogsa-leasachaidhGeataichean eile air làthaireachd a .jules/ eòlaire-obrach:

Ann am faclan eile, tha an luchd SC4 air a dhealbhadh gus fuireach na chadal air laptop leasaiche àbhaisteach agus dùsgadh a-mhàin taobh a-staigh an àidseant AI fèin-ghluasadach agus àrainneachdan bogsa gainmhich Tha an gnìomhaiche dha-rìribh ag iarraidh co-rèiteachadh.

A’ tionndadh air an obair-lann: an caochladh bun-structair-anailis

Am pasgan as nuadh san iomairt, neach-cuideachaidh ts-enum, chan eil e a’ toirt ionnsaigh air luchd-leasachaidh no Shopify idir. postinstall.sh a’ fosgladh le geata a bheir seachad a’ gheama:

Chan eil an sgriobt a’ dèanamh dad mura tèid caochladair àrainneachd a shuidheachadh a tha sònraichte do àrd-ùrlar mion-sgrùdaidh malware. Nuair a bhios e, tha fios aig an luchd-cleachdaidh gu bheil e a’ ruith taobh a-staigh a’ bhogsa-gainmhich a tha ann gus pacaidean dìreach mar an tè seo a spreadhadh agus a sgrùdadh - agus bidh e a’ dèanamh ionnsaigh-an-aghaidh.

An toiseach, bidh e a’ tarraing comharra OAuth cunntas seirbheis GCP bhon fhrithealaiche meata-dhàta eisimpleir agus ga thoirt a-mach. An uairsin, a’ cleachdadh an comharra sin, bidh e a’ sguabadh an Plèana smachd Kubernetes ruigsinneach aig kubernetes.default.svc:

  • a’ liostadh ClusterRoleBindings, ClusterRoles, agus Nodan;
  • a’ sgrùdadh pods, dìomhaireachdan, agus mapaichean rèiteachaidh thar siostam ciùb, default, ciùb-poblach, màl-nòd-kube, agus an t-ainm-àite anailis;
  • a’ cur a-mach gairmean SelfSubjectAccessReview gus mapa dìreach a dhèanamh de na tha cead aig an dearbh-aithne a chaidh a ghoid a dhèanamh.

Mu dheireadh, bidh e a’ cleachdadh ainmean bucaid Google Cloud Storage le feachd brùideil a chaidh a thogail bho ID pròiseict GCP cruaidh-chòdaichte (tearc-soidhniche-437603-p9) agus àireamh a’ phròiseict, a’ tomhas measgachaidhean leithid *-togail, *-artifactan, agus grunnan mì-sgrùdadh- ro-leasachain (toraidhean malysis, pacaidean-malysis, sganaidhean-malysis). Thèid gach còd freagairt agus corp a chlàradh agus a phostadh air ais chun an aon rud cruinneachadh-jules crìoch-phuing.

Is e seo an aon chùis ainneamh far a bheil luchd-solair slabhraidh air a thogail gu sònraichte gus ionnsaigh a thoirt air bun-structar an luchd-dìon fhèin. Tha an sgeulachd còmhdaich air feadh na h-iomairt gu lèir - a tha a’ nochdadh pìosan dheth taobh a-staigh nan luchdan mar bheachdan a’ mìneachadh an giùlain mar “PoC Rannsachaidh Tèarainteachd… sgrìobhadh thar-stòrais tro chomharra proxy git thar-sgòpaichte” - mar an aon fhìreanachadh, ge bith an e monorepo Shopify no frithealaiche meata-dhàta a’ chnuasaich anailis an targaid ruith-ùine.

Clàr-ama & Imrich na Sgìre

Chan e obair aon-bhuille a th’ ann an JulesJacker. ’S e obair leantainneach a th’ ann a mhair às dèidh don chlàr a bhith air a thoirt às a chèile le bhith dìreach ag atharrachadh an ainm.

nuair tachartas
Meadhan a' Ghiblein 2026 Nochdaidh a’ chiad phasganan fo raon-obrach an fhoillsichear thùsail: TS-utility facade, àrainneachd agus git-config exfiltration.
Tràth sa Chèitean 2026 Chaidh caochladh sgrùdaidh Hypervisor agus kernel-escape fhoillseachadh.
Meadhan gu deireadh a' Chèitein 2026 Nochdaidh cnuimh sgrìobhaidh thar-stòraidh SC3 ri taobh luchdan a tha ag amas air Shopify agus google-labs-jules[bot] pearsanachadh. Tha SC4 a’ toirt a-steach luchdairean crioptaichte le AES agus fo gheataichean aoigheachd.
Deireadh a' Chèitein 2026 Bidh npm a’ toirt air falbh raon tùsail an fhoillsichear; bidh ainmean pacaid a’ fuasgladh gu bhith nan luchd-àite falamh a tha a’ cumail tèarainteachd.
An aon seachdain Bidh an gnìomhaiche ag imrich gu raon cha mhòr co-ionann agus ag ath-fhoillseachadh a’ chnuimh, a’ gabhail a-steach an caochladh bun-structair-anailis.

’S e an imrich am pàirt air am bu chòir do luchd-dìon suidhe ris. Cha do chuir toirt air falbh a’ chiad raon crìoch air an iomairt no eadhon ga slaodadh. Bha an gnìomhaiche air raon co-shìnte a chuir air dòigh mu thràth aig an robh ainm eadar-dhealaichte bhon fhear thùsail le aon charactar, agus lean e air a’ foillseachadh taobh a-staigh na h-aon seachdain. Aig àm sgrìobhaidh seo, tha an raon ùr… ts-form-utils (tionndaidhean 1.0.0 gu 1.1.0), a pròiseact-ts-lint (1.0.0 agus 1.1.0), agus an tè neo-eisimeileach neach-cuideachaidh ts-enum (1.0.0) fhathast ri stàladh.

Comharran Co-rèiteachaidh

Chaidh a h-uile comharra gu h-ìosal a dhearbhadh an aghaidh stòr a’ phacaid.

Type comharra Notaichean
Lìonra (C2) aaronstack[.]com/jules-collect Ceann-uidhe cruinneachaidh singilte thar gach ginealach; a’ faighinn telemetry JSON agus pìosan tarball stòrais base64-gzip.
Lìonra (progsaidh SSRF) http://git@192.168.0.1:8080 Aghaidh airson comharra proxy git ro-sgopaichte a thathas a’ cleachdadh gus ruighinn air stòran-tasgaidh na buidhne targaid.
Lìonra (neul) metadata.google.internal/computeMetadata/v1
kubernetes.default.svc
storage.googleapis.com/storage/v1/b
Air a chleachdadh a-mhàin leis an caochladh bun-structair-anailis airson goid chomharran agus sgrùdadh plèana-smachd Kubernetes.
Dearbh-aithne google-labs-jules[bot]
161369871+google-labs-jules[bot]@users.noreply.github.com
Airgiod commit dearbh-aithne an ùghdair air a phutadh a-steach do phrìomh mheuran an luchd-fulaing.
File lib/.perf.dat Blob luchd crioptaichte le AES-256-CBC; IV air a stòradh anns a’ chiad 16 bytes agus an iuchair air ath-thogail gu dinamach ann an index.js.
File SECURITY-POC.md Air a leigeil sìos agus commitair ais gu stòran luchd-fulaing leis an teachdaireachd chore: update dependency cache.
File scripts/postinstall.sh Geataichte air $MALYSIS_ANALYSIS_ID; a’ comharrachadh an caochladh a tha ag amas air bun-structar-anailis.
Giùlan os.hostname() sgrùdaidhean airson devbox / ubuntu-fc-uvm Geatachadh àrainneachd bogsa-gainmhich agus àidseant AI mus tèid an luchd a dhì-chrioptachadh agus a chur an gnìomh.
Giùlan .jules/ agus /app/.jules leughaidhean eòlaire Targaideadh soilleir air àrainneachdan àite-obrach riochdairean AI.
Giùlan sc1-, sc3-, sc4-, s0-vmm-recon Leubail ìre teilemeatraidh a tha air am mìneachadh leis an obraiche a tha feumail airson lorg agus sealg.
Targaid sgòthan rare-signer-437603-p9
malysis-* tomhasan bucaid
Aithnichearan pròiseict GCP le còd cruaidh agus pàtrain àireamhachaidh bucaid stòraidh air an leabachadh a-steach don chaochladh bun-structair anailis.
Cruth pacaid Aghaidh pasgan TS-goireis gun raon stòrais Teamplaid iomairt cunbhalach: pacaidean goireis TypeScript meallta le luchdan droch-rùnach air an leabachadh a-steach postinstall hooks no air a chur ris index.js.
innealan-sca-bathar-bog-innealan-anailis-co-dhèanamh
Thoir prìomhachas do chunnartan bathar-bog, dèan cinnteach gu bheil iad air an rèiteachadh, agus dèan cinnteach gu bheil iad tèarainte
Faigh do Chunntas an-asgaidh.
Chan eil feum air cairt creideas.

Dèan cinnteach à leasachadh is lìbhrigeadh do bhathar-bog

le Sreath Thoraidhean Xygeni