JulesJacker: Mwydyn npm ffug yn dynwared Jules AI

JulesJacker: Mwydyn npm Ffug-PoC sy'n Dynwared Asiant Jules Google - ac yn Troi ymlaen y Sandbox sy'n ei Ddadansoddi

TL; DR

Treuliodd un gweithredwr npm chwe wythnos yn cyhoeddi pecynnau "cyfleustodau" TypeScript ffug fel ts-form-utils, ts-project-lint, a ts-enum-helper.

Er bod y pecynnau'n datgelu cynorthwywyr dilysu bach sy'n edrych yn gyfreithlon, mae'r llwyth tâl go iawn yn gweithredu ar y gosodiad neu'r gofyniad cyntaf ac yn perfformio olion bysedd gwesteiwr, darganfod sefydliad GitHub, clonio ystorfa, ac all-hidlo cod ffynhonnell.

Mae'r meddalwedd faleisus yn targedu sefydliadau GitHub gwerth uchel yn benodol, gan gynnwys nifer o Shopify ystorfeydd, yna'n archifo ac yn allhidlo coed ffynhonnell y gellir eu cyrraedd i bwynt terfynol casgliad canolog.

Fel rhan o'r llif gwaith cyfaddawdu, y llwyth tâl commitffeil sa yn ôl i ystorfeydd dioddefwyr wrth efelychu hunaniaeth codio ymreolaethol Google google-labs-jules[bot].

Fe wnaethon ni olrhain yr ymgyrch — wedi'i enwi JulesJacker — ar draws cwmpasau cyhoeddwyr lluosog ac o leiaf bum cenhedlaeth llwyth tâl, gan gynnwys amrywiadau wedi'u hamgryptio ac sy'n ymwybodol o flwch tywod.

Mae'r amrywiad diweddaraf yn targedu seilwaith dadansoddi meddalwedd faleisus yn benodol: mae'n actifadu y tu mewn i amgylcheddau dadansoddi yn unig, yn dwyn tocynnau cyfrif gwasanaeth metadata cwmwl, ac yn archwilio awyrennau rheoli Kubernetes a bwcedi storio cwmwl.

Y prif IOC a rennir ar draws pob cenhedlaeth llwyth tâl yw'r pwynt terfyn casglu aaronstack[.]com/jules-collect.

Difrifoldeb: critigol.

Yr Ymosodiad: Sut Mae'n Gweithio

Mae pob pecyn JulesJacker yn dilyn yr un templed. pecyn.json yn hysbysebu cynorthwyydd TypeScript diniwed gyda thrwydded MIT a dim storfa ffynhonnell gysylltiedig. Y mynegai.js yn allforio llond llaw o swyddogaethau go iawn, gweithredol — regexes e-bost, mapiau enum, tablau rheolau lint — fel bod datblygwr sy'n mewnforio'r pecyn mewn gwirionedd yn gweld ymddygiad credadwy. Mae'r maleis yn byw mewn man arall: mewn a ôl-osod bachyn, neu mewn bloc ar waelod mynegai.js sy'n gweithredu'r foment y mae angen y modiwl.

Mae'r llwythi tâl wedi esblygu trwy gamau mewnol wedi'u rhifo'n glir (mae'r gweithredwr yn labelu ei ddigwyddiadau telemetreg ei hun) sc1-, sc3-, sc4-, ac yn y blaen), a gwylio'r esblygiad hwnnw yw'r ffordd gliriaf o ddeall yr ymgyrch.

 Cenhedlaeth 1–2: rhagchwilio a lladrad git-config

Roedd y pecynnau cynharaf yn lladron gwybodaeth syml. Wrth eu gosod, fe wnaethon nhw gasglu newidynnau amgylcheddol, ffeil cynnal CLI GitHub, a'r cyfluniad git byd-eang (ffurfweddiad git –byd-eang –rhestr, git o bell -v), yna POSTIO'r bwndel i derfynbwynt y casgliad. Sefydlodd hyn lofnod y gweithredwr: stori eglurhaol “cyfleustodau dilysu ffurflenni TypeScript”, goleudy allanol i un parth, a blas am gymwysterau datblygwr yn hytrach na data defnyddwyr.

Cenhedlaeth 3: chwiliedyddion dianc hypervisor a chnewyllyn

