Shai hulud - npm packages - የአቅርቦት ሰንሰለት ጥቃት

ሻይ-ሁሉድ፡ የ npm ፓኬጆች Worm Explained

TL; DR

በሴፕቴምበር 14፣ 2025 ተመራማሪዎች ለይተው አውቀዋል ሻይ-ሁሉድ፣ በውስጡ የተደበቀ ራሱን የሚደግም ትል የኤንፒኤም ፓኬጆች፣ የመደበኛ ጥገኝነት ዝማኔን ወደ ሙሉ ደረጃ መቀየር የአቅርቦት ሰንሰለት ጥቃትለመጀመሪያ ጊዜ የታየው በ @ctrl/tinycolor በዳንኤል ዶስ ሳንቶስ ፔሬራ የተዘጋጀው ፓኬጅ፣ ሻይ-ሁሉድ ምስጢሮችን ሰብስቧል፣ በጂትሆብ ሪፖስ እና የስራ ፍሰቶች በኩል ያወጣቸዋል፣ እና የተሰረቁ ምስክርነቶችን በመጠቀም እራሱን በመዝገቡ ውስጥ እንደገና ያሳትማል። በጥቂት ቀናት ውስጥ፣ በበሽታው የተያዙ ፓኬጆች ቁጥር ከአስር ወደ መቶዎች ከፍ ብሏል፣ ይህም ያንን ያረጋግጣል። ሻይሁሉድ ሌላ ትሮጃን ብቻ ሳይሆን በ npm ሥነ-ምህዳር ላይ በራስ-ሰር እንዲሰራጭ የተነደፈ ትል ነው።

ተጽእኖ: የሕዝብ npm ፓኬጆችን የሚጭን ማንኛውም ገንቢ ወይም የCI ሯነር አደጋ ላይ ነው።

አፋጣኝ እርምጃዎች የሚታወቁ ስሪቶችን ማገድ፣ ወደ መቆለፊያ ፋይል-ብቻ ጭነቶች መቀየር፣ npm እና GitHub ቶከኖችን ማዞር፣ የስራ ፍሰቶችን ኦዲት ማድረግ እና ለIndicators of Compromise (IoCs) ክትትል ማድረግ።

ምን ተፈጠረ፧

የሻይ-ሁሉድ የአቅርቦት ሰንሰለት ጥቃት በ npm ፓኬጆች ውስጥ በቅርብ ጊዜ ውስጥ ካሉት እጅግ አስጨናቂ ክስተቶች አንዱ ነው። ከተገለሉ ትሮጃኖች በተለየ መልኩ ይህ የትል ድብልቅ የምስክርነት ስርቆት፣ አውቶማቲክ የማጣራት እና ራስን የማባዛትበዚህም ምክንያት የኢንፌክሽኑ የጊዜ መስመር ከሳምንታት ወደ ሰዓታት ብቻ ቀንሷል።

ለዴቭኦፕስ ቡድኖች፣ ትምህርቱ ግልጽ ነው፡ እያንዳንዱ ጭነት ኮድን ማስኬድ የሚችል ከሆነ፣ እያንዳንዱ የጥገኝነት ዝማኔ የጥሰት ነጥብ ሊሆን ይችላል።

ሊሆኑ የሚችሉ የመጀመሪያ ቬክተር እና የታለሙ ምስክርነቶች

ቀደምት ትንታኔ ጥቃቱ የተጀመረው ምናልባት በ የተሰረቁ የምስክር ወረቀቶችለምሳሌ፣ የፊሺንግ ዘመቻዎች npmን በማታለል login ወይም የኤምኤፍኤ ጥያቄዎች የገንቢ ቶከኖችን ያዙ ይሆናል። አጥቂዎች የመጀመሪያውን ቦታ እንደያዙ፣ ትሉ እራሱን በnpm ፓኬጆች ውስጥ በማስገባት እና ተጨማሪ ምስጢሮችን በመስረቅ ይሰራጫል፡

  • የnpm ውቅር ፋይሎች እንደ .npmrc, ብዙውን ጊዜ የህትመት ቶከኖችን ይይዛል።
  • የአካባቢ ተለዋዋጮች እና ከ GitHub PATs ጋር ያዋቅራል እና CI/CD ምስጢሮች።
  • የደመና ሜታዳታ የመጨረሻ ነጥቦች (AWS፣ GCP፣ Azure) ለአጭር ጊዜ የሚቆይ የጎን እንቅስቃሴ ማረጋገጫዎችን ይሰጣል።

ስለዚህ፣ የማረጋገጫ ስርቆት የማስጀመሪያ ፓድ ሆነ። ትክክለኛ የnpm ቶከኖች እና የጂትሆብ ሚስጥሮች ስላሉት፣ ሻይ-ሁሉድ ያለ ተጨማሪ የሰው ጥረት በበርካታ ፓኬጆች እና ማከማቻዎች ላይ እራሱን መገልበጥ ይችላል።

