जूल्सजैकर: नकली एनपीएम वर्म जूल्स एआई का रूप धारण करता है

जूल्सजैकर: एक नकली पीओसी एनपीएम वर्म जो गूगल के जूल्स एजेंट का रूप धारण करता है और उसका विश्लेषण करने के लिए सैंडबॉक्स को सक्रिय कर देता है।

विषय - सूची

अवश्य पढ़ें पोस्ट

रुचि के नवीनतम पोस्ट

TL, डॉ

एक अकेले npm ऑपरेटर ने छह सप्ताह तक नकली TypeScript "यूटिलिटी" पैकेज प्रकाशित करने में बिताए, जैसे कि ts-form-utils, ts-project-lint, तथा ts-enum-helper.

हालांकि पैकेज छोटे, वैध दिखने वाले सत्यापन सहायकों को उजागर करते हैं, लेकिन वास्तविक पेलोड इंस्टॉल या पहली बार आवश्यक होने पर निष्पादित होता है और होस्ट फिंगरप्रिंटिंग, गिटहब संगठन की खोज, रिपॉजिटरी क्लोनिंग और स्रोत-कोड की चोरी करता है।

यह मैलवेयर विशेष रूप से कई उच्च-मूल्य वाले GitHub संगठनों को निशाना बनाता है। Shopify यह रिपॉजिटरी में संग्रहीत होता है, फिर पहुंच योग्य स्रोत ट्री को संग्रहीत करता है और उन्हें एक केंद्रीकृत संग्रह बिंदु पर भेजता है।

समझौता प्रक्रिया के भाग के रूप में, पेलोड commitगूगल की स्वायत्त कोडिंग पहचान का प्रतिरूपण करते हुए sa फ़ाइल को पीड़ित रिपॉज़िटरी में वापस डाल दिया। google-labs-jules[bot].

हमने उस अभियान पर नज़र रखी — जिसका नाम था जूल्सजैकर — कई प्रकाशक क्षेत्रों और कम से कम पांच पेलोड पीढ़ियों में, जिनमें एन्क्रिप्टेड और सैंडबॉक्स-जागरूक प्रकार शामिल हैं।

नवीनतम संस्करण विशेष रूप से मैलवेयर-विश्लेषण अवसंरचना को लक्षित करता है: यह केवल विश्लेषण वातावरण के भीतर सक्रिय होता है, क्लाउड मेटाडेटा सेवा-खाता टोकन चुराता है, और कुबेरनेट्स नियंत्रण प्लेन और क्लाउड स्टोरेज बकेट की जांच करता है।

सभी पेलोड जनरेशन में साझा किया जाने वाला प्राथमिक आईओसी संग्रह एंडपॉइंट है। aaronstack[.]com/jules-collect.

गंभीरता: गंभीर।

हमला: यह कैसे काम करता है

जूल्सजैकर के सभी पैकेज एक ही टेम्पलेट का अनुसरण करते हैं। package.json यह एक हानिरहित टाइपस्क्रिप्ट हेल्पर का विज्ञापन करता है, जिसमें एमआईटी लाइसेंस है और कोई लिंक्ड सोर्स रिपॉजिटरी नहीं है। index.js यह पैकेज कुछ वास्तविक, कार्यशील फ़ंक्शन - ईमेल रेगुलर एक्सप्रेशन, एनम मैप, लिंट रूल टेबल - निर्यात करता है, ताकि पैकेज को आयात करने वाला डेवलपर विश्वसनीय व्यवहार देख सके। असल दुर्भावना कहीं और है: एक पोस्टइंस्टॉल हुक में, या नीचे एक ब्लॉक में index.js जो मॉड्यूल की आवश्यकता होते ही निष्पादित होता है।

पेलोड स्पष्ट रूप से क्रमांकित आंतरिक चरणों से गुजरे हैं (ऑपरेटर अपने टेलीमेट्री इवेंट्स को स्वयं लेबल करता है)। एससी1-, एससी3-, एससी4-(और इसी तरह आगे भी), और उस विकास को देखना ही अभियान को समझने का सबसे स्पष्ट तरीका है।

 पीढ़ी 1-2: जासूसी और गिट-कॉन्फ़िग की चोरी

शुरुआती पैकेज सीधे तौर पर जानकारी चुराने वाले थे। इंस्टॉल होने पर वे पर्यावरण चर, GitHub CLI होस्ट फ़ाइल और वैश्विक गिट कॉन्फ़िगरेशन को इकट्ठा कर लेते थे।git config –global –list, git रिमोट -v), फिर बंडल को कलेक्शन एंडपॉइंट पर POST किया। इससे ऑपरेटर की पहचान स्थापित हुई: एक "टाइपस्क्रिप्ट फॉर्म वैलिडेशन यूटिलिटीज" की आड़, एक सिंगल डोमेन के लिए आउटबाउंड बीकन, और उपभोक्ता डेटा के बजाय डेवलपर क्रेडेंशियल्स में रुचि।

