જુલ્સજેકર: નકલી એનપીએમ વોર્મ જુલ્સ એઆઈનો ઢોંગ કરે છે

જુલ્સજેકર: એક નકલી-પીઓસી એનપીએમ વોર્મ જે ગૂગલના જુલ્સ એજન્ટનો ઢોંગ કરે છે - અને તેનું વિશ્લેષણ કરવા માટે સેન્ડબોક્સ ચાલુ કરે છે

સામગ્રીનું કોષ્ટક

અવશ્ય વાંચવા જેવી પોસ્ટ્સ

રસપ્રદ નવીનતમ પોસ્ટ્સ

TL; DR

એક જ npm ઓપરેટરે નકલી ટાઇપસ્ક્રિપ્ટ "યુટિલિટી" પેકેજો પ્રકાશિત કરવામાં છ અઠવાડિયા ગાળ્યા જેમ કે ts-form-utils, ts-project-lint, અને ts-enum-helper.

જ્યારે પેકેજો નાના કાયદેસર દેખાતા વેલિડેશન હેલ્પર્સને ખુલ્લા પાડે છે, ત્યારે વાસ્તવિક પેલોડ ઇન્સ્ટોલ અથવા ફર્સ્ટ રિક્વાયર પર એક્ઝિક્યુટ થાય છે અને હોસ્ટ ફિંગરપ્રિન્ટિંગ, ગિટહબ ઓર્ગેનાઇઝેશન ડિસ્કવરી, રિપોઝીટરી ક્લોનિંગ અને સોર્સ-કોડ એક્સફિલ્ટરેશન કરે છે.

આ માલવેર ખાસ કરીને ઉચ્ચ-મૂલ્ય ધરાવતા GitHub સંગઠનોને લક્ષ્ય બનાવે છે, જેમાં બહુવિધનો સમાવેશ થાય છે Shopify રિપોઝીટરીઝ, પછી કેન્દ્રિયકૃત સંગ્રહ અંતિમ બિંદુ સુધી પહોંચી શકાય તેવા સ્ત્રોત વૃક્ષોને આર્કાઇવ અને એક્સફિલ્ટ્રેટ કરે છે.

સમાધાન કાર્યપ્રવાહના ભાગ રૂપે, પેલોડ commitગૂગલની સ્વાયત્ત કોડિંગ ઓળખનો ઢોંગ કરતી વખતે sa ફાઇલને પીડિત ભંડારમાં પાછી મોકલવામાં આવે છે google-labs-jules[bot].

અમે ઝુંબેશને ટ્રેક કરી - નામ આપવામાં આવ્યું જુલ્સજેકર — બહુવિધ પ્રકાશક સ્કોપ્સ અને ઓછામાં ઓછી પાંચ પેલોડ પેઢીઓમાં, જેમાં એન્ક્રિપ્ટેડ અને સેન્ડબોક્સ-અવેર વેરિયન્ટ્સનો સમાવેશ થાય છે.

નવીનતમ પ્રકાર ખાસ કરીને માલવેર-વિશ્લેષણ માળખાને લક્ષ્ય બનાવે છે: તે ફક્ત વિશ્લેષણ વાતાવરણની અંદર સક્રિય થાય છે, ક્લાઉડ મેટાડેટા સર્વિસ-એકાઉન્ટ ટોકન્સ ચોરી કરે છે, અને કુબર્નેટ્સ કંટ્રોલ પ્લેન અને ક્લાઉડ સ્ટોરેજ બકેટ્સની તપાસ કરે છે.

બધી પેલોડ પેઢીઓમાં વહેંચાયેલ પ્રાથમિક IOC એ કલેક્શન એન્ડપોઇન્ટ છે aaronstack[.]com/jules-collect.

ગંભીરતા: ગંભીર.

હુમલો: તે કેવી રીતે કાર્ય કરે છે