የሻይ-ሁሉድ የአቅርቦት ሰንሰለት ጥቃት አስፈፃሚ ተጽዕኖ

ሻይ-ሁሉድ ዛሬም ድረስ ንቁ ነው። ይህ ትል የተጽዕኖ ጊዜውን ያፋጥነዋል። በአንድ ወቅት ትሮጃን ለሳምንታት የፈጀበት ነገር አሁን በሰዓታት ውስጥ ይገለጣል። በዚህም ምክንያት ስርጭቱ ፈጣን እና ለመያዝ አስቸጋሪ ነው። የሚሄደው በ፦

  • የ npm ህትመት ቶከኖችን እና የ GitHub ምስጢሮችን መስረቅ።
  • እራሱን ወደ ሌሎች የnpm ፓኬጆች እንደገና ማተም።
  • ለጽናት ተንኮል አዘል የጂቲኤችቢ እርምጃዎች የስራ ፍሰቶችን ማከል።

የሚነካው ማን ነው፡-

የሕዝብ npm ፓኬጆችን የሚጭን ማንኛውም ቡድን ተጋልጧል። ከዚህም በላይ፣ የተሸጎጠ npm ወይም የጂቲኤችቲ ቶከኖች ያላቸው ገንቢዎች ከፍተኛ አደጋ ይገጥማቸዋል። ሰፊ ስኮፕ ያላቸው ሚስጥሮችን የሚጠቀሙ የCI ሯጮችም ተጋላጭ ናቸው።

የንግድ አደጋ

የንግድ ተፅዕኖው በፍጥነት ያድጋል። የተሰረቁ ቶከኖች ወደ መለያ ቁጥጥር፣ የጥቅል ጠለፋ እና እንዲያውም የደመና አላግባብ መጠቀም ሊያስከትሉ ይችላሉ። በተጨማሪም፣ በጂትሆብ የስራ ፍሰቶች ውስጥ ያለው ጽናት ለማጽዳት አስቸጋሪ ያደርገዋል። ስለዚህ።ቡድኖች ሻይ-ሁሉድን እንደ ዝግ ክስተት ሳይሆን እንደ ቀጣይ ክስተት አድርገው መያዝ አለባቸው።

የሻይ-ሁሉድ የአቅርቦት ሰንሰለት ጥቃት በ npm ፓኬጆች ውስጥ እንዴት እንደሚሰራ

የአጥቂው ዓላማዎች እና ዓላማ

ዘመቻው ለሦስት ነገሮች ያመቻቻል፡

  • የመጀመሪያው ዓላማው ማድረግ ነው በመጠን ላይ የምስክር ወረቀቶችን መስረቅ ከገንቢ ላፕቶፖች እና ከCI ሯጮች። ይህ የnpm ህትመት ቶከኖችን፣ የGitHub ቶከኖችን እና የደመና ምስክርነቶችን ያካትታል። እንደ እውነቱ ከሆነ፣ በርካታ ትንታኔዎች እንደ TruffleHog ማስኬድ እና የደመና ሜታዳታ የመጨረሻ ነጥቦችን መጠየቅ ያሉ ስልታዊ ሚስጥራዊ መሰብሰብን ያረጋግጣሉ።
  • ሁለተኛው ዓላማ ደግሞ በራስ-ሰር ያሰራጩ የተጎዱትን የባለአደራዎች የህትመት መብቶችን አላግባብ በመጠቀም። በዚህም ምክንያት፣ አንድ ቦታ በፍጥነት ወደ ብዙ ሰዎች ይስፋፋል፣ ምክንያቱም አዳዲስ የተበከሉ የሌሎች ፓኬጆች ስሪቶች ያለ ተጨማሪ የሰው ኃይል ብቅ ይላሉ።
  • ሦስተኛው ዓላማ ደግሞ በአስተማማኝ ሁኔታ መጽናት እና ማጣራት በጂትሁብ መሠረተ ልማት በኩል። አጥቂዎች “ሻይ-ሁሉድ” የሚል ስም ያለው የህዝብ ማከማቻ ድርብ መሠረት 64 ይፈጥራሉ። data.jsonእና በተጨማሪም ተከታታይ የስራ ፍሰት ይተክላሉ ${{ toJSON(secrets) }} እና ወደ የማይንቀሳቀስ የድር መንጠቆ ይለጥፋል።

ምናልባትም የሚከፈለው ትርፍ የመዝገቢያዎችን እና የምንጭ ኮድን ለረጅም ጊዜ የመጠቀም እድል፣ ወደ ደመና መለያዎች በፍጥነት የሚደረግ የጎን እንቅስቃሴ እና የአቅርቦት ሰንሰለቱን የበለጠ የጦር መሳሪያ የመጠቀም አማራጭን ያካትታል። የህዝብ ዘገባዎች የግል ማከማቻዎችን ለህዝብ በማዞር ያሳያሉ "-ፍልሰት" ድህረ ቅጥያ፣ ይህም የውሂብ ተጋላጭነትን እና ሞመንተምን ይጨምራል