तीसरी पीढ़ी: हाइपरवाइजर और कर्नेल एस्केप प्रोब्स

अभियान के मध्य में एक संस्करण ने बुनियादी ढांचे पर हमले करने पर ज़ोर दिया। कॉन्फ़िगरेशन चुराने के बजाय, इसने एक जासूसी उपकरण चलाया जो जांच कर रहा था। AF_VSOCK सॉकेट, वर्टियो एमएमआईओ क्षेत्र, / देव / मेमऔर कर्नेल हार्डनिंग फ़्लैग, और यहां तक ​​कि sysrq-ट्रिगर किए गए कर्नेल क्रैश के प्रयास — वर्चुअल मशीन या कंटेनर से बाहर निकलने के प्रयासों से जुड़ा व्यवहार। टेलीमेट्री टैग (s0-vmm-recon, s1-vmm-vsock-fuzz, s2-vmm-mmio, s3-कर्नेल-प्रोब) ने इरादे को स्पष्ट कर दिया। यह संस्करण स्पष्ट रूप से लक्षित था क्लाउड-सैंडबॉक्स और सर्वरलेस-रनर वातावरण — एक प्रकार का क्षणिक वर्चुअल मशीन जो अविश्वसनीय कोड का निर्माण और परीक्षण करता है।

जनरेशन 3 (SC3): क्रॉस-रेपो राइट वर्म

इस अभियान का केंद्र बिंदु एक स्व-प्रसारित रिपॉजिटरी चोर बन गया। इंस्टॉल होने पर, पेलोड पांच चरणों का एक समयबद्ध अनुक्रम चलाता है:

  • स्टेज 0 (~100 मिलीसेकंड): होस्ट का फिंगरप्रिंट प्राप्त करें — होस्टनाम, उपयोगकर्ता जानकारी, गिट पहचान।
  • स्टेज 1 (~3 सेकंड): जांच करके पता लगाएं कि पीड़ित किस संगठन से संबंधित है। git रिमोट -vफिर हार्डकोडेड को देखें ORG_CONFIG टेबल और टेस्ट रेपो एक्सेस के साथ git ls-remote — हमलावर द्वारा नियंत्रित एसएसआरएफ प्रॉक्सी के माध्यम से रूट किया गया http://git@192.168.0.1:8080.
  • स्टेज 2 (~10 सेकंड): जीआईटी क्लोन लक्ष्य सूची में मौजूद प्रत्येक पहुंच योग्य रिपॉजिटरी को टारबॉल और जीज़िप करके ट्री बनाएं, उसे बेस64-एनकोड करें और चंक-एक्सफिल्ट्रेट करें।
  • स्टेज 3 (~45 सेकंड): "एक्सेस का प्रमाण" - एक राइटेबल रेपो को क्लोन करें, SECURITY-POC.md नाम की एक फ़ाइल डालें, और commit लेखक को google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> पर सेट किया गया है और संदेश कार्य: निर्भरता कैश को अपडेट करें, फिर पीड़ित की मुख्य शाखा में पुश करें।

हार्डकोडेड लक्ष्य सूची जेनेरिक नहीं है। इसमें तीस से अधिक लक्ष्य सूचीबद्ध हैं। Shopify नाम के अनुसार भंडार — Shopify/shopify, शॉपिफाई/पहचान, शॉपिफाई/बिलिंग, शॉपिफाई/वॉल्ट, Shopify/secrets, शॉपिफाई/बुनियादी ढांचा, Shopify/.githubऔर भी बहुत कुछ — एक परीक्षण संगठन के साथ-साथ, आरोनस्टैकबार्न्सजिसे ऑपरेटर नियंत्रित करता प्रतीत होता है और लेखन लक्ष्य के रूप में उपयोग करता है।

चौथी पीढ़ी (SC4): एन्क्रिप्टेड और गेटेड

डेवलपर्स के लिए तैयार किए गए नवीनतम संस्करण में SC3 वर्म के ऊपर बचाव की दो अतिरिक्त परतें जोड़ी गई हैं।

सबसे पहले, पेलोड अब प्लेनटेक्स्ट के रूप में नहीं भेजा जाता है। असली लॉजिक AES-256-CBC एन्क्रिप्टेड ब्लॉब में मौजूद होता है। lib/.perf.dat, जिसके पहले सोलह बाइट्स में IV है। लोडर में index.js यह संयोजित स्ट्रिंग खंडों से डिक्रिप्शन कुंजी का पुनर्निर्माण करता है, ब्लॉब को डिक्रिप्ट करता है, और इसे चलाता है। नया फ़ंक्शन()यहां तक ​​कि मॉड्यूल के नाम भी स्टैटिक स्कैनर से बचने के लिए विभाजित किए गए हैं। आवश्यकता('क्रिप्ट' + 'ओ'), आवश्यकता('f' + 's').

