वर्सेल का उल्लंघन और हम 'गैर-संवेदनशील' रहस्यों के साथ जुआ क्यों नहीं खेलते
वर्सेल हिट हो गया, और धुरी बिंदु एक तृतीय-पक्ष AI उपकरण था। यही कारण है कि स्वींट के सख्त सुरक्षा प्रोटोकॉल हमारे ग्राहकों को सुरक्षित रखते थे, जबकि अन्य लोग घबराहट में चाबियां घुमा रहे थे।
हम इस खबर से जाग गए कि वर्सेल हिट हो गया। यदि आप वेब डेवलपमेंट की दुनिया में हैं, तो यह सुनने जैसा है कि बैंक की मुख्य तिजोरी को अभी-अभी उठाया गया है। Vercel कोई शौकिया ऑपरेशन नहीं है; वे लाखों साइटों की रीढ़ हैं, जिनमें Next.js इकोसिस्टम भी शामिल है। लेकिन जब सुविधा सुरक्षा के ख़िलाफ़ रस्साकशी जीतने लगती है, तो दिग्गज भी लड़खड़ा सकते हैं।
उल्लंघन की शुरुआत वर्सेल के सर्वर पर सीधे प्रहार से नहीं हुई। इसकी शुरुआत Context.ai नामक तृतीय-पक्ष AI टूल से हुई। वर्सेल के एक कर्मचारी ने इसे OAuth के माध्यम से अपने Google Workspace से कनेक्ट किया था। हमलावरों ने Context.ai को मारा, उस OAuth कनेक्शन को कर्मचारी के Google खाते में ले जाया, और वहाँ से, उनके पास आंतरिक साम्राज्य का नक्शा था। यह एक क्लासिक सप्लाई चेन पिवट है, और यह गन्दा है।
लेकिन यहाँ वह हिस्सा है जो हमें वास्तव में स्वींट में ले जाता है: हमलावर पर्यावरण चर को पढ़ने में सक्षम थे जिन्हें 'संवेदनशील' के रूप में चिह्नित नहीं किया गया था। वर्सेल में एक सिस्टम है जहां डेवलपर यह चुन सकते हैं कि कोई वैरिएबल संवेदनशील है या नहीं। यदि आप उस बॉक्स को चेक नहीं करते हैं, तो उन रहस्यों को इस तरह से संग्रहीत किया जाता है, जिससे हमलावर के अंदर जाने पर उन्हें पढ़ने योग्य बनाया जा सके। स्वींट में, हम डिज़ाइन के उस विकल्प को देखते हैं और एक बड़ा, अनावश्यक जोखिम देखते हैं। हम डेवलपर्स को सुविधा के लिए कम सुरक्षित रहने का विकल्प देने में विश्वास नहीं करते हैं।
'नॉन-सेंसिटिव' सीक्रेट का भ्रम
वर्सेल डैशबोर्ड में, संवेदनशील और गैर-संवेदनशील पर्यावरण चर के बीच अंतर होता है। विचार यह है कि कुछ चीजें, जैसे सार्वजनिक API कुंजी या गैर-महत्वपूर्ण कॉन्फिग स्ट्रिंग, को डेटाबेस पासवर्ड की तरह उच्च-स्तरीय एन्क्रिप्शन की आवश्यकता नहीं होती है। लेकिन व्यवहार में? डेवलपर व्यस्त हैं। उनका शिपिंग कोड सुबह 2:00 बजे है। वे कम से कम प्रतिरोध का रास्ता अपनाते हैं। यदि डिफ़ॉल्ट 'अधिकतम सुरक्षा' नहीं है, तो रहस्य लीक हो जाएंगे। इससे कोई फर्क नहीं पड़ता कि क्या, लेकिन कब।
हमने दर्जनों परियोजनाओं के हमारे पास आने से पहले ऐसा होते देखा है। एक डेवलपर को लगता है कि एक विशिष्ट टोकन 'कम जोखिम' वाला है, इसलिए वे सुरक्षा की अतिरिक्त परत से परेशान नहीं होते हैं। फिर एक उल्लंघन होता है, और वह 'कम जोखिम' टोकन पूर्ण सिस्टम अधिग्रहण के लिए मुख्य बिंदु बन जाता है।
स्वींट में, हमारा प्रोटोकॉल सरल है: गैर-संवेदनशील पर्यावरण चर जैसी कोई चीज नहीं होती है। यदि यह एक वैरिएबल है जो .env फ़ाइल या CI/CD पाइपलाइन में रहता है, तो इसे एक महत्वपूर्ण रहस्य माना जाता है। पीरियड। हम ऐसा 'सुविधाजनक' टॉगल ऑफ़र नहीं करते हैं जिससे कुंजियां साफ हो जाएं। एक सख्त नीति लागू करके, जहां हर एक वैरिएबल को एन्क्रिप्ट किया गया है और प्रतिबंधित किया गया है, हम उस मानवीय त्रुटि को समाप्त करते हैं जिसके कारण वर्सेल घटना में डेटा बाहर निकल गया था। यदि कोई हमलावर इसी तरह के उल्लंघन के दौरान हमारे किसी वातावरण में घुसने में कामयाब हो जाता, तो उन्हें एन्क्रिप्ट किए गए डेटा की एक दीवार मिल जाती, जिसे वे पढ़ नहीं सकते थे, बजाय इसके कि वे अपने हमले को बढ़ाने के लिए 'गैर-संवेदनशील' कुंजियों की सूची का उपयोग कर सकते थे।
प्रोटोकॉल के साथ AI-त्वरित हमलावरों से लड़ना
वर्सेल के सीईओ ने उल्लेख किया कि हमलावर 'आश्चर्यजनक वेग' के साथ आगे बढ़े और संभवतः AI द्वारा उनमें तेजी लाई गई। यह नई हकीकत है। हम अब केवल हुडी में मैन्युअल रूप से कमांड टाइप करने वाले व्यक्ति के खिलाफ बचाव नहीं कर रहे हैं। हम स्वचालित एजेंटों से बचाव कर रहे हैं, जो सिस्टम आर्किटेक्चर का विश्लेषण कर सकते हैं, कमजोरियों की पहचान कर सकते हैं और कुछ ही सेकंड में किसी कारनामे को अंजाम दे सकते हैं।
जब विरोधी मशीन की गति से आगे बढ़ रहा होता है, तो आपका बचाव किसी इंसान द्वारा तय करने पर निर्भर नहीं हो सकता है कि किस चेकबॉक्स पर क्लिक करना है। इसे इंफ्रास्ट्रक्चर में तब्दील करना होगा। यही कारण है कि हमने यह मानने के लिए अपने आंतरिक वर्कफ़्लो बनाए हैं कि उल्लंघन हमेशा संभव है। हम सिर्फ़ घुसपैठ की निगरानी नहीं करते हैं; हम हमले की सतह को कम कर देते हैं, ताकि AI को दरवाज़े से गुज़रने के बाद उसे खोजने के लिए कुछ भी न रहे।
वर्सेल ब्रीच में सबसे बड़ी समस्याओं में से एक OAuth कनेक्शन था। OAuth अविश्वसनीय रूप से उपयोगी है, लेकिन अगर इसे अत्यधिक अनुशासन के साथ प्रबंधित नहीं किया जाता है, तो यह एक विशाल सुरक्षा छेद है। आप नए AI उत्पादकता टूल को आज़माने के लिए एक बटन पर क्लिक करते हैं, और अचानक उस टूल ने आपके संपूर्ण Google Workspace तक रीड एक्सेस प्राप्त कर लिया है। अगर वह टूल हैक हो जाता है—जैसे Context.ai ने किया—तो आपका पूरा संगठन बेनकाब हो जाता है।
स्वींट में हमारी टीम तीसरे पक्ष के एकीकरण के लिए जीरो-ट्रस्ट नीति लागू करती है। हम पूर्ण सुरक्षा ऑडिट के बिना 'चमकदार नए टूल्स' को अपने कोर सिस्टम से कनेक्ट नहीं होने देते हैं। और फिर भी, हम स्कोप को न्यूनतम स्तर तक सीमित रखते हैं। अगर किसी टूल को सिर्फ़ एक कैलेंडर पढ़ने की ज़रूरत है, तो उसे पूरे वर्कस्पेस तक ऐक्सेस नहीं मिलेगा। यह बहुत काम की तरह लगता है, और यह है। लेकिन यह एक छोटी सी घटना और ShinyHunters जैसे समूह से $2 मिलियन की फिरौती की मांग के बीच का अंतर है।
24 घंटे का गुप्त रोटेशन नियम
यहां तक कि सबसे अच्छे बचाव के साथ, चीजें गलत हो सकती हैं। एक पेशेवर टीम की पहचान सिर्फ़ यह नहीं है कि वे किसी उल्लंघन को कैसे रोकते हैं, बल्कि यह भी है कि वे उस पर प्रतिक्रिया कैसे देते हैं। वर्सेल ने सिफारिश की कि उनके ग्राहक अपने क्रेडेंशियल्स को तुरंत बदल दें। लेकिन कॉर्पोरेट जगत में 'तुरंत' एक अस्पष्ट शब्द है। कुछ कंपनियों के लिए, इसका मतलब है कि अगले सप्ताह। दूसरों के लिए, इसका मतलब है लंबे वीकेंड के बाद।
स्वींट में, हमारे पास एक सख्त नियम है: किसी भी संदिग्ध समझौते की स्थिति में, हर एक गुप्त, API कुंजी और डेटाबेस स्ट्रिंग को 24 घंटों के भीतर घुमाया जाता है। हम पूर्ण पोस्टमार्टम की प्रतीक्षा नहीं करते हैं। हम यह देखने के लिए इंतजार नहीं करते कि क्या डेटा 'वास्तव में' एक्सफ़िल किया गया था। हम हमलावर की तुलना में तेज़ी से आगे बढ़ते हैं।
जब तक किसी हमलावर को पता चलता है कि उनके पास एक चाबी है, तब तक वह चाबी मर चुकी होती है। हम इसे संभालने के लिए स्वचालित स्क्रिप्ट और इन्फ्रास्ट्रक्चर-ए-कोड का उपयोग करते हैं। अगर हम इस उल्लंघन के दौरान वर्सेल का इस्तेमाल कर रहे होते, तो हमारे क्लाइंट्स की चाबियां साइकल करके सुरक्षित कर ली जाती, इससे पहले कि समाचार प्रमुख तकनीकी ब्लॉगों तक पहुंच जाए। AI- चालित वेग से चलने वाले हमलावर के खिलाफ स्पीड ही एकमात्र बचाव है।
सप्लाई चेन सिक्योरिटी और 7-दिवसीय नियम
वर्सेल ब्रीच ने NPM सप्लाई चेन को लेकर भी चिंता जताई। चूंकि वर्सेल Next.js का मालिक है, इसलिए सही टोकन वाला एक हमलावर संभावित रूप से लाखों डेवलपर्स को 'ज़हरीली' रिलीज़ भेज सकता है। यह साइबर युद्ध का परमाणु विकल्प है। यदि आप हर बार नए संस्करण के ड्रॉप होने पर अपनी निर्भरता को आँख बंद करके अपडेट कर रहे हैं, तो आप अपने कोडबेस के साथ रूसी रूलेट खेल रहे हैं।
हम सभी गैर-महत्वपूर्ण डिपेंडेंसी अपडेट पर अनिवार्य विलंब लागू करके अपने ग्राहकों की सुरक्षा करते हैं। हम आम तौर पर प्रमुख पुस्तकालयों के नए संस्करण लाने से पहले कम से कम 7 दिन प्रतीक्षा करते हैं। क्यों? क्योंकि अधिकांश आपूर्ति श्रृंखला हमलों की पहचान कर ली जाती है और उन्हें पहले सप्ताह के भीतर ही निष्प्रभावी कर दिया जाता है। हर मामूली पैच को 'जल्दी अपनाने वाले' नहीं होने के कारण, हम यह सुनिश्चित करते हैं कि किसी पैकेज के हाईजैक होने पर हमारे क्लाइंट्स सबसे पहले प्रभावित न हों।
ऐसा महसूस हो सकता है कि हम अत्यधिक सतर्कता बरत रहे हैं, लेकिन विकल्प को देखें। ShinyHunters कथित तौर पर वर्सेल के आंतरिक डेटाबेस को $2 मिलियन में बेच रहा है। उनके पास 580 कर्मचारी रिकॉर्ड, आंतरिक डैशबोर्ड और सोर्स कोड हैं। यह एक भयावह विफलता है जिसे सख्त आंतरिक प्रोटोकॉल और गुप्त प्रबंधन के लिए कम 'सुविधाजनक' दृष्टिकोण से कम किया जा सकता था।
हम 'हार्ड' पार्ट्स को क्यों नहीं छोड़ते
सुरक्षा को अक्सर टकराव बिंदु के रूप में देखा जाता है। इससे विकास धीमा हो जाता है। इससे नए टूल आज़माना कठिन हो जाता है। यह परिनियोजन प्रक्रिया में चरण जोड़ता है। और यही वजह है कि इतने सारे स्टार्टअप मुश्किल हिस्सों को छोड़ देते हैं। वे तेजी से आगे बढ़ना चाहते हैं और चीजों को तोड़ना चाहते हैं। लेकिन जब आप जिस चीज़ को तोड़ते हैं वह आपके ग्राहकों का भरोसा है, तो हो सकता है कि आपको इसे ठीक करने का मौका न मिले।
हमने स्वींट का निर्माण इस विचार पर किया था कि सुरक्षा की कीमत पर डिजिटल परिवर्तन नहीं आना चाहिए। हम टकराव को संभालते हैं ताकि हमारे ग्राहकों को ऐसा न करना पड़े। हम AI टूल पर सुरक्षा ऑडिट कर रहे हैं। हम हर पर्यावरण चर पर अनिवार्य एन्क्रिप्शन लागू कर रहे हैं। हम 24 घंटों के भीतर कुंजियों को घुमाने के लिए तैयार रहते हैं, जबकि बाकी उद्योग अभी भी सुर्खियां पढ़ रहे हैं।
यदि आप अभी वर्सेल पर हैं, तो आपको शायद जाकर अपना डैशबोर्ड देखना चाहिए। हर एक वैरिएबल का ऑडिट करें। उन सभी को संवेदनशील के रूप में चिह्नित करें। ऐसे किसी भी OAuth कनेक्शन को सेवर करें जिसकी आपको बिल्कुल आवश्यकता नहीं है। लेकिन अगर आप इस बारे में चिंता करना बंद करना चाहते हैं कि आपके डेवलपर्स ने सुबह 2:00 बजे सही बॉक्स चेक किया है या नहीं, तो आपको एक ऐसे पार्टनर की ज़रूरत है जो सुरक्षा को वैकल्पिक सुविधा के रूप में नहीं मानता हो।
दिन के अंत में, वर्सेल संभवतः इससे उबर जाएगा। उनके पास कुलीन इंजीनियर हैं और बहुत सारी पूंजी है। लेकिन एक छोटी कंपनी के लिए, इस तरह का उल्लंघन मौत की सज़ा है। अगली बड़ी हेडलाइन का इंतज़ार न करें, जब आपको पता चले कि आपके 'गैर-संवेदनशील' वैरिएबल एक दायित्व हैं। हमलावर मशीन की गति से आगे बढ़ रहे हैं। क्या आप हैं?
अक्सर पूछे जाने वाले प्रश्न
हमलावर सीधे वर्सेल के पीछे नहीं गए। उन्होंने Context.ai का उल्लंघन किया, जो एक तृतीय-पक्ष AI उपकरण है जिसे Vercel कर्मचारी ने OAuth के माध्यम से अपने Google Workspace से कनेक्ट किया था। उस OAuth अनुदान से हमलावर कर्मचारी के Google खाते में घुस गए और वहाँ से उनके पास Vercel के आंतरिक सिस्टम का नक्शा था। यह एक क्लासिक सप्लाई-चेन पिवट है — आप केवल उतना ही सुरक्षित हैं जितना कि कम से कम ऑडिट किए गए एकीकरण को टीम के किसी भी सदस्य ने “अनुमति दें” पर क्लिक किया हो।
डेवलपर्स को “एन्क्रिप्टेड” और “पठनीय” रहस्यों के बीच एक टॉगल देना एक ऐसा डिज़ाइन विकल्प है जो हर डेवलपर पर दांव लगाता है, हर बार, शिपिंग दबाव में 2 बजे सुरक्षित विकल्प चुनता है। वे ऐसा नहीं करते हैं। वर्सेल ब्रीच ने इसकी पुष्टि की: हमलावर उन मूल्यों के साथ बाहर निकले जिन्हें तकनीकी रूप से “संवेदनशील नहीं” के रूप में चिह्नित किया गया था, लेकिन अन्य निष्कर्षों के साथ संयुक्त होने पर वे बहुत संवेदनशील साबित हुए। हमारी नीति: गैर-संवेदनशील रहस्य जैसी कोई चीज़ नहीं होती है - .env या CI/CD पाइपलाइन में सब कुछ उसी तरह एन्क्रिप्ट किया जाता है, कोई टॉगल नहीं।
हर कुंजी 24 घंटे के भीतर घूमती है, पूर्ण विराम। हम यह पुष्टि करने के लिए पोस्टमार्टम की प्रतीक्षा नहीं करते हैं कि डेटा वास्तव में बाहर निकाला गया था या नहीं — जब तक यह स्पष्ट हो जाता है, तब तक हमलावर ने जो कुछ भी चुराया था उसका उपयोग कर चुका होता है। इंफ्रास्ट्रक्चर-ए-कोड और ऑटोमेटेड रोटेशन स्क्रिप्ट्स इसे मैकेनिकल बनाते हैं, वीर नहीं। जब तक किसी हमलावर को पता चलता है कि उनके पास एक चाबी है, तब तक वह चाबी पहले ही मर चुकी होती है।
npm इकोसिस्टम में अधिकांश आपूर्ति-श्रृंखला हमलों का पता लगाया जाता है और दुर्भावनापूर्ण रिलीज़ के पहले सप्ताह के भीतर उन्हें निष्प्रभावी कर दिया जाता है - क्योंकि सख्त कैनरी चलाने वाली अन्य टीमों को समस्या का पता चलता है और रजिस्ट्री पैकेज को खींच लेती है। नए प्रमुख संस्करणों को लाने से पहले 7 दिन इंतजार करने का मतलब है कि जब कोई लोकप्रिय पैकेज हाईजैक हो जाता है, तो हमारे क्लाइंट्स सबसे पहले हिट नहीं होते हैं। इसमें थोड़ा विलंब होता है; यह एक वर्ग के हमले से पूरी तरह बच जाता है।
हर OAuth अनुदान को अपनी परिधि में एक स्थायी छेद के रूप में मानें, जब तक कि अन्यथा साबित न हो जाए। टूल को कनेक्ट करने से पहले उस पर सुरक्षा ऑडिट चलाएँ। स्कोप को पूर्ण न्यूनतम तक सीमित करें - यदि किसी टूल को केवल एक कैलेंडर की आवश्यकता होती है, तो उसे संपूर्ण वर्कस्पेस नहीं मिलता है। सक्रिय अनुदानों की त्रैमासिक समीक्षा करें और ऐसी किसी भी चीज़ को अलग करें जो प्रदर्शन में न हो। सिंगल-क्लिक इंटीग्रेशन की सुविधा यह है कि Context.ai, Vercel में मुख्य भूमिका कैसे बनी; जहां आपकी लागत सबसे कम होती है, वहां जानबूझकर घर्षण लागू करें और आपको सबसे अधिक बचत होती है।