በሻይ-ሁሉድ የክፍያ ጭነት ውስጥ፡ bundle.js በnpm ውስጥ ያሉ ጥቅሎች

ሻይ-ሁሉድ እንደ ትልቅ፣ የድር ጥቅል የተጠቀለለ እና በከፍተኛ ሁኔታ የተቀነሰ የጃቫስክሪፕት ፋይል (bundle.js, በግምት 3–3.7 ሜባ)ድህረ-ጭነት ግባ package.jsonበዚህም ምክንያት, እያንዳንዱ ጭነት የክፍያ ጭነቱን በራስ-ሰር ያስጀምራል። ይህ ዲዛይን መለያዎችን ይደብቃል፣ የቁጥጥር ፍሰትን ይጨምቃል፣ እና ሁሉንም አመክንዮዎች በመጫን ጊዜ ወደሚፈጽመው አንድ ቅርስ ይገፋል። ተንታኞች የWebpack ጥቅል ማጠናቀቂያ፣ ያልተለመደ የፋይል መጠን እና የመጫኛ ጊዜ አፈፃፀምን በተከታታይ ያረጋግጣሉ።

በናሙናዎች ውስጥ የሚያዩዋቸው የማደብዘዝ እና የፀረ-ትንተና ባህሪያት፡

  • የተቀነሰ የሞዱል ግራፍ በቁጥር ሞጁል መታወቂያዎች፣ በተቆራረጡ አስተያየቶች እና በተስተካከለ የቁጥጥር ፍሰት። ከዚህም በላይ, ይህ መዋቅር በእጅ የሚደረግ ግምገማን እጅግ በጣም ከባድ ያደርገዋል።
  • ሕብረቁምፊ መደበቅ በመሠረት 64 ንብርብሮች እና የግንባታ ረዳቶች በኩል። ለምሳሌ, ተደጋጋሚ የቤዝ64 ኢንኮዲንግ እና ዲኮዲንግ ብዙውን ጊዜ በማውጣት ሂደቶች ዙሪያ ይታያሉ።
  • ተለዋዋጭ ስርጭት በኩል ኢቫል-ቅጥ ቅጦች እና የተፈጠረ የተግባር አካላት፣ በዚህም ምክንያት ኮድ በሂደት ጊዜ ባህሪን እንዲቀይር ያስችላል።
  • የስርዓተ ክወና ማጣሪያ በተለይም በCI ሯጮች እና በገንቢ ላፕቶፖች ላይ የሊኑክስ እና የማክሮሶፍት አፈፃፀምን መምረጥ።

ከተግባራዊ አንግል፣ ጥቅልሉ ሞዱላር ነው። Writeups ለኦኤስ ግኝት፣ የፋይል ስርዓት እና የጂት ሚስጥራዊ ቅኝቶች፣ የደመና SDK መዳረሻ፣ የጂቲኤችቲ ኤፒአይ ኦፕሬሽኖች እና አስተናጋጅ ባለቤት የሆኑባቸውን ሌሎች ፓኬጆችን የሚያርትዕ የፕሮፓጋንዳ ሞተር ሞጁሎችን ይገልፃሉ። እንደ እውነቱ ከሆነ፣ StepSecurity እና ReversingLabs ሁለቱም ፓኬጆችን በተንኮል መንጠቆ በራስ-ሰር የሚያዘምን ተግባር ያጎላሉ።

በሻይ-ሁሉድ የመጫኛ ጊዜ አፈፃፀም፡ የ npm ፓኬጆች ትሉን እንዴት እንደሚያስነሱ

ጥቃቱ የሚጀምረው መቼ ነው የድህረ-ጭነት ሩጫዎች ኖድ bundle.js. በዚህ ጊዜ፣ ስክሪፕቱ በማህደረ ትውስታ ውስጥ ያለውን የስራ ሁኔታ ይጀምራል እና ይከፍታል፣ ይህም የትል ሙሉ ስራውን ለመጀመር ደረጃ ያዘጋጃል።

ግኝት እና መሰብሰብ

  • የክፍያ ጭነት dumps process.env እና ከፍተኛ ኢንትሮፒ ሚስጥሮችን እና የቶከን ቅድመ ቅጥያዎችን ለማግኘት የአካባቢ ፋይሎችን ይቃኛል። በተጨማሪም፣ TruffleHog ን በማስኬድ ሽፋኑን ያሰፋዋል።
  • የአጭር ጊዜ ምስክርነቶችን ለመሰብሰብ የደመና ሜታዳታ የመጨረሻ ነጥቦችን ይጠይቃል። ለአብነት, ጥሪዎች ወደ 169.254.169.254 በ AWS ወይም metadata.google.internal በጂሲፒ (GCP) ላይ ብዙውን ጊዜ በበሽታው በተያዙ አስተናጋጆች ውስጥ ይታያሉ።
  • በዚህም ምክንያት, ማንኛውም የተገኘ ማስረጃ አዲስ የnpm ፓኬጆችን ለማተም ወይም የGitHub የስራ ፍሰቶችን ለመግፋት ወዲያውኑ ጥቅም ላይ ሊውል ይችላል።