दूसरा, यह होस्ट-गेटेड है। एक वेरिएंट केवल तभी डिक्रिप्ट और रन करता है जब ओएस.होस्टनाम() के बराबर होती है देवबॉक्स or ubuntu-fc-uvm (फायरक्रैकर माइक्रोवीएम डिफ़ॉल्ट) या इसमें सबस्ट्रिंग शामिल है देवबॉक्सएक अन्य द्वार की उपस्थिति पर जूल्स/ कार्यकारी डाइरेक्टरी:

दूसरे शब्दों में, SC4 पेलोड को एक सामान्य डेवलपर के लैपटॉप पर निष्क्रिय अवस्था में रहने और केवल स्वचालित AI-एजेंट के अंदर ही सक्रिय होने के लिए डिज़ाइन किया गया है। सैंडबॉक्स वातावरण ऑपरेटर वास्तव में समझौता करना चाहता है।

प्रयोगशाला को सक्रिय करना: विश्लेषण-अवसंरचना प्रकार

इस अभियान का सबसे अनोखा पैकेज, ts-enum-helperयह न तो डेवलपर्स पर और न ही शॉपिफाई पर हमला करता है। postinstall.sh एक ऐसे द्वार से शुरुआत होती है जो पूरी रणनीति का खुलासा कर देता है:

यह स्क्रिप्ट तब तक कुछ नहीं करती जब तक कि मैलवेयर-विश्लेषण प्लेटफ़ॉर्म के लिए विशिष्ट पर्यावरण चर सेट न हो जाए। जब ​​यह सेट हो जाता है, तो पेलोड को पता चल जाता है कि वह सैंडबॉक्स के अंदर चल रहा है जो ठीक इसी तरह के पैकेजों को नष्ट करने और उनका अध्ययन करने के लिए मौजूद है - और यह जवाबी हमला करता है।

यह सबसे पहले इंस्टेंस मेटाडेटा सर्वर से GCP सर्विस-अकाउंट OAuth टोकन निकालता है और उसे लीक कर देता है। फिर, उस टोकन का उपयोग करके, यह पूरे सिस्टम को स्कैन करता है। कुबेरनेट्स नियंत्रण विमान यहाँ पर पहुँचा जा सकता है kubernetes.default.svc:

  • इसमें ClusterRoleBindings, ClusterRoles और Nodes की सूची शामिल है;
  • यह पॉड्स, सीक्रेट्स और कॉन्फ़िगमैप्स की जांच करता है। क्यूब-सिस्टम, चूक, kube-public, कुबे-नोड-लीज़और विश्लेषण नेमस्पेस;
  • SelfSubjectAccessReview उन मुद्दों को हल करने के लिए कॉल करता है जिनका उद्देश्य यह निर्धारित करना है कि चोरी की गई पहचान को वास्तव में क्या करने की अनुमति है।

