JulesJacker: नक्कली npm Worm ले Jules AI को नक्कल गर्छ

JulesJacker: गुगलको Jules एजेन्टको नक्कल गर्ने नक्कली PoC npm किरा — र यसको विश्लेषण गर्ने स्यान्डबक्स खोल्छ।

विषयसूची

पढ्नै पर्ने पोस्टहरू

रुचिका पछिल्ला पोस्टहरू

TL; ड

एउटा एनपीएम अपरेटरले छ हप्तासम्म नक्कली टाइपस्क्रिप्ट "उपयोगिता" प्याकेजहरू प्रकाशित गरे जस्तै ts-form-utils, ts-project-lint, र ts-enum-helper.

प्याकेजहरूले साना वैध देखिने प्रमाणीकरण सहयोगीहरूलाई उजागर गर्दा, वास्तविक पेलोड स्थापना वा पहिलो आवश्यकतामा कार्यान्वयन हुन्छ र होस्ट फिंगरप्रिन्टिङ, GitHub संगठन खोज, रिपोजिटरी क्लोनिङ, र स्रोत-कोड एक्सफिल्ट्रेसन गर्दछ।

मालवेयरले विशेष गरी उच्च-मूल्यवान GitHub संस्थाहरूलाई लक्षित गर्दछ, जसमा धेरै समावेश छन् Shopify भण्डारहरू, त्यसपछि केन्द्रीकृत सङ्कलन अन्त्य बिन्दुमा पहुँचयोग्य स्रोत रूखहरूलाई अभिलेख र एक्सफिल्टरेट गर्दछ।

सम्झौता कार्यप्रवाहको भागको रूपमा, पेलोड commitगुगलको स्वायत्त कोडिङ पहिचानको प्रतिरूपण गर्दै पीडित भण्डारहरूमा फाइल फिर्ता गरियो google-labs-jules[bot].

हामीले अभियान ट्र्याक गर्यौं — नाम दिइएको जुल्सज्याकर — धेरै प्रकाशक क्षेत्रहरू र कम्तिमा पाँच पेलोड पुस्ताहरूमा, एन्क्रिप्टेड र स्यान्डबक्स-सचेत भेरियन्टहरू सहित।

नयाँ संस्करणले विशेष गरी मालवेयर-विश्लेषण पूर्वाधारलाई लक्षित गर्दछ: यसले विश्लेषण वातावरण भित्र मात्र सक्रिय गर्दछ, क्लाउड मेटाडेटा सेवा-खाता टोकनहरू चोर्छ, र कुबर्नेट्स नियन्त्रण विमानहरू र क्लाउड भण्डारण बकेटहरू जाँच गर्दछ।

सबै पेलोड पुस्ताहरूमा साझा गरिएको प्राथमिक IOC सङ्कलन अन्त्य बिन्दु हो aaronstack[.]com/jules-collect.

गम्भीरता: महत्वपूर्ण।

आक्रमण: यो कसरी काम गर्छ

प्रत्येक JulesJacker प्याकेजले एउटै टेम्प्लेट पछ्याउँछ। package.json MIT लाइसेन्स र कुनै लिङ्क गरिएको स्रोत भण्डार नभएको सौम्य टाइपस्क्रिप्ट सहयोगीको विज्ञापन गर्दछ। index.js मुट्ठीभर वास्तविक, काम गर्ने प्रकार्यहरू निर्यात गर्दछ - इमेल रेजेक्सहरू, एनम नक्साहरू, लिन्ट नियम तालिकाहरू - ताकि प्याकेज आयात गर्ने विकासकर्ताले वास्तवमा प्रशंसनीय व्यवहार देख्छ। द्वेष अन्यत्र बस्छ: एकमा स्थापना पछि हुक, वा तलको ब्लकमा index.js जुन मोड्युल आवश्यक पर्ने बित्तिकै कार्यान्वयन हुन्छ।

पेलोडहरू स्पष्ट रूपमा संख्यात्मक आन्तरिक चरणहरू मार्फत विकसित भएका छन् (अपरेटरले आफ्नै टेलिमेट्री घटनाहरूलाई लेबल गर्दछ) sc1-, sc3-, sc4-, र यस्तै), र त्यो विकासलाई हेर्नु अभियानलाई बुझ्ने सबैभन्दा स्पष्ट तरिका हो।

 पुस्ता १–२: टोही अनुसन्धान र गिट-कन्फिग चोरी