ፍልሰት

  • ትሉ አዲስ የጂቲዩብ ማከማቻ ስም ይፈጥራል ሻይ-ሁሉድ እና ድርብ ቤዝ64-ኢንኮድ ያለው ይጽፋል data.json ከመድረክ ዝርዝሮች፣ ከአካባቢ ቆሻሻ መጣያዎች እና ምስጢሮች ጋር። እንደሚታየው፣ ተከላካዮች የት መፈለግ እንዳለባቸው የሚያውቁ ከሆነ ይህ ጫጫታ ባህሪ በቀላሉ ይታያል።
  • እንዲሁም የጂቲኤችቲ እርምጃዎች የስራ ፍሰት ይተክላል፣ ብዙውን ጊዜ በተጠቀሰው ቅርንጫፍ ላይ shai-huludተከታታይ የሚያደርገው ${{ toJSON(secrets) }} እና ውሂቡን ወደ የማይንቀሳቀስ የድር መንጠቆ ይለጥፋል። በተጨማሪም፣ ይህ የስራ ፍሰት አንድ ሰው በንቃት እስኪያስወግደው ድረስ ይቀጥላል።

መስፋፋት

  • በማንኛውም የተገኘ የnpm ቶከን፣ የክፍያ ሎዱ በተጎዳው አስተናጋጅ የተያዙትን ሁሉንም ፓኬጆች ይዘረዝራል። ከዚያም እያንዳንዱን ታርቦል ያወጣል፣ bundle.js እና የድህረ ጭነት ግቤት ይጭናል፣ እና ጥቅሉን እንደገና ያትማል።
  • በዚህም ምክንያት፣ በደርዘን የሚቆጠሩ በበሽታው የተያዙ ፓኬጆች በጥቂት ሰዓታት ውስጥ ሊታዩ ይችላሉ፣ ይህም የፍንዳታ ራዲየስን በሥነ-ምህዳሩ ውስጥ ያባዛዋል።

ጽናት እና መጋለጥ

  • ትሉ ተንኮል አዘል የስራ ፍሰቶችን ሕያው አድርጎ ያቆያል፣ እና በብዙ አጋጣሚዎች የግል ማከማቻዎችን ለሕዝብ ይገልብጣል "-ፍልሰት" ድህረ ቅጥያ። በአጠቃላይ፣ ይህ አጥቂው ቦታውን እንዲይዝ እና የውሂብ መፍሰስን ከፍ እንዲያደርግ ያረጋግጣል።

የቁልፍ ማወቂያ ማስታወሻ
ይህ ያልተለመደ አጠቃቀም ${{ toJSON(secrets) }} በድርጊቶች ውስጥ የስራ ፍሰቶች ብርቅ ናቸው። ስለዚህ, ቡድኖች በአደን ወቅት እንደ ከፍተኛ ምልክት አመልካች አድርገው ሊመለከቱት ይገባል።

መፈለግ ያለብዎት የተጣራ የስራ ፍሰት ንድፍ

ይህ ያልተለመደ አጠቃቀም ወደ ጄኤስኤን (ምስጢሮች) በዚህ ክስተት ውስጥ በ Actions ውስጥ ከፍተኛ ምልክት አመልካች ነው።

ከፍተኛ ደረጃ ያለው የስርጭት ስም-ኮድ (ደህንነቱ የተጠበቀ፣ ገላጭ)

ተንታኞች ይህንን ዑደት በስፋት ተመልክተዋል፣ ይህም ከደርዘን የሚቆጠሩ በበሽታው የተያዙ ፓኬጆችን ወደ በመቶዎች የሚጠጋ ፈጣን ዝላይን ያብራራል።

ይህ በጥቅል ሥነ-ምህዳር ውስጥ ትል የሆነው ለምንድነው?

ትል በእያንዳንዱ ደረጃ በእጅ የሚሰራ ኦፕሬተር እርምጃ ሳያስፈልገው በራሱ የሚሰራጭ ማልዌር ነው። በኦፕሬቲንግ ሲስተሞች ውስጥ ትሎች ብዙውን ጊዜ ከአንድ ማሽን ወደ ሌላ ማሽን ለመሸጋገር የኔትወርክ ተጋላጭነቶችን ይጠቀማሉ። በተቃራኒው፣ ሻይ-ሁሉድ በnpm መዝገብ ቤት ውስጥ ይሰራል። ውጤታማ መንገዱ በ የምስክርነት ድጋሚ ጥቅም ላይ ማዋል.

