TL; ඩී
2025 සැප්තැම්බර් 14 වන දින, පර්යේෂකයන් හඳුනා ගත්තේ ෂායි හුලුඩ්, ඇතුළත සැඟවී ඇති ස්වයං-ප්රතිනිර්මාණය වන පණුවෙක් npm පැකේජ, සාමාන්ය පරායත්තතා යාවත්කාලීන කිරීමක් පූර්ණ පරිමාණයක් බවට පත් කිරීම සැපයුම් දාම ප්රහාරය. මුලින්ම දක්නට ලැබුණේ @ctrl/කුඩා වර්ණය ඩැනියෙල් ඩොස් සැන්ටොස් පෙරෙයිරා විසින් රචිත පැකේජයකින්, ෂායි-හුලුඩ් රහස් එකතු කර, ඒවා GitHub ගබඩා සහ වැඩ ප්රවාහ හරහා බැහැර කර, සොරකම් කරන ලද අක්තපත්ර භාවිතයෙන් රෙජිස්ට්රිය පුරා නැවත ප්රකාශයට පත් කරයි. දින කිහිපයක් ඇතුළත, ආසාදිත පැකේජ ගණන දුසිම් ගණනක සිට සිය ගණනක් දක්වා ඉහළ ගිය අතර, එය සනාථ කරයි. ෂයිහුලුඩ් යනු තවත් ට්රෝජන් එකක් පමණක් නොව npm පරිසර පද්ධතිය පුරා ස්වයංක්රීයව පැතිරීම සඳහා නිර්මාණය කර ඇති පණුවකි.
බලපෑම: පොදු npm පැකේජ ස්ථාපනය කරන ඕනෑම සංවර්ධකයෙකු හෝ CI ධාවකයෙකු අවදානමට ලක්ව ඇත.
ක්ෂණික ක්රියා: දන්නා අනුවාද අවහිර කරන්න, lockfile-only installs වෙත මාරු වන්න, npm සහ GitHub ටෝකන කරකවන්න, වැඩ ප්රවාහ විගණනය කරන්න, සහ සම්මුති දර්ශක (IoCs) සඳහා මොනිටරය.
කුමක් සිදුවන්නේ ද?
එම npm පැකේජවල ෂායි-හුලුඩ් සැපයුම් දාම ප්රහාරයක් මෑත කාලීන මතකයේ ඇති වූ වඩාත්ම කඩාකප්පල්කාරී සිදුවීම් වලින් එකකි. හුදකලා ට්රෝජන් මෙන් නොව, මෙම පණුවා මිශ්ර වේ අක්තපත්ර සොරකම, ස්වයංක්රීය පිටකිරීම සහ ස්වයං-ප්රතිනිර්මාණයඑහි ප්රතිඵලයක් ලෙස, ආසාදන කාලරාමුව සති වලින් පැය කිහිපයක් දක්වා හැකිලී ගියේය.
DevOps කණ්ඩායම් සඳහා, පාඩම පැහැදිලිය: සෑම ස්ථාපනයකටම කේතය ක්රියාත්මක කළ හැකි නම්, සෑම යැපුම් යාවත්කාලීන කිරීමක්ම විභව කඩ කිරීමේ ලක්ෂ්යයකි.
විය හැකි ආරම්භක දෛශිකය සහ ඉලක්කගත අක්තපත්ර
මුල් විශ්ලේෂණය ප්රහාරය ආරම්භ වී ඇති බව පෙන්නුම් කරයි සොරකම් කරන ලද අක්තපත්ර. උදාහරණයක් ලෙස, npm වංචා කරන තතුබෑම් ව්යාපාර login හෝ MFA ප්රේරක මඟින් සංවර්ධක ටෝකන අල්ලාගෙන තිබිය හැක. ප්රහාරකයින් එම පළමු පියවර ගත් පසු, පණුවා npm පැකේජවලට කාවැද්දීම සහ තවත් රහස් සොරකම් කිරීමෙන් පැතිර ගියේය:
- npm වින්යාස ගොනු මෙන්
.npmrc, බොහෝ විට ප්රකාශන ටෝකන අඩංගු වේ. - පාරිසරික විචල්යයන් සහ GitHub PAT සමඟ configs සහ CI/CD රහස්.
- වලාකුළු පාරදත්ත අන්ත ලක්ෂ්ය (AWS, GCP, Azure) පාර්ශ්වීය චලනය සඳහා කෙටි කාලීන අක්තපත්ර ලබා දෙයි.
එබැවින්, අක්තපත්ර සොරකම දියත් කිරීමේ පෑඩ් බවට පත් විය. වලංගු npm ටෝකන සහ GitHub රහස් සමඟින්, ෂායි-හුලුඩ්ට අමතර මිනිස් වෑයමකින් තොරව බහු පැකේජ සහ ගබඩාවන් හරහා ස්වයං-ප්රතිනිර්මාණය කළ හැකිය.
ෂායි-හුලුඩ් සැපයුම් දාම ප්රහාරයේ විධායක බලපෑම
ෂයි-හුලුඩ් අදටත් ක්රියාකාරීයි. මෙම පණුවා බලපෑම් කාලරේඛාව වේගවත් කරයි. ට්රෝජන් සමඟ සති ගණනක් ගත කළ දෙයක් දැන් පැය කිහිපයකින් දිග හැරේ. එහි ප්රතිඵලයක් ලෙස, පැතිරීම වේගවත් හා පාලනය කිරීමට අපහසුය. එය ඉදිරියට යන්නේ:
- npm ප්රකාශන ටෝකන් සහ GitHub රහස් සොරකම් කිරීම.
- වෙනත් npm පැකේජ වලට නැවත ප්රකාශයට පත් කිරීම.
- නොනැසී පැවතීම සඳහා ද්වේෂසහගත GitHub ක්රියා කාර්ය ප්රවාහ එකතු කිරීම.
බලපෑමට ලක්වන්නේ කවුද:
පොදු npm පැකේජ ස්ථාපනය කරන ඕනෑම කණ්ඩායමක් නිරාවරණය වේ. එපමණක් නොව, හැඹිලිගත npm හෝ GitHub ටෝකන සහිත සංවර්ධකයින් ඉහළ අවදානමකට මුහුණ දෙයි. පුළුල් පරාසයක රහස් භාවිතා කරන CI ධාවකයන් ද අවදානමට ලක්විය හැකිය.
ව්යාපාර අවදානම
ව්යාපාර බලපෑම ඉක්මනින් වර්ධනය වේ. සොරකම් කරන ලද ටෝකන ගිණුම් අත්පත් කර ගැනීම, පැකේජ පැහැර ගැනීම සහ වලාකුළු අනිසි භාවිතයට පවා හේතු විය හැක. ඊට අමතරව, GitHub වැඩ ප්රවාහයන්හි නොනැසී පැවතීම පිරිසිදු කිරීම දුෂ්කර කරයි. එබැවින්, කණ්ඩායම් ෂායි-හුලුඩ් සංවෘත සිදුවීමක් ලෙස නොව, අඛණ්ඩ සිදුවීමක් ලෙස සැලකිය යුතුය.
npm පැකේජවල ෂායි-හුලුඩ් සැපයුම් දාම ප්රහාරය ක්රියාත්මක වන ආකාරය
ප්රහාරකයාගේ අරමුණු සහ චේතනාව
මෙම ව්යාපාරය කරුණු තුනක් සඳහා ප්රශස්ත කරයි:
- පළමු අරමුණ වන්නේ පරිමාණයෙන් අක්තපත්ර සොරකම් කරන්න සංවර්ධක ලැප්ටොප් පරිගණක සහ CI ධාවකයන්ගෙන්. මෙයට npm ප්රකාශන ටෝකන, GitHub ටෝකන සහ වලාකුළු අක්තපත්ර ඇතුළත් වේ. ඇත්ත වශයෙන්ම, බහු විශ්ලේෂණයන් TruffleHog ධාවනය කිරීම සහ වලාකුළු පාරදත්ත අන්ත ලක්ෂ්ය විමසීම වැනි ක්රමානුකූල රහස් අස්වැන්න තහවුරු කරයි.
- දෙවන අරමුණ වන්නේ ස්වයංක්රීයව ප්රචාරණය කරන්න සම්මුතියකට ලක් වූ නඩත්තුකරුවන්ගේ ප්රකාශන අයිතිවාසිකම් අනිසි ලෙස භාවිතා කිරීමෙනි. එහි ප්රතිඵලයක් වශයෙන්, එක් පැකේජයක් ඉක්මනින් බොහෝ ඒවා දක්වා ව්යාප්ත වේ, මන්ද අනෙකුත් පැකේජවල නව ආසාදිත අනුවාදයන් අමතර මිනිස් උත්සාහයකින් තොරව දිස්වන බැවිනි.
- තුන්වන අරමුණ වන්නේ නොනැසී පැවතීම සහ විශ්වාසදායක ලෙස බැහැර කිරීම GitHub යටිතල පහසුකම් හරහා. ප්රහාරකයින් ද්විත්ව පාදකයක් සහිත “Shai-Hulud” නමින් පොදු ගබඩාවක් නිර්මාණය කරයි64 දත්ත.ජේසන්, ඊට අමතරව ඔවුන් අනුක්රමික කරන වැඩ ප්රවාහයක් වගා කරයි ${{ සිටJSON(රහස්) }} සහ එය ස්ථිතික වෙබ් කොක්කකට පළ කරයි.
විය හැකි ප්රතිලාභ අතරට රෙජිස්ට්රි සහ මූලාශ්ර කේත වෙත දිගුකාලීන ප්රවේශය, වලාකුළු ගිණුම් වෙත වේගවත් පාර්ශ්වික චලනය සහ සැපයුම් දාමය තවදුරටත් ආයුධ සන්නද්ධ කිරීමේ විකල්පය ඇතුළත් වේ. පොදු වාර්තාකරණයෙන් පෙන්නුම් කරන්නේ පුද්ගලික ගබඩා කොටස් මහජනතාවට මාරු කර ඇති බවයි. "-සංක්රමණය" දත්ත නිරාවරණය සහ ගම්යතාව වැඩි කරන උපසර්ගය
ෂායි-හුලුඩ් බර පැටවීම ඇතුළත: බණ්ඩල්.ජේඑස් npm පැකේජ වල
ෂයි-හුලුද් නැව් ලෙස විශාල, වෙබ් පැක්-බණ්ඩල් කර ඇති සහ දැඩි ලෙස කුඩා කර ඇති ජාවාස්ක්රිප්ට් ගොනුව (බණ්ඩල්.ජේඑස්, 3–3.7 MB පමණ) එය ක්රියාත්මක කරන්නේ a පශ්චාත් ස්ථාපනය සම්බන්ධ වන්න පැකේජය. එහි ප්රතිඵලයක් ලෙස, සෑම ස්ථාපනයක්ම ගෙවීම් භාරය ස්වයංක්රීයව ක්රියාත්මක කරයි. මෙම සැලසුම හඳුනාගැනීම් සඟවයි, පාලන ප්රවාහය සම්පීඩනය කරයි, සහ ස්ථාපනය අතරතුර ක්රියාත්මක වන තනි කෞතුක වස්තුවකට සියලු තර්ක තල්ලු කරයි. විශ්ලේෂකයින් නිරන්තරයෙන් Webpack බණ්ඩල් කිරීම, අසාමාන්ය ගොනු ප්රමාණය සහ ස්ථාපන-කාල ක්රියාත්මක කිරීම තහවුරු කරයි.
සාම්පලවල ඔබට දැකිය හැකි අපැහැදිලි කිරීමේ සහ ප්රති-විශ්ලේෂණ ලක්ෂණ:
- කුඩා කළ මොඩියුල ප්රස්තාරය සංඛ්යාත්මක මොඩියුල හැඳුනුම්පත්, විරල අදහස් සහ පැතලි පාලන ප්රවාහය සමඟ. එපමණක් නොව, මෙම ව්යුහය අතින් සමාලෝචනය අතිශයින් දුෂ්කර කරයි.
- නූල් සැඟවීම base64 ස්ථර සහ ඉදිකිරීම් සහායකයින් හරහා. උදාහරණයක් ලෙස, නැවත නැවතත් base64 කේතනය සහ විකේතනය සාමාන්යයෙන් පිටකිරීමේ චර්යාවන් වටා දිස්වේ.
- ගතික යැවීම ඔස්සේ පරිණාමය-style රටා සහ ජනනය කරන ලද ශ්රිත ශරීර, එබැවින් කේතයට ධාවන වේලාවේදී හැසිරීම මාරු කිරීමට හැකියාව ලබා දෙයි.
- OS පෙරහන විශේෂයෙන් CI ධාවකයන් සහ සංවර්ධක ලැප්ටොප් පරිගණකවල Linux සහ macOS ක්රියාත්මක කිරීමට කැමැත්තක් දක්වන්න.
ක්රියාකාරී කෝණයකින්, බණ්ඩලය මොඩියුලර් වේ. Writeups මඟින් OS සොයාගැනීම්, ගොනු පද්ධති සහ git රහස් ස්කෑන්, cloud SDK ප්රවේශය, GitHub API මෙහෙයුම් සහ නඩත්තුකරු සතු අනෙකුත් පැකේජ සංස්කරණය කරන ප්රචාරණ එන්ජිමක් සඳහා මොඩියුල විස්තර කරයි. ඇත්ත වශයෙන්ම, StepSecurity සහ ReversingLabs යන දෙකම අනිෂ්ට කොක්ක සමඟ පැකේජ ස්වයංක්රීයව යාවත්කාලීන කරන ශ්රිතයක් ඉස්මතු කරයි.
ෂයි-හුලුඩ් හි ස්ථාපන-කාල ක්රියාත්මක කිරීම: npm පැකේජ පණුවා අවුලුවන ආකාරය
ප්රහාරය ආරම්භ වන්නේ postinstall node ධාවනය කරයි බණ්ඩල්.ජේඑස්. මෙම අවස්ථාවේදී, ස්ක්රිප්ට් එක මතකයේ ක්රියාකාරී තත්ත්වය ආරම්භ කර අසුරන අතර, worm හි සම්පූර්ණ ක්රියාකාරිත්වය සඳහා වේදිකාව සකසයි.
සොයා ගැනීම සහ අස්වනු නෙලීම
- payload එක process.env ඩම්ප් කරන අතර ඉහළ එන්ට්රොපි රහස් සහ ටෝකන් උපසර්ග සඳහා දේශීය ගොනු ස්කෑන් කරයි. ඊට අමතරව, එය TruffleHog ධාවනය කිරීමෙන් ආවරණය පුළුල් කරයි.
- එය කෙටි කාලීන අක්තපත්ර එකතු කිරීම සඳහා වලාකුළු පාරදත්ත අන්ත ලක්ෂ්ය විමසයි. උදාහරණයක් වශයෙන්, අමතන්නේ
169.254.169.254AWS මත හෝmetadata.google.internalආසාදිත ධාරකවල GCP බොහෝ විට දක්නට ලැබේ. - එබැවින්, සොයාගත් ඕනෑම අක්තපත්රයක් නව npm පැකේජ ප්රකාශයට පත් කිරීමට හෝ GitHub වැඩ ප්රවාහ තල්ලු කිරීමට වහාම භාවිතා කළ හැකිය.
පිටකිරීම
- පණුවා නව GitHub ගබඩාවක් නිර්මාණය කරයි, නමින් ෂායි හුලුඩ් සහ ද්විත්ව පාදයක් ලියයි64-කේතනය කර ඇත
data.jsonවේදිකා විස්තර, පරිසර ඩම්ප් සහ රහස් සමඟ. දැකිය හැකි පරිදි, ආරක්ෂකයින් කොහේ බැලිය යුතු දැයි දන්නේ නම් මෙම ඝෝෂාකාරී හැසිරීම පහසුවෙන් හඳුනාගත හැකිය. - එය බොහෝ විට නම් කරන ලද ශාඛාවක් මත GitHub ක්රියාමාර්ග වැඩ ප්රවාහයක් ද රෝපණය කරයි ෂයි-හුලුඩ්, එය අනුක්රමික වේ
${{ toJSON(secrets) }}සහ දත්ත ස්ථිතික වෙබ් හුක් එකකට පළ කරයි. තවද, යමෙකු එය ක්රියාකාරීව ඉවත් කරන තුරු මෙම කාර්ය ප්රවාහය පවතී.
ප්රචාරණය
- ඕනෑම සොයාගත් npm ටෝකනයක් සමඟ, ගෙවීම් භාරය සම්මුතියට පත් නඩත්තු කරන්නා සතු සියලුම පැකේජ ගණන් කරයි. ඉන්පසු, එය සෑම තාර්බෝල් එකක්ම ලබාගෙන, bundle.js සහ postinstall ඇතුළත් කිරීමක් එන්නත් කර, පැකේජය නැවත ප්රකාශයට පත් කරයි.
- එහි ප්රතිඵලයක් වශයෙන්, ආසාදිත පැකේජ දුසිම් ගණනක් පැය කිහිපයක් ඇතුළත දිස්විය හැකි අතර, එමඟින් පරිසර පද්ධතිය පුරා පිපිරුම් අරය ගුණ කරයි.
නොපසුබට උත්සාහය සහ නිරාවරණය
මෙම worm එක ද්වේශ සහගත වැඩ ප්රවාහයන් සජීවීව තබා ගන්නා අතර, අවස්ථා කිහිපයකදී, පුද්ගලික ගබඩා පොදු භාවිතයට යොමු කරයි. "-සංක්රමණය" උපසර්ගය. සමස්තයක් වශයෙන්, මෙය ප්රහාරකයා ස්ථාවරයක් පවත්වා ගෙන යන අතර දත්ත කාන්දු වීම උපරිම කරයි.
යතුරු හඳුනාගැනීමේ සටහන
මෙම අසාමාන්ය භාවිතය ${{ toJSON(secrets) }} ක්රියාමාර්ගවල වැඩ ප්රවාහ දුර්ලභයි. එබැවින්, දඩයම් කිරීමේදී කණ්ඩායම් එය ඉහළ සංඥා දර්ශකයක් ලෙස සැලකිය යුතුය.
ඔබ සොයා ගත යුතු සනීපාරක්ෂක වැඩ ප්රවාහ රටාව
මෙම අසාමාන්ය භාවිතය දක්වා JSON(රහස්) මෙම සිදුවීමේදී "in Actions" යනු ඉහළ සංඥා දර්ශකයකි.
ඉහළ මට්ටමේ ප්රචාරණ ව්යාජ කේතය (ආරක්ෂිත, විස්තරාත්මක)
විශ්ලේෂකයින් මෙම ලූපය පරිමාණයෙන් නිරීක්ෂණය කළ අතර, එය ආසාදිත පැකේජ දුසිම් ගණනක සිට සිය ගණනක් දක්වා වේගයෙන් පැනීමට හේතු විය.
මෙය පැකේජ පරිසර පද්ධතියක පණුවෙකු වන්නේ ඇයි?
worm එකක් යනු සෑම අදියරකදීම අතින් ක්රියාකරු පියවරයන් අවශ්ය නොවී තනිවම පැතිරෙන අනිෂ්ට මෘදුකාංගයකි. මෙහෙයුම් පද්ධති වලදී, worms සාමාන්යයෙන් එක් යන්ත්රයකින් තවත් යන්ත්රයකට මාරු වීමට ජාල අවදානම් උපයෝගී කර ගනී. ඊට වෙනස්ව, Shai-Hulud npm ලේඛකාධිකාරය තුළ ක්රියාත්මක වේ. එහි කාර්යක්ෂම මාර්ගය වන්නේ අක්තපත්ර නැවත භාවිතය.
සොරකම් කරන ලද npm ප්රකාශන ටෝකන වලින් worm ප්රයෝජන ගනී. එය වලංගු අක්තපත්ර ලබා ගත් වහාම, එම නඩත්තුකරු සතු අනෙකුත් පැකේජ යටතේ ආසාදිත අනුවාදයන් නැවත ප්රකාශයට පත් කරයි. පසුව, එම පැකේජ සැක නොකළ සංවර්ධකයින් හෝ CI ධාවකයන් විසින් ස්ථාපනය කරනු ලබන අතර, චක්රය නැවත සිදු වේ.
මේ හේතුව නිසා, ආරක්ෂක විශ්ලේෂකයින්, ඇතුළුව අඳුරු කියවීම, ෂයි-හුලුද් වර්ගීකරණය කරන්න a ලෙස ස්වයං-ප්රතිනිර්මාණය වන පණුවා සරල ට්රෝජන් එකක් හෝ අක්ෂර වින්යාස සිද්ධියක් වෙනුවට. වෙනස වැදගත් ය: ට්රෝජන් එකක් සාමාන්යයෙන් එක් ධාරකයක් සම්මුතියකට පත් කරයි, නමුත් පණුවෙකු පරිසර පද්ධතියක් හරහා එහි බලපෑම ස්වයංක්රීයව විස්තාරණය කරයි.
"එය ක්රියා කරන ආකාරය" වංචා පත්රිකාව
ෂයි-හුලුද්ගේ ජීවන චක්රය සාරාංශගත කිරීම සඳහා, මෙන්න උපමාවක්cisඑහි ප්රධාන පියවර බිඳවැටීම:
- සහිත පැකේජයක් පශ්චාත් ස්ථාපනය ස්ථාපනය කර ඇති අතර,
bundle.jsක්රියාත්මක කරයි. - ගෙවීම් පැටවුම පරිසර විචල්යයන් ඩම්ප් කරයි, ගොනු සහ git ඉතිහාසය පරිලෝකනය කරයි, ක්රියාත්මක වේ ට්රෆල්හොග්, සහ වලාකුළු පාරදත්ත සේවා විමසුම් කරයි. ප්රතිඵලයක් ලෙස, සොයාගත් ඕනෑම රහසක් වහාම ප්රයෝජනවත් වේ.
- පිටකිරීම ක්රම දෙකකින් සිදු වේ: පළමුව, නම් කරන ලද පොදු ගබඩාවක් නිර්මාණය කිරීමෙන් ෂායි හුලුඩ් ද්විත්ව පාදම64-කේතනය කර ඇති
data.json; දෙවනුව, පළ කරන GitHub ක්රියාමාර්ග වැඩ ප්රවාහයක් සිටුවීමෙන්${{ toJSON(secrets) }}වෙබ් හුක් එකකට. - සොරකම් කරන ලද ඕනෑම npm ටෝකනයක් භාවිතා කරමින්, worm එම ද්වේෂසහගත කොක්කෙන් සම්මුතියට පත් නඩත්තු කරන්නා සතු අනෙකුත් සියලුම පැකේජ නැවත ප්රකාශයට පත් කරයි. මේ ආකාරයෙන්, ආසාදනය වේගයෙන් ගුණ කරයි.
- අවසාන වශයෙන්, ප්රහාරකයා සතුව තවත් රහස්, පැතිරවීමට තවත් පැකේජ සහ නොනැසී පවතී GitHub ගිණුම් සහ ගබඩා තුළ.
මෙම වර්ගයේ ප්රහාර වළක්වා ගන්නේ කෙසේද, ප්රායෝගිකව
ෂායි-හුලුද් යනු අවදි කිරීමේ ඇමතුමකි. ටෝකන් සොරකම් කර නැවත ප්රකාශයට පත් කරන පණුවෙකු අනාගත අවදානමක් නොවේ, එය සජීවීව පවතී npm පැකේජ පරිසර පද්ධතිය අද. මෙවැනි දේ වැළැක්වීමට සැපයුම් දාම ප්රහාරය, කණ්ඩායම් වලට වැඩසටහන්ගත කළ හැකි, ස්වයංක්රීය කළ හැකි සහ සෘජුවම බලාත්මක කළ හැකි පාලනයන් අවශ්ය වේ CI/CD pipelines. මේවා ඔබට දැනටමත් ක්රියාත්මක කළ හැකි ආරක්ෂක ක්රම වේ. සයිජෙනි.
නරක කෞතුක වස්තු දොරටුව අසල නවත්වන්න.
සංවර්ධකයින් හෝ CI රැකියා වෙත ළඟා වීමට පෙර ඔබ npm පැකේජ සහ තාර බෝල ස්කෑන් කළ යුතුය. ප්රමාණයෙන් වැඩියි. bundle.js ගොනු, සැක සහිත පසු-ස්ථාපනය hooks, සහ අපැහැදිලි කිරීමේ සලකුණු සියල්ලම මුල් රතු කොඩි ලෙස ක්රියා කරයි. එපමණක් නොව, සිසිල්-නිදහස් කාල පරිච්ඡේද සහ පින් කළ අනුවාද බලාත්මක කිරීම pipelines මඟින් නැවුම්, පරීක්ෂා නොකළ නිකුතු ස්වයංක්රීයව පරිභෝජනය වීම වළක්වයි.
හාඩන් CI/CD පෙරනිමිය
Guardrails in CI/CD අත්යවශ්ය වේ. ඔවුන් නව ස්ක්රිප්ට් හෝ ද්විමය හඳුන්වා දෙන ඒකාබද්ධ කිරීම් හෝ ස්ථාපනයන් ප්රතික්ෂේප කරයි. ඒ සමඟම, ඔවුන් රහස් අනුක්රමික කරන හෝ බාහිර පළ කිරීම් උත්සාහ කරන වැඩ ප්රවාහ අවහිර කරයි. කණ්ඩායම්වලට lockfile-පමණක් ස්ථාපනයන් ද අවශ්ය විය යුතුය (npm ci) සියල්ල හරහා pipelineඑබැවින් යැපුම් කට්ටල ප්රතිනිෂ්පාදනය කළ හැකි සහ ආරක්ෂිතව පවතී.
ටෝකන් පිපිරුම් අරය අඩු කරන්න
රහස් අසාර්ථකත්වයේ තනි ලක්ෂ්යයන් බවට පත් නොවිය යුතුය. කේතය, වින්යාස සහ අඛණ්ඩව ස්කෑන් කරන්න pipeline සඳහා ප්රතිදානය නිරාවරණය වූ අක්තපත්ර. ටෝකන පටු ලෙස පරිලෝකනය කළ යුතු අතර, කෙටි ආයු කාලයක් ලබා දී ඇති අතර නිරාවරණය අනාවරණය වූ විට ස්වයංක්රීයව භ්රමණය විය යුතුය. රීතියක් ලෙස, සැක සහිත පසු ස්ථාපනයක් ක්රියාත්මක කළ සත්කාරකයක භාවිතා කරන ඕනෑම ටෝකනයක් අවදානමට ලක් වූ ලෙස සලකන්න.
පණුවන්ගේ හැසිරීම කලින් බලන්න
විෂමතා හඳුනාගැනීම ප්රධාන වේ. උදාහරණයක් ලෙස, npm හි හදිසි ස්පයික් ප්රකාශන සිදුවීම්, හේතුවක් නොමැතිව දිස්වන නව වැඩ ප්රවාහ හෝ අමුතු කේතනය කළ ගොනු වලින් පිරුණු නැවුම් පොදු ගබඩා සියල්ල worm ක්රියාකාරකම් සංඥා කළ හැකිය. එබැවින්, කණ්ඩායම් ඉක්මනින් අනතුරු ඇඟවීම් නිකුත් කළ යුතු අතර මෙම අනතුරු ඇඟවීමේ සලකුණු පෙන්වන ඕනෑම නඩත්තු කරන්නෙකු හෝ ධාවකයෙකු හුදකලා කළ යුතුය.
ගොඩනැගීම් බිඳ දැමීමකින් තොරව ඉක්මනින් නිවැරදි කරන්න
වේගය සහ ආරක්ෂාව එකට යා යුතුය. ස්වයංක්රීයයි pull requests සම්මුතියට පත් වූ npm පැකේජ පරීක්ෂා කළ අනුවාද සමඟ ප්රතිස්ථාපනය කළ හැක. ඊට අමතරව, ළඟා විය හැකි බව සහ සූරාකෑමේ හැකියාව විශ්ලේෂණය මඟින් වැඩිදියුණු කිරීම් අවම සහ ස්ථාවරව පවතින බව සහතික කරයි. අවසාන වශයෙන්, නිරාවරණය තහවුරු වූ පසු, බලපෑමට ලක් වූ CI ධාවකයන් පිරිසිදු රූප වලින් නැවත ගොඩනඟන්න, ප්රහාරය තවදුරටත් පැතිරීම වළක්වයි.
සම්මුති දර්ශක (IoCs)
ෂයි-හුලුඩ් විශ්ලේෂණය කිරීමේදී, කණ්ඩායම් දෙකම නිරීක්ෂණය කළ යුතුය. ස්ථිතික IoCs ගොනු තුළ සහ හැසිරීම් IoCs in pipelines. මෙම සංඥා එක්ව, ආසාදන කලින් හඳුනා ගැනීමට සහ පණුවා තවදුරටත් පැතිරීමට පෙර ප්රතිචාර දැක්වීමට උපකාරී වේ.
ස්ථිතික IoCs
පහත දැක්වෙන SHA-256 සංග්රහ ගැලපීම නිරීක්ෂණය කරන ලදී. bundle.js සාම්පල:
- 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
- 81d2a004a1bca6ef87a1caf7d0e0b355ad1764238e40ff6d1b1cb77ad4f595c3
- dc67467a39b70d1cd4c1f7f7a459b35058163592f4a9e8fb4dffcbba98ef210c
මීට අමතරව, මෙම පුනරාවර්තන රටා සඳහා අවධානය යොමු කරන්න:
- A
bundle.jsපැකේජයේ මූලයේ. "postinstall": "node bundle.js"තුලpackage.json.- නම් කරන ලද ගබඩා ෂායි හුලුඩ්.
- අඩංගු GitHub වැඩ ප්රවාහ
${{ toJSON(secrets) }}.
හැසිරීම් IoCs
ගොනු අත්සන් වලින් ඔබ්බට, worm ක්රියාකාරිත්වය හැසිරීම හරහා හෙළි වේ. උදාහරණයක් ලෙස:
- npm හි හදිසි පිපිරීම් එක් නඩත්තුකරුවෙකුගෙන් සිදුවීම් ප්රකාශයට පත් කරයි.
- දත්ත බාහිර අන්ත ලක්ෂ්ය වෙත තල්ලු කරන නව කාර්ය ප්රවාහ.
- CI ධාවකයන්ගෙන් පිටතට යන POST ඉල්ලීම් අවුලුවන ලදී.
- කේතනය කරන ලද බ්ලොබ් සහිත මෑතකදී නිර්මාණය කරන ලද පොදු ගබඩා.
ඉක්මන් දඩයම්
නිගමනය: ෂායි-හුලුද්ගෙන් පාඩම්
එම ෂායි-හුලුඩ් සැපයුම් දාම ප්රහාරය npm පැකේජවල අද මෘදුකාංග සැපයුම් දාමය කෙතරම් බිඳෙනසුලු වී ඇත්දැයි පෙන්වයි. මෙම පණුවා අනිෂ්ට කේත එකතු කිරීමට වඩා වැඩි යමක් කළේය. එය ටෝකන සොරකම් කර, දත්ත පිටතට යවා, පසුව ස්වයංක්රීයව නැවත ප්රකාශයට පත් කළේය. මේ නිසා, ප්රහාරය සති වෙනුවට පැය කිහිපයකින් පැතිර ගියේය.
සංවර්ධකයින් සහ DevOps කණ්ඩායම් සඳහා, පාඩම් පැහැදිලිය:
- සෑම ස්ථාපනයක්ම කේතය ක්රියාත්මක කරයි. සාමාන්ය npm පැකේජයකට පවා postinstall worm එකක් සැඟවිය හැක.
- සෑම ටෝකනයකටම ඉහළ වටිනාකමක් ඇත. සොරකම් කළ පසු, එය අනිෂ්ට මෘදුකාංග තවදුරටත් පැතිරවීමට භාවිතා කළ හැකිය.
- සෑම pipeline චෙක්පත් අවශ්යයි. තොරව guardrails පරායත්තතා, වැඩ ප්රවාහ සහ රහස් මත, එක් සම්මුතියක් ඉක්මනින් නිෂ්පාදනයට පහර දිය හැකිය.
එමනිසා, ෂයි-හුලුඩ් වැනි ප්රහාර නැවැත්වීමට ස්වයංක්රීය සහ ක්රියාත්මක කිරීමට පහසු පාලනයන් අවශ්ය වේ. කණ්ඩායම් ස්ථාපනය කිරීමට පෙර npm පැකේජ පරිලෝකනය කළ යුතුය, lockfile ගොඩනැගීම් භාවිතා කළ යුතුය, අමුතු ප්රකාශන ක්රියාකාරකම් අනාවරණය කළ යුතුය, සහ ටෝකන කෙටි කාලීනව තබා ගත යුතුය. මෙම පියවර තවදුරටත් විකල්ප නොවේ. ඒ වෙනුවට, ඒවා නූතනයේ ඔරොත්තු දීමේ හැකියාවේ පදනම වේ pipelines.
Xygeni හිදී, අපි Shai-Hulud සැපයුම් දාම ප්රහාරය සමස්ත විවෘත මූලාශ්ර පරිසර පද්ධතියටම අනතුරු ඇඟවීමක් ලෙස දකිමු. තිරසාර ඉදිරි මාවත වන්නේ සැපයුම් දාම ආරක්ෂාව සෘජුවම සංවර්ධන ක්රියාවලියට ගෙන ඒමයි, එහිදී කේතය, npm පැකේජ සහ pipelineසම්බන්ධ කරන්න.
පහත දැක්වෙන්නේ ෂයි-හුලුඩ් හි සම්මුතියකට ලක් වූ බවට වාර්තා වී ඇති npm පැකේජ සහ අනුවාදවල සම්පූර්ණ ලැයිස්තුවයි. ඔබේ අගුළු ගොනු, රෙජිස්ට්රි සහ CI පරීක්ෂා කිරීමට එය භාවිතා කරන්න. pipelineනිරාවරණය සඳහා s.
අවදානමට ලක් වූ පැකේජ ලැයිස්තුව
📦 සම්මුතිගත npm පැකේජවල පෙරදසුන
| පැකේජයේ නම | පිටපත | දිනය ප්රකාශයට පත් කරන්න |
|---|---|---|
| json-නීති-එන්ජිම-සරල කරන ලදී | 0.2.1 | 2025-09-14T17:58:51.203Z |
| ගුවන් නියමුවා | 0.8.8 | 2025-09-14T18:35:07.600Z |
| mcp-දැනුම-ප්රස්ථාරය | 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/callback-කවුළුව | 1.1.4 | 2025-09-14T20:31:38.479Z |
| @tnf-සංවර්ධන/api | 1.0.8 | 2025-09-14T20:31:39.547Z |
| @tnf-සංවර්ධන/js | 1.0.8 | 2025-09-14T20:31:41.251Z |
| @tnf-සංවර්ධන/mui | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-සංවර්ධන/හරය | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/ප්රතික්රියා-වගුව | 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/core | 0.2.1 | 2025-09-14T20:45:55.888Z |
➡️ සම්මුතිගත පැකේජවල සම්පූර්ණ ලැයිස්තුව බලන්න
| පැකේජයේ නම | පිටපත | දිනය ප්රකාශයට පත් කරන්න |
|---|---|---|
| json-නීති-එන්ජිම-සරල කරන ලදී | 0.2.1 | 2025-09-14T17:58:51.203Z |
| ගුවන් නියමුවා | 0.8.8 | 2025-09-14T18:35:07.600Z |
| mcp-දැනුම-ප්රස්ථාරය | 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/callback-කවුළුව | 1.1.4 | 2025-09-14T20:31:38.479Z |
| @tnf-සංවර්ධන/api | 1.0.8 | 2025-09-14T20:31:39.547Z |
| @tnf-සංවර්ධන/js | 1.0.8 | 2025-09-14T20:31:41.251Z |
| @tnf-සංවර්ධන/mui | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-සංවර්ධන/හරය | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/ප්රතික්රියා-වගුව | 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/core | 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 |
| VoIP-කෝල්කිට් | 1.0.2 | 2025-09-15T04:54:49.223Z |
| ධාරිත්රක-ප්ලගිනය-ihealth | 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 |
| @කලා-ws/slf | 2.0.15 | 2025-09-15T05:21:17.524Z |
| @art-ws/http-සේවාදායකය | 2.0.21 | 2025-09-15T05:21:17.745Z |
| pm2-ජෙල්ෆ්-ජේසන් | 1.0.4 | 2025-09-15T05:21:18.413Z |
| @කලා-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 |
| @කලා-ws/openapi | 0.1.9 | 2025-09-15T05:21:19.969Z |
| @art-ws/වෙබ්-ඇප් | 1.0.3 | 2025-09-15T05:21:20.383Z |
| @කලා-ws/ssl-තොරතුරු | 1.0.9 | 2025-09-15T05:21:20.927Z |




