TL; DR
సెప్టెంబర్ 14, 2025న, పరిశోధకులు గుర్తించారు షాయ్-హులుద్లోపల దాగి ఉన్న స్వీయ-ప్రతిరూపణ పురుగు npm ప్యాకేజీలుసాధారణ డిపెండెన్సీ అప్డేట్ను పూర్తి స్థాయిగా మార్చడం సరఫరా గొలుసు దాడిమొదట గుర్తించబడింది @ctrl/tinycolor డేనియల్ డోస్ శాంటోస్ పెరీరా రూపొందించిన షాయ్-హులుడ్ అనే ప్యాకేజీ, రహస్యాలను సేకరించి, వాటిని గిట్హబ్ రిపోలు మరియు వర్క్ఫ్లోల ద్వారా బయటకు పంపి, దొంగిలించిన ఆధారాలను ఉపయోగించి రిజిస్ట్రీ అంతటా తనను తాను తిరిగి ప్రచురించుకుంటుంది. కొద్ది రోజుల్లోనే, సోకిన ప్యాకేజీల సంఖ్య పదుల నుండి వందలకు పెరిగింది, ఇది ఈ విషయాన్ని ధృవీకరించింది. షైహులుద్ ఇది కేవలం మరో ట్రోజన్ కాదు, npm ఎకోసిస్టమ్ అంతటా స్వయంచాలకంగా వ్యాపించడానికి రూపొందించబడిన ఒక వార్మ్.
ఇంపాక్ట్: పబ్లిక్ npm ప్యాకేజీలను ఇన్స్టాల్ చేసే ఏ డెవలపర్ లేదా CI రన్నర్ అయినా ప్రమాదంలో ఉంటారు.
తక్షణ చర్యలు: తెలిసిన వెర్షన్లను బ్లాక్ చేయండి, లాక్ఫైల్-మాత్రమే ఇన్స్టాల్లకు మారండి, npm మరియు GitHub టోకెన్లను రొటేట్ చేయండి, వర్క్ఫ్లోలను ఆడిట్ చేయండి మరియు రాజీ సూచికల (IoCలు) కోసం పర్యవేక్షించండి.
ఏం జరిగింది?
మా npm ప్యాకేజీలలో షాయ్-హులుడ్ సరఫరా గొలుసు దాడి ఇటీవలి కాలంలో జరిగిన అత్యంత విఘాతకరమైన సంఘటనలలో ఇది ఒకటి. విడివిడి ట్రోజన్ల వలె కాకుండా, ఈ వార్మ్ వీటిని మిళితం చేస్తుంది. క్రెడెన్షియల్ దొంగతనం, ఆటోమేటెడ్ ఎక్స్ఫిల్ట్రేషన్ మరియు స్వీయ-ప్రతిరూపణఫలితంగా, ఇన్ఫెక్షన్ కాలవ్యవధి వారాల నుండి కేవలం గంటలకు తగ్గిపోయింది.
DevOps బృందాలకు పాఠం స్పష్టంగా ఉంది: ప్రతి ఇన్స్టాల్ కోడ్ను అమలు చేయగలిగితే, ప్రతి డిపెండెన్సీ అప్డేట్ ఒక సంభావ్య ఉల్లంఘన స్థానం అవుతుంది.
సాధ్యమయ్యే ప్రారంభ వెక్టర్ మరియు లక్ష్యంగా చేసుకున్న ఆధారాలు
ప్రారంభ విశ్లేషణ దాడి బహుశా దీనితో ప్రారంభమైందని సూచిస్తుంది దొంగిలించబడిన ఆధారాలుఉదాహరణకు, npmను నకిలీ చేసే ఫిషింగ్ ప్రచారాలు login లేదా MFA ప్రాంప్ట్లు డెవలపర్ టోకెన్లను సంగ్రహించి ఉండవచ్చు. దాడి చేసేవారు ఆ మొదటి అడుగు వేసిన తర్వాత, ఆ వార్మ్ npm ప్యాకేజీలలోకి చొచ్చుకుపోయి, వాటి నుండి మరిన్ని రహస్యాలను దొంగిలించడం ద్వారా వ్యాపించింది:
- npm కాన్ఫిగ్ ఫైల్స్ వంటి
.npmrc, తరచుగా పబ్లిష్ టోకెన్లను కలిగి ఉంటుంది. - పర్యావరణ వేరియబుల్స్ మరియు GitHub PAT లతో కాన్ఫిగరేషన్లు మరియు CI/CD రహస్యాలు.
- క్లౌడ్ మెటాడేటా ఎండ్పాయింట్లు (AWS, GCP, Azure) పార్శ్వ కదలిక కోసం స్వల్పకాలిక ఆధారాలను అందిస్తాయి.
అందువల్ల, క్రెడెన్షియల్ దొంగతనం ఒక ప్రారంభ వేదికగా మారింది. చెల్లుబాటు అయ్యే npm టోకెన్లు మరియు GitHub సీక్రెట్లతో, Shai-Hulud అదనపు మానవ ప్రమేయం లేకుండానే బహుళ ప్యాకేజీలు మరియు రిపోజిటరీలలో స్వీయ-ప్రతిరూపణ చెందగలిగింది.
షాయ్-హులుడ్ సరఫరా గొలుసు దాడి యొక్క కార్యనిర్వాహక ప్రభావం
షాయ్-హులుడ్ ఈనాటికీ క్రియాశీలంగా ఉంది. ఈ వార్మ్ ప్రభావ కాలక్రమాన్ని వేగవంతం చేస్తుంది. ఒకప్పుడు ట్రోజన్తో వారాలు పట్టేది ఇప్పుడు గంటల్లోనే జరిగిపోతుంది. ఫలితంగా, వ్యాప్తి వేగంగా ఉంది మరియు దానిని అరికట్టడం మరింత కష్టం. ఇది ఈ విధంగా ముందుకు సాగుతుంది:
- npm పబ్లిష్ టోకెన్లు మరియు గిట్హబ్ సీక్రెట్లను దొంగిలించడం.
- ఇతర npm ప్యాకేజీలలోకి తనను తాను తిరిగి ప్రచురించుకోవడం.
- శాశ్వతత్వం కోసం హానికరమైన గిట్హబ్ యాక్షన్స్ వర్క్ఫ్లోలను జోడించడం.
ఎవరు ప్రభావితమవుతారు:
పబ్లిక్ npm ప్యాకేజీలను ఇన్స్టాల్ చేసే ఏ బృందమైనా ప్రమాదానికి గురవుతుంది. అంతేకాకుండా, కాష్ చేయబడిన npm లేదా GitHub టోకెన్లను కలిగి ఉన్న డెవలపర్లు అధిక ప్రమాదాన్ని ఎదుర్కొంటారు. విస్తృత-పరిధి గల సీక్రెట్లను ఉపయోగించే CI రన్నర్లు కూడా ప్రమాదానికి గురయ్యే అవకాశం ఉంది.
వ్యాపార ప్రమాదం
వ్యాపారంపై ప్రభావం వేగంగా పెరుగుతుంది. దొంగిలించబడిన టోకెన్లు ఖాతా స్వాధీనానికి, ప్యాకేజీ హైజాకింగ్కు మరియు క్లౌడ్ దుర్వినియోగానికి కూడా దారితీయవచ్చు. అదనంగా, గిట్హబ్ వర్క్ఫ్లోలలో అవి నిలిచి ఉండటం శుభ్రపరచడాన్ని మరింత కష్టతరం చేస్తుంది. అందువల్లజట్లు షాయ్-హులుద్ను ముగిసిన సంఘటనగా కాకుండా, కొనసాగుతున్న సంఘటనగా పరిగణించాలి.
npm ప్యాకేజీలలో షాయ్-హులుడ్ సప్లై చైన్ దాడి ఎలా పనిచేస్తుంది
దాడి చేసేవారి లక్ష్యాలు మరియు ఉద్దేశ్యం
ఈ ప్రచారం మూడు విషయాలను ఆప్టిమైజ్ చేస్తుంది:
- మొదటి లక్ష్యం ఏమిటంటే పెద్ద ఎత్తున ఆధారాలను దొంగిలించడం డెవలపర్ ల్యాప్టాప్లు మరియు CI రన్నర్ల నుండి. ఇందులో npm పబ్లిష్ టోకెన్లు, GitHub టోకెన్లు మరియు క్లౌడ్ క్రెడెన్షియల్స్ ఉంటాయి. వాస్తవానికి, ట్రఫల్హాగ్ (TruffleHog) ను రన్ చేయడం మరియు క్లౌడ్ మెటాడేటా ఎండ్పాయింట్లను క్వెరీ చేయడం వంటి క్రమబద్ధమైన సీక్రెట్ హార్వెస్టింగ్ను పలు విశ్లేషణలు ధృవీకరిస్తున్నాయి.
- రెండవ లక్ష్యం ఏమిటంటే స్వయంచాలకంగా వ్యాప్తి చెందుతుంది రాజీపడిన నిర్వహకుల ప్రచురణ హక్కులను దుర్వినియోగం చేయడం ద్వారా. ఫలితంగా, అదనపు మానవ ప్రమేయం లేకుండానే ఇతర ప్యాకేజీల యొక్క కొత్తగా ప్రభావితమైన వెర్షన్లు కనిపించడం వల్ల, ఒక స్థావరం త్వరగా అనేక స్థావరాలుగా విస్తరిస్తుంది.
- మూడవ లక్ష్యం ఏమిటంటే నిలకడగా ఉండి విశ్వసనీయంగా బయటకు వెళ్తాయి గిట్హబ్ ఇన్ఫ్రాస్ట్రక్చర్ ద్వారా. దాడి చేసేవారు డబుల్ బేస్64తో “Shai-Hulud” అనే పబ్లిక్ రెపోను సృష్టిస్తారు. డేటా.jsonమరియు అదనంగా వారు సీరియలైజ్ చేసే వర్క్ఫ్లోను ఏర్పాటు చేస్తారు ${{ toJSON(రహస్యాలు) }} మరియు దానిని ఒక స్టాటిక్ వెబ్హుక్కు పోస్ట్ చేస్తుంది.
దీని వల్ల లభించే ప్రయోజనాలలో రిజిస్ట్రీలు మరియు సోర్స్ కోడ్కు దీర్ఘకాలిక యాక్సెస్, క్లౌడ్ ఖాతాలలోకి వేగవంతమైన లాటరల్ మూవ్మెంట్, మరియు సప్లై చైన్ను మరింతగా ఆయుధంగా మార్చుకునే అవకాశం వంటివి ఉన్నాయి. పబ్లిక్ రిపోర్టింగ్ ప్రకారం, ప్రైవేట్ రెపోలు పబ్లిక్గా మారినట్లు తెలుస్తోంది. “-వలస” డేటా ఎక్స్పోజర్ మరియు మొమెంటమ్ను పెంచే సఫిక్స్
షాయ్-హులుడ్ పేలోడ్ లోపల: bundle.js npm ప్యాకేజీలలో
షాయ్-హులుడ్ ఒక నౌకగా పెద్దది, వెబ్ప్యాక్-బండిల్ చేయబడినది మరియు బాగా మినిఫై చేయబడినది జావాస్క్రిప్ట్ ఫైల్ (bundle.js, సుమారు 3–3.7 MB) అది నుండి అమలు అవుతుంది పోస్ట్ ఇన్స్టాల్ హుక్ ఇన్ ప్యాకేజీ.జాసన్తత్ఫలితంగా, ప్రతి ఇన్స్టాల్ స్వయంచాలకంగా పేలోడ్ను ప్రేరేపిస్తుంది. ఈ డిజైన్ ఐడెంటిఫైయర్లను దాచిపెడుతుంది, కంట్రోల్ ఫ్లోను కుదిస్తుంది మరియు మొత్తం లాజిక్ను ఇన్స్టాలేషన్ సమయంలో అమలు అయ్యే ఒకే ఆర్టిఫ్యాక్ట్లోకి నెడుతుంది. విశ్లేషకులు వెబ్ప్యాక్ బండ్లింగ్, అసాధారణ ఫైల్ పరిమాణం మరియు ఇన్స్టాల్-సమయ అమలును నిరంతరం ధృవీకరిస్తున్నారు.
నమూనాలలో మీరు చూసే అస్పష్టత మరియు విశ్లేషణ వ్యతిరేక లక్షణాలు:
- కుదించబడిన మాడ్యూల్ గ్రాఫ్ సంఖ్యాత్మక మాడ్యూల్ IDలు, తక్కువ వ్యాఖ్యలు మరియు సరళీకృత నియంత్రణ ప్రవాహంతో. అంతేకాకుండా, ఈ నిర్మాణం మాన్యువల్ సమీక్షను అత్యంత కష్టతరం చేస్తుంది.
- స్ట్రింగ్ దాచడం బేస్64 పొరలు మరియు నిర్మాణ సహాయకాల ద్వారా. ఉదాహరణకు, పునరావృతమయ్యే బేస్64 ఎన్కోడింగ్ మరియు డీకోడింగ్ సాధారణంగా ఎక్స్ఫిల్ట్రేషన్ రొటీన్ల సమయంలో కనిపిస్తాయి.
- డైనమిక్ డిస్పాచ్ ద్వారా మూల్యాంకనం-శైలి నమూనాలు మరియు రూపొందించబడిన ఫంక్షన్ బాడీలు, అందువల్ల రన్టైమ్లో కోడ్ ప్రవర్తనను మార్చడానికి వీలు కల్పిస్తాయి.
- OS ఫిల్టరింగ్ ముఖ్యంగా CI రన్నర్లు మరియు డెవలపర్ ల్యాప్టాప్లలో Linux మరియు macOS ఎగ్జిక్యూషన్కు ప్రాధాన్యత ఇవ్వడం.
కార్యాచరణ పరంగా చూస్తే, ఈ బండిల్ మాడ్యులర్గా ఉంటుంది. ఈ నివేదికలు OS డిస్కవరీ, ఫైల్సిస్టమ్ మరియు గిట్ సీక్రెట్ స్కాన్లు, క్లౌడ్ SDK యాక్సెస్, GitHub API ఆపరేషన్లు, మరియు నిర్వహకుడికి చెందిన ఇతర ప్యాకేజీలను సవరించే ఒక ప్రచార ఇంజిన్ వంటి మాడ్యూల్స్ను వివరిస్తాయి. వాస్తవానికి, StepSecurity మరియు ReversingLabs రెండూ హానికరమైన హుక్తో ప్యాకేజీలను స్వయంచాలకంగా అప్డేట్ చేసే ఒక ఫంక్షన్ను ప్రముఖంగా పేర్కొన్నాయి.
షాయ్-హులుడ్లో ఇన్స్టాల్-టైమ్ ఎగ్జిక్యూషన్: npm ప్యాకేజీలు వార్మ్ను ఎలా ప్రేరేపిస్తాయి
దాడి ప్రారంభమవుతుంది పోస్ట్ఇన్స్టాల్ నోడ్ను నడుపుతుంది bundle.js. ఈ దశలో, స్క్రిప్ట్ మెమరీలో వర్కింగ్ స్టేట్ను ప్రారంభించి, అన్ప్యాక్ చేస్తుంది, తద్వారా వార్మ్ పూర్తిస్థాయిలో పనిచేయడానికి రంగం సిద్ధమవుతుంది.
కనుగొనడం మరియు సేకరించడం
- పేలోడ్ process.env ను డంప్ చేస్తుంది మరియు అధిక-ఎంట్రోపీ సీక్రెట్లు మరియు టోకెన్ ప్రిఫిక్స్ల కోసం స్థానిక ఫైల్లను స్కాన్ చేస్తుంది. అదనంగా, ఇది TruffleHog ను అమలు చేయడం ద్వారా కవరేజీని విస్తరిస్తుంది.
- ఇది స్వల్పకాలిక ఆధారాలను సేకరించడానికి క్లౌడ్ మెటాడేటా ఎండ్పాయింట్లను ప్రశ్నిస్తుంది. ఉదాహరణకి, కాల్స్
169.254.169.254AWSలో లేదాmetadata.google.internalGCPలో తరచుగా ఇన్ఫెక్టెడ్ హోస్ట్లలో కనిపిస్తాయి. - పర్యవసానంగా, కనుగొనబడిన ఏ క్రెడెన్షియల్ అయినా కొత్త npm ప్యాకేజీలను ప్రచురించడానికి లేదా GitHub వర్క్ఫ్లోలను పుష్ చేయడానికి తక్షణమే ఉపయోగపడుతుంది.
విసర్జనము
- వార్మ్ ఒక కొత్త గిట్హబ్ రిపోను సృష్టిస్తుంది, పేరు షాయ్-హులుద్ మరియు డబుల్ బేస్64-ఎన్కోడ్ చేయబడినదాన్ని వ్రాస్తుంది
data.jsonప్లాట్ఫారమ్ వివరాలు, పరిసరాల సమాచారం మరియు రహస్యాలతో. గమనించినట్లుగా, రక్షకులకు ఎక్కడ చూడాలో తెలిస్తే, ఈ గందరగోళ ప్రవర్తనను గుర్తించడం సులభం. - ఇది తరచుగా ఒక బ్రాంచ్ పేరు మీద గిట్హబ్ యాక్షన్స్ వర్క్ఫ్లోను కూడా ప్లాంట్ చేస్తుంది షై-హులుడ్, అది సీరియలైజ్ చేస్తుంది
${{ toJSON(secrets) }}మరియు డేటాను ఒక స్టాటిక్ వెబ్హుక్కు పోస్ట్ చేస్తుంది. అంతేకాకుండా, ఎవరైనా దీన్ని చురుకుగా తొలగించే వరకు ఈ వర్క్ఫ్లో కొనసాగుతుంది.
ప్రోపగేషన్
- కనుగొనబడిన ఏదైనా npm టోకెన్తో, పేలోడ్ హ్యాక్ చేయబడిన మెయింటెయినర్కు చెందిన అన్ని ప్యాకేజీలను జాబితా చేస్తుంది. ఆ తర్వాత, అది ప్రతి టార్బాల్ను పొంది, bundle.js మరియు ఒక postinstall ఎంట్రీని చొప్పించి, ప్యాకేజీని తిరిగి ప్రచురిస్తుంది.
- ఫలితంగా, కొన్ని గంటల వ్యవధిలోనే డజన్ల కొద్దీ సోకిన ప్యాకేజీలు కనిపించవచ్చు, ఇది మొత్తం వ్యవస్థలో ప్రభావ పరిధిని అనేక రెట్లు పెంచుతుంది.
పట్టుదల మరియు బహిర్గతం
ఈ వార్మ్ హానికరమైన వర్క్ఫ్లోలను సజీవంగా ఉంచుతుంది మరియు అనేక సందర్భాల్లో, ఒక చర్యతో ప్రైవేట్ రెపోలను పబ్లిక్గా మారుస్తుంది. “-వలస” సఫిక్స్. మొత్తంగా, ఇది దాడి చేసేవాడు తన పట్టును నిలుపుకోవడానికి మరియు డేటా లీకేజీని గరిష్ఠ స్థాయికి పెంచడానికి భరోసా ఇస్తుంది.
కీ డిటెక్షన్ నోట్
ఈ అసాధారణమైన ఉపయోగం ${{ toJSON(secrets) }} యాక్షన్స్ వర్క్ఫ్లోలలో ఇది అరుదు. అందువలన, వేట సమయంలో జట్లు దీనిని ఒక అధిక-సంకేత సూచికగా పరిగణించాలి.
మీరు వెతకవలసిన శుభ్రమైన పని ప్రవాహ నమూనా
ఈ అసాధారణమైన ఉపయోగం కు JSON(రహస్యాలు) ఈ సంఘటనలో 'ఇన్ యాక్షన్స్' అనేది ఒక హై-సిగ్నల్ ఇండికేటర్.
ఉన్నత-స్థాయి ప్రచార సూడో-కోడ్ (సురక్షితమైన, వివరణాత్మకమైనది)
విశ్లేషకులు ఈ లూప్ను పెద్ద ఎత్తున గమనించారు, ఇది సోకిన ప్యాకేజీల సంఖ్య డజన్ల నుండి వందలకు వేగంగా పెరగడానికి కారణాన్ని వివరిస్తుంది.
ప్యాకేజీ ఎకోసిస్టమ్లో ఇది ఎందుకు ఒక పురుగు
వార్మ్ అనేది ప్రతి దశలోనూ మానవ ప్రమేయం అవసరం లేకుండా దానంతట అదే వ్యాపించే మాల్వేర్. ఆపరేటింగ్ సిస్టమ్లలో, వార్మ్లు సాధారణంగా ఒక మెషిన్ నుండి మరొక మెషిన్కు వెళ్లడానికి నెట్వర్క్ బలహీనతలను ఉపయోగించుకుంటాయి. దీనికి విరుద్ధంగా, షాయ్-హులుడ్ npm రిజిస్ట్రీ లోపల పనిచేస్తుంది. దీని సమర్థవంతమైన మార్గం దీని ద్వారా ఉంటుంది. క్రెడెన్షియల్ పునరుపయోగం.
ఈ వార్మ్ దొంగిలించబడిన npm పబ్లిష్ టోకెన్లను ఉపయోగించుకుంటుంది. చెల్లుబాటు అయ్యే క్రెడెన్షియల్స్ లభించిన వెంటనే, అది అదే మెయింటెయినర్కు చెందిన ఇతర ప్యాకేజీల క్రింద ఇన్ఫెక్టెడ్ వెర్షన్లను తిరిగి పబ్లిష్ చేస్తుంది. తదనంతరం, ఏమీ అనుమానించని డెవలపర్లు లేదా CI రన్నర్లు ఆ ప్యాకేజీలను ఇన్స్టాల్ చేస్తారు, మరియు ఈ చక్రం పునరావృతమవుతుంది.
ఈ కారణంగా, భద్రతా విశ్లేషకులు, సహా డార్క్ రీడింగ్షాయ్-హులుద్ను ఇలా వర్గీకరించండి స్వీయ-ప్రతిరూపణ పురుగు ఇది ఒక సాధారణ ట్రోజన్ లేదా టైపోస్క్వాటింగ్ సంఘటన లాంటిది కాదు. ఈ వ్యత్యాసం ముఖ్యమైనది: ఒక ట్రోజన్ సాధారణంగా ఒక హోస్ట్ను దెబ్బతీస్తుంది, కానీ ఒక వార్మ్ దాని ప్రభావాన్ని ఒక ఎకోసిస్టమ్ అంతటా స్వయంచాలకంగా విస్తరింపజేస్తుంది.
ఇది ఎలా పనిచేస్తుంది అనే దానిపై సంక్షిప్త సమాచారం
షాయ్-హులుద్ జీవితచక్రాన్ని సంగ్రహంగా చెప్పాలంటే, ఇక్కడ ఒక విషయం ఉంది.cisదాని ప్రధాన దశల విశ్లేషణ:
- ఒక ప్యాకేజీతో పోస్ట్ ఇన్స్టాల్ ఇన్స్టాల్ చేయబడింది, మరియు
bundle.jsఅమలు చేస్తుంది. - పేలోడ్ ఎన్విరాన్మెంట్ వేరియబుల్స్ను డంప్ చేస్తుంది, ఫైల్స్ మరియు గిట్ హిస్టరీని స్కాన్ చేస్తుంది, రన్ అవుతుంది ట్రఫుల్హాగ్మరియు క్లౌడ్ మెటాడేటా సేవలను ప్రశ్నిస్తుంది. తత్ఫలితంగా, కనుగొనబడిన ఏదైనా రహస్యం తక్షణమే ఉపయోగపడుతుంది.
- ఎక్స్ఫిల్ట్రేషన్ రెండు విధాలుగా జరుగుతుంది: మొదటిది, పేరు గల పబ్లిక్ రెపోను సృష్టించడం ద్వారా. షాయ్-హులుద్ డబుల్ బేస్64-ఎన్కోడ్ చేయబడిన
data.jsonరెండవది, పోస్ట్ చేసే గిట్హబ్ యాక్షన్స్ వర్క్ఫ్లోను ఏర్పాటు చేయడం ద్వారా${{ toJSON(secrets) }}వెబ్హుక్కు. - దొంగిలించబడిన ఏదైనా npm టోకెన్ను ఉపయోగించి, ఆ వార్మ్, హ్యాక్ చేయబడిన మెయింటెయినర్కు చెందిన మిగతా అన్ని ప్యాకేజీలను అదే హానికరమైన హుక్తో తిరిగి ప్రచురిస్తుంది. ఈ విధంగా, ఇన్ఫెక్షన్ వేగంగా విస్తరిస్తుంది.
- చివరగా, దాడి చేసే వ్యక్తి వద్ద మరిన్ని రహస్యాలు, వ్యాప్తి చేయడానికి మరిన్ని ప్యాకేజీలు ఉంటాయి, మరియు పట్టుదల గిట్హబ్ ఖాతాలు మరియు రిపోజిటరీల లోపల.
ఆచరణాత్మకంగా ఈ తరహా దాడిని ఎలా నివారించాలి
షాయ్-హులుడ్ ఒక హెచ్చరిక. టోకెన్లను దొంగిలించి, తనను తాను తిరిగి ప్రచురించుకునే వార్మ్ భవిష్యత్తుకు సంబంధించిన ప్రమాదం కాదు, అది ఇప్పటికే ఉనికిలో ఉంది. npm ప్యాకేజీల ఎకోసిస్టమ్ ఈ రోజు. ఈ రకమైన వాటిని నివారించడానికి సరఫరా గొలుసు దాడిజట్లకు ప్రోగ్రామబుల్, ఆటోమేటెడ్ మరియు నేరుగా అమలు చేయబడే నియంత్రణలు అవసరం. CI/CD pipelines. మీరు ఇప్పటికే అమలు చేయగల రక్షణలు ఇవే క్సైజెని.
గేటు వద్దే చెడ్డ కళాఖండాలను ఆపండి
మీరు npm ప్యాకేజీలు మరియు టార్బాల్లను డెవలపర్లు లేదా CI జాబ్లకు చేరకముందే స్కాన్ చేయాలి. అధిక పరిమాణంలో bundle.js ఫైల్స్, అనుమానాస్పద పోస్ట్ ఇన్స్టాల్ hooksమరియు అస్పష్టపరిచే గుర్తులు అన్నీ ప్రారంభ హెచ్చరిక సంకేతాలుగా పనిచేస్తాయి. అంతేకాకుండా, కూల్-ఆఫ్ పీరియడ్లను మరియు పిన్ చేసిన వెర్షన్లను అమలు చేయడం pipelineతాజాగా, ధృవీకరించని విడుదలలు స్వయంచాలకంగా వినియోగించబడకుండా ఇది నిరోధిస్తుంది.
హార్డెన్ CI/CD అప్రమేయంగా
Guardrails in CI/CD ఇవి చాలా అవసరం. కొత్త స్క్రిప్ట్లు లేదా బైనరీలను ప్రవేశపెట్టే విలీనాలను లేదా ఇన్స్టాల్లను అవి తిరస్కరిస్తాయి. అదే సమయంలో, రహస్యాలను సీరియలైజ్ చేసే లేదా బాహ్య పోస్ట్లను ప్రయత్నించే వర్క్ఫ్లోలను అవి నిరోధిస్తాయి. బృందాలు లాక్ఫైల్-మాత్రమే ఇన్స్టాల్లను కూడా తప్పనిసరి చేయాలి (npm ci) అన్నింటిలో pipelineఅందువల్ల డిపెండెన్సీ సెట్లు పునరుత్పత్తి చేయదగినవిగా మరియు సురక్షితంగా ఉంటాయి.
టోకెన్ పేలుడు వ్యాసార్థాన్ని తగ్గించండి
రహస్యాలు వైఫల్యానికి ఏకైక కారణంగా మారకూడదు. కోడ్, కాన్ఫిగరేషన్లను నిరంతరం స్కాన్ చేయండి మరియు pipeline కోసం అవుట్పుట్ బహిర్గతమైన ఆధారాలుటోకెన్లు పరిమిత పరిధిలో ఉండాలి, వాటికి తక్కువ కాలపరిమితి ఇవ్వాలి మరియు వాటి బహిర్గతం గుర్తించబడినప్పుడు స్వయంచాలకంగా మార్చబడాలి. నియమం ప్రకారం, అనుమానాస్పద పోస్ట్ఇన్స్టాల్ను అమలు చేసిన హోస్ట్లో ఉపయోగించిన ఏ టోకెన్నైనా రాజీపడినట్లుగా పరిగణించాలి.
పురుగుల ప్రవర్తనను ముందుగానే గమనించండి
క్రమరాహిత్యాన్ని గుర్తించడం ఇది కీలకం. ఉదాహరణకు, npm పబ్లిష్ ఈవెంట్లలో ఆకస్మిక పెరుగుదల, కారణం లేకుండా కనిపించే కొత్త వర్క్ఫ్లోలు, లేదా వింతగా ఎన్కోడ్ చేయబడిన ఫైళ్లతో నిండిన కొత్త పబ్లిక్ రెపోలు వంటివన్నీ వార్మ్ కార్యకలాపాలకు సంకేతాలు కావచ్చు. అందువల్ల, బృందాలు వెంటనే హెచ్చరికలు జారీ చేసి, ఈ హెచ్చరిక సంకేతాలు చూపించే ఏ మెయింటెయినర్లనైనా లేదా రన్నర్లనైనా వేరుచేయాలి.
బిల్డ్లను పాడుచేయకుండా త్వరగా పరిష్కరించండి
వేగం మరియు భద్రత రెండూ కలిసి ఉండాలి. స్వయంచాలితం pull requests లోపభూయిష్టమైన npm ప్యాకేజీలను ధృవీకరించబడిన వెర్షన్లతో భర్తీ చేయవచ్చు. అదనంగా, చేరుకోగల సామర్థ్యం మరియు దుర్వినియోగం చేయగల సామర్థ్యం విశ్లేషణ అప్గ్రేడ్లు కనిష్టంగా మరియు స్థిరంగా ఉండేలా నిర్ధారిస్తుంది. చివరగా, ప్రమాదం బయటపడినట్లు నిర్ధారణ అయిన తర్వాత, ప్రభావితమైన CI రన్నర్లను శుభ్రమైన ఇమేజ్ల నుండి పునర్నిర్మించడం ద్వారా దాడి మరింత వ్యాపించకుండా నిరోధించవచ్చు.
రాజీ సూచికలు (IoCలు)
షాయ్-హులుద్ను విశ్లేషించేటప్పుడు, జట్లు ఈ రెండింటినీ గమనించాలి. స్టాటిక్ IoCలు ఫైళ్ళలో మరియు ప్రవర్తనా IoCలు in pipelineఈ సంకేతాలన్నీ కలిసి, ఇన్ఫెక్షన్లను ముందుగానే గుర్తించి, పురుగు మరింత వ్యాపించక ముందే స్పందించడానికి సహాయపడతాయి.
స్టాటిక్ 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 ప్యాకేజీలో కూడా పోస్ట్ఇన్స్టాల్ వార్మ్ దాగి ఉండవచ్చు.
- ప్రతి టోకెన్కు అధిక విలువ ఉంటుంది. ఒకసారి దొంగిలించబడితే, దానిని మాల్వేర్ను మరింతగా వ్యాప్తి చేయడానికి ఉపయోగించవచ్చు.
- ప్రతి pipeline తనిఖీలు అవసరం. లేకుండా guardrails డిపెండెన్సీలు, వర్క్ఫ్లోలు మరియు సీక్రెట్ల విషయంలో, ఒక చిన్న రాజీ కూడా ప్రొడక్షన్ను త్వరగా దెబ్బతీయగలదు.
అందువల్ల, షాయ్-హులుడ్ వంటి దాడులను ఆపడానికి స్వయంచాలకంగా మరియు సులభంగా అమలు చేయగల నియంత్రణలు అవసరం. బృందాలు ఇన్స్టాల్ చేయడానికి ముందు npm ప్యాకేజీలను స్కాన్ చేయాలి, లాక్ఫైల్ బిల్డ్లను ఉపయోగించాలి, వింత పబ్లిషింగ్ కార్యకలాపాలను గుర్తించాలి మరియు టోకెన్లను స్వల్పకాలికంగా ఉంచాలి. ఈ చర్యలు ఇకపై ఐచ్ఛికం కాదు. బదులుగా, అవి ఆధునిక వ్యవస్థలో స్థితిస్థాపకతకు పునాది. pipelines.
క్సైజెనిలో మేము, షాయ్-హులుడ్ సప్లై చైన్ దాడిని మొత్తం ఓపెన్ సోర్స్ ఎకోసిస్టమ్కు ఒక హెచ్చరికగా చూస్తున్నాము. ముందుకు సాగడానికి ఉన్న సుస్థిరమైన మార్గం ఏమిటంటే, సప్లై చైన్ భద్రతను నేరుగా డెవలప్మెంట్ ప్రక్రియలోకి, అంటే కోడ్, ఎన్పిఎం ప్యాకేజీలు మరియు pipelineలు కనెక్ట్ చేయండి.
షాయ్-హులుడ్లో రాజీపడినట్లుగా నివేదించబడిన npm ప్యాకేజీలు మరియు వెర్షన్ల పూర్తి జాబితా కింద ఉంది. మీ లాక్ఫైల్లు, రిజిస్ట్రీలు మరియు CIని తనిఖీ చేయడానికి దీన్ని ఉపయోగించండి. pipelineఎక్స్పోజర్ కోసం s.
రాజీపడిన ప్యాకేజీల జాబితా
📦 రాజీపడిన npm ప్యాకేజీల ప్రివ్యూ
| ప్యాకేజీ పేరు | వెర్షన్ | తేదీ ప్రచురించండి |
|---|---|---|
| json-rules-engine-simplified | 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 |
| tvi-cli | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/callback-window | 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 | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-dev/core | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/react-table | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/demo | 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-manager | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @nexe/logger | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/logger | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/validation | 0.1.6 | 2025-09-14T20:45:55.595Z |
| @hestjs/core | 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 |
| 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 |
| tvi-cli | 0.1.5 | 2025-09-14T18:35:10.996Z |
| @thangved/callback-window | 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 | 1.0.8 | 2025-09-14T20:31:41.259Z |
| @tnf-dev/core | 1.0.8 | 2025-09-14T20:31:42.728Z |
| @teselagen/react-table | 6.10.20 | 2025-09-14T20:37:08.597Z |
| @hestjs/demo | 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-manager | 0.1.1 | 2025-09-14T20:45:55.066Z |
| @nexe/logger | 0.1.3 | 2025-09-14T20:45:55.170Z |
| @hestjs/logger | 0.1.6 | 2025-09-14T20:45:55.197Z |
| @hestjs/validation | 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/scalar | 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-callkit | 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 |
| ngx-ws | 1.1.5 | 2025-09-15T05:21:17.514Z |
| @art-ws/slf | 2.0.15 | 2025-09-15T05:21:17.524Z |
| @art-ws/http-server | 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-context | 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 |