દરેક JulesJacker પેકેજ સમાન નમૂનાને અનુસરે છે. પેકેજ.જેસન MIT લાઇસન્સ અને કોઈ લિંક્ડ સોર્સ રિપોઝીટરી વિના સૌમ્ય ટાઇપસ્ક્રિપ્ટ સહાયકની જાહેરાત કરે છે. index.js મુઠ્ઠીભર વાસ્તવિક, કાર્યરત કાર્યો - ઇમેઇલ રેજેક્સ, એનમ મેપ્સ, લિન્ટ રૂલ ટેબલ - નિકાસ કરે છે જેથી ડેવલપર જે ખરેખર પેકેજ આયાત કરે છે તે બુદ્ધિગમ્ય વર્તન જુએ. દ્વેષ બીજે ક્યાંય રહે છે: એક પોસ્ટઇન્સ્ટોલ હૂક, અથવા તળિયે બ્લોકમાં index.js જે મોડ્યુલની જરૂર પડે તે ક્ષણે એક્ઝિક્યુટ થાય છે.

પેલોડ્સ સ્પષ્ટ રીતે ક્રમાંકિત આંતરિક તબક્કાઓમાંથી પસાર થયા છે (ઓપરેટર તેની પોતાની ટેલિમેટ્રી ઇવેન્ટ્સને લેબલ કરે છે) sc1-, sc3-, sc4-, અને તેથી વધુ), અને તે ઉત્ક્રાંતિ જોવી એ ઝુંબેશને સમજવાનો સૌથી સ્પષ્ટ રસ્તો છે.

 પેઢી ૧-૨: રિકોનિસન્સ અને ગિટ-કોન્ફિગ ચોરી

શરૂઆતના પેકેજો સીધા ઇન્ફોસ્ટીલર્સ હતા. ઇન્સ્ટોલ કરતી વખતે તેઓએ પર્યાવરણ ચલો, GitHub CLI હોસ્ટ ફાઇલ અને વૈશ્વિક git રૂપરેખાંકન (ગિટ રૂપરેખા - વૈશ્વિક - યાદી, ગિટ રિમોટ -વી), પછી બંડલને કલેક્શન એન્ડપોઇન્ટ પર પોસ્ટ કર્યું. આનાથી ઓપરેટરની સહી સ્થાપિત થઈ: "ટાઇપસ્ક્રિપ્ટ ફોર્મ વેલિડેશન યુટિલિટીઝ" કવર સ્ટોરી, એક જ ડોમેન માટે આઉટબાઉન્ડ બીકન, અને ગ્રાહક ડેટા કરતાં ડેવલપર ઓળખપત્રો માટેનો સ્વાદ.

પેઢી ૩: હાઇપરવાઇઝર અને કર્નલ એસ્કેપ પ્રોબ્સ

ઝુંબેશના મધ્યમાં આવેલા એક વર્ઝનમાં ઇન્ફ્રાસ્ટ્રક્ચર હુમલાઓનો સામનો કરવો પડ્યો. રૂપરેખા ચોરી કરવાને બદલે, તેણે રિકોન હાર્નેસ પ્રોબિંગ ચલાવ્યું. AF_VSOCK સોકેટ્સ, વર્ચિયો MMIO પ્રદેશો, / દેવ / મેમ, અને કર્નલ સખ્તાઇ ફ્લેગ્સ, અને sysrq-ટ્રિગર કર્નલ ક્રેશનો પ્રયાસ પણ - વર્ચ્યુઅલ મશીન અથવા કન્ટેનરમાંથી બહાર નીકળવાના પ્રયાસો સાથે સંકળાયેલ વર્તન. ટેલિમેટ્રી ટૅગ્સ (s0-vmm-રિકોન, s1-vmm-vsock-ફઝ, s2-vmm-mmio, s3-કર્નલ-પ્રોબ) એ હેતુ સ્પષ્ટ કર્યો. આ પ્રકાર સ્પષ્ટપણે લક્ષ્ય રાખતો હતો ક્લાઉડ-સેન્ડબોક્સ અને સર્વરલેસ-રનર વાતાવરણ — એક પ્રકારનો ક્ષણિક VM જે અવિશ્વસનીય કોડ બનાવે છે અને તેનું પરીક્ષણ કરે છે.

જનરેશન 3 (SC3): ક્રોસ-રેપો રાઇટ વોર્મ