ትሉ የተሰረቁ የnpm ማተሚያ ቶከኖችን ይጠቀማል። ትክክለኛ የምስክር ወረቀቶችን እንዳገኘ፣ በተመሳሳይ አስተናጋጅ ባለቤትነት በተያዙ ሌሎች ፓኬጆች ስር የተበከሉ ስሪቶችን እንደገና ያትማል። በመቀጠል፣ እነዚያ ፓኬጆች ባልተጠረጠሩ ገንቢዎች ወይም በCI ሯጮች ይጫናሉ፣ እና ዑደቱ ይደገማል።

በዚህ ምክንያት የደህንነት ተንታኞችን ጨምሮ ጨለማ ንባብሻይ-ሁሉድን እንደ ራሱን የሚተካ ትል ቀላል ትሮጃን ወይም የፊደል አጻጻፍ ክስተት ከመሆን ይልቅ። ልዩነቱ አስፈላጊ ነው፡ ትሮጃን በተለምዶ አንድን አስተናጋጅ ይጎዳል፣ ነገር ግን ትል በሥነ-ምህዳር ላይ ያለውን ተጽእኖ በራስ-ሰር ያጎላል።

"እንዴት እንደሚሰራ" የማጭበርበሪያ ወረቀት

የሻይ-ሁሉድን የህይወት ዑደት ለማጠቃለል፣ አንድ ማጭበርበር ይኸውናcisየዋና ዋና ደረጃዎቹን ዝርዝር መግለጫ፡-

  • ፓኬጅ ከ ጋር ድህረ-ጭነት ተጭኗል፣ እና bundle.js ያስፈጽማል።
  • የክፍያ ጭነት የአካባቢ ተለዋዋጮችን ይቃኛል፣ ፋይሎችን እና የጂት ታሪክን ይቃኛል፣ ይሰራል ትሩፍልሆግእና የደመና ሜታዳታ አገልግሎቶችን ይጠይቃል። በዚህም ምክንያት፣ የተገኘ ማንኛውም ሚስጥር ወዲያውኑ ጠቃሚ ይሆናል።
  • የማጣራት ሂደት በሁለት መንገዶች ይከሰታል፡ በመጀመሪያ፣ ስሙ የተሰየመ የህዝብ ማከማቻ በመፍጠር ሻይ-ሁሉድ ድርብ ቤዝ64-ኢንኮድ ያለው data.jsonሁለተኛ፣ የሚለጥፍ የጂትሆብ አክሽንስ የስራ ፍሰት በመትከል ${{ toJSON(secrets) }} ወደ ድር መንጠቆ።
  • ማንኛውንም የተሰረቀ የnpm ቶከን በመጠቀም፣ ትሉ በተጎዳው አስተናጋጅ የተያዙ ሌሎች ፓኬጆችን በተመሳሳይ ተንኮል አዘል መንጠቆ እንደገና ያትማል። በዚህ መንገድ፣ ኢንፌክሽኑ በፍጥነት ይባዛል።
  • በመጨረሻም፣ አጥቂው ተጨማሪ ምስጢሮችን፣ ለማሰራጨት ተጨማሪ ፓኬጆችን ይይዛል፣ እና ጽናት በ GitHub መለያዎች እና ማከማቻዎች ውስጥ።

ይህንን የጥቃት ክፍል እንዴት ማስወገድ እንደሚቻል፣ በተግባር

ሻይ-ሁሉድ የማንቂያ ደወል ነው። ቶከኖችን የሚሰርቅ እና እራሱን እንደገና የሚያትም ትል የወደፊት አደጋ አይደለም፣ በቀጥታ ስርጭት ውስጥ ነው የnpm ፓኬጆች ሥነ-ምህዳር ዛሬ። ይህንን አይነት ለመከላከል የአቅርቦት ሰንሰለት ጥቃትቡድኖች በፕሮግራም ሊዘጋጁ፣ በራስ-ሰር ሊሠሩ እና በቀጥታ ሊተገበሩ የሚችሉ መቆጣጠሪያዎች ያስፈልጋቸዋል CI/CD pipelineእነዚህ አስቀድመው ሊተገብሩዋቸው የሚችሏቸው ተመሳሳይ መከላከያዎች ናቸው ዚጌኒ.

በበሩ ላይ መጥፎ ቅርሶችን አቁም

የ npm ፓኬጆችን እና ታርቦሎችን ወደ ገንቢዎች ወይም የ CI ስራዎች ከመድረሳቸው በፊት መቃኘት አለብዎት። bundle.js ፋይሎች፣ አጠራጣሪ ድህረ-ጭነት hooksእና የደበዘዘ ምልክት ማድረጊያ ምልክቶች ሁሉ እንደ መጀመሪያ ቀይ ባንዲራዎች ሆነው ያገለግላሉ። ከዚህም በላይ፣ የማቀዝቀዣ ጊዜዎችን እና የተጣበቁ ስሪቶችን በ ውስጥ ማስፈጸም pipelineዎች ትኩስ፣ ያልተረጋገጡ ልቀቶች በራስ-ሰር እንዳይጠቀሙ ይከላከላል።

