JulesJacker: Жасалма npm курту Jules AIнин кейпин кийип жүрөт

JulesJacker: Google'дун Jules агентинин кейпин кийген жасалма PoC npm курту — жана аны талдоо үчүн Sandbox'ту иштетет

TL; DR

Бир npm оператору алты жума бою жасалма TypeScript "пайдалуу" пакеттерин жарыялаган, мисалы ts-form-utils, ts-project-lint, жана ts-enum-helper.

Пакеттер кичинекей мыйзамдуу көрүнгөн текшерүү жардамчыларын көрсөтсө да, чыныгы пайдалуу жүктөм орнотууда же биринчи талап кылууда ишке ашат жана хосттун манжа изин, GitHub уюмун табуу, репозиторийди клондоо жана баштапкы кодун эксфильтрациялоону аткарат.

Зыяндуу программа, айрыкча, бир нече GitHub уюмдарын бутага алат. Shopify репозиторийлерди, андан кийин архивдеп, жеткиликтүү булак дарактарын борборлоштурулган чогултуу чекитине эксфильтрлейт.

Компромисстик жумуш агымынын бир бөлүгү катары, пайдалуу жүк commitsa файлын Google'дун автономдуу коддоо идентификациясын туурап, жабырлануучунун репозиторийлерине кайтарып берет google-labs-jules[bot].

Биз өнөктүктү көзөмөлдөдүк — аталган ЖюлсЖакер — бир нече жарыялоочулардын чөйрөсүндө жана кеминде беш пайдалуу жүктөм муундарында, анын ичинде шифрленген жана кумкоргонду билген варианттарда.

Эң жаңы вариант зыяндуу программаларды талдоо инфраструктурасына багытталган: ал талдоо чөйрөлөрүнүн ичинде гана активдештирет, булут метадайындарынын кызмат аккаунтунун токендерин уурдайт жана Kubernetes башкаруу пландарын жана булут сактоочу челектерин изилдейт.

Бардык пайдалуу жүк муундары боюнча бөлүшүлгөн негизги IOC - бул чогултуунун акыркы чекити aaronstack[.]com/jules-collect.

Оордугу: критикалык.

Кол салуу: ал кантип иштейт

Ар бир JulesJacker пакети бир эле шаблонду карманат. package.json MIT лицензиясы бар жана шилтемеленген булак репозиторийи жок зыянсыз TypeScript жардамчысын жарнамалайт. index.js бир ууч реалдуу, иштеген функцияларды — электрондук почта регекстерин, enum карталарын, линт эрежелеринин таблицаларын — экспорттойт, ошондуктан пакетти чындап импорттогон иштеп чыгуучу мүмкүн болгон жүрүм-турумду көрөт. Кара ниеттик башка жерде: бир орнотуудан кийинки илгичте же астыңкы жагындагы блокто index.js модуль талап кылынган учурда аткарат.

Пайдалуу жүктөр так номерленген ички этаптар аркылуу өнүккөн (оператор өзүнүн телеметрия окуяларын белгилейт sc1-, sc3-, sc4-, жана башкалар) жана эволюция өнөктүктү түшүнүүнүн эң ачык жолу экенин байкоо.

 1–2-муун: чалгындоо жана git-config уурдоосу

Эң алгачкы пакеттер жөнөкөй маалымат уурдоочулары болгон. Орнотуу учурунда алар чөйрөнүн өзгөрмөлөрүн, GitHub CLI хосттор файлын жана глобалдык git конфигурациясын чогултушкан (git config –global –list, git remote -v), андан кийин топтомду чогултуунун акыркы чекитине POST аркылуу жөнөттү. Бул оператордун колун орнотту: "TypeScript формасын текшерүү утилиталарынын" мукаба окуясын, бир доменге чыгуучу маякты жана керектөөчүлөрдүн маалыматтарына караганда иштеп чыгуучунун ишеним грамоталарына болгон табит.

3-муун: гипервизор жана ядродон качуу зонддору