ઝુંબેશનું ગુરુત્વાકર્ષણ કેન્દ્ર સ્વ-પ્રચારક રેપો ચોર બન્યું. ઇન્સ્ટોલ પર, પેલોડ પાંચ-તબક્કાના સમયબદ્ધ ક્રમ ચલાવે છે:

  • સ્ટેજ 0 (~૧૦૦ મિલીસેકન્ડ): હોસ્ટનું ફિંગરપ્રિન્ટ — હોસ્ટનામ, વપરાશકર્તા માહિતી, ગિટ ઓળખ.
  • સ્ટેજ 1 (~3 સેકન્ડ): નિરીક્ષણ કરીને નક્કી કરો કે પીડિત કઈ સંસ્થાનો છે ગિટ રિમોટ -વી, પછી હાર્ડકોડેડ જુઓ ORG_CONFIG નો ઉપયોગ કરી શકાય છે. ટેબલ અને ટેસ્ટ રેપો એક્સેસ સાથે git ls-રિમોટ — હુમલાખોર-નિયંત્રિત SSRF પ્રોક્સી દ્વારા રૂટ કરવામાં આવ્યો http://git@192.168.0.1:8080.
  • સ્ટેજ 2 (~૧૦ સેકન્ડ): ગિટ ક્લોન લક્ષ્ય યાદીમાં દરેક પહોંચી શકાય તેવા ભંડાર, ટ્રીને ટારબોલ અને gzip કરો, તેને base64-એન્કોડ કરો અને તેને ચંક-એક્સફિલ્ટ્રેટ કરો.
  • સ્ટેજ 3 (~૪૫ સેકન્ડ): "એક્સેસનો પુરાવો" — લખી શકાય તેવા રેપોનું ક્લોન કરો, SECURITY-POC.md નામની ફાઇલ મૂકો, અને commit તેને લેખક દ્વારા google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> પર સેટ કરીને અને chore: update dependency cache સંદેશ સાથે, પછી પીડિતની મુખ્ય શાખા પર દબાણ કરો.

હાર્ડકોડેડ લક્ષ્ય યાદી સામાન્ય નથી. તે ત્રીસથી વધુની ગણતરી કરે છે Shopify નામ દ્વારા ભંડારો - શોપાઇફ/શોપાઇફ, Shopify/ઓળખ, Shopify/બિલિંગ, શોપાઇફ/વોલ્ટ, Shopify/રહસ્યો, શોપાઇફ/ઇન્ફ્રાસ્ટ્રક્ચર, શોપાઇફ/.ગીથબ, અને ઘણું બધું — પરીક્ષણ સંગઠન સાથે, એરોનસ્ટેકબાર્ન્સ, જેને ઓપરેટર નિયંત્રિત કરે છે અને લખવાના લક્ષ્ય તરીકે ઉપયોગ કરે છે.

જનરેશન 4 (SC4): એન્ક્રિપ્ટેડ અને ગેટેડ

નવીનતમ ડેવલપર-ફેસિંગ વેરિઅન્ટ SC3 વોર્મની ટોચ પર ચોરીના બે સ્તરો ઉમેરે છે.

પ્રથમ, પેલોડ હવે સાદા ટેક્સ્ટ તરીકે મોકલવામાં આવતો નથી. વાસ્તવિક તર્ક AES-256-CBC-એન્ક્રિપ્ટેડ બ્લોબમાં બેસે છે, lib/.perf.dat, IV તેના પહેલા સોળ બાઇટ્સમાં છે. લોડર અંદર છે index.js કંકેટેનેટેડ સ્ટ્રિંગ ફ્રેગમેન્ટ્સમાંથી ડિક્રિપ્શન કીનું પુનર્નિર્માણ કરે છે, બ્લોબને ડિક્રિપ્ટ કરે છે અને તેને ચલાવે છે નવું ફંક્શન(). સ્ટેટિક સ્કેનરથી બચવા માટે મોડ્યુલના નામ પણ વિભાજિત કરવામાં આવ્યા છે — જરૂર ('ક્રિપ્ટ' + 'ઓ'), જરૂર ('f' + 's').