ጥንቁቅ CI/CD በነባሪነት

Guardrails in CI/CD አስፈላጊ ናቸው። አዳዲስ ስክሪፕቶችን ወይም ባይነሪዎችን የሚያስተዋውቁ ውህዶችን ወይም ጭነቶችን አይቀበሉም። በተመሳሳይ ጊዜ፣ ምስጢሮችን ተከታታይ የሚያደርጉ ወይም ውጫዊ ልጥፎችን የሚሞክሩ የስራ ፍሰቶችን ያግዳሉ። ቡድኖች እንዲሁ በፋይል-ብቻ የሚጫኑ ጭነቶችን (npm ci) በሁሉም በኩል pipelineስለዚህ የጥገኝነት ስብስቦች እንደገና ሊባዙ የሚችሉ እና ደህንነታቸው የተጠበቀ ሆነው ይቆያሉ።

የቶከን ፍንዳታ ራዲየስን ይቀንሱ

ምስጢሮች ነጠላ የውድቀት ነጥቦች መሆን የለባቸውም። ኮዱን፣ ውቅሮችን እና pipeline ውፅዓት ለ የተጋለጡ ምስክርነቶችቶከኖች ለአጭር ጊዜ ሲቆዩ በጠባብ መንገድ ስካፕ መደረግ አለባቸው፣ እና ተጋላጭነቱ ሲታወቅ በራስ-ሰር መሽከርከር አለባቸው። እንደ ደንቡ፣ አጠራጣሪ የድህረ-ጭነት አፈጻጸም ባደረገ አስተናጋጅ ላይ ጥቅም ላይ የዋለ ማንኛውንም ቶከኖች እንደተጠለፉ አድርገው ይቁጠሩ።

የትል ባህሪን ቀደም ብለው ይመልከቱ

Anomaly ማወቂያ ቁልፍ ነው። ለምሳሌ፣ በnpm ላይ ድንገተኛ የህትመት ክስተቶች፣ ያለምክንያት የሚታዩ አዳዲስ የስራ ፍሰቶች ወይም እንግዳ በሆኑ የተመሰጠሩ ፋይሎች የተሞሉ አዳዲስ የህዝብ ማከማቻዎች ሁሉም የትል እንቅስቃሴን ሊያመለክቱ ይችላሉ። ስለዚህ፣ ቡድኖች ማንቂያዎችን በፍጥነት ማሰማት እና እነዚህን የማስጠንቀቂያ ምልክቶች የሚያሳዩ ማንኛቸውም ተቆጣጣሪዎችን ወይም ሯጮችን ማግለል አለባቸው።

ግንባታዎችን ሳይሰብሩ በፍጥነት ያስተካክሉ

ፍጥነት እና ደህንነት አንድ ላይ መሄድ አለባቸው። በራስ-ሰር የሚሰራ pull requests የተበላሹ የnpm ፓኬጆችን በተረጋገጡ ስሪቶች መተካት ይችላል። በተጨማሪም፣ ተደራሽ መሆንብዝበዛ ትንታኔ ማሻሻያዎች አነስተኛ እና የተረጋጉ እንዲሆኑ ያረጋግጣል። በመጨረሻም፣ ተጋላጭነቱ ከተረጋገጠ በኋላ የተጎዱትን የCI ሯጮችን ከንጹህ ምስሎች እንደገና ይገንቡ፣ ይህም ጥቃቱ እንዳይስፋፋ ይከላከላል።

የመደራደር አመላካቾች (IoCs)

ሻይ-ሁሉድን ሲተነትኑ፣ ቡድኖች ሁለቱንም መከታተል አለባቸው የማይንቀሳቀሱ አይኦሲዎች በፋይሎች እና የባህሪ አይኦሲዎች in pipelineዎች. እነዚህ ምልክቶች አንድ ላይ ሆነው ኢንፌክሽኖችን ቀደም ብለው ለመለየት እና ትሉ ከመስፋፋቱ በፊት ምላሽ ለመስጠት ይረዳሉ።

የማይንቀሳቀሱ አይኦሲዎች

የሚከተሉት የSHA-256 ማጠቃለያዎች ተዛማጅነት ተስተውለዋል bundle.js ናሙናዎች፡

  • 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
  • 81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
  • dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c

በተጨማሪም፣ እነዚህን ተደጋጋሚ ቅጦች ተመልከት፡

  • A bundle.js በጥቅሉ ሥር።
  • "postinstall": "node bundle.js" ውስጥ package.json.
  • የተሰየሙ ማከማቻዎች ሻይ-ሁሉድ.
  • የጂቲኤችቢ የስራ ፍሰቶችን የያዘ ${{ toJSON(secrets) }}.

የባህሪ አይኦሲዎች