सबैभन्दा पहिलेका प्याकेजहरू सिधा इन्फोस्टेलरहरू थिए। स्थापना गर्दा तिनीहरूले वातावरण चरहरू, GitHub CLI होस्ट फाइल, र विश्वव्यापी गिट कन्फिगरेसन (गिट कन्फिग - विश्वव्यापी - सूची, गिट रिमोट -v), त्यसपछि बन्डललाई सङ्कलन अन्त्य बिन्दुमा पोस्ट गरियो। यसले अपरेटरको हस्ताक्षर स्थापित गर्‍यो: "टाइपस्क्रिप्ट फारम प्रमाणीकरण उपयोगिताहरू" कभर स्टोरी, एकल डोमेनमा आउटबाउन्ड बीकन, र उपभोक्ता डेटाको सट्टा विकासकर्ता प्रमाणहरूको लागि स्वाद।

पुस्ता ३: हाइपरभाइजर र कर्नेल एस्केप प्रोबहरू

अभियानको मध्यतिरको एउटा संस्करणले पूर्वाधार आक्रमणहरूमा कडा रूपमा केन्द्रित भयो। कन्फिग चोर्नुको सट्टा, यसले रिकन हार्नेस प्रोबिङ चलायो। AF_VSOCK को बारेमा सकेटहरू, virtio MMIO क्षेत्रहरू, /dev/mem, र कर्नेल कडा पार्ने झण्डाहरू, र sysrq-ट्रिगर गरिएको कर्नेल क्र्यासहरूको प्रयास पनि - भर्चुअल मेसिन वा कन्टेनरबाट बाहिर निस्कने प्रयासहरूसँग सम्बन्धित व्यवहार। टेलिमेट्री ट्यागहरू (s0-vmm-पुनः, s1-vmm-vsock-फज, s2-vmm-mmio, s3-कर्नेल-प्रोब) ले उद्देश्य स्पष्ट बनायो। यो संस्करण स्पष्ट रूपमा लक्षित थियो क्लाउड-स्यान्डबक्स र सर्भरलेस-रनर वातावरणहरू — अविश्वसनीय कोड निर्माण र परीक्षण गर्ने क्षणिक VM को प्रकार।

पुस्ता ३ (SC3): क्रस-रिपो राइट वर्म

अभियानको गुरुत्वाकर्षण केन्द्र स्व-प्रचार गर्ने रेपो चोर बन्यो। स्थापना गर्दा, पेलोडले पाँच-चरणको समयबद्ध अनुक्रम चलाउँछ:

  • स्टेज 0 (~१०० मिलिसेकेन्ड): होस्टको फिंगरप्रिन्ट — होस्टनाम, प्रयोगकर्ता जानकारी, गिट पहिचान।
  • स्टेज 1 (~३ सेकेन्ड): निरीक्षण गरेर पीडित कुन संस्थासँग सम्बन्धित छ भनेर निर्धारण गर्नुहोस् गिट रिमोट -v, त्यसपछि हार्डकोड गरिएको हेर्नुहोस् ORG_CONFIG प्रयोग गर्न सजिलो तालिका र परीक्षण रिपो पहुँचको साथ git ls-रिमोट — आक्रमणकारी-नियन्त्रित SSRF प्रोक्सी मार्फत रुट गरिएको http://git@192.168.0.1:8080.
  • स्टेज 2 (~१० सेकेन्ड): git clone लक्ष्य सूचीमा रहेका प्रत्येक पहुँचयोग्य भण्डार, टार्बल र रूखलाई gzip गर्नुहोस्, यसलाई base64-encode गर्नुहोस्, र यसलाई चङ्क-एक्सफिल्ट्रेट गर्नुहोस्।
  • स्टेज 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/गोप्य, Shopify/पूर्वाधार, शपिफाई/.गिथब, र धेरै धेरै — परीक्षण संगठनसँगै, आरोनस्ट्याकबार्न्स, जुन अपरेटरले नियन्त्रण गरेको देखिन्छ र लेखन लक्ष्यको रूपमा प्रयोग गर्दछ।

जेनेरेसन ४ (SC4): इन्क्रिप्टेड र गेटेड

सबैभन्दा नयाँ विकासकर्ता-मुखी भेरियन्टले SC3 वर्मको माथि दुई तहहरू चोरी थप्छ।