બીજું, તે હોસ્ટ-ગેટેડ છે. એક પ્રકાર ફક્ત ત્યારે જ ડિક્રિપ્ટ થાય છે અને ચાલે છે જ્યારે ઓએસ.હોસ્ટનામ() બરાબર ડેવબોક્સ or ઉબુન્ટુ-એફસી-યુવીએમ (ફાયરક્રેકર માઇક્રોવીએમ ડિફોલ્ટ) અથવા સબસ્ટ્રિંગ ધરાવે છે ડેવબોક્સ. ની હાજરી પર બીજો દરવાજો .જુલ્સ/ કાર્યકારી ડિરેક્ટરી:

બીજા શબ્દોમાં કહીએ તો, SC4 પેલોડ એક સામાન્ય ડેવલપરના લેપટોપ પર નિષ્ક્રિય રહેવા અને ફક્ત ઓટોમેટેડ AI-એજન્ટની અંદર જ જાગવા માટે રચાયેલ છે અને સેન્ડબોક્સ વાતાવરણ ઓપરેટર ખરેખર સમાધાન કરવા માંગે છે.

લેબ ચાલુ કરવી: વિશ્લેષણ-ઇન્ફ્રાસ્ટ્રક્ચર પ્રકાર

આ ઝુંબેશનું સૌથી નવું પેકેજ, ts-enum-સહાયક, ડેવલપર્સ અથવા Shopify પર બિલકુલ હુમલો કરતું નથી. તે પોસ્ટઇન્સ્ટોલ.શ એક ગેટ સાથે ખુલે છે જે રમતને દૂર કરે છે:

સ્ક્રિપ્ટ કંઈ કરતી નથી સિવાય કે માલવેર-વિશ્લેષણ પ્લેટફોર્મ માટે વિશિષ્ટ પર્યાવરણ ચલ સેટ કરવામાં આવે. જ્યારે તે હોય છે, ત્યારે પેલોડ જાણે છે કે તે સેન્ડબોક્સની અંદર ચાલી રહ્યું છે જે આની જેમ જ પેકેજોને વિસ્ફોટ કરવા અને અભ્યાસ કરવા માટે અસ્તિત્વમાં છે - અને તે વળતો હુમલો કરે છે.

તે પહેલા ઇન્સ્ટન્સ મેટાડેટા સર્વરમાંથી GCP સર્વિસ-એકાઉન્ટ OAuth ટોકન ખેંચે છે અને તેને એક્સફિલ્ટરેટ કરે છે. પછી, તે ટોકનનો ઉપયોગ કરીને, તે સ્વીપ કરે છે કુબર્નેટ્સ કંટ્રોલ પ્લેન પહોંચી શકાય તેવા નંબર પર કુબર્નેટ્સ.ડિફોલ્ટ.એસવીસી:

  • ક્લસ્ટરરોલબાઇન્ડિંગ્સ, ક્લસ્ટરરોલ્સ અને નોડ્સની યાદી આપે છે;
  • પ્રોબ્સ પોડ્સ, સિક્રેટ્સ અને કન્ફિગમેપ્સ સમગ્ર ક્યુબે-સિસ્ટમ, મૂળભૂત, ક્યુબે-પબ્લિક, ક્યુબે-નોડ-લીઝ, અને વિશ્લેષણ નામસ્થળ;
  • ચોરાયેલી ઓળખને શું કરવાની મંજૂરી છે તે બરાબર મેપ કરવા માટે SelfSubjectAccessReview કોલ્સ જારી કરે છે.

છેવટે તે હાર્ડકોડેડ GCP પ્રોજેક્ટ ID માંથી બનાવેલા Google Cloud Storage બકેટ નામોને બ્રુટ-ફોર્સ કરે છે (રેર-સહી કરનાર-૪૩૭૬૦૩-પી૯) અને પ્રોજેક્ટ નંબર, અનુમાન લગાવવાના સંયોજનો જેમ કે *-નિર્માણ, *-કલાકૃતિઓ, અને કેટલાક મેલિસિસ- ઉપસર્ગ (મેલિસિસ-પરિણામો, મેલિસિસ-પેકેજો, મેલિસિસ-સ્કેન). દરેક પ્રતિભાવ કોડ અને બોડી લોગ કરવામાં આવે છે અને તે જ જગ્યાએ પોસ્ટ કરવામાં આવે છે. જુલ્સ-કલેક્ટ અંતિમ બિંદુ