ከፋይል ፊርማዎች ባሻገር፣ የትል እንቅስቃሴ ራሱን በባህሪው ያሳያል። ለምሳሌ፡

  • ድንገተኛ የ npm ፍንዳታዎች ከአንድ አስተናጋጅ የተወሰዱ ክስተቶችን ያትማሉ።
  • ውሂብን ወደ ውጫዊ የመጨረሻ ነጥቦች የሚያስተላልፉ አዳዲስ የስራ ፍሰቶች።
  • ወደ ውጭ የሚላኩ የPOST ጥያቄዎች ከCI ሯጮች የተቀሰቀሱ ናቸው።
  • በቅርቡ የተመሰጠሩ ብሎቦችን በመጠቀም የህዝብ ማከማቻዎችን ፈጥረዋል።

ፈጣን አደኖች

ማጠቃለያ፡ ከሻይ-ሁሉድ የተገኙ ትምህርቶች

የሻይ-ሁሉድ የአቅርቦት ሰንሰለት ጥቃት በnpm ፓኬጆች ውስጥ የዛሬው የሶፍትዌር አቅርቦት ሰንሰለት ምን ያህል ደካማ እንደሆነ ያሳያል። ይህ ትል ተንኮል አዘል ኮድ ከመጨመር የበለጠ ነገር አድርጓል። ቶከኖችን ሰርቋል፣ ውሂብ ልኳል፣ እና ከዚያም እራሱን በራስ-ሰር እንደገና አሳትሟል። በዚህ ምክንያት ጥቃቱ በሳምንታት ሳይሆን በሰዓታት ተሰራጭቷል።

ለገንቢዎች እና ለ DevOps ቡድኖች፣ ትምህርቶቹ ግልጽ ናቸው፡

  • እያንዳንዱ ጭነት ኮድ ያሂዳል። አንድ የተለመደ የnpm ጥቅል እንኳን የpostinstall ትልን ሊደብቅ ይችላል።
  • እያንዳንዱ ቶከን ከፍተኛ ዋጋ አለው። አንዴ ከተሰረቀ በኋላ ተንኮል አዘል ዌርን የበለጠ ለማሰራጨት ሊያገለግል ይችላል።
  • በየ pipeline ቼኮችን ይፈልጋል። ያለ guardrails ጥገኝነቶችን፣ የስራ ፍሰቶችን እና ምስጢሮችን በተመለከተ፣ አንድ ስምምነት በፍጥነት ምርትን ሊያበላሽ ይችላል።

ስለዚህ፣ እንደ ሻይ-ሁሉድ ያሉ ጥቃቶችን ማስቆም አውቶማቲክ እና ለማስፈጸም ቀላል የሆኑ መቆጣጠሪያዎችን ይፈልጋል። ቡድኖች ከመጫንዎ በፊት የnpm ፓኬጆችን መቃኘት፣ የመቆለፊያ ፋይል ግንባታዎችን መጠቀም፣ እንግዳ የሆነ የህትመት እንቅስቃሴን መለየት እና ቶከኖችን ለአጭር ጊዜ ማቆየት አለባቸው። እነዚህ እርምጃዎች ከአሁን በኋላ አማራጭ አይደሉም። በምትኩ፣ በዘመናዊው ዓለም የመቋቋም መሠረት ናቸው። pipelines.

በXygeni፣ የሻይ-ሁሉድ የአቅርቦት ሰንሰለት ጥቃትን ለጠቅላላው ክፍት ምንጭ ሥነ-ምህዳር ማስጠንቀቂያ አድርገን እንመለከተዋለን። ዘላቂው ወደፊት የሚሄደው መንገድ የአቅርቦት ሰንሰለት ደህንነትን በቀጥታ ወደ ልማት ሂደቱ ማምጣት ነው፣ ኮድ፣ npm ፓኬጆች እና pipelineዎች ይገናኙ።

ከታች በሻይ-ሁሉድ ውስጥ እንደተጠለፉ የተዘገቡት የnpm ፓኬጆች እና ስሪቶች ሙሉ ዝርዝር ነው። የእርስዎን የመቆለፊያ ፋይሎች፣ መዝገቦች እና CI ለመፈተሽ ይጠቀሙበት pipelineለተጋላጭነት።

የተጎዱ ፓኬጆች ዝርዝር

📦 የተጨናነቁ የnpm ፓኬጆች ቅድመ እይታ

