
Shai-Hulud सप्लाई चेन हमले से सुरक्षा
Shai-Hulud सप्लाई चेन हमलों (मूल सितंबर 2025 और Shai-Hulud 2.0 नवंबर 2025) से समझौता किए गए npm पैकेजों का पता लगाने के लिए एक सुरक्षा उपकरण। सटीक इंस्टॉल किए गए संस्करणों और समझौते के संकेतकों (IoCs) का पता लगाने के लिए package.json और package-lock.json दोनों फ़ाइलों को स्कैन करता है। आसान रखरखाव के लिए केंद्रीकृत YAML कॉन्फ़िगरेशन के साथ Python और Node.js दोनों इम्प्लीमेंटेशन में उपलब्ध।
नवीनतम अपडेट: नवंबर 24, 2025 - 738+ समझौता किए गए पैकेज ट्रैक किए गए, जिनमें 1,291 अद्वितीय package@version संयोजन हैं। अब मूल Shai-Hulud और Shai-Hulud 2.0 दोनों हमले वेरिएंट का पता लगाता है।
मल्टी-इकोसिस्टम स्कैनिंग के लिए, देखें ore-mal-pkg-inspector।
मल्टी-इकोसिस्टम दुर्भावनापूर्ण पैकेज स्कैनिंग (npm, PyPI, Maven, RubyGems, Go, Cargo) के लिए देखें: ore-mal-pkg-inspector - डायनामिक थ्रेट इंटेलिजेंस के साथ व्यापक दुर्भावनापूर्ण पैकेज स्कैनर।
OreNPMGuard विशेष रूप से npm पैकेजों के लिए Shai-Hulud हमले की सुरक्षा पर केंद्रित है।
Shai-Hulud एक स्व-प्रतिकृति वर्म है जिसने सितंबर 14-15, 2025 को npm पैकेजों से समझौता करना शुरू किया, जो npm इकोसिस्टम में पहला सफल स्व-प्रसार हमला और अब तक देखे गए सबसे गंभीर JavaScript सप्लाई-चेन हमलों में से एक है। फ्रैंक हर्बर्ट की Dune श्रृंखला के विशाल सैंडवर्म के नाम पर, यह मैलवेयर कई वेरिएंट में विकसित हुआ है।
मूल हमले ने 200+ npm पैकेजों को संक्रमित किया (जैसा कि इस टूल में ट्रैक किया गया है) जिसमें प्रति पैकेज कई संस्करण प्रभावित हुए।
नवंबर 2025 में महत्वपूर्ण बदलावों के साथ एक नया वेरिएंट उभरा:
preinstall स्क्रिप्ट्स का उपयोग करता है (सिर्फ़ postinstall नहीं)setup_bun.js और bun_environment.js (bundle.js के अतिरिक्त)संदर्भ: Wiz Research - Shai-Hulud 2.0 ब्लॉग पोस्ट
पेशेंट ज़ीरो: यह हमला rxnt-authentication पैकेज के साथ शुरू हुआ, जिसे समझौता किए गए "techsupportrxnt" npm खाते द्वारा 14 सितंबर, 2025 को 17:58:50 UTC पर प्रकाशित किया गया था।
अटैक चेन (मूल Shai-Hulud):
bundle.js (3MB+ JavaScript पेलोड) निष्पादित करने वाली postinstall स्क्रिप्ट चलाता हैdata.json (डबल base64-एन्कोडेड) में चुराए गए रहस्यों के साथ सार्वजनिक "Shai-Hulud" रिपॉजिटरी बनाता है.github/workflows/shai-hulud-workflow.yml) इंजेक्ट करता है जो रिपॉजिटरी रहस्यों को webhook[.]site पर एक्सफ़िलट्रेट करता हैpostinstall हुक जोड़ता हैअटैक चेन (Shai-Hulud 2.0 - नवंबर 2025):
setup_bun.js या bun_environment.js (नई पेलोड फ़ाइलें) निष्पादित करने वाली preinstall स्क्रिप्ट चलाता हैcloud.json, contents.json, environment.json और truffleSecrets.json फ़ाइलें बनाता है.github/workflows/discussion.yaml बनाता है.github/workflows/formatter_*.yml बनाता है (फिर गतिविधि छिपाने के लिए वर्कफ़्लो को हटा देता है)docker run --rm --privileged -v /:/host के माध्यम से रूट एक्सेस प्राप्त करने का प्रयास करता हैghp_*, gho_*), npm प्रमाणीकरण टोकनमूल Shai-Hulud (सितंबर 2025):
@ctrl/tinycolor, ngx-bootstrap सहित)Shai-Hulud 2.0 (नवंबर 2025):
सत्यापित क्रेडेंशियल चोरी (~20,000 विश्लेषित रिपॉजिटरी से):
महत्वपूर्ण: Wiz Research ने पुष्टि की है कि क्रॉस-पीड़ित एक्सफ़िलट्रेशन हो रहा है। इसका मतलब है:
जांच निहितार्थ: अपनी रिपॉजिटरी में एक्सफ़िलट्रेट किए गए डेटा की समीक्षा करते समय, सत्यापित करें कि डेटा वास्तव में आपके संगठन का है या किसी अन्य पीड़ित का।
यह हमला अगस्त 2025 के s1ngularity/Nx समझौते से सीधे जुड़ा है, जहाँ प्रारंभिक GitHub टोकन चोरी ने व्यापक सप्लाई चेन हमले को सक्षम किया। कई प्रारंभिक Shai-Hulud पीड़ित s1ngularity हमले के ज्ञात पीड़ित थे। सुरक्षा शोधकर्ता अभियान के भीतर AI-जनित सामग्री के एकीकरण पर भी ध्यान देते हैं, मध्यम विश्वास के साथ कि दुर्भावनापूर्ण bash स्क्रिप्ट उत्पन्न करने के लिए एक LLM का उपयोग किया गया था।
मूल Shai-Hulud अभियान:
rxnt-authentication प्रकाशित हुआ ("पेशेंट ज़ीरो")Shai-Hulud 2.0 अभियान:
PyYAML की आवश्यकता है (pip install pyyaml)js-yaml की आवश्यकता है (npm install js-yaml)# Make executable
chmod +x shai_hulud_scanner.py
# Scan single package.json
python3 shai_hulud_scanner.py ./package.json
# Scan package-lock.json for exact versions
python3 shai_hulud_scanner.py ./package-lock.json
# Scan entire project directory
python3 shai_hulud_scanner.py ./my-project
# Scan current directory
python3 shai_hulud_scanner.py .
# Install dependencies first
npm install
# Make executable
chmod +x shai_hulud_scanner.js
# Scan single package.json
node shai_hulud_scanner.js ./package.json
# Scan package-lock.json for exact versions
node shai_hulud_scanner.js ./package-lock.json
# Scan entire project directory
node shai_hulud_scanner.js ./my-project
# Scan current directory
node shai_hulud_scanner.js .
✅ सटीक मिलान डिटेक्शन: ज्ञात समझौता किए गए संस्करणों से सटीक संस्करण मिलान वाले पैकेजों की पहचान करता है
⚠️ संभावित जोखिम डिटेक्शन: समान नाम लेकिन भिन्न संस्करण वाले पैकेजों को फ़्लैग करता है (फिर भी जोखिम में हो सकते हैं)
🔍 दोहरी फ़ाइल समर्थन: package.json (घोषित निर्भरताएँ) और package-lock.json (सटीक इंस्टॉल किए गए संस्करण) दोनों को स्कैन करता है
📦 व्यापक कवरेज: package-lock.json स्कैनिंग में नेस्टेड निर्भरताएँ और ट्रांज़िटिव पैकेज शामिल हैं
🔄 पुनरावर्ती स्कैनिंग: node_modules को छोड़ते हुए सभी उपनिर्देशिकाओं को स्वचालित रूप से स्कैन करता है
📋 विस्तृत रिपोर्टिंग: पैकेज नाम, संस्करण, निर्भरता अनुभाग और प्रभावित संस्करण दिखाता है
🔎 IOC डिटेक्शन: मूल Shai-Hulud और Shai-Hulud 2.0 दोनों के लिए समझौते के संकेतकों की पहचान करता है:
"postinstall": "node bundle.js" हुक, bundle.js फ़ाइलें, shai-hulud-workflow.yml"preinstall" हुक, setup_bun.js, bun_environment.js, discussion.yaml, formatter_*.yml वर्कफ़्लोwebhook.site एक्सफ़िलट्रेशन एंडपॉइंट्स, SHA1HULUD रनर पैटर्न, Docker प्रिविलेज एस्केलेशन के संदर्भ🚨 क्रिटिकल (समझौता किए गए पैकेज मिले):
🚨 CRITICAL: Found 2 CONFIRMED compromised packages:
• @ctrl/deluge v7.2.2 in dependencies
Affected versions: 7.2.2, 7.2.1
• ngx-bootstrap v19.0.3 in devDependencies
Affected versions: 18.1.4, 19.0.3, 20.0.4, 20.0.5, 20.0.6, 19.0.4, 20.0.3
⚠️ चेतावनी (संस्करण बेमेल):
⚠️ WARNING: Found 1 packages with different versions:
• @ctrl/deluge v7.2.0 in dependencies
Known affected versions: 7.2.2, 7.2.1
✅ साफ़:
✅ No affected packages found
npm uninstall <package-name>npm cache clean --forcerm -rf node_modules"postinstall": "node bundle.js" खोजेंbundle.js फ़ाइलें देखें (3MB+ आकार, दुर्भावनापूर्ण पेलोड युक्त).github/workflows/shai-hulud-workflow.yml फ़ाइलों की जाँच करें"preinstall" हुक खोजेंsetup_bun.js और bun_environment.js पेलोड फ़ाइलें देखेंcloud.json, contents.json, environment.json, truffleSecrets.jsonपैकेज डेटा affected_packages.yaml में केंद्रीकृत है। नए समझौता किए गए पैकेज जोड़ने के लिए:
affected_packages.yaml संपादित करें- name: "package-name"
versions: ["1.0.0", "1.0.1"]
यह केंद्रीकृत दृष्टिकोण नए खतरों की खोज होने पर कई फ़ाइलों को अपडेट करने की आवश्यकता को समाप्त करता है।
# Create central scanning script
curl -O https://your-domain.com/shai_hulud_scanner.py
chmod +x shai_hulud_scanner.py
# Mass scan multiple projects
for dir in /projects/*/; do
echo "Scanning $dir"
python3 shai_hulud_scanner.py "$dir"
done
# GitHub Actions example
- name: Scan for Shai-Hulud packages
run: |
curl -O https://your-domain.com/shai_hulud_scanner.js
npm install js-yaml
node shai_hulud_scanner.js .
if [ $? -ne 0 ]; then
echo "SECURITY ALERT: Compromised packages detected!"
exit 1
fi
# Add to security toolkit
cp shai_hulud_scanner.py /usr/local/bin/
cp shai_hulud_scanner.js /usr/local/bin/
cp affected_packages.yaml /usr/local/bin/
# Create alias for easy access
echo 'alias scan-shai="python3 /usr/local/bin/shai_hulud_scanner.py"' >> ~/.bashrc
postinstall का उपयोग करता है, Shai-Hulud 2.0 preinstall का उपयोग करता है (बिल्ड वातावरण में जोखिम बढ़ाता है)मूल Shai-Hulud (सितंबर 2025):
"postinstall": "node bundle.js"bundle.js (आमतौर पर 3MB+ मिनिफ़ाइड JavaScript)webhook.site डोमेन के संदर्भ.github/workflows/shai-hulud-workflow.ymlshai-hulud नाम की ब्रांचShai-Hulud 2.0 (नवंबर 2025):
"preinstall": "node setup_bun.js" या "preinstall": "node bun_environment.js"setup_bun.js, bun_environment.js (bundle.js के अतिरिक्त)cloud.json, contents.json, environment.json, truffleSecrets.json.github/workflows/discussion.yaml (runs-on: self-hosted और RUNNER_TRACKING_ID: 0 के साथ).github/workflows/formatter_*.yml (पैटर्न मिलान, सीक्रेट एक्सफ़िलट्रेशन के लिए उपयोग)दोनों वेरिएंट में सामान्य:
webhook.site डोमेन के संदर्भpreinstall स्क्रिप्ट्स का पता लगाता है (Shai-Hulud 2.0 निष्पादन चरण)setup_bun.js और bun_environment.js के लिए स्कैन करता हैcloud.json, contents.json, environment.json, truffleSecrets.json की पहचान करता हैdiscussion.yaml और formatter_*.yml वर्कफ़्लो पैटर्न का पता लगाता हैprevention/block-shai-hulud.shसमस्याओं या प्रश्नों के लिए:
.github/workflows/discussion.yaml की जाँच करें (सेल्फ-होस्टेड रनर के साथ).github/workflows/formatter_*.yml फ़ाइलों की जाँच करेंdocker run --rm --privileged -v /:/host)webhook.site संदर्भों की जाँच करेंdocker run --rm --privileged -v /:/host जैसे कमांडwebhook.site डोमेन के संदर्भ (मूल के समान)