આ સપ્લાય-ચેઇન પેલોડનો દુર્લભ કિસ્સો છે જે ખાસ કરીને ડિફેન્ડર્સના પોતાના ઇન્ફ્રાસ્ટ્રક્ચર પર હુમલો કરવા માટે બનાવવામાં આવ્યો છે. સમગ્ર ઝુંબેશમાં કવર સ્ટોરી - જેના ટુકડાઓ પેલોડ્સની અંદર "સિક્યોરિટી રિસર્ચ પીઓસી ... ક્રોસ-રેપો રાઇટ વાયા ઓવરસ્કોપ્ડ ગિટ પ્રોક્સી ટોકન" તરીકે વર્તનને ફ્રેમ કરતી ટિપ્પણીઓ તરીકે દેખાય છે - તે જ સ્વ-ઉચિતતા છે, પછી ભલે રનટાઇમ લક્ષ્ય શોપાઇફ મોનોરેપો હોય કે વિશ્લેષણ ક્લસ્ટરનું મેટાડેટા સર્વર.

સમયરેખા અને અવકાશ સ્થળાંતર

જુલ્સજેકર એક જ વારમાં કરવામાં આવતી કામગીરી નથી. તે એક સતત કામગીરી છે જે ફક્ત તેનું નામ બદલીને રજિસ્ટ્રી ટેકડાઉનમાંથી બચી ગઈ છે.

ક્યારે ઇવેન્ટ
મધ્ય એપ્રિલ ૨૦૨૬ પ્રથમ પેકેજો મૂળ પ્રકાશક અવકાશ હેઠળ દેખાય છે: TS-યુટિલિટી ફેસેડ, પર્યાવરણ અને ગીટ-કન્ફિગ એક્સફિલ્ટ્રેશન.
મે 2026 ની શરૂઆતમાં હાઇપરવાઇઝર અને કર્નલ-એસ્કેપ રિકોનિસન્સ વેરિઅન્ટ પ્રકાશિત.
મે ૨૦૨૬ ના મધ્યથી અંત સુધી SC3 ક્રોસ-રેપો રાઇટ વોર્મ Shopify-લક્ષિત પેલોડ્સ સાથે દેખાય છે અને google-labs-jules[bot] નકલ. SC4 એઇએસ-એન્ક્રિપ્ટેડ અને હોસ્ટ-ગેટેડ લોડર્સ રજૂ કરે છે.
મે ૨૦૨૫ ના અંતમાં npm મૂળ પ્રકાશક અવકાશ દૂર કરે છે; પેકેજ નામો સુરક્ષા-હોલ્ડિંગ પ્લેસહોલ્ડરોને ખાલી કરે છે.
એ જ અઠવાડિયે ઓપરેટર લગભગ સમાન દેખાતા સ્કોપ પર સ્થળાંતર કરે છે અને વિશ્લેષણ-ઇન્ફ્રાસ્ટ્રક્ચર વેરિઅન્ટ સહિત, વોર્મને ફરીથી પ્રકાશિત કરે છે.