पहिलो, पेलोड अब प्लेनटेक्स्टको रूपमा पठाइँदैन। वास्तविक तर्क AES-256-CBC-इन्क्रिप्टेड ब्लबमा बस्छ, lib/.perf.dat, IV यसको पहिलो सोह्र बाइटमा छ। लोडर भित्र छ index.js कन्केटनेटेड स्ट्रिङ टुक्राहरूबाट डिक्रिप्शन कुञ्जी पुन: निर्माण गर्दछ, ब्लबलाई डिक्रिप्ट गर्दछ, र यसलाई चलाउँछ नयाँ प्रकार्य ()। स्थिर स्क्यानरहरूबाट बच्न मोड्युलको नाम पनि विभाजित गरिएको छ — आवश्यक छ ('क्रिप्ट' + 'ओ'), आवश्यक छ ('f' + 's').

दोस्रो, यो होस्ट-गेटेड छ। एउटा भेरियन्टले केवल डिक्रिप्ट गर्छ र तब मात्र चल्छ जब ओएस.होस्टनाम() बराबर डेभबक्स or उबुन्टु-एफसी-यूभीएम (एक फायरक्र्याकर माइक्रोभीएम पूर्वनिर्धारित) वा सबस्ट्रिङ समावेश गर्दछ डेभबक्स। को उपस्थितिमा अर्को गेटहरू .जुल्स/ काम गर्ने निर्देशिका:

अर्को शब्दमा, SC4 पेलोड एक साधारण विकासकर्ताको ल्यापटपमा निष्क्रिय रहन र स्वचालित AI-एजेन्ट भित्र मात्र जागृत हुनको लागि डिजाइन गरिएको हो र स्यान्डबक्स वातावरण सञ्चालक वास्तवमा सम्झौता गर्न चाहन्छ।

प्रयोगशाला सक्रिय गर्दै: विश्लेषण-पूर्वाधार भेरियन्ट

अभियानको सबैभन्दा नयाँ प्याकेज, ts-enum-सहायक, विकासकर्ताहरू वा Shopify लाई आक्रमण गर्दैन। यसको पोस्टइन्स्टल.श खेललाई खुलाउने गेटको साथ खुल्छ:

मालवेयर-विश्लेषण प्लेटफर्मको लागि विशिष्ट वातावरण चर सेट नगरेसम्म स्क्रिप्टले केही गर्दैन। जब यो हुन्छ, पेलोडलाई थाहा हुन्छ कि यो स्यान्डबक्स भित्र चलिरहेको छ जुन यो जस्तै प्याकेजहरू विस्फोट गर्न र अध्ययन गर्न अवस्थित छ - र यसले प्रति-आक्रमण गर्दछ।

यसले पहिले GCP सेवा-खाता OAuth टोकनलाई इन्स्ट्यान्स मेटाडेटा सर्भरबाट तान्छ र यसलाई एक्सफिल्टरेट गर्छ। त्यसपछि, त्यो टोकन प्रयोग गरेर, यसले स्वीप गर्छ कुबर्नेट्स नियन्त्रण विमान मा पुग्न सकिन्छ kubernetes.default.svc मा:

  • ClusterRoleBindings, ClusterRoles, र Nodes सूचीबद्ध गर्दछ;
  • प्रोब पोडहरू, गोप्यहरू, र कन्फिगम्यापहरू पार गर्दछ क्यूबे-प्रणाली, पूर्वनिर्धारित, क्यूबे-पब्लिक, क्यूब-नोड-लीज, र विश्लेषण नेमस्पेस;
  • चोरी भएको पहिचानले के गर्न अनुमति दिएको छ भनेर ठ्याक्कै नक्साङ्कन गर्न SelfSubjectAccessReview कलहरू जारी गर्दछ।

अन्ततः यसले हार्डकोड गरिएको GCP परियोजना ID बाट निर्मित गुगल क्लाउड स्टोरेज बकेट नामहरूलाई क्रूर-बल प्रयोग गर्दछ (दुर्लभ-हस्ताक्षरकर्ता-४३७६०३-p९) र परियोजना नम्बर, अनुमानित संयोजनहरू जस्तै *-निर्माण गर्दछ, *-कलाकृतिहरूर धेरै मालिसिस- उपसर्गहरू (मालिसिस-नतिजाहरू, malysis-प्याकेजहरू, म्यालिसिस-स्क्यानहरू)। प्रत्येक प्रतिक्रिया कोड र मुख्य भाग लग गरिन्छ र उही ठाउँमा पोस्ट गरिन्छ। जुल्स-कलेक्ट अन्त्य बिन्दु।

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

