ХИБ; DR
Як оператори як npm шаш ҳафтаро барои нашри бастаҳои қалбакии "ёрдамчии" TypeScript, ба монанди ts-form-utils, ts-project-lintва ts-enum-helper.
Дар ҳоле ки бастаҳо ёварони хурди тасдиқкунандаи ба назар қонунӣ монандро фош мекунанд, бори воқеӣ ҳангоми насб ё аввал талаб кардан иҷро мешавад ва ангушти мизбон, кашфи созмони GitHub, клонидани анбор ва хориҷ кардани рамзи сарчашмаро иҷро мекунад.
Нармафзори зараровар махсусан ташкилотҳои дорои арзиши баланд GitHub, аз ҷумла якчанд ... Shopify анборҳо, сипас бойгонӣ ва дарахтони манбаъи дастрасро ба нуқтаи ниҳоии ҷамъоварии марказонидашуда интиқол медиҳад.
Ҳамчун як қисми ҷараёни кори созиш, бори гарон commitфайли sa-ро ба анборҳои қурбонӣ баргардонед ва дар айни замон шахсияти рамзгузории мустақили Google-ро тақлид кунед google-labs-jules[bot].
Мо маъракаро пайгирӣ кардем - номгузорӣ шуд ҶулсҶекер — дар доираи доираи гуногуни ноширон ва ҳадди аққал панҷ насли боркунӣ, аз ҷумла вариантҳои рамзгузорӣшуда ва бо қуттии рег огоҳ.
Варианти навтарин махсусан инфрасохтори таҳлили нармафзори зарароварро ҳадаф қарор медиҳад: он танҳо дар дохили муҳитҳои таҳлилӣ фаъол мешавад, токенҳои хидматрасонии ҳисоби метамаълумоти абриро дуздидааст ва сатилҳои идоракунии Kubernetes ва сатилҳои нигоҳдории абрро месанҷад.
Нуқтаи ниҳоии ҷамъоварӣ, ки IOC-и асосӣ дар байни ҳамаи наслҳои боркашӣ муштарак аст, мебошад. aaronstack[.]com/jules-collect.
Шиддат: муҳим.
Ҳамла: Чӣ тавр он кор мекунад
Ҳар як бастаи JulesJacker аз ҳамон шаблон пайравӣ мекунад. бастаи.json як ёвари безарар TypeScript-ро бо иҷозатномаи MIT ва бе анбори сарчашмаи пайвандшуда таблиғ мекунад. индекс.js як мушт функсияҳои воқеӣ ва корӣ - регексҳои почтаи электронӣ, харитаҳои enum, ҷадвалҳои қоидаҳои lint - содир мекунад, то таҳиягаре, ки воқеан бастаро ворид мекунад, рафтори имконпазирро бубинад. Бадхоҳӣ дар ҷои дигар зиндагӣ мекунад: дар пас аз насб кардан қалмоқча, ё дар блоке дар поёни индекс.js ки лаҳзаи зарурии модулро иҷро мекунад.
Борҳои муфид тавассути марҳилаҳои дохилии ба таври возеҳ рақамгузорӣшуда таҳаввул ёфтаанд (оператор рӯйдодҳои телеметрии худро нишон медиҳад) sc1-, sc3-, sc4-, ва ғайра) ва мушоҳида кардани он, ки эволютсия роҳи равшантарини фаҳмидани ин маърака аст.
Насли 1-2: разведка ва дуздии git-config
Аввалин бастаҳо дуздони оддии иттилоот буданд. Ҳангоми насб онҳо тағирёбандаҳои муҳит, файли мизбонҳои GitHub CLI ва конфигуратсияи глобалии git (git config –global –list, git remote -v), сипас бастаро ба нуқтаи ниҳоии ҷамъоварӣ POST кард. Ин имзои операторро муқаррар кард: ҳикояи муқоваи "утилитаҳои тасдиқи шакли TypeScript", маяки содиротӣ ба як домен ва завқ ба эътимодномаҳои таҳиягар ба ҷои маълумоти истеъмолкунанда.
Насли 3: зондҳои фирори гипервизор ва ядро
Як версияи миёнаи маърака ба ҳамлаҳои инфрасохторӣ табдил ёфт. Ба ҷои дуздидани конфигуратсия, он санҷиши ҷиҳози бознигариро иҷро кард. AF_VSOCK розеткаҳо, минтақаҳои MMIO-и виртуалӣ, /dev/mem, ва парчамҳои сахтшавии ядро ва ҳатто кӯшишҳои садамаҳои ядро, ки аз ҷониби sysrq ангехта мешаванд - рафтори марбут ба кӯшишҳои берун рафтан аз мошини виртуалӣ ё контейнер. Тегҳои телеметрӣ (s0-vmm-recon, s1-vmm-vsock-fuzz, s2-vmm-mmio, s3-ядро-зонд) ниятро возеҳ баён кард. Ин вариант ба таври возеҳ ба он нигаронида шуда буд муҳитҳои қуттии реги абрӣ ва муҳитҳои бе сервер-давранда — навъи VM-и муваққатӣ, ки рамзи нобоварро месозад ва месанҷад.
Насли 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 сония): клун ҳар як анбори дастрас дар рӯйхати ҳадаф, дарахтро бо фармони tarball иҷро кунед ва онро gzip кунед, онро base64-encode кунед ва онро chunk-exfiltrate кунед.
- Даври 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 илова мекунад.
Аввалан, боркунӣ дигар ҳамчун матни оддӣ фиристода намешавад. Мантиқи аслӣ дар як blob рамзгузоришудаи AES-256-CBC ҷойгир аст, lib/.perf.dat, бо IV дар шонздаҳ байт аввали он. Боркунак дар индекс.js калиди рамзкушоиро аз пораҳои сатрии пайвастшуда аз нав месозад, blob-ро рамзкушо мекунад ва онро бо он иҷро мекунад Функсияи нав()Ҳатто номҳои модулҳо барои пешгирӣ аз сканерҳои статикӣ тақсим карда шудаанд — талаб мекунад('crypt' + 'o'), талаб мекунад('f' + 's').
Дуюм, он аз ҷониби мизбон даргиронида шудааст. Як вариант танҳо вақте рамзкушоӣ мекунад ва кор мекунад, ки номи OS.host() баробар аст қуттии таҳиякунанда or ubuntu-fc-uvm (пешфарзи microVM Firecracker) ё зерсатрро дар бар мегирад қуттии таҳиякунандаДарвозаҳои дигар дар ҳузури .ҷулес/ феҳристи корӣ:
Ба ибораи дигар, боркунии SC4 барои дар ноутбуки як таҳиягари оддӣ бефаъол будан ва танҳо дар дохили агенти автоматии зеҳни сунъӣ бедор шудан тарҳрезӣ шудааст. муҳити қум оператор дар асл мехоҳад созиш кунад.
Фаъол кардани лаборатория: Варианти таҳлил-инфрасохтор
Бастаи навтарин дар маърака, ёвари ts-enum, умуман ба таҳиягарон ё Shopify ҳамла намекунад. Ин postinstall.sh бо дарвозае кушода мешавад, ки бозиро ба даст меорад:
Скрипт ҳеҷ кор намекунад, агар тағирёбандаи муҳити мушаххасе, ки ба платформаи таҳлили нармафзори зараровар хос аст, муқаррар карда нашавад. Вақте ки ин муқаррар карда мешавад, скрипт медонад, ки он дар дохили қуттии рег, ки барои таркондан ва омӯхтани бастаҳо маҳз ба монанди ин вуҷуд дорад, кор мекунад ва он ҳамлаҳои муқобилро анҷом медиҳад.
Аввал он токени GCP-ҳисоби хидматрасонии OAuth-ро аз сервери метамаълумоти инстансӣ мегирад ва онро филтр мекунад. Сипас, бо истифода аз ин токен, онро тоза мекунад. Ҳавопаймои идоракунии Кубернетес дастрас дар kubernetes.default.svc:
- ClusterRoleBindings, ClusterRoles ва Nodes-ро номбар мекунад;
- подҳо, асрорҳо ва харитаҳои конфигуратсияро дар саросари ҷаҳон таҳқиқ мекунад системаи кубе, Пешфарз, кубе-оммавӣ, иҷораи гиреҳи кубе, ва фазои номҳои таҳлил;
- масъалаҳоеро, ки даъватҳои SelfSubjectAccessReview-ро барои харита кардани он чизе, ки шахсияти дуздидашуда метавонад анҷом диҳад, иҷро мекунад.
Ниҳоят, он номҳои сатили Google Cloud Storage-ро, ки аз ID-и лоиҳаи GCP-и сахт рамзгузорӣшуда сохта шудаанд, маҷбуран маҷбур мекунад (имзокунандаи нодир-437603-p9) ва рақами лоиҳа, тахмин кардани комбинатсияҳо ба монанди *-сохтмонҳо, *-артефактҳо, ва якчанд мализия- пешояндҳо (натиҷаҳои таҳлил, бастаҳои мализӣ, сканҳои мализи). Ҳар як рамзи ҷавоб ва матн сабт ва ба ҳамон ҷо фиристода мешавад Ҷулс-коллектор нуқтаи ниҳоӣ.
Ин як ҳолати нодири боркунии занҷираи таъминот аст, ки махсус барои ҳамла ба инфрасохтори худи ҳимоятгарон сохта шудааст. Қиссаи муқова дар тамоми маърака - порчаҳое, ки дар дохили боркунии иттилоот ҳамчун шарҳҳое пайдо мешаванд, ки рафторро ҳамчун "PoC Research Security Research ... навиштани кросс-анбор тавассути токени проксии git overscoped" тасвир мекунанд - ҳамон худсафедкунӣ аст, хоҳ ҳадафи вақти иҷро як монорепои Shopify бошад, хоҳ сервери метамаълумоти кластери таҳлил.
Ҷадвали вақт ва муҳоҷирати доираи фаъолият
JulesJacker якбора нест. Ин як амалиёти доимӣ аст, ки танҳо бо иваз кардани номаш аз нест кардани феҳрист наҷот ёфт.
| Кай | ҳодиса |
|---|---|
| Нимаҳои апрели соли 2026 | Бастаҳои аввал дар доираи ношири аслӣ пайдо мешаванд: фасади TS-utility, environment ва exfiltration git-config. |
| Аввали майи соли 2026 | Варианти кашфи гипервизор ва фирори ядро нашр шудааст. |
| Аз нимаи моҳи майи соли 2026 | Кирми навиштани SC3 дар анборҳои байнишаҳрии SC3 дар баробари борҳои мақсадноки Shopify пайдо мешавад ва google-labs-jules[bot] тақлид. SC4 боркунакҳои бо рамзгузории AES ва бо дарвозаи хостингӣ муаррифӣ мекунад. |
| Охири майи соли 2026 | npm доираи аслии ноширро нест мекунад; номҳои бастаҳо ба ҷойнишинҳои холӣ барои нигоҳ доштани амният ҳал мешаванд. |
| Ҳамон ҳафта | Оператор ба доираи қариб якхелаи намуди зоҳирӣ мегузарад ва кирмро, аз ҷумла варианти таҳлили инфрасохторро, аз нав нашр мекунад. |
Муҳоҷират қисматест, ки ҳимоятгарон бояд бо он рӯ ба рӯ шаванд. Бартараф кардани аввалин дурбин маъракаро қатъ накард ва ҳатто онро суст накард. Оператор аллакай як дурбини мувозиро ташкил карда буд, ки номаш аз аслӣ бо як аломат фарқ мекунад ва дар давоми ҳамон ҳафта нашри онро идома дод. То замони навиштани ин мақола, дурбини нав... утилитҳои ts-form (версияҳои 1.0.0 то 1.1.0), он лоиҳаи ts-lint (1.0.0 ва 1.1.0), ва мустақилона ёвари ts-enum (1.0.0) насбшаванда боқӣ мемонад.
Нишондиҳандаҳои созиш
Ҳамаи нишондиҳандаҳои зер нисбат ба манбаи баста тасдиқ карда шуданд.
| Намуди | нишондиҳандаи | Заметки |
|---|---|---|
| Шабака (C2) | aaronstack[.]com/jules-collect | Нуқтаи ниҳоии коллексияи ягона дар ҳар як насл; телеметрияи JSON ва порчаҳои tarball-и анбори base64-gzip-ро қабул мекунад. |
| Шабака (проксии SSRF) | http://git@192.168.0.1:8080 | Фронт барои токени проксии git, ки аз ҳад зиёд васеъ карда шудааст ва барои расидан ба анборҳои ташкилоти мақсаднок истифода мешавад. |
| Шабака (абр) | metadata.google.internal/computeMetadata/v1kubernetes.default.svcstorage.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 | Пеш аз рамзкушоӣ ва иҷрои боркунии муфид, танзими муҳити регбокс ва агенти зеҳни сунъӣ. |
| Рафтор | .jules/ ва /app/.jules феҳристро мехонад | Ҳадафи возеҳи муҳитҳои кории агенти зеҳни сунъӣ. |
| Рафтор | sc1-, sc3-, sc4-, s0-vmm-recon | Нишонаҳои марҳилаи телеметрии аз ҷониби оператор муайяншуда, ки барои ошкор ва шикор муфиданд. |
| Ҳадафи абрӣ | rare-signer-437603-p9malysis-* тахминҳои сатил | Идентификаторҳои лоиҳаи GCP-и сахт рамзгузорӣшуда ва намунаҳои ҳисобкунии сатили нигоҳдорӣ, ки дар варианти таҳлили инфрасохтор ҷойгир шудаанд. |
| Шакли бастабандӣ | Намуди бастаи утилитии TS бе майдони репозиторий | Шаблони маъракаи мувофиқ: бастаҳои қалбакии утилитаҳои TypeScript бо борҳои зараровари дарунсохт postinstall hooks ё замима карда шудааст index.js. |