የጥቅል ስም ትርጉም የታተመበት ቀን
json-rules-engine-simplified0.2.12025-09-14T17:58:51.203Z
የአውሮፕላን አብራሪ0.8.82025-09-14T18:35:07.600Z
mcp-knowledge-graph1.2.12025-09-14T18:35:09.494Z
የአየር መሸፈኛ0.3.12025-09-14T18:35:09.521Z
የዝላይ በር0.0.22025-09-14T18:35:09.651Z
tvi-cli0.1.52025-09-14T18:35:10.996Z
@thangved/callback-window1.1.42025-09-14T20:31:38.479Z
@tnf-dev/api1.0.82025-09-14T20:31:39.547Z
@tnf-dev/js1.0.82025-09-14T20:31:41.251Z
@tnf-dev/mui1.0.82025-09-14T20:31:41.259Z
@tnf-dev/core1.0.82025-09-14T20:31:42.728Z
@teselagen/react-table6.10.202025-09-14T20:37:08.597Z
@hestjs/demo0.1.22025-09-14T20:45:52.348Z
@nexe/eslint-config0.1.12025-09-14T20:45:53.625Z
@hestjs/eslint-config0.1.22025-09-14T20:45:55.044Z
@nexe/config-manager0.1.12025-09-14T20:45:55.066Z
@nexe/ሎገር0.1.32025-09-14T20:45:55.170Z
@hestjs/logger0.1.62025-09-14T20:45:55.197Z
@hestjs/ማረጋገጫ0.1.62025-09-14T20:45:55.595Z
@hestjs/ኮር0.2.12025-09-14T20:45:55.888Z
➡️ የተጣሱ ፓኬጆችን ሙሉ ዝርዝር ይመልከቱ
የጥቅል ስም ትርጉም የታተመበት ቀን
json-rules-engine-simplified0.2.12025-09-14T17:58:51.203Z
የአውሮፕላን አብራሪ0.8.82025-09-14T18:35:07.600Z
mcp-knowledge-graph1.2.12025-09-14T18:35:09.494Z
የአየር መሸፈኛ0.3.12025-09-14T18:35:09.521Z
የዝላይ በር0.0.22025-09-14T18:35:09.651Z
tvi-cli0.1.52025-09-14T18:35:10.996Z
@thangved/callback-window1.1.42025-09-14T20:31:38.479Z
@tnf-dev/api1.0.82025-09-14T20:31:39.547Z
@tnf-dev/js1.0.82025-09-14T20:31:41.251Z
@tnf-dev/mui1.0.82025-09-14T20:31:41.259Z
@tnf-dev/core1.0.82025-09-14T20:31:42.728Z
@teselagen/react-table6.10.202025-09-14T20:37:08.597Z
@hestjs/demo0.1.22025-09-14T20:45:52.348Z
@nexe/eslint-config0.1.12025-09-14T20:45:53.625Z
@hestjs/eslint-config0.1.22025-09-14T20:45:55.044Z
@nexe/config-manager0.1.12025-09-14T20:45:55.066Z
@nexe/ሎገር0.1.32025-09-14T20:45:55.170Z
@hestjs/logger0.1.62025-09-14T20:45:55.197Z
@hestjs/ማረጋገጫ0.1.62025-09-14T20:45:55.595Z
@hestjs/ኮር0.2.12025-09-14T20:45:55.888Z
@hestjs/cqrs0.1.62025-09-14T20:45:55.966Z
@hestjs/scalar0.1.72025-09-14T20:45:56.386Z
ng2-ፋይል-ሰቀላ7.0.32025-09-15T02:44:29.555Z
የካፓሲተር-ማሳወቂያ ተቆጣጣሪ0.0.22025-09-15T04:54:48.431Z
የካፓሲተር-ፕለጊን-ቮኔጅ1.0.22025-09-15T04:54:48.501Z
capacitor-plugin-healthapp0.0.22025-09-15T04:54:48.704Z
የ capacitorandroid ፈቃዶች0.0.42025-09-15T04:54:48.753Z
voip-callkit1.0.22025-09-15T04:54:49.223Z
capacitor-plugin-ihealth1.1.82025-09-15T04:55:08.113Z
@art-ws/common2.0.222025-09-15T05:21:15.411Z
@art-ws/config-eslint2.0.42025-09-15T05:21:17.199Z
ngx-ws1.1.52025-09-15T05:21:17.514Z
@art-ws/slf2.0.152025-09-15T05:21:17.524Z
@art-ws/http-server2.0.212025-09-15T05:21:17.745Z
pm2-gelf-json1.0.42025-09-15T05:21:18.413Z
@art-ws/di2.0.282025-09-15T05:21:18.488Z
@art-ws/di-node2.0.132025-09-15T05:21:18.849Z
@art-ws/config-ts2.0.72025-09-15T05:21:19.408Z
@art-ws/db-context2.0.212025-09-15T05:21:19.814Z
@art-ws/openapi0.1.92025-09-15T05:21:19.969Z
@art-ws/web-app1.0.32025-09-15T05:21:20.383Z
@art-ws/ssl-info1.0.92025-09-15T05:21:20.927Z
sca-tools-software-composition-analyse-tools
የሶፍትዌር አደጋዎችዎን ቅድሚያ ይስጡ፣ ያስተካክሉ እና ይጠብቁ
ነፃ መለያ ያግኙ።
ምንም ዱቤ ካርድ አያስፈልግም።

የሶፍትዌር ልማትዎን እና አቅርቦትዎን ደህንነት ይጠብቁ

ከ Xygeni Product Suite ጋር