flawopen.com/Incidents/polyfill-io-supply-chain-incident-june-2024
Polyfill.io सप्लाई-चेन हमला (2024)
2024 की घटना: polyfill.io ने कुछ आगंतुकों को रीडायरेक्ट किया। CDN संदर्भ हटाएँ; कोई CVE जारी नहीं हुई।
मान लें कि एक रेस्तराँ हर मेज़ पर बाहरी आपूर्तिकर्ता की बोतल रखता है। आपूर्तिकर्ता सामग्री बदल दे तो रेस्तराँ का मेनू बदले बिना भी ग्राहकों पर असर पड़ सकता है।
इस पेज के मुख्य शब्द
Dynamic User-Agent Polyfilling- क्लाइंट ब्राउज़र के हेडर के हिसाब से अलग-अलग JavaScript बंडल देना, जिससे Subresource Integrity (SRI) हैश इस्तेमाल करना असंभव हो जाता है।
Conditional Payload Evasion- HTTP Referer, स्क्रीन आकार, user-agent और devtools की मौजूदगी देखकर डेवलपरों को साफ़ स्क्रिप्ट देना, जबकि असली मोबाइल उपभोक्ताओं पर हमला करना।
Domain Ownership Transfer Risk- ऐसे डोमेन से तीसरे पक्ष की स्क्रिप्ट जोड़ने का अंतर्निहित खतरा जिन्हें खरीदा जा सकता है, जिनकी अवधि खत्म हो सकती है या जिन्हें बिना सहमति सौंपा जा सकता है।
Subresource Integrity (SRI)- ब्राउज़र का क्रिप्टोग्राफ़िक तंत्र जो स्क्रिप्ट चलाने से पहले उसके हैश की जाँच करता है।
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-829
घटना का समयक्रम (Timeline)
Sansec ने डोमेन और GitHub खाते का स्वामित्व बदलने की सूचना दी; Fastly ने एहतियाती विकल्प दिया।
Sansec ने विश्लेषण प्रकाशित किया और अपने मापन के आधार पर 100,000 से अधिक साइटों के जोखिम का अनुमान दिया।
Cloudflare ने अपने मिरर पर स्वचालित री-राइट घोषित किए; बाद में डोमेन रोक दिया गया। अस्थायी री-राइट पर निर्भर रहने के बजाय पुराने संदर्भ हटाएँ।
हमले का चरण-दर-चरण प्रवाह
स्वामित्व में बदलाव
Sansec ने बताया कि फरवरी 2024 में डोमेन और GitHub खाते का स्वामित्व बदला। दुर्भावनापूर्ण प्रतिक्रियाओं की रिपोर्ट से पहले Fastly ने एहतियाती विकल्प दिया। Fastly ने बाद में कहा कि उसे हमले का पता Sansec की रिपोर्ट प्रकाशित होने पर चला था; फरवरी में दिया गया विकल्प एहतियाती कदम था, इससे यह साबित नहीं होता कि उसे तब दुर्भावनापूर्ण गतिविधि की जानकारी थी।
साइट CDN लोड करती है
cdn.polyfill.io का संदर्भ रखने वाला पृष्ठ ब्राउज़र से लौटे JavaScript को उसी पृष्ठ के संदर्भ में मँगवाता और चलवाता है।
शर्त-आधारित रीडायरेक्ट देखा गया
Sansec द्वारा जाँचा गया नमूना शर्तों के आधार पर कुछ मोबाइल आगंतुकों को रीडायरेक्ट करता था। यह नमूने का व्यवहार है, CDN की हर प्रतिक्रिया का नहीं।
निवारण और प्रतिक्रिया
Cloudflare ने अपने मिरर की ओर री-राइट लागू किए और Fastly ने अलग विकल्प दिया। Sansec ने कुछ ई-कॉमर्स साइटों के Google Ads अस्वीकृत होने की सूचना दी, सामान्य ऑर्गेनिक खोज दंड की नहीं।
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
<!-- VULNERABLE: Direct 3rd-party CDN script without integrity verification -->
<!DOCTYPE html>
<html>
<head>
<title>Production Web App</title>
<!-- Polyfill CDN serves arbitrary dynamic code controlled by third party -->
<script src="https://cdn.polyfill.io/v3/polyfill.min.js?features=default,Array.prototype.flat"></script>
</head>
<body>
<h1>Welcome</h1>
</body>
</html><!-- Build this file from a reviewed, version-pinned dependency. -->
<script defer src="/assets/vendor/polyfills.min.js"></script>इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓कभी भी load third-party scripts from public CDNs into production applications without Subresource Integrity (SRI) hashes न करें।
- ✓अनुशंसित सुरक्षा नियम: Vendor all runtime polyfills and libraries directly into your application bundle via npm/yarn/pnpm lockfiles।
- ✓a strict Content Security Policy (CSP) with script-src 'self' to prevent unauthorized script injections को अनिवार्य रूप से लागू करें।
- ✓all domain assets periodically to ensure embedded hosts have not lapsed or transferred ownership का ऑडिट और समीक्षा करें।
- ✓SRI को निर्भरता के नियंत्रण की समीक्षा का विकल्प न मानें; इसे तभी लगाएँ जब बाइट स्थिर हों और हैश सत्यापित हो।