સ્થળાંતર એ એક એવો ભાગ છે જેના પર બચાવકર્તાઓએ બેસવું જોઈએ. પહેલા સ્કોપને દૂર કરવાથી ઝુંબેશનો અંત આવ્યો નહીં કે તેને ધીમી પણ ન પડી. ઓપરેટરે પહેલાથી જ એક સમાંતર સ્કોપ રજૂ કર્યો હતો જેનું નામ મૂળ સ્કોપથી એક અક્ષરમાં અલગ હતું, અને તે જ અઠવાડિયામાં પ્રકાશન ચાલુ રાખ્યું. આ લખાય છે ત્યાં સુધી, નવા સ્કોપનું ts-ફોર્મ-યુટિલ્સ (આવૃત્તિઓ ૧.૦.૦ થી ૧.૧.૦), તેનું 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 લક્ષ્ય સંસ્થા ભંડારો સુધી પહોંચવા માટે ઉપયોગમાં લેવાતા ઓવરસ્કોપ્ડ ગિટ પ્રોક્સી ટોકન માટે આગળનો ભાગ.
નેટવર્ક (ક્લાઉડ) metadata.google.internal/computeMetadata/v1
kubernetes.default.svc
storage.googleapis.com/storage/v1/b
ટોકન ચોરી અને કુબર્નેટ્સ કંટ્રોલ-પ્લેન રિકોનિસન્સ માટે ફક્ત વિશ્લેષણ-ઇન્ફ્રાસ્ટ્રક્ચર વેરિઅન્ટ દ્વારા ઉપયોગમાં લેવાય છે.
ઓળખ google-labs-jules[bot]
161369871+google-labs-jules[bot]@users.noreply.github.com
બનાવટી commit લેખકની ઓળખ પીડિત મુખ્ય શાખાઓમાં ધકેલાઈ ગઈ.
ફાઇલ lib/.perf.dat AES-256-CBC-એન્ક્રિપ્ટેડ પેલોડ બ્લોબ; IV પ્રથમ 16 બાઇટ્સમાં સંગ્રહિત અને કી ગતિશીલ રીતે પુનઃનિર્માણ કરવામાં આવી index.js.
ફાઇલ SECURITY-POC.md છોડી દીધું અને commitસંદેશ સાથે પીડિત ભંડારોમાં પાછા ફર્યા chore: update dependency cache.
ફાઇલ scripts/postinstall.sh દરવાજા પર $MALYSIS_ANALYSIS_ID; વિશ્લેષણ-ઇન્ફ્રાસ્ટ્રક્ચર-લક્ષ્યીકરણ પ્રકાર ઓળખે છે.
વર્તણૂક os.hostname() માટે તપાસ કરે છે devbox / ubuntu-fc-uvm પેલોડ ડિક્રિપ્શન અને અમલીકરણ પહેલાં સેન્ડબોક્સ અને AI-એજન્ટ પર્યાવરણ ગેટિંગ.
વર્તણૂક .jules/ અને /app/.jules ડિરેક્ટરી વાંચે છે AI-એજન્ટ કાર્યસ્થળ વાતાવરણનું સ્પષ્ટ લક્ષ્યીકરણ.
વર્તણૂક sc1-, sc3-, sc4-, s0-vmm-recon શોધ અને શિકાર માટે ઉપયોગી ઓપરેટર-વ્યાખ્યાયિત ટેલિમેટ્રી સ્ટેજ લેબલ્સ.
ક્લાઉડ લક્ષ્ય rare-signer-437603-p9
malysis-* બકેટ અનુમાન
વિશ્લેષણ-ઇન્ફ્રાસ્ટ્રક્ચર વેરિઅન્ટમાં એમ્બેડ કરેલા હાર્ડકોડેડ GCP પ્રોજેક્ટ ઓળખકર્તાઓ અને સ્ટોરેજ-બકેટ ગણતરી પેટર્ન.
પેકેજ આકાર TS-યુટિલિટી પેકેજનો આગળનો ભાગ રિપોઝીટરી ફીલ્ડ વગરનો છે. સુસંગત ઝુંબેશ ટેમ્પ્લેટ: નકલી ટાઇપસ્ક્રિપ્ટ યુટિલિટી પેકેજો જેમાં દૂષિત પેલોડ્સ એમ્બેડેડ છે postinstall hooks અથવા તેમાં ઉમેરાયેલ index.js.
સ્કા-ટૂલ્સ-સોફ્ટવેર-રચના-વિશ્લેષણ-ટૂલ્સ
તમારા સોફ્ટવેર જોખમોને પ્રાથમિકતા આપો, સુધારણા કરો અને સુરક્ષિત કરો
તમારું મફત ખાતું મેળવો.
કોઈ ક્રેડિટ કાર્ડ જરૂરી નથી.

તમારા સોફ્ટવેર ડેવલપમેન્ટ અને ડિલિવરી સુરક્ષિત કરો

ઝાયજેની પ્રોડક્ટ સ્યુટ સાથે