अंत में, यह हार्डकोडेड जीसीपी प्रोजेक्ट आईडी से निर्मित गूगल क्लाउड स्टोरेज बकेट नामों पर ब्रूट-फोर्स विधि का उपयोग करता है (दुर्लभ-हस्ताक्षरकर्ता-437603-p9) और प्रोजेक्ट नंबर, निम्नलिखित संयोजनों का अनुमान लगाते हुए: *-निर्माण, *-कलाकृतियाँ, और कई दुर्भावना- उपसर्ग (दुर्व्यव-परिणाम, दुर्भावना-पैकेज, दुर्व्यवस्ती-स्कैनप्रत्येक प्रतिक्रिया कोड और बॉडी को लॉग किया जाता है और उसी को वापस POST किया जाता है। जूल्स-कलेक्ट समापन बिंदु।

यह आपूर्ति श्रृंखला पेलोड का एक दुर्लभ मामला है जिसे विशेष रूप से रक्षकों के स्वयं के बुनियादी ढांचे पर हमला करने के लिए बनाया गया है। पूरे अभियान में इस्तेमाल की गई कहानी - जिसके अंश पेलोड के अंदर टिप्पणियों के रूप में दिखाई देते हैं और व्यवहार को "सुरक्षा अनुसंधान पीओसी... ओवरस्कोप गिट प्रॉक्सी टोकन के माध्यम से क्रॉस-रेपो लेखन" के रूप में प्रस्तुत करते हैं - एक ही तरह का औचित्य है, चाहे रनटाइम लक्ष्य शॉपिफाई मोनोरेपो हो या विश्लेषण क्लस्टर का मेटाडेटा सर्वर।

समयरेखा और कार्यक्षेत्र स्थानांतरण

जूल्सजैकर कोई रातोंरात बंद होने वाला संगठन नहीं है। यह एक निरंतर चलने वाला अभियान है जो रजिस्ट्री द्वारा हटाए जाने के बावजूद अपना नाम बदलकर बच गया।

. कार्यक्रम
मध्य अप्रैल 2026 पहले पैकेज मूल प्रकाशक के दायरे में दिखाई देते हैं: टीएस-यूटिलिटी फ़ैकेड, एनवायरनमेंट और गिट-कॉन्फ़िग एक्सफ़िल्ट्रेशन।
मई 2026 की शुरुआत हाइपरवाइजर और कर्नेल-एस्केप रिकोनसेंस वेरिएंट प्रकाशित किया गया।
मई 2026 के मध्य से अंत तक SC3 क्रॉस-रेपो राइट वर्म Shopify को लक्षित करने वाले पेलोड के साथ दिखाई देता है और google-labs-jules[bot] प्रतिरूपण। SC4 में AES-एन्क्रिप्टेड और होस्ट-गेटेड लोडर शामिल हैं।
मई 2026 के अंत में npm मूल प्रकाशक स्कोप को हटा देता है; पैकेज नाम खाली सुरक्षा-धारण करने वाले प्लेसहोल्डर में परिवर्तित हो जाते हैं।
उसी सप्ताह ऑपरेटर लगभग समान दिखने वाले दायरे में स्थानांतरित हो जाता है और विश्लेषण-अवसंरचना संस्करण सहित वर्म को पुनः प्रकाशित करता है।

रक्षाकर्ताओं को इस बदलाव पर ध्यान देना चाहिए। पहले स्कोप को नष्ट करने से अभियान न तो समाप्त हुआ और न ही धीमा हुआ। ऑपरेटर ने पहले ही एक समानांतर स्कोप तैयार कर लिया था जिसका नाम मूल स्कोप से केवल एक अक्षर से भिन्न था, और उसी सप्ताह के भीतर इसे प्रकाशित करना जारी रखा। इस लेखन के समय तक, नए स्कोप का... टीएस-फॉर्म-यूटिल्स (संस्करण 1.0.0 से 1.1.0 तक), इसका ts-project-lint (1.0.0 और 1.1.0), और स्टैंडअलोन ts-enum-helper (1.0.0) इंस्टॉल करने योग्य बना रहेगा।

समझौता के संकेतक

नीचे दिए गए सभी संकेतकों की पुष्टि पैकेज के स्रोत के आधार पर की गई थी।

प्रकार सूचक नोट्स
नेटवर्क (सी2) aaronstack[.]com/jules-collect प्रत्येक पीढ़ी में एक ही संग्रह एंडपॉइंट; JSON टेलीमेट्री और बेस64-जीज़िप रिपॉजिटरी टारबॉल चंक्स प्राप्त करता है।
नेटवर्क (एसएसआरएफ प्रॉक्सी) 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 पेलोड डिक्रिप्शन और निष्पादन से पहले सैंडबॉक्स और एआई-एजेंट वातावरण की गेटिंग।
व्यवहार .jules/ और /app/.jules निर्देशिका पढ़ता है एआई-एजेंट वर्कस्पेस वातावरणों को स्पष्ट रूप से लक्षित करना।
व्यवहार sc1-, sc3-, sc4-, s0-vmm-recon ऑपरेटर द्वारा परिभाषित टेलीमेट्री चरण लेबल पहचान और खोज के लिए उपयोगी होते हैं।
क्लाउड लक्ष्य rare-signer-437603-p9
malysis-* बाल्टी अनुमान
विश्लेषण-अवसंरचना संस्करण में अंतर्निहित हार्डकोडेड जीसीपी प्रोजेक्ट पहचानकर्ता और स्टोरेज-बकेट गणना पैटर्न।
पैकेज का आकार बिना रिपॉजिटरी फ़ील्ड के TS-यूटिलिटी पैकेज फ़ैकेड अभियान का एक सुसंगत प्रारूप: दुर्भावनापूर्ण पेलोड से युक्त नकली टाइपस्क्रिप्ट यूटिलिटी पैकेज। postinstall hooks या संलग्न index.js.
एससीए-टूल्स-सॉफ्टवेयर-कंपोजिशन-एनालिसिस-टूल्स
अपने सॉफ़्टवेयर जोखिमों को प्राथमिकता दें, उनका निवारण करें और उन्हें सुरक्षित करें।
अपना निःशुल्क खाता प्राप्त करें।
किसी क्रेडिट कार्ड की आवश्यकता नहीं।

अपने सॉफ़्टवेयर विकास और वितरण को सुरक्षित करें

Xygeni प्रोडक्ट सूट के साथ