Roedd un fersiwn yng nghanol yr ymgyrch yn troi'n gryf i ymosodiadau seilwaith. Yn lle dwyn cyfluniad, fe redodd chwiliad harnais rhagchwilio AF_VSOCK socedi, rhanbarthau virtio MMIO, /datblygwr/cof, a baneri caledu cnewyllyn, a hyd yn oed ymgais i ddamwain cnewyllyn a sbardunwyd gan sysrq — ymddygiad sy'n gysylltiedig ag ymdrechion i dorri allan o beiriant neu gynhwysydd rhithwir. Y tagiau telemetreg (s0-vmm-recon, s1-vmm-vsock-ffwff, s2-vmm-mmio, s3-cernel-probe) gwnaeth y bwriad yn glir. Roedd yr amrywiad hwn wedi'i anelu'n amlwg at amgylcheddau blwch tywod cwmwl a rhedegwr di-weinydd — y math o VM dros dro sy'n adeiladu ac yn profi cod di-ymddiried.

Cenhedlaeth 3 (SC3): y mwydyn ysgrifennu traws-repo

Daeth canolbwynt disgyrchiant yr ymgyrch yn lleidr repo hunan-ymlediadol. Ar y gosodiad, mae'r llwyth tâl yn rhedeg dilyniant amseredig pum cam:

  • Cam 0 (~100 ms): olrhain olion bysedd y gwesteiwr — enw'r gwesteiwr, gwybodaeth am y defnyddiwr, hunaniaeth git.
  • Cam 1 (~3 eiliad): pennu i ba sefydliad y mae'r dioddefwr yn perthyn drwy archwilio git o bell -v, yna chwiliwch am god caled CYFUNIAD_ORG mynediad i'r tabl a'r repositori prawf gyda git ls-remote — wedi'i gyfeirio trwy ddirprwy SSRF a reolir gan ymosodwr yn http://git@192.168.0.1:8080.
  • Cam 2 (~10 eiliad): git clone pob storfa y gellir ei chyrraedd yn y rhestr dargedau, tarball a gzipio'r goeden, ei hamgodio â base64, a'i hallhidlo â chunks.
  • Cam 3 (~45 eiliad): y “prawf mynediad” — clonio repo ysgrifenadwy, gollwng ffeil o'r enw SECURITY-POC.md, a commit gyda'r awdur wedi'i osod i google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> a'r neges chore: update dependency cache, yna gwthio i brif gangen y dioddefwr.

Nid yw'r rhestr dargedau wedi'i chodio'n galed yn generig. Mae'n rhestru mwy na thri deg Shopify ystorfeydd yn ôl enw — Shopify/shopify, Shopify/hunaniaeth, Shopify/bilio, Shopify/vault, Shopify/cyfrinachau, Shopify/seilwaith, Shopify/.github, a llawer mwy — ochr yn ochr â sefydliad prawf, AaronStackBarnes, y mae'n ymddangos bod y gweithredwr yn ei reoli ac yn ei ddefnyddio fel y targed ysgrifennu.

Cenhedlaeth 4 (SC4): wedi'i amgryptio a'i giatio

Mae'r amrywiad diweddaraf sy'n wynebu datblygwyr yn ychwanegu dwy haen o osgoi ar ben y mwydyn SC3.

Yn gyntaf, nid yw'r llwyth tâl yn cael ei gludo fel testun plaen mwyach. Mae'r rhesymeg go iawn mewn blob wedi'i amgryptio ag AES-256-CBC, lib/.perf.dat, gyda'r IV yn ei un ar bymtheg beit cyntaf. Y llwythwr yn mynegai.js yn ail-greu'r allwedd dadgryptio o ddarnau llinyn cyfun, yn dadgryptio'r blob, ac yn ei redeg gyda Swyddogaeth newydd()Mae hyd yn oed enwau'r modiwlau wedi'u rhannu i osgoi sganwyr statig — gofyn am('crypt' + 'o'), gofyn am('f' + 's').

Yn ail, mae'n cael ei gatio gan y gwesteiwr. Dim ond pan fydd un amrywiad yn dadgryptio ac yn rhedeg os.hostname() yn hafal blwch datblygu or ubuntu-fc-uvm (diofyn microVM Firecracker) neu'n cynnwys yr is-linyn blwch datblyguGatiau eraill ar bresenoldeb a .jules/ cyfeiriadur gweithio:

Mewn geiriau eraill, mae llwyth tâl SC4 wedi'i gynllunio i aros yn segur ar liniadur datblygwr cyffredin a deffro dim ond y tu mewn i'r asiant AI awtomataidd a amgylcheddau blwch tywod mae'r gweithredwr mewn gwirionedd eisiau cyfaddawdu.

Troi’r Labordy Ymlaen: yr Amrywiad Dadansoddi-Seilwaith

Y pecyn mwyaf newydd yn yr ymgyrch, cynorthwyydd-ts-enum, nid yw'n ymosod ar ddatblygwyr na Shopify o gwbl. Ei postinstall.sh yn agor gyda giât sy'n datgelu'r gêm:

Nid yw'r sgript yn gwneud dim oni bai bod newidyn amgylcheddol penodol i blatfform dadansoddi meddalwedd faleisus wedi'i osod. Pan fydd, mae'r llwyth tâl yn gwybod ei fod yn rhedeg y tu mewn i'r blwch tywod sy'n bodoli i ffrwydro ac astudio pecynnau yn union fel hwn - ac mae'n gwrth-ymosod.

Yn gyntaf mae'n tynnu'r tocyn OAuth cyfrif gwasanaeth GCP o weinydd metadata'r achos ac yn ei all-hidlo. Yna, gan ddefnyddio'r tocyn hwnnw, mae'n ysgubo'r Plân rheoli Kubernetes cyraeddadwy yn kubernetes.default.svc:

  • yn rhestru RhwymiadauRôlCluster, RôlCluster, a Nodau;
  • yn archwilio podiau, cyfrinachau, a mapiau ffurfweddu ar draws system-ciwb, diofyn, ciwb-cyhoeddus, prydles nod-kube, a'r gofod enwau dadansoddi;
  • yn cyhoeddi galwadau SelfSubjectAccessReview i fapio'n union beth y caniateir i'r hunaniaeth sydd wedi'i dwyn ei wneud.

Yn olaf, mae'n gorfodi enwau bwcedi Google Cloud Storage yn greulon ac wedi'u hadeiladu o ID prosiect GCP wedi'i godio'n galed (prin-lofnodwr-437603-p9) a rhif y prosiect, gan ddyfalu cyfuniadau fel *-adeiladau, *-arteffactau, ac amryw malysis- rhagddodiaid (canlyniadau-malysis, pecynnau-malysis, sganiau-malysis). Mae pob cod a chorff ymateb yn cael ei gofnodi a'i bostio yn ôl i'r un jules-casgliad diweddbwynt.

Dyma'r achos prin o lwyth tâl cadwyn gyflenwi wedi'i adeiladu'n benodol i ymosod ar seilwaith yr amddiffynwyr eu hunain. Mae'r stori eglurhaol ar draws yr ymgyrch gyfan - y mae darnau ohoni'n ymddangos y tu mewn i'r llwythi tâl fel sylwadau sy'n fframio'r ymddygiad fel "PoC Ymchwil Diogelwch ... ysgrifennu traws-repo trwy docyn dirprwy git wedi'i or-sgopio" - yr un hunan-gyfiawnhad, boed y targed amser rhedeg yn monorepo Shopify neu'n weinydd metadata'r clwstwr dadansoddi.

Amserlen a Mudo'r Cwmpas

Nid yw JulesJacker yn weithrediad un-ergyd. Mae'n weithrediad parhaus a oroesodd ddileu cofrestrfa trwy newid ei enw yn unig.

Pryd Digwyddiad
Canol Ebrill 2026 Mae'r pecynnau cyntaf yn ymddangos o dan gwmpas gwreiddiol y cyhoeddwr: ffasâd TS-utility, amgylchedd ac exfiltration git-config.
Dechrau Mai 2026 Cyhoeddwyd amrywiad rhagchwilio hypervisor ac cnewyllyn-dianc.
Canol i ddiwedd mis Mai 2026 Mae mwydyn ysgrifennu traws-repo SC3 yn ymddangos ochr yn ochr â llwythi tâl sy'n cael eu targedu gan Shopify a google-labs-jules[bot] dynwared. Mae SC4 yn cyflwyno llwythwyr wedi'u hamgryptio gan AES a'u rheoli gan y gwesteiwr.
Diwedd mis Mai 2026 Mae npm yn dileu cwmpas gwreiddiol y cyhoeddwr; mae enwau pecynnau'n datrys i fod yn llefydd gwag sy'n dal diogelwch.
Yr un wythnos Mae'r gweithredwr yn mudo i gwmpas bron yn union yr un fath ac yn ailgyhoeddi'r mwydyn, gan gynnwys yr amrywiad seilwaith-dadansoddi.