समयरेखा र क्षेत्र माइग्रेसन

JulesJacker एक पटक मात्र हुने काम होइन। यो एउटा निरन्तर सञ्चालन हो जुन केवल यसको नाम परिवर्तन गरेर रजिस्ट्री टेकडाउनबाट बच्न सफल भयो।

जब घटना
मध्य अप्रिल २०२६ पहिलो प्याकेजहरू मूल प्रकाशक दायरा अन्तर्गत देखा पर्छन्: TS-उपयोगिता façade, वातावरण र git-config exfiltration।
मे २०२५ को सुरुतिर हाइपरभाइजर र कर्नेल-एस्केप टोही संस्करण प्रकाशित।
मे २०२६ को मध्यदेखि ढिलोसम्म SC3 क्रस-रिपो राइट वर्म Shopify-लक्षित पेलोडहरूसँगै देखा पर्दछ र google-labs-jules[bot] प्रतिरूपण। SC4 ले AES-इन्क्रिप्टेड र होस्ट-गेटेड लोडरहरू प्रस्तुत गर्दछ।
मे २०२५ को अन्त्यतिर npm ले मूल प्रकाशक दायरा हटाउँछ; प्याकेज नामहरूले सुरक्षा-होल्डिंग प्लेसहोल्डरहरू खाली गर्दछ।
उही हप्ता अपरेटरले लगभग उस्तै देखिने स्कोपमा माइग्रेट गर्छ र विश्लेषण-पूर्वाधार भेरियन्ट सहित वर्मलाई पुन: प्रकाशित गर्छ।

माइग्रेसन भनेको रक्षकहरूले बस्नुपर्ने पक्ष हो। पहिलो स्कोपको टेकडाउनले अभियान समाप्त गरेन वा यसलाई ढिलो पनि गरेन। अपरेटरले पहिले नै समानान्तर स्कोपको मञ्चन गरिसकेको थियो जसको नाम मूल भन्दा एकल वर्णले फरक छ, र सोही हप्ता भित्र प्रकाशन जारी राख्यो। यो लेखन अनुसार, नयाँ स्कोपको ts-फारम-उपयोगिताहरू (संस्करण १.०.० देखि १.१.० सम्म), यसको ts-प्रोजेक्ट-लिन्ट (१.०.० र १.१.०), र स्ट्यान्डअलोन ts-enum-सहायक (१.०.०) स्थापना गर्न सकिने रहनेछ।

सम्झौताका सूचकहरू

तलका सबै सूचकहरू प्याकेज स्रोतको विरुद्धमा पुष्टि भएका थिए।

प्रकार सूचक टिप्पणीहरू
नेटवर्क (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 पहिलो १६ बाइटहरूमा भण्डारण गरियो र कुञ्जीलाई गतिशील रूपमा पुनर्निर्माण गरियो 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-* बकेट अनुमानहरू
विश्लेषण-पूर्वाधार भेरियन्टमा एम्बेड गरिएका हार्डकोड गरिएको GCP परियोजना पहिचानकर्ताहरू र भण्डारण-बकेट गणना ढाँचाहरू।
प्याकेजको आकार भण्डार क्षेत्र बिनाको TS-उपयोगिता प्याकेजको मुखौटा निरन्तर अभियान टेम्प्लेट: नक्कली टाइपस्क्रिप्ट उपयोगिता प्याकेजहरू जसमा दुर्भावनापूर्ण पेलोडहरू सम्मिलित छन् postinstall hooks वा जोडिएको index.js.
sca-उपकरण-सफ्टवेयर-रचना-विश्लेषण-उपकरणहरू
आफ्नो सफ्टवेयर जोखिमहरूलाई प्राथमिकता दिनुहोस्, सुधार गर्नुहोस् र सुरक्षित गर्नुहोस्
आफ्नो नि:शुल्क खाता पाउनुहोस्।
कुनै क्रेडिट कार्ड आवश्यक छैन।

आफ्नो सफ्टवेयर विकास र डेलिभरी सुरक्षित गर्नुहोस्

Xygeni उत्पादन सुइटको साथ