അച്ചു ഡി.ആർ.
2025 സെപ്റ്റംബർ 14-ന് ഗവേഷകർ തിരിച്ചറിഞ്ഞു ഷായ്-ഹുലുദ്, ഉള്ളിൽ ഒളിഞ്ഞിരിക്കുന്ന സ്വയം പകർപ്പെടുക്കുന്ന ഒരു പുഴു npm പാക്കേജുകൾ, ഒരു പതിവ് ആശ്രിതത്വ അപ്ഡേറ്റിനെ ഒരു പൂർണ്ണ സ്കെയിലാക്കി മാറ്റുന്നു സപ്ലൈ ചെയിൻ ആക്രമണം. ആദ്യം കണ്ടെത്തിയത് @ctrl/ടൈനികളർ ഡാനിയൽ ഡോസ് സാന്റോസ് പെരേരയുടെ പാക്കേജിൽ, ഷായ്-ഹുലുദ് രഹസ്യങ്ങൾ ശേഖരിക്കുകയും, ഗിറ്റ്ഹബ് ശേഖരങ്ങളിലൂടെയും വർക്ക്ഫ്ലോകളിലൂടെയും അവയെ പുറന്തള്ളുകയും, മോഷ്ടിച്ച ക്രെഡൻഷ്യലുകൾ ഉപയോഗിച്ച് രജിസ്ട്രിയിലുടനീളം സ്വയം വീണ്ടും പ്രസിദ്ധീകരിക്കുകയും ചെയ്യുന്നു. ദിവസങ്ങൾക്കുള്ളിൽ, ബാധിച്ച പാക്കേജുകളുടെ എണ്ണം ഡസൻസിൽ നിന്ന് നൂറുകണക്കിന് ആയി ഉയർന്നു, ഇത് സ്ഥിരീകരിക്കുന്നു. ഷൈഹുലുദ് വെറുമൊരു ട്രോജൻ അല്ല, മറിച്ച് npm ആവാസവ്യവസ്ഥയിലുടനീളം യാന്ത്രികമായി വ്യാപിക്കാൻ രൂപകൽപ്പന ചെയ്ത ഒരു പുഴുവാണ്.
സ്വാധീനം: പൊതു npm പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്ന ഏതൊരു ഡെവലപ്പറോ CI റണ്ണറോ അപകടത്തിലാണ്.
ഉടനടിയുള്ള പ്രവർത്തനങ്ങൾ: അറിയപ്പെടുന്ന പതിപ്പുകൾ തടയുക, ലോക്ക്ഫയൽ-ഒൺലി ഇൻസ്റ്റാളുകളിലേക്ക് മാറുക, npm, GitHub ടോക്കണുകൾ തിരിക്കുക, വർക്ക്ഫ്ലോകൾ ഓഡിറ്റ് ചെയ്യുക, കോംപ്രമൈസിന്റെ സൂചകങ്ങൾ (IoCs) നിരീക്ഷിക്കുക.
എന്താണ് സംഭവിച്ചത്?
ദി npm പാക്കേജുകളിൽ ഷായ്-ഹുലുദ് വിതരണ ശൃംഖല ആക്രമണം സമീപകാലത്തെ ഏറ്റവും അസ്വസ്ഥതയുണ്ടാക്കുന്ന സംഭവങ്ങളിലൊന്നാണിത്. ഒറ്റപ്പെട്ട ട്രോജനുകളിൽ നിന്ന് വ്യത്യസ്തമായി, ഈ പുഴു കൂടിച്ചേരുന്നു ക്രെഡൻഷ്യൽ മോഷണം, ഓട്ടോമേറ്റഡ് എക്സ്ഫിൽട്രേഷൻ, സ്വയം പകർപ്പെടുക്കൽതൽഫലമായി, അണുബാധയുടെ സമയപരിധി ആഴ്ചകളിൽ നിന്ന് മണിക്കൂറുകളായി ചുരുങ്ങി.
DevOps ടീമുകളെ സംബന്ധിച്ചിടത്തോളം, പാഠം വ്യക്തമാണ്: ഓരോ ഇൻസ്റ്റാളിനും കോഡ് എക്സിക്യൂട്ട് ചെയ്യാൻ കഴിയുമെങ്കിൽ, ഓരോ ഡിപൻഡൻസി അപ്ഡേറ്റും ഒരു സാധ്യതയുള്ള ബ്രീച്ച് പോയിന്റാണ്.
സാധ്യമായ ഇനീഷ്യൽ വെക്റ്ററും ടാർഗെറ്റഡ് ക്രെഡൻഷ്യലുകളും
ആദ്യകാല വിശകലനം ആക്രമണം ആരംഭിച്ചതായി സൂചിപ്പിക്കുന്നു മോഷ്ടിക്കപ്പെട്ട ക്രെഡൻഷ്യലുകൾ. ഉദാഹരണത്തിന്, npm നെ കബളിപ്പിക്കുന്ന ഫിഷിംഗ് കാമ്പെയ്നുകൾ login അല്ലെങ്കിൽ MFA പ്രോംപ്റ്റുകൾ ഡെവലപ്പർ ടോക്കണുകൾ പിടിച്ചെടുത്തിരിക്കാം. ആക്രമണകാരികൾ ആദ്യ സ്ഥാനം നേടിക്കഴിഞ്ഞാൽ, npm പാക്കേജുകളിൽ സ്വയം ഉൾച്ചേർത്ത് കൂടുതൽ രഹസ്യങ്ങൾ മോഷ്ടിച്ചുകൊണ്ട് വേം പടർന്നു:
- npm കോൺഫിഗറേഷൻ ഫയലുകൾ പോലെ
.npmrc, പലപ്പോഴും പ്രസിദ്ധീകരണ ടോക്കണുകൾ അടങ്ങിയിരിക്കുന്നു. - പരിസ്ഥിതി വേരിയബിളുകൾ GitHub PAT-കൾ ഉപയോഗിച്ചുള്ള കോൺഫിഗറുകളും CI/CD രഹസ്യങ്ങൾ.
- ക്ലൗഡ് മെറ്റാഡാറ്റ എൻഡ്പോയിന്റുകൾ (AWS, GCP, Azure) ലാറ്ററൽ മൂവ്മെന്റിന് ഹ്രസ്വകാല യോഗ്യതകൾ നൽകുന്നു.
അതിനാൽ, ക്രെഡൻഷ്യൽ മോഷണം ലോഞ്ച്പാഡായി മാറി. സാധുവായ npm ടോക്കണുകളും GitHub രഹസ്യങ്ങളും ഉപയോഗിച്ച്, ഷായ്-ഹുലുദിന് അധിക മനുഷ്യ പരിശ്രമമില്ലാതെ ഒന്നിലധികം പാക്കേജുകളിലും റിപ്പോസിറ്ററികളിലും സ്വയം പകർത്താൻ കഴിയും.
ഷായ്-ഹുലുദ് സപ്ലൈ ചെയിൻ ആക്രമണത്തിന്റെ എക്സിക്യൂട്ടീവ് ആഘാതം
ഷായ്-ഹുലുദ് ഇന്നും സജീവമാണ്. ഈ പുഴു ആഘാത സമയക്രമം വേഗത്തിലാക്കുന്നു. ഒരുകാലത്ത് ഒരു ട്രോജൻ ഉപയോഗിച്ച് ആഴ്ചകൾ എടുത്തിരുന്നത് ഇപ്പോൾ മണിക്കൂറുകൾക്കുള്ളിൽ വികസിക്കുന്നു. തൽഫലമായി, വ്യാപനം വേഗത്തിലും നിയന്ത്രിക്കാൻ പ്രയാസവുമാണ്. ഇത് പുരോഗമിക്കുന്നു:
- npm പബ്ലിഷ് ടോക്കണുകളും GitHub രഹസ്യങ്ങളും മോഷ്ടിക്കുന്നു.
- മറ്റ് npm പാക്കേജുകളിലേക്ക് സ്വയം വീണ്ടും പ്രസിദ്ധീകരിക്കുന്നു.
- സ്ഥിരതയ്ക്കായി ക്ഷുദ്രകരമായ GitHub പ്രവർത്തന വർക്ക്ഫ്ലോകൾ ചേർക്കുന്നു.
ആരെയാണ് ബാധിക്കുന്നത്:
പൊതു npm പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്ന ഏതൊരു ടീമും തുറന്നുകാട്ടപ്പെടുന്നു. മാത്രമല്ല, കാഷെ ചെയ്ത npm അല്ലെങ്കിൽ GitHub ടോക്കണുകളുള്ള ഡെവലപ്പർമാർ ഉയർന്ന അപകടസാധ്യത നേരിടുന്നു. വിശാലമായ രഹസ്യങ്ങൾ ഉപയോഗിക്കുന്ന CI റണ്ണർമാരും ദുർബലരാണ്.
ബിസിനസ്സ് റിസ്ക്
ബിസിനസ് ആഘാതം വേഗത്തിൽ വളരുന്നു. മോഷ്ടിക്കപ്പെട്ട ടോക്കണുകൾ അക്കൗണ്ട് ഏറ്റെടുക്കൽ, പാക്കേജ് ഹൈജാക്കിംഗ്, ക്ലൗഡ് ദുരുപയോഗം എന്നിവയിലേക്ക് നയിച്ചേക്കാം. കൂടാതെ, GitHub വർക്ക്ഫ്ലോകളിൽ നിലനിൽക്കുന്നത് വൃത്തിയാക്കൽ ബുദ്ധിമുട്ടാക്കുന്നു. അതിനാൽ, ടീമുകൾ ഷായ്-ഹുലുദിനെ ഒരു തുടർച്ചയായ സംഭവമായി കണക്കാക്കണം, അടച്ചിട്ട സംഭവമായിട്ടല്ല.
npm പാക്കേജുകളിൽ ഷായ്-ഹുലുദ് സപ്ലൈ ചെയിൻ ആക്രമണം എങ്ങനെ പ്രവർത്തിക്കുന്നു
ആക്രമണകാരിയുടെ ലക്ഷ്യങ്ങളും പ്രേരണയും
ഈ കാമ്പെയ്ൻ മൂന്ന് കാര്യങ്ങൾക്കായി ഒപ്റ്റിമൈസ് ചെയ്യുന്നു:
- ആദ്യത്തെ ലക്ഷ്യം വലിയ തോതിൽ ക്രെഡൻഷ്യലുകൾ മോഷ്ടിക്കുക ഡെവലപ്പർ ലാപ്ടോപ്പുകളിൽ നിന്നും CI റണ്ണേഴ്സിൽ നിന്നും. ഇതിൽ npm പബ്ലിഷ് ടോക്കണുകൾ, GitHub ടോക്കണുകൾ, ക്ലൗഡ് ക്രെഡൻഷ്യലുകൾ എന്നിവ ഉൾപ്പെടുന്നു. വാസ്തവത്തിൽ, ഒന്നിലധികം വിശകലനങ്ങൾ ട്രഫിൾഹോഗ് പ്രവർത്തിപ്പിക്കുന്നതും ക്ലൗഡ് മെറ്റാഡാറ്റ എൻഡ്പോയിന്റുകൾ അന്വേഷിക്കുന്നതും പോലുള്ള വ്യവസ്ഥാപിത രഹസ്യ വിളവെടുപ്പ് സ്ഥിരീകരിക്കുന്നു.
- രണ്ടാമത്തെ ലക്ഷ്യം സ്വയമേവ പ്രചരിപ്പിക്കുക വിട്ടുവീഴ്ച ചെയ്യപ്പെടുന്ന പരിപാലകരുടെ പ്രസിദ്ധീകരണ അവകാശങ്ങൾ ദുരുപയോഗം ചെയ്തുകൊണ്ട്. തൽഫലമായി, ഒരു പാക്കേജ് വേഗത്തിൽ പലതിലേക്ക് വ്യാപിക്കുന്നു, കാരണം മറ്റ് പാക്കേജുകളുടെ പുതിയ ബാധിച്ച പതിപ്പുകൾ അധിക മനുഷ്യ പരിശ്രമമില്ലാതെ പ്രത്യക്ഷപ്പെടുന്നു.
- മൂന്നാമത്തെ ലക്ഷ്യം വിശ്വസനീയമായി നിലനിൽക്കുകയും പുറന്തള്ളുകയും ചെയ്യുക GitHub ഇൻഫ്രാസ്ട്രക്ചർ വഴി. ആക്രമണകാരികൾ ഇരട്ട ബേസ്64 ഉള്ള "ഷായ്-ഹുലുദ്" എന്ന പേരിൽ ഒരു പൊതു റിപ്പോ സൃഷ്ടിക്കുന്നു. ഡാറ്റ.ജെസൺ, കൂടാതെ അവർ സീരിയലൈസ് ചെയ്യുന്ന ഒരു വർക്ക്ഫ്ലോ നട്ടുപിടിപ്പിക്കുന്നു ${{ toJSON(രഹസ്യങ്ങൾ) }} കൂടാതെ അത് ഒരു സ്റ്റാറ്റിക് വെബ്ഹുക്കിലേക്ക് പോസ്റ്റ് ചെയ്യുന്നു.
രജിസ്ട്രികളിലേക്കും സോഴ്സ് കോഡിലേക്കും ദീർഘകാല ആക്സസ്, ക്ലൗഡ് അക്കൗണ്ടുകളിലേക്കുള്ള വേഗത്തിലുള്ള ലാറ്ററൽ മൂവ്മെന്റ്, വിതരണ ശൃംഖലയെ കൂടുതൽ ആയുധമാക്കാനുള്ള ഓപ്ഷൻ എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു. പബ്ലിക് റിപ്പോർട്ടിംഗ് കാണിക്കുന്നത് സ്വകാര്യ റിപ്പോകൾ പൊതുജനങ്ങൾക്ക് കൈമാറിയത് ഒരു "-മൈഗ്രേഷൻ" ഡാറ്റ എക്സ്പോഷറും ആക്കം കൂട്ടുന്ന പ്രത്യയം
ഷായ്-ഹുലുദ് പേലോഡിനുള്ളിൽ: ബണ്ടിൽ.ജെഎസ് npm പാക്കേജുകളിൽ
ശൈ-ഹുലുദ് കപ്പലുകൾ ഒരു വലുത്, വെബ്പാക്ക് ബണ്ടിൽ ചെയ്തതും വളരെയധികം ചെറുതാക്കിയതും ജാവാസ്ക്രിപ്റ്റ് ഫയൽ (ബണ്ടിൽ.ജെഎസ്, ഏകദേശം 3–3.7 MB) അത് എയിൽ നിന്ന് നടപ്പിലാക്കുന്നു പോസ്റ്റ്ഇൻസ്റ്റാൾ ചെയ്യുക ഹുക്ക് ഇൻ package.json. തൽഫലമായി, ഓരോ ഇൻസ്റ്റാളും പേലോഡിനെ യാന്ത്രികമായി പ്രവർത്തനക്ഷമമാക്കുന്നു. ഈ ഡിസൈൻ ഐഡന്റിഫയറുകൾ മറയ്ക്കുന്നു, നിയന്ത്രണ ഫ്ലോ കംപ്രസ് ചെയ്യുന്നു, കൂടാതെ എല്ലാ ലോജിക്കുകളും ഇൻസ്റ്റാളേഷൻ സമയത്ത് എക്സിക്യൂട്ട് ചെയ്യുന്ന ഒരൊറ്റ ആർട്ടിഫാക്റ്റിലേക്ക് തള്ളുന്നു. വെബ്പാക്ക് ബണ്ടിംഗ്, അസാധാരണമായ ഫയൽ വലുപ്പം, ഇൻസ്റ്റാൾ-ടൈം എക്സിക്യൂഷൻ എന്നിവ വിശകലന വിദഗ്ധർ സ്ഥിരമായി സ്ഥിരീകരിക്കുന്നു.
സാമ്പിളുകളിൽ നിങ്ങൾ കാണുന്ന അവ്യക്തത, വിശകലന വിരുദ്ധ സ്വഭാവവിശേഷങ്ങൾ:
- ചെറുതാക്കിയ മൊഡ്യൂൾ ഗ്രാഫ് സംഖ്യാ മൊഡ്യൂൾ ഐഡികൾ, സ്പാർസ് കമന്റുകൾ, ഫ്ലാറ്റഡ് കൺട്രോൾ ഫ്ലോ എന്നിവയോടൊപ്പം. മാത്രമല്ല, ഈ ഘടന മാനുവൽ അവലോകനം വളരെ പ്രയാസകരമാക്കുന്നു.
- സ്ട്രിംഗ് മറയ്ക്കുന്നു base64 ലെയറുകളും നിർമ്മാണ സഹായികളും വഴി. ഉദാഹരണത്തിന്, എക്സ്ഫിൽട്രേഷൻ ദിനചര്യകളിൽ സാധാരണയായി ആവർത്തിച്ചുള്ള ബേസ്64 എൻകോഡിംഗും ഡീകോഡിംഗും ദൃശ്യമാകും.
- ഡൈനാമിക് ഡിസ്പാച്ച് മുഖാന്തിരം പരിണാമം-സ്റ്റൈൽ പാറ്റേണുകളും ജനറേറ്റഡ് ഫംഗ്ഷൻ ബോഡികളും, അതിനാൽ റൺടൈമിൽ സ്വഭാവം മാറ്റാൻ കോഡിനെ പ്രാപ്തമാക്കുന്നു.
- OS ഫിൽട്ടറിംഗ് പ്രത്യേകിച്ച് CI റണ്ണറുകളിലും ഡെവലപ്പർ ലാപ്ടോപ്പുകളിലും ലിനക്സും മാകോസ് എക്സിക്യൂഷനും ഇഷ്ടപ്പെടുന്നു.
ഒരു ഫങ്ഷണൽ കോണിൽ നിന്ന്, ബണ്ടിൽ മോഡുലാർ ആണ്. OS കണ്ടെത്തൽ, ഫയൽസിസ്റ്റം, ജിറ്റ് രഹസ്യ സ്കാനുകൾ, ക്ലൗഡ് SDK ആക്സസ്, GitHub API പ്രവർത്തനങ്ങൾ, മെയിന്റനറുടെ ഉടമസ്ഥതയിലുള്ള മറ്റ് പാക്കേജുകൾ എഡിറ്റ് ചെയ്യുന്ന ഒരു പ്രൊപ്പഗേഷൻ എഞ്ചിൻ എന്നിവയ്ക്കായുള്ള മൊഡ്യൂളുകൾ റൈറ്റപ്പുകൾ വിവരിക്കുന്നു. വാസ്തവത്തിൽ, StepSecurity ഉം ReversingLabs ഉം മാലിഷ്യസ് ഹുക്ക് ഉപയോഗിച്ച് പാക്കേജുകൾ യാന്ത്രികമായി അപ്ഡേറ്റ് ചെയ്യുന്ന ഒരു ഫംഗ്ഷനെ ഹൈലൈറ്റ് ചെയ്യുന്നു.
ഷായ്-ഹുലുദിലെ ഇൻസ്റ്റാൾ-ടൈം എക്സിക്യൂഷൻ: npm പാക്കേജുകൾ എങ്ങനെയാണ് വേമിനെ ട്രിഗർ ചെയ്യുന്നത്
ആക്രമണം ആരംഭിക്കുന്നത് പോസ്റ്റ്ഇൻസ്റ്റാൾ റൺസ് നോഡ് ബണ്ടിൽ.ജെഎസ്. ഈ ഘട്ടത്തിൽ, സ്ക്രിപ്റ്റ് മെമ്മറിയിൽ പ്രവർത്തന നില ആരംഭിക്കുകയും അൺപാക്ക് ചെയ്യുകയും ചെയ്യുന്നു, ഇത് വേമിന്റെ പൂർണ്ണ പ്രവർത്തനത്തിനുള്ള ഘട്ടം സജ്ജീകരിക്കുന്നു.
കണ്ടെത്തലും വിളവെടുപ്പും
- പേലോഡ് പ്രോസസ്.env ഡംപ് ചെയ്യുകയും ഉയർന്ന എൻട്രോപ്പി രഹസ്യങ്ങൾക്കും ടോക്കൺ പ്രിഫിക്സുകൾക്കുമായി ലോക്കൽ ഫയലുകൾ സ്കാൻ ചെയ്യുകയും ചെയ്യുന്നു. കൂടാതെ, ട്രഫിൾഹോഗ് പ്രവർത്തിപ്പിച്ചുകൊണ്ട് ഇത് കവറേജ് വിപുലീകരിക്കുന്നു.
- ഹ്രസ്വകാല ക്രെഡൻഷ്യലുകൾ ശേഖരിക്കുന്നതിന് ഇത് ക്ലൗഡ് മെറ്റാഡാറ്റ എൻഡ്പോയിന്റുകൾ അന്വേഷിക്കുന്നു. ഉദാഹരണത്തിന്, എന്നതിലേക്ക് വിളിക്കുന്നു
169.254.169.254AWS-ൽ അല്ലെങ്കിൽmetadata.google.internalGCP പലപ്പോഴും രോഗബാധിതമായ ഹോസ്റ്റുകളിൽ പ്രത്യക്ഷപ്പെടുന്നു. - തൽഫലമായി, കണ്ടെത്തിയ ഏതൊരു ക്രെഡൻഷ്യലും പുതിയ npm പാക്കേജുകൾ പ്രസിദ്ധീകരിക്കുന്നതിനോ GitHub വർക്ക്ഫ്ലോകൾ പുഷ് ചെയ്യുന്നതിനോ ഉടനടി ഉപയോഗയോഗ്യമാകും.
പുറംതള്ളൽ
- വേം ഒരു പുതിയ GitHub റിപ്പോ സൃഷ്ടിക്കുന്നു, അതിൽ ഷായ്-ഹുലുദ് കൂടാതെ ഒരു ഇരട്ട ബേസ്64-എൻകോഡ് എഴുതുന്നു
data.jsonപ്ലാറ്റ്ഫോം വിശദാംശങ്ങൾ, പരിസ്ഥിതി ഡമ്പുകൾ, രഹസ്യങ്ങൾ എന്നിവയുൾപ്പെടെ. കാണാൻ കഴിയുന്നതുപോലെ, പ്രതിരോധക്കാർക്ക് എവിടെ നോക്കണമെന്ന് അറിയാമെങ്കിൽ ഈ ശബ്ദായമാനമായ പെരുമാറ്റം എളുപ്പത്തിൽ കണ്ടെത്താൻ കഴിയും. - ഇത് ഒരു GitHub Actions വർക്ക്ഫ്ലോയും നട്ടുപിടിപ്പിക്കുന്നു, പലപ്പോഴും ഷായ്-ഹുലുദ്, അത് സീരിയലുകളായി മാറുന്നു
${{ toJSON(secrets) }}കൂടാതെ ഡാറ്റ ഒരു സ്റ്റാറ്റിക് വെബ്ഹുക്കിലേക്ക് പോസ്റ്റ് ചെയ്യുന്നു. കൂടാതെ, ആരെങ്കിലും ഇത് സജീവമായി നീക്കം ചെയ്യുന്നതുവരെ ഈ വർക്ക്ഫ്ലോ നിലനിൽക്കും.
കൈമാറ്റം
- കണ്ടെത്തിയ ഏതെങ്കിലും npm ടോക്കൺ ഉപയോഗിച്ച്, പേലോഡ് അപഹരിക്കപ്പെട്ട പരിപാലകന്റെ ഉടമസ്ഥതയിലുള്ള എല്ലാ പാക്കേജുകളും എണ്ണുന്നു. തുടർന്ന്, അത് ഓരോ ടാർബോളും ലഭ്യമാക്കി, bundle.js ഉം ഒരു postinstall എൻട്രിയും കുത്തിവച്ച് പാക്കേജ് വീണ്ടും പ്രസിദ്ധീകരിക്കുന്നു.
- തൽഫലമായി, ഏതാനും മണിക്കൂറുകൾക്കുള്ളിൽ ഡസൻ കണക്കിന് രോഗബാധയുള്ള പൊതികൾ പ്രത്യക്ഷപ്പെടാം, ഇത് ആവാസവ്യവസ്ഥയിലുടനീളം സ്ഫോടന ദൂരം വർദ്ധിപ്പിക്കും.
സ്ഥിരതയും എക്സ്പോഷറും
വേം ദോഷകരമായ വർക്ക്ഫ്ലോകളെ സജീവമായി നിലനിർത്തുന്നു, കൂടാതെ പല സന്ദർഭങ്ങളിലും, സ്വകാര്യ റിപ്പോകളെ പൊതുജനങ്ങൾക്ക് കൈമാറുന്നു. "-മൈഗ്രേഷൻ" പ്രത്യയം. മൊത്തത്തിൽ, ആക്രമണകാരി ഒരു സ്ഥാനം നിലനിർത്തുന്നുവെന്നും ഡാറ്റ ചോർച്ച പരമാവധിയാക്കുന്നുവെന്നും ഇത് ഉറപ്പാക്കുന്നു.
കീ ഡിറ്റക്ഷൻ കുറിപ്പ്
ഈ അസാധാരണമായ ഉപയോഗം ${{ toJSON(secrets) }} ആക്ഷനുകളിലെ വർക്ക്ഫ്ലോകൾ വിരളമാണ്. അതുകൊണ്ടു, വേട്ടയാടുമ്പോൾ ടീമുകൾ ഇതിനെ ഒരു ഉയർന്ന സിഗ്നൽ സൂചകമായി കണക്കാക്കണം.
നിങ്ങൾ പിന്തുടരേണ്ട സാനിറ്റൈസ്ഡ് വർക്ക്ഫ്ലോ പാറ്റേൺ
ഈ അസാധാരണമായ ഉപയോഗം ലേക്ക് JSON(രഹസ്യങ്ങൾ) ഈ സംഭവത്തിൽ in Actions ഒരു ഉയർന്ന സിഗ്നൽ സൂചകമാണ്.
ഉയർന്ന തലത്തിലുള്ള പ്രചാരണ സ്യൂഡോ-കോഡ് (സുരക്ഷിതം, വിവരണാത്മകം)
ഡസൻ കണക്കിന് അണുബാധയുള്ള പാക്കേജുകളിൽ നിന്ന് നൂറുകണക്കിന് പാക്കേജുകളിലേക്കുള്ള ദ്രുതഗതിയിലുള്ള കുതിപ്പിന് കാരണം വിശകലന വിദഗ്ധർ ഈ ലൂപ്പ് സ്കെയിലിൽ നിരീക്ഷിച്ചു.
ഒരു പാക്കേജ് ഇക്കോസിസ്റ്റത്തിൽ ഇത് ഒരു പുഴുവാകുന്നത് എന്തുകൊണ്ട്?
ഓരോ ഘട്ടത്തിലും മാനുവൽ ഓപ്പറേറ്റർ ഘട്ടങ്ങൾ ആവശ്യമില്ലാതെ തന്നെ സ്വയം പടരുന്ന മാൽവെയറാണ് വേം. ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ, ഒരു മെഷീനിൽ നിന്ന് മറ്റൊന്നിലേക്ക് മാറുന്നതിന് വേമുകൾ സാധാരണയായി നെറ്റ്വർക്ക് ദുർബലതകളെ ഉപയോഗപ്പെടുത്തുന്നു. ഇതിനു വിപരീതമായി, ഷായ്-ഹുലുദ് npm രജിസ്ട്രിക്കുള്ളിലാണ് പ്രവർത്തിക്കുന്നത്. അതിന്റെ കാര്യക്ഷമമായ പാത ക്രെഡൻഷ്യൽ പുനരുപയോഗം.
മോഷ്ടിച്ച npm പബ്ലിഷ് ടോക്കണുകൾ വേം പ്രയോജനപ്പെടുത്തുന്നു. സാധുവായ ക്രെഡൻഷ്യലുകൾ ലഭിച്ചാലുടൻ, അതേ പരിപാലകന്റെ ഉടമസ്ഥതയിലുള്ള മറ്റ് പാക്കേജുകൾക്ക് കീഴിൽ അത് ബാധിച്ച പതിപ്പുകൾ പുനഃപ്രസിദ്ധീകരിക്കുന്നു. തുടർന്ന്, ആ പാക്കേജുകൾ സംശയിക്കാത്ത ഡെവലപ്പർമാരോ CI റണ്ണർമാരോ ഇൻസ്റ്റാൾ ചെയ്യുകയും സൈക്കിൾ ആവർത്തിക്കുകയും ചെയ്യുന്നു.
ഇക്കാരണത്താൽ, സുരക്ഷാ വിശകലന വിദഗ്ധർ, ഉൾപ്പെടെ ഇരുണ്ട വായന, ശൈ-ഹുലുദിനെ ഒരു സ്വയം-പകർന്നുവരുന്ന പുഴു ഒരു ലളിതമായ ട്രോജൻ അല്ലെങ്കിൽ ഒരു ടൈപ്പോസ്ക്വാട്ടിംഗ് സംഭവത്തിന് പകരം. വ്യത്യാസം പ്രധാനമാണ്: ഒരു ട്രോജൻ സാധാരണയായി ഒരു ഹോസ്റ്റിനെ വിട്ടുവീഴ്ച ചെയ്യുന്നു, എന്നാൽ ഒരു വേം ഒരു ആവാസവ്യവസ്ഥയിലുടനീളം അതിന്റെ ആഘാതം യാന്ത്രികമായി വർദ്ധിപ്പിക്കുന്നു.
"ഇത് എങ്ങനെ പ്രവർത്തിക്കുന്നു" എന്നതിനെക്കുറിച്ചുള്ള വിവരണം
ഷായ്-ഹുലുദിന്റെ ജീവിതചക്രം സംഗ്രഹിക്കുന്നതിന്, ഇതാ ഒരു ഉപസംഹാരം.cisഅതിന്റെ പ്രധാന ഘട്ടങ്ങളുടെ തകർച്ച:
- ഒരു പാക്കേജ് പോസ്റ്റ്ഇൻസ്റ്റാൾ ചെയ്യുക ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്, കൂടാതെ
bundle.jsനിർവ്വഹിക്കുന്നു. - പേലോഡ് പരിസ്ഥിതി വേരിയബിളുകൾ ഡംപ് ചെയ്യുന്നു, ഫയലുകളും ജിറ്റ് ചരിത്രവും സ്കാൻ ചെയ്യുന്നു, പ്രവർത്തിക്കുന്നു ട്രഫിൾഹോഗ്, കൂടാതെ ക്ലൗഡ് മെറ്റാഡാറ്റ സേവനങ്ങളെക്കുറിച്ച് അന്വേഷിക്കുന്നു. തൽഫലമായി, കണ്ടെത്തുന്ന ഏതൊരു രഹസ്യവും ഉടനടി ഉപയോഗപ്രദമാകും.
- പുറംതള്ളൽ രണ്ട് തരത്തിലാണ് സംഭവിക്കുന്നത്: ആദ്യം, എന്ന പേരിൽ ഒരു പൊതു റിപ്പോ സൃഷ്ടിക്കുന്നതിലൂടെ ഷായ്-ഹുലുദ് ഇരട്ട ബേസ്64-എൻകോഡ് ചെയ്തിരിക്കുന്നത്
data.json; രണ്ടാമതായി, പോസ്റ്റ് ചെയ്യുന്ന ഒരു GitHub Actions വർക്ക്ഫ്ലോ സ്ഥാപിക്കുന്നതിലൂടെ${{ toJSON(secrets) }}ഒരു വെബ്ഹുക്കിലേക്ക്. - മോഷ്ടിച്ച ഏതെങ്കിലും npm ടോക്കൺ ഉപയോഗിച്ച്, അതേ ക്ഷുദ്രകരമായ ഹുക്ക് ഉപയോഗിച്ച്, worm, അപഹരിക്കപ്പെട്ട പരിപാലകന്റെ ഉടമസ്ഥതയിലുള്ള മറ്റെല്ലാ പാക്കേജുകളും പുനഃപ്രസിദ്ധീകരിക്കുന്നു. ഈ രീതിയിൽ, അണുബാധ വേഗത്തിൽ പെരുകുന്നു.
- ഒടുവിൽ, ആക്രമണകാരി കൂടുതൽ രഹസ്യങ്ങൾ സൂക്ഷിക്കുന്നു, പ്രചരിപ്പിക്കാൻ കൂടുതൽ പാക്കേജുകൾ, കൂടാതെ സ്ഥിരത GitHub അക്കൗണ്ടുകളുടെയും ശേഖരണങ്ങളുടെയും ഉള്ളിൽ.
ഈ തരത്തിലുള്ള ആക്രമണം പ്രായോഗികമായി എങ്ങനെ ഒഴിവാക്കാം
ഷായ്-ഹുലുദ് ഒരു ഉണർവ് വിളിയാണ്. ടോക്കണുകൾ മോഷ്ടിച്ച് സ്വയം പ്രസിദ്ധീകരിക്കുന്ന ഒരു പുഴു ഭാവിയിലെ ഒരു അപകടമല്ല, അത് സജീവമാണ്. npm പാക്കേജുകളുടെ ആവാസവ്യവസ്ഥ ഇന്ന്. ഇത്തരത്തിലുള്ളത് തടയാൻ സപ്ലൈ ചെയിൻ ആക്രമണം, ടീമുകൾക്ക് പ്രോഗ്രാം ചെയ്യാവുന്നതും, ഓട്ടോമേറ്റഡ് ആയതും, നേരിട്ട് നടപ്പിലാക്കാവുന്നതുമായ നിയന്ത്രണങ്ങൾ ആവശ്യമാണ് CI/CD pipelines. നിങ്ങൾക്ക് ഇതിനകം നടപ്പിലാക്കാൻ കഴിയുന്ന അതേ പ്രതിരോധങ്ങളാണ് ഇവ. സൈജെനി.
മോശം പുരാവസ്തുക്കൾ ഗേറ്റിൽ നിർത്തുക
ഡെവലപ്പർമാരിലേക്കോ CI ജോലികളിലേക്കോ എത്തുന്നതിനുമുമ്പ് നിങ്ങൾ npm പാക്കേജുകളും ടാർബോളുകളും സ്കാൻ ചെയ്യണം. bundle.js ഫയലുകൾ, സംശയാസ്പദമായ പോസ്റ്റ്ഇൻസ്റ്റാൾ hooks, കൂടാതെ അവ്യക്തമാക്കൽ മാർക്കറുകളെല്ലാം ആദ്യകാല റെഡ് ഫ്ലാഗുകളായി വർത്തിക്കുന്നു. മാത്രമല്ല, കൂൾ-ഓഫ് പിരീഡുകളും പിൻ ചെയ്ത പതിപ്പുകളും നടപ്പിലാക്കുന്നു pipelineപരിശോധിക്കാത്ത പുതിയ റിലീസുകൾ യാന്ത്രികമായി ഉപയോഗിക്കുന്നതിൽ നിന്ന് s തടയുന്നു.
ഹാർഡൻ CI/CD സ്ഥിരസ്ഥിതിയായി
Guardrails in CI/CD അത്യാവശ്യമാണ്. പുതിയ സ്ക്രിപ്റ്റുകളോ ബൈനറികളോ അവതരിപ്പിക്കുന്ന ലയനങ്ങളോ ഇൻസ്റ്റാളുകളോ അവർ നിരസിക്കുന്നു. അതേസമയം, രഹസ്യങ്ങൾ സീരിയലൈസ് ചെയ്യുന്നതോ ബാഹ്യ പോസ്റ്റുകൾ പരീക്ഷിക്കുന്നതോ ആയ വർക്ക്ഫ്ലോകളെ അവർ തടയുന്നു. ടീമുകൾക്ക് ലോക്ക്ഫയൽ-മാത്രം ഇൻസ്റ്റാളുകൾ ആവശ്യപ്പെടണം (npm ci) എല്ലായിടത്തും pipelineഅതിനാൽ ആശ്രിത സെറ്റുകൾ പുനരുൽപ്പാദിപ്പിക്കാവുന്നതും സുരക്ഷിതവുമായി തുടരുന്നു.
ടോക്കൺ ബ്ലാസ്റ്റ് റേഡിയസ് കുറയ്ക്കുക
രഹസ്യങ്ങൾ പരാജയത്തിന്റെ ഒറ്റ ബിന്ദുവായി മാറരുത്. കോഡ്, കോൺഫിഗറുകൾ, എന്നിവ തുടർച്ചയായി സ്കാൻ ചെയ്യുക pipeline വേണ്ടി ഔട്ട്പുട്ട് വെളിപ്പെടുത്തിയ ക്രെഡൻഷ്യലുകൾ. ടോക്കണുകൾ ഇടുങ്ങിയ രീതിയിൽ സ്കോപ്പ് ചെയ്യണം, കുറഞ്ഞ ആയുസ്സ് നൽകണം, എക്സ്പോഷർ കണ്ടെത്തുമ്പോൾ യാന്ത്രികമായി തിരിക്കണം. ഒരു ചട്ടം പോലെ, സംശയാസ്പദമായ പോസ്റ്റ്ഇൻസ്റ്റാൾ നടപ്പിലാക്കിയ ഒരു ഹോസ്റ്റിൽ ഉപയോഗിക്കുന്ന ഏതൊരു ടോക്കണും അപഹരിക്കപ്പെട്ടതായി കണക്കാക്കുക.
പുഴുവിന്റെ സ്വഭാവം നേരത്തെ കാണുക
അപാകത കണ്ടെത്തൽ പ്രധാനമാണ്. ഉദാഹരണത്തിന്, npm-ൽ പെട്ടെന്നുള്ള സ്പൈക്കുകൾ പ്രസിദ്ധീകരിക്കുന്ന ഇവന്റുകൾ, കാരണമില്ലാതെ ദൃശ്യമാകുന്ന പുതിയ വർക്ക്ഫ്ലോകൾ, അല്ലെങ്കിൽ വിചിത്രമായ എൻകോഡ് ചെയ്ത ഫയലുകൾ നിറഞ്ഞ പുതിയ പബ്ലിക് റിപ്പോകൾ എന്നിവയെല്ലാം വേം പ്രവർത്തനത്തെ സൂചിപ്പിക്കാം. അതിനാൽ, ടീമുകൾ വേഗത്തിൽ അലേർട്ടുകൾ നൽകുകയും ഈ മുന്നറിയിപ്പ് അടയാളങ്ങൾ കാണിക്കുന്ന ഏതെങ്കിലും പരിപാലകരെയോ ഓട്ടക്കാരെയോ ഒറ്റപ്പെടുത്തുകയും വേണം.
ബിൽഡുകൾക്ക് കേടുപാടുകൾ വരുത്താതെ വേഗത്തിൽ പരിഹരിക്കുക
വേഗതയും സുരക്ഷയും ഒരുമിച്ച് പോകണം. ഓട്ടോമേറ്റഡ് pull requests അപഹരിക്കപ്പെട്ട npm പാക്കേജുകൾക്ക് പകരം പരിശോധിച്ച പതിപ്പുകൾ ഉപയോഗിക്കാൻ കഴിയും. കൂടാതെ, എത്തിച്ചേരൽ ഒപ്പം ചൂഷണം ചെയ്യൽ വിശകലനം അപ്ഗ്രേഡുകൾ വളരെ കുറഞ്ഞതും സ്ഥിരതയുള്ളതുമാണെന്ന് ഉറപ്പാക്കുന്നു. ഒടുവിൽ, എക്സ്പോഷർ സ്ഥിരീകരിച്ചുകഴിഞ്ഞാൽ, ക്ലീൻ ഇമേജുകളിൽ നിന്ന് ബാധിച്ച CI റണ്ണേഴ്സിനെ പുനർനിർമ്മിക്കുക, അങ്ങനെ ആക്രമണം കൂടുതൽ വ്യാപിക്കുന്നത് തടയുന്നു.
വിട്ടുവീഴ്ചയുടെ സൂചകങ്ങൾ (IoCs)
ഷായ്-ഹുലുദിനെ വിശകലനം ചെയ്യുമ്പോൾ, ടീമുകൾ രണ്ടും ശ്രദ്ധിക്കണം സ്റ്റാറ്റിക് IoC-കൾ ഫയലുകളിലും പെരുമാറ്റ IoC-കൾ in pipelines. ഈ സിഗ്നലുകൾ ഒരുമിച്ച് അണുബാധകൾ നേരത്തേ കണ്ടെത്താനും വിര കൂടുതൽ പടരുന്നതിന് മുമ്പ് പ്രതികരിക്കാനും സഹായിക്കുന്നു.
സ്റ്റാറ്റിക് IoC-കൾ
ഇനിപ്പറയുന്ന SHA-256 ഡൈജസ്റ്റുകളുടെ പൊരുത്തം നിരീക്ഷിച്ചു. bundle.js സാമ്പിളുകൾ:
- 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
- 81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
- dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c
കൂടാതെ, ഈ ആവർത്തിച്ചുള്ള പാറ്റേണുകൾ ശ്രദ്ധിക്കുക:
- A
bundle.jsപാക്കേജ് റൂട്ടിൽ. "postinstall": "node bundle.js"ഉള്ളിൽpackage.json.- പേരുള്ള സംഭരണികൾ ഷായ്-ഹുലുദ്.
- ഉൾപ്പെടുന്ന GitHub വർക്ക്ഫ്ലോകൾ
${{ toJSON(secrets) }}.
ബിഹേവിയറൽ IoC-കൾ
ഫയൽ സിഗ്നേച്ചറുകൾക്കപ്പുറം, വേം ആക്റ്റിവിറ്റി പെരുമാറ്റത്തിലൂടെയാണ് സ്വയം വെളിപ്പെടുത്തുന്നത്. ഉദാഹരണത്തിന്:
- ഒരു പരിപാലകനിൽ നിന്നുള്ള ഇവന്റുകൾ പ്രസിദ്ധീകരിക്കുന്നതിന് npm-ന്റെ പെട്ടെന്നുള്ള പൊട്ടിത്തെറികൾ കാരണമാകുന്നു.
- ബാഹ്യ എൻഡ്പോയിന്റുകളിലേക്ക് ഡാറ്റയെ തള്ളിവിടുന്ന പുതിയ വർക്ക്ഫ്ലോകൾ.
- CI റണ്ണേഴ്സിൽ നിന്ന് ഔട്ട്ബൗണ്ട് POST അഭ്യർത്ഥനകൾ ട്രിഗർ ചെയ്തു.
- എൻകോഡ് ചെയ്ത ബ്ലോഗുകൾ ഉപയോഗിച്ച് അടുത്തിടെ സൃഷ്ടിച്ച പൊതു റിപ്പോകൾ.
ദ്രുത വേട്ടകൾ
സമാപനം: ശൈ-ഹുലുദിൽ നിന്നുള്ള പാഠങ്ങൾ
ദി ഷായ്-ഹുലുദ് വിതരണ ശൃംഖല ആക്രമണം ഇന്നത്തെ സോഫ്റ്റ്വെയർ വിതരണ ശൃംഖല എത്രത്തോളം ദുർബലമായി മാറിയെന്ന് npm പാക്കേജുകളിൽ കാണിക്കുന്നു. ഈ വേം ക്ഷുദ്ര കോഡ് ചേർക്കുന്നതിനേക്കാൾ കൂടുതൽ ചെയ്തു. അത് ടോക്കണുകൾ മോഷ്ടിക്കുകയും ഡാറ്റ അയയ്ക്കുകയും പിന്നീട് സ്വയം വീണ്ടും പ്രസിദ്ധീകരിക്കുകയും ചെയ്തു. ഇക്കാരണത്താൽ, ആക്രമണം ആഴ്ചകൾക്ക് പകരം മണിക്കൂറുകൾക്കുള്ളിൽ വ്യാപിച്ചു.
ഡെവലപ്പർമാർക്കും DevOps ടീമുകൾക്കും, പാഠങ്ങൾ വ്യക്തമാണ്:
- ഓരോ ഇൻസ്റ്റാളും കോഡ് പ്രവർത്തിപ്പിക്കുന്നു. ഒരു സാധാരണ npm പാക്കേജിന് പോലും ഒരു postinstall worm മറയ്ക്കാൻ കഴിയും.
- ഓരോ ടോക്കണിനും ഉയർന്ന മൂല്യമുണ്ട്. ഒരിക്കൽ മോഷ്ടിക്കപ്പെട്ടാൽ, മാൽവെയർ കൂടുതൽ വ്യാപിപ്പിക്കാൻ ഇത് ഉപയോഗിക്കാം.
- ഓരോ pipeline പരിശോധനകൾ ആവശ്യമാണ്. കൂടാതെ guardrails ആശ്രിതത്വങ്ങൾ, വർക്ക്ഫ്ലോകൾ, രഹസ്യങ്ങൾ എന്നിവയിൽ, ഒരു വിട്ടുവീഴ്ച പെട്ടെന്ന് ഉൽപ്പാദനത്തെ ബാധിച്ചേക്കാം.
അതിനാൽ, ഷായ്-ഹുലുദ് പോലുള്ള ആക്രമണങ്ങൾ നിർത്താൻ, യാന്ത്രികവും നടപ്പിലാക്കാൻ എളുപ്പവുമായ നിയന്ത്രണങ്ങൾ ആവശ്യമാണ്. ടീമുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് മുമ്പ് npm പാക്കേജുകൾ സ്കാൻ ചെയ്യണം, ലോക്ക്ഫയൽ ബിൽഡുകൾ ഉപയോഗിക്കണം, വിചിത്രമായ പ്രസിദ്ധീകരണ പ്രവർത്തനം കണ്ടെത്തണം, ടോക്കണുകൾ ഹ്രസ്വകാലത്തേക്ക് നിലനിർത്തണം. ഈ ഘട്ടങ്ങൾ ഇനി ഓപ്ഷണൽ അല്ല. പകരം, ആധുനിക pipelines.
സൈജെനിയിൽ, ഷായ്-ഹുലുദ് വിതരണ ശൃംഖല ആക്രമണത്തെ മുഴുവൻ ഓപ്പൺ സോഴ്സ് ആവാസവ്യവസ്ഥയ്ക്കും ഒരു മുന്നറിയിപ്പായിട്ടാണ് ഞങ്ങൾ കാണുന്നത്. കോഡ്, എൻപിഎം പാക്കേജുകൾ, കൂടാതെ pipelineകണക്ട് ചെയ്യുക.
ഷായ്-ഹുലുദിൽ അപഹരിക്കപ്പെട്ടതായി റിപ്പോർട്ട് ചെയ്യപ്പെട്ട npm പാക്കേജുകളുടെയും പതിപ്പുകളുടെയും പൂർണ്ണ പട്ടിക താഴെ കൊടുത്തിരിക്കുന്നു. നിങ്ങളുടെ ലോക്ക്ഫയലുകൾ, രജിസ്ട്രികൾ, CI എന്നിവ പരിശോധിക്കാൻ ഇത് ഉപയോഗിക്കുക. pipelineഎക്സ്പോഷറിനായി എസ്.
അപകടത്തിലായ പാക്കേജുകളുടെ പട്ടിക
📦 കോംപ്രമൈസ്ഡ് npm പാക്കേജുകളുടെ പ്രിവ്യൂ
| പാക്കേജിന്റെ പേര് | പതിപ്പ് | പ്രസിദ്ധീകരിച്ച തീയതി |
|---|---|---|
| json-rules-engine-simplified - ലളിതമാക്കിയ നിയമങ്ങൾ | 0.2.1 | 2025-09-14T17:58:51.203Z |
| എയർപൈലറ്റ് | 0.8.8 | 2025-09-14T18:35:07.600Z |
| എംസിപി-നോളജ്-ഗ്രാഫ് | 1.2.1 | 2025-09-14T18:35:09.494Z |
| എയർചീഫ് | 0.3.1 | 2025-09-14T18:35:09.521Z |
| ജമ്പ്ഗേറ്റ് | 0.0.2 | 2025-09-14T18:35:09.651Z |
| ടിവി-ക്ലൈ | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/കോൾബാക്ക്-വിൻഡോ | 1.1.4 | 2025-09-14T20:31:38.479Z |
| @tnf-dev/api (എപിഐ) | 1.0.8 | 2025-09-14T20:31:39.547Z |
| @tnf-dev/js | 1.0.8 | 2025-09-14T20:31:41.251Z |
| @tnf-dev/mui (@tnfkv) എന്ന വിലാസത്തിൽ ബന്ധപ്പെടുക. | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-ഡെവലപ്പ്മെന്റ്/കോർ | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/react-table | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/ഡെമോ | 0.1.2 | 2025-09-14T20:45:52.348Z |
| @nexe/eslint-config | 0.1.1 | 2025-09-14T20:45:53.625Z |
| @hestjs/eslint-config | 0.1.2 | 2025-09-14T20:45:55.044Z |
| @nexe/config-മാനേജർ | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @nexe/ലോഗർ | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/ലോഗർ | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/സാധൂകരണം | 0.1.6 | 2025-09-14T20:45:55.595Z |
| @hestjs/കോർ | 0.2.1 | 2025-09-14T20:45:55.888Z |
➡️ വിട്ടുവീഴ്ച ചെയ്യാത്ത പാക്കേജുകളുടെ പൂർണ്ണ പട്ടിക കാണുക
| പാക്കേജിന്റെ പേര് | പതിപ്പ് | പ്രസിദ്ധീകരിച്ച തീയതി |
|---|---|---|
| json-rules-engine-simplified - ലളിതമാക്കിയ നിയമങ്ങൾ | 0.2.1 | 2025-09-14T17:58:51.203Z |
| എയർപൈലറ്റ് | 0.8.8 | 2025-09-14T18:35:07.600Z |
| എംസിപി-നോളജ്-ഗ്രാഫ് | 1.2.1 | 2025-09-14T18:35:09.494Z |
| എയർചീഫ് | 0.3.1 | 2025-09-14T18:35:09.521Z |
| ജമ്പ്ഗേറ്റ് | 0.0.2 | 2025-09-14T18:35:09.651Z |
| ടിവി-ക്ലൈ | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/കോൾബാക്ക്-വിൻഡോ | 1.1.4 | 2025-09-14T20:31:38.479Z |
| @tnf-dev/api (എപിഐ) | 1.0.8 | 2025-09-14T20:31:39.547Z |
| @tnf-dev/js | 1.0.8 | 2025-09-14T20:31:41.251Z |
| @tnf-dev/mui (@tnfkv) എന്ന വിലാസത്തിൽ ബന്ധപ്പെടുക. | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-ഡെവലപ്പ്മെന്റ്/കോർ | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/react-table | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/ഡെമോ | 0.1.2 | 2025-09-14T20:45:52.348Z |
| @nexe/eslint-config | 0.1.1 | 2025-09-14T20:45:53.625Z |
| @hestjs/eslint-config | 0.1.2 | 2025-09-14T20:45:55.044Z |
| @nexe/config-മാനേജർ | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @nexe/ലോഗർ | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/ലോഗർ | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/സാധൂകരണം | 0.1.6 | 2025-09-14T20:45:55.595Z |
| @hestjs/കോർ | 0.2.1 | 2025-09-14T20:45:55.888Z |
| @hestjs/cqrs | 0.1.6 | 2025-09-14T20:45:55.966Z |
| @hestjs/സ്കെയിലർ | 0.1.7 | 2025-09-14T20:45:56.386Z |
| ng2-ഫയൽ-അപ്ലോഡ് | 7.0.3 | 2025-09-15T02:44:29.555Z |
| കപ്പാസിറ്റർ-അറിയിപ്പ് ഹാൻഡ്ലർ | 0.0.2 | 2025-09-15T04:54:48.431Z |
| കപ്പാസിറ്റർ-പ്ലഗിൻ-വോണേജ് | 1.0.2 | 2025-09-15T04:54:48.501Z |
| കപ്പാസിറ്റർ-പ്ലഗിൻ-ഹെൽത്ത്ആപ്പ് | 0.0.2 | 2025-09-15T04:54:48.704Z |
| കപ്പാസിറ്റർ ആൻഡ്രോയിഡ് അനുമതികൾ | 0.0.4 | 2025-09-15T04:54:48.753Z |
| വോയിപ്-കോൾകിറ്റ് | 1.0.2 | 2025-09-15T04:54:49.223Z |
| കപ്പാസിറ്റർ-പ്ലഗിൻ-ഐഹെൽത്ത് | 1.1.8 | 2025-09-15T04:55:08.113Z |
| @art-ws/common | 2.0.22 | 2025-09-15T05:21:15.411Z |
| @art-ws/config-eslint | 2.0.4 | 2025-09-15T05:21:17.199Z |
| എൻജിഎക്സ്-ഡബ്ല്യുഎസ് | 1.1.5 | 2025-09-15T05:21:17.514Z |
| @art-ws/slf | 2.0.15 | 2025-09-15T05:21:17.524Z |
| @art-ws/http-സെർവർ | 2.0.21 | 2025-09-15T05:21:17.745Z |
| pm2-gelf-json | 1.0.4 | 2025-09-15T05:21:18.413Z |
| @art-ws/di | 2.0.28 | 2025-09-15T05:21:18.488Z |
| @art-ws/di-node (ഡി-നോഡ്) | 2.0.13 | 2025-09-15T05:21:18.849Z |
| @art-ws/config-ts | 2.0.7 | 2025-09-15T05:21:19.408Z |
| @art-ws/db-സന്ദർഭം | 2.0.21 | 2025-09-15T05:21:19.814Z |
| @art-ws/openapi | 0.1.9 | 2025-09-15T05:21:19.969Z |
| @art-ws/web-app (വെബ്-ആപ്പ്) | 1.0.3 | 2025-09-15T05:21:20.383Z |
| @art-ws/ssl-info | 1.0.9 | 2025-09-15T05:21:20.927Z |