Y mudo yw'r rhan y dylai amddiffynwyr ei hystyried. Ni wnaeth tynnu'r cwmpas cyntaf i lawr ddod â'r ymgyrch i ben nac ei harafu hyd yn oed. Roedd y gweithredwr eisoes wedi llwyfannu cwmpas cyfochrog y mae ei enw'n wahanol i'r gwreiddiol gan un cymeriad, ac yn parhau i gyhoeddi o fewn yr un wythnos. Hyd at ysgrifennu hwn, mae'r cwmpas newydd ts-form-utils (fersiynau 1.0.0 hyd at 1.1.0), ei ts-prosiect-lint (1.0.0 ac 1.1.0), a'r un annibynnol cynorthwyydd-ts-enum (1.0.0) yn parhau i fod yn osodadwy.

Dangosyddion Cyfaddawd

Cadarnhawyd yr holl ddangosyddion isod yn erbyn ffynhonnell y pecyn.

math Dangosydd Nodiadau
Rhwydwaith (C2) aaronstack[.]com/jules-collect Un pwynt terfynol casgliad ar draws pob cenhedlaeth; yn derbyn telemetreg JSON a darnau tarball ystorfa base64-gzip.
Rhwydwaith (dirprwy SSRF) http://git@192.168.0.1:8080 Blaen ar gyfer tocyn dirprwy git gor-gwmpas a ddefnyddir i gyrraedd ystorfeydd sefydliad targed.
Rhwydwaith (cwmwl) metadata.google.internal/computeMetadata/v1
kubernetes.default.svc
storage.googleapis.com/storage/v1/b
Fe'i defnyddir gan yr amrywiad seilwaith-dadansoddi yn unig ar gyfer lladrad tocynnau a rhagchwilio awyren reoli Kubernetes.
Hunaniaeth google-labs-jules[bot]
161369871+google-labs-jules[bot]@users.noreply.github.com
Gofannu commit hunaniaeth awdur wedi'i gwthio i ganghennau prif linell y dioddefwr.
Ffeil lib/.perf.dat Blob llwyth tâl wedi'i amgryptio ag AES-256-CBC; IV wedi'i storio yn y 16 beit cyntaf ac allwedd wedi'i hail-greu'n ddeinamig yn index.js.
Ffeil SECURITY-POC.md Wedi'i ollwng a commitwedi'i anfon yn ôl i ystorfeydd dioddefwyr gyda'r neges chore: update dependency cache.
Ffeil scripts/postinstall.sh Wedi'i giatio ymlaen $MALYSIS_ANALYSIS_ID; yn nodi'r amrywiad sy'n targedu seilwaith-dadansoddi.
Ymddygiadol os.hostname() gwiriadau ar gyfer devbox / ubuntu-fc-uvm Gatio amgylchedd blwch tywod ac asiant AI cyn dadgryptio a gweithredu'r llwyth tâl.
Ymddygiadol .jules/ ac /app/.jules darlleniadau cyfeiriadur Targedu amgylcheddau gweithle asiantau AI yn benodol.
Ymddygiadol sc1-, sc3-, sc4-, s0-vmm-recon Labeli cam telemetreg a ddiffiniwyd gan weithredwr sy'n ddefnyddiol ar gyfer canfod a hela.
Targed cwmwl rare-signer-437603-p9
malysis-* dyfaliadau bwced
Dynodwyr prosiect GCP wedi'u codio'n galed a phatrymau rhestru bwcedi storio wedi'u hymgorffori yn yr amrywiad seilwaith dadansoddi.
Siâp y pecyn Ffasâd pecyn cyfleustodau TS heb faes ystorfa Templed ymgyrch gyson: pecynnau cyfleustodau TypeScript ffug gyda llwythi tâl maleisus wedi'u hymgorffori ynddynt postinstall hooks neu wedi'i atodi at index.js.
offer-sca-meddalwedd-offer-dadansoddi-cyfansoddiad
Blaenoriaethu, cywiro a diogelu eich risgiau meddalwedd
Cael eich Cyfrif Am Ddim.
Nid oes angen cerdyn credyd.

Sicrhau eich Datblygiad a Chyflwyniad Meddalwedd

gyda Phecyn Cynnyrch Xygeni