Өнөктүктүн ортосундагы бир версия инфраструктуралык чабуулдарга катуу бурулган. Конфигурацияны уурдоонун ордуна, ал чалгындоо жабдыктарын текшерүүнү иштеткен. AF_VSOCK розеткалар, Virtio MMIO аймактары, / dev / mem, жана ядрону катуулатуу желекчелери, ал тургай sysrq тарабынан иштетилген ядронун кыйрашына аракеттер — виртуалдык машинадан же контейнерден чыгуу аракеттери менен байланышкан жүрүм-турум. Телеметрия тегдери (s0-vmm-recon, s1-vmm-vsock-fuzz, s2-vmm-mmio, s3-ядро-зонд) ниетин ачык айтты. Бул вариант ачык эле багытталган болчу булут-кумкоргон жана серверсиз-runner чөйрөлөрү — ишенимсиз кодду түзүп жана текшерген убактылуу виртуалдык машинанын бир түрү.

3-муун (SC3): кайчылаш репозиторий жазуу курту

Өнөктүктүн оордук борбору өзүн-өзү көбөйтүүчү репозиторий уурусуна айланган. Орнотулганда, пайдалуу жүк беш баскычтуу убакыт менен белгиленген ырааттуулукта иштейт:

  • Этап 0 (~100 мс): хостун манжа изи — хосттун аты, колдонуучу маалыматы, git идентификациясы.
  • Этап 1 (~3 с): текшерүү аркылуу жабырлануучу кайсы уюмга таандык экенин аныктоо git remote -v, андан кийин катуу коддолгон файлды издеңиз ORG_CONFIG таблицага жана тесттик репозиторийге кирүү мүмкүнчүлүгү менен git ls-remote — чабуулчу тарабынан башкарылган SSRF проксиси аркылуу багытталган http://git@192.168.0.1:8080.
  • Этап 2 (~10 сек): git клону максаттуу тизмедеги ар бир жеткиликтүү репозиторийди колдонуп, даракты tarball жана gzip менен иштетип, base64-коддоп, чөнтөк-эксфильтрациялаңыз.
  • Этап 3 (~45 с): “кирүүнүн далили” — жазылуучу репозиторду клондоштуруу, SECURITY-POC.md деп аталган файлды таштоо жана commit аны автор google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> деп коюп, билдирүүнүн негизги тапшырмасы: көз карандылык кэшин жаңыртуу, андан кийин жабырлануучунун негизги линия бутагына жөнөтүү.

Катуу коддолгон максаттуу тизме жалпы эмес. Анда отуздан ашык тизме келтирилген. Shopify аты-жөнү боюнча репозиторийлер — Shopify/shopify, Shopify/идентификация, Shopify/эсеп-кысап, Shopify/кампа, Shopify/сырлар, Shopify/инфраструктура, Shopify/.githubжана башка көптөгөн нерселер — тест уюму менен бирге, АаронСтэкБарнс, оператор башкарып жаткандай жана жазуу максаты катары колдонот.

4-муун (SC4): шифрленген жана дарбазаланган

Эң жаңы иштеп чыгуучуларга багытталган вариант SC3 куртунун үстүнө эки катмар качууну кошот.

Биринчиден, пайдалуу жүк мындан ары жөнөкөй текст катары жөнөтүлбөйт. Чыныгы логика AES-256-CBC менен шифрленген блокто жайгашкан, lib/.perf.dat, IV анын алгачкы он алты байтында. Жүктөөчү index.js бириктирилген сап фрагменттеринен чечмелөө ачкычын кайра түзөт, блобду чечмелейт жана аны менен иштетет жаңы функция()Статикалык сканерлерден качуу үчүн модулдардын аталыштары да бөлүнгөн — талап кылуу('crypt' + 'o'), талап кылуу('f' + 's').

Экинчиден, ал хост тарабынан дарбазаланган. Бир варианты чечмеленип, качан гана иштейт os.hostname() барабар иштеп чыгуучу кутуча or ubuntu-fc-uvm (Firecracker microVM демейки) же суб-сапчаны камтыйт иштеп чыгуучу кутуча... дагы бир дарбаза бар .жулс/ жумушчу каталог:

Башкача айтканда, SC4 пайдалуу жүктөмү кадимки иштеп чыгуучунун ноутбугунда уктап турууга жана автоматташтырылган AI-агенттин ичинде гана ойгонууга ылайыкташтырылган жана кумдуу чөйрөлөр оператор чындыгында компромисске баргысы келет.

Лабораторияны иштетүү: Анализ-инфраструктура варианты

Кампаниядагы эң жаңы топтом, ts-enum-жардамчысы, иштеп чыгуучуларга же Shopify'га такыр кол салбайт. Анын postinstall.sh оюнду өткөрүп жиберүүчү дарбаза менен ачылат:

Скрипт зыяндуу программалык камсыздоону талдоо платформасына тиешелүү чөйрө өзгөрмөсү орнотулмайынча эч нерсе кылбайт. Ал орнотулганда, пайдалуу жүктөө дал ушул сыяктуу пакеттерди жардыруу жана изилдөө үчүн бар болгон кумкоргондун ичинде иштеп жатканын билет жана каршы чабуулдарды жасайт.

Алгач ал GCP кызмат аккаунтунун OAuth токенин инстанция метадайындар серверинен алып, аны фильтрлейт. Андан кийин, ошол токенди колдонуп, шыпырып салат Kubernetes башкаруу учагы даректе жетүүгө болот kubernetes.default.svc:

  • ClusterRoleBindings, ClusterRoles жана Nodes тизмесин түзөт;
  • зонддор, сырлар жана конфигурация карталары аркылуу кубе-системасы, жарыяланбаган, kube-public, kube-node-лизингжана талдоо аталыш мейкиндиги;
  • уурдалган инсандык эмне кылууга уруксат берилгенин так картага түшүрүү үчүн SelfSubjectAccessReview чакырыктарын аткарат.

Акырында, ал катуу коддолгон GCP долбоорунун IDсинен түзүлгөн Google Cloud Storage чака аттарын күч менен мажбурлайт (сейрек кездешүүчү-кол коюучу-437603-p9) жана долбоордун номери, мисалы, айкалыштарды божомолдоо *-курулуштар, *-артефакттарЖана бир нече мализи- префикстер (анализдин жыйынтыктары, мализистин пакеттери, мализисте текшерүү). Ар бир жооп коду жана негизги бөлүгү катталып, ошол эле жерге жөнөтүлөт Жюль-коллекция акыркы чекит.

Бул коргоочулардын өздөрүнүн инфраструктурасына кол салуу үчүн атайын курулган жеткирүү чынжырынын пайдалуу жүктөөсүнүн сейрек кездешүүчү учуру. Бүтүндөй кампания боюнча мукаба окуясы — анын үзүндүлөрү пайдалуу жүктөрдүн ичинде "Коопсуздук изилдөө PoC ... ашыкча масштабдалган git прокси токени аркылуу кайчылаш репозиторий жазуу" катары жүрүм-турумду чагылдырган комментарийлер катары пайда болот — иштөө убактысынын максаты Shopify монорепосубу же анализ кластеринин метадайындар сервериби, ошол эле өзүн-өзү актоо болуп саналат.

Убакыт тилкеси жана масштабдык миграция

JulesJacker бир эле учурда жок болуп кетпейт. Бул жөн гана атын өзгөртүү менен реестрди алып салуудан аман калган узак мөөнөттүү операция.

качан окуя
Апрелдин ортосунда 2026 Биринчи пакеттер баштапкы жарыялоочунун чөйрөсүндө пайда болот: TS-utility фасады, айлана-чөйрө жана git-config эксфилтрациясы.
2026-жылдын май айынын башында Гипервизор жана ядродон качуу чалгындоо варианты жарыяланды.
2026-жылдын май айынын ортосунан аягына чейин SC3 кайчылаш репозиторий жазуу курту Shopifyга багытталган жүктөмдөрдүн жанында пайда болот жана google-labs-jules[bot] башка бирөөнүн атынан жазуу. SC4 AES менен шифрленген жана хост менен дарбазаланган жүктөгүчтөрдү киргизет.
2026-жылдын май айынын аягы npm баштапкы жарыялоочунун көлөмүн алып салат; пакет аталыштары бош коопсуздукту сактоочу орун толтургучтарга чечилет.
Ошол эле аптада Оператор дээрлик бирдей көрүнүштөгү алкакка өтүп, талдоо-инфраструктура вариантын кошо алганда, куртту кайра жарыялайт.

Миграцияны коргоочулар эске алышы керек болгон нерсе. Биринчи оптикалык прицепти алып салуу өнөктүктү токтоткон жок, ал тургай жайлаткан жок. Оператор буга чейин эле аталышы түпнускасынан бир гана символ менен айырмаланган параллелдүү оптикалык прицепти даярдап койгон жана ошол эле жуманын ичинде жарыялоону уланткан. Бул жазылып жаткан учурда, жаңы оптикалык прицептин... ts-формасынын утилиталары (1.0.0дон 1.1.0го чейинки версиялары), анын ts-долбоор-линт (1.0.0 жана 1.1.0), жана өз алдынча ts-enum-жардамчысы (1.0.0) орнотууга болот.

Компромисс көрсөткүчтөрү

Төмөндөгү бардык көрсөткүчтөр таңгактын булагына карата тастыкталды.

түрү көрсөткүч жазуулар
Тармак (C2) aaronstack[.]com/jules-collect Ар бир муун үчүн бирдиктүү коллекциянын акыркы чекити; JSON телеметриясын жана base64-gzip репозиторийинин тарбол бөлүктөрүн кабыл алат.
Тармак (SSRF прокси) http://git@192.168.0.1:8080 Максаттуу уюмдун репозиторийлерине жетүү үчүн колдонулган ашыкча масштабдалган git прокси токенинин фронту.
Тармак (булут) metadata.google.internal/computeMetadata/v1
kubernetes.default.svc
storage.googleapis.com/storage/v1/b
Токендерди уурдоо жана Kubernetes башкаруу учагындагы чалгындоо үчүн аналитикалык инфраструктура варианты тарабынан гана колдонулат.
окшоштук google-labs-jules[bot]
161369871+google-labs-jules[bot]@users.noreply.github.com
өнөктөштүк commit автордун инсандыгы жабырлануучунун негизги линиялык тармактарына киргизилди.
File lib/.perf.dat AES-256-CBC менен шифрленген пайдалуу жүктөө блогу; IV алгачкы 16 байтта сакталат жана ачкыч динамикалык түрдө кайра курулат index.js.
File SECURITY-POC.md Түшүрүлдү жана commitбилдирүү менен жабырлануучунун сактоочу жайларына кайра жөнөтүлдү chore: update dependency cache.
File scripts/postinstall.sh Дарбазалуу $MALYSIS_ANALYSIS_ID; талдоо-инфраструктура-максаттуу вариантын аныктайт.
Жүрүш-туруш os.hostname() үчүн текшерет devbox / ubuntu-fc-uvm Пайдалуу жүктү чечмелөө жана аткаруудан мурун Sandbox жана AI-агент чөйрөсүн башкаруу.
Жүрүш-туруш .jules/ жана /app/.jules каталог окуйт Жасалма интеллект-агенттин жумушчу чөйрөлөрүн ачык максаттуу багыттоо.
Жүрүш-туруш sc1-, sc3-, sc4-, s0-vmm-recon Оператор тарабынан аныкталган телеметрия баскычынын белгилери аныктоо жана издөө үчүн пайдалуу.
Булут максаты rare-signer-437603-p9
malysis-* чака божомолдору
Анализ-инфраструктура вариантына киргизилген катуу коддолгон GCP долбоорунун идентификаторлору жана сактагыч-чаканы саноо үлгүлөрү.
Пакеттин формасы Репозиторий талаасы жок TS-утилиталык пакеттин фасады Ырааттуу кампания шаблону: зыяндуу жүктөмдөрү камтылган жасалма TypeScript утилиталык пакеттери postinstall hooks же тиркелген index.js.
sca-tools-программалык-композициялык-талдоо-куралдары
Программалык камсыздооңуздун тобокелдиктерин артыкчылыктуу деп эсептеңиз, оңдоңуз жана коопсуздугун камсыз кылыңыз
Акысыз аккаунтуңузду алыңыз.
Насыя картасы талап кылынбайт.

Программалык камсыздоону иштеп чыгууну жана жеткирүүнү камсыз кылыңыз

Xygeni Product Suite менен