सीक्रेट डिलीट करने से एक्सपायर नहीं होते: Git हिस्ट्री साफ़ करना
संक्षेप में: किसी रिपॉज़िटरी में कमिट किया गया लीक हुआ API key फ़ाइल डिलीट होने के बहुत बाद तक हिस्ट्री में बना रहता है। पहचान, रोटेशन और हिस्ट्री-पुनर्लेखन — तीनों ज़रूरी हैं — सिर्फ़ डिलीट करना एक झूठा सुरक्षा-एहसास है।
डिलीट-कमिट का जाल
जब कोई डेवलपर किसी कमिट किए गए क्रेडेंशियल को नोटिस करता है, तो सहज प्रवृत्ति होती है लाइन डिलीट करके फ़िक्स पुश कर देना। पर सीक्रेट अब भी git हिस्ट्री में मौजूद है, जिसे क्लोन-एक्सेस रखने वाला कोई भी हासिल कर सकता है। अगर रिपॉज़िटरी कभी सार्वजनिक या मिरर की गई थी, तो मान लें कि सीक्रेट उसी पल से भंग हो चुका है जब वह पुश हुआ था।
एकमात्र सुरक्षित मान्यता यह है कि लीक हुआ सीक्रेट तब तक जीवित सीक्रेट है जब तक उसे रोटेट न कर दिया जाए।
असली सुधार-क्रम
- क्रेडेंशियल को तुरंत रोटेट करें — इसे उजागर-भर नहीं, बल्कि भंग-हुआ मानें।
- एक्सपोज़र-खिड़की के दौरान लीक हुए key के किसी भी उपयोग के लिए रद्द करें और ऑडिट करें।
- सीक्रेट को हर पहुँच-योग्य कमिट से मिटाने और मिरर को ज़बरन-ताज़ा करने के लिए हिस्ट्री को फिर से लिखें।
- प्री-कमिट और CI सीक्रेट-स्कैनिंग जोड़ें ताकि अगला सीक्रेट लैंड होने से पहले ही पकड़ा जाए।
पहचान निरंतर होनी चाहिए
सीक्रेट-लीक कोई एक-बार की सफ़ाई नहीं है; यह एक चल रही पहचान-समस्या है। सिर्फ़ कमिट के समय स्कैन करना उन सीक्रेट को छोड़ देता है जो दूसरे रास्तों से पुश हुए, और सिर्फ़ हिस्ट्री में स्कैन करना कल की ग़लती छोड़ देता है। दोनों मायने रखते हैं।
KENSAI की स्कैनिंग उजागर क्रेडेंशियल को उस संदर्भ के साथ सामने लाती है जो रोटेशन की प्राथमिकता तय करने के लिए ज़रूरी है — कौन-सी key, वह कहाँ पहुँच-योग्य है, और एक्सपोज़र कितनी तात्कालिक है।
व्यवहार में अच्छी स्वच्छता कैसी दिखती है
हर उस सीक्रेट को मानें जो कभी किसी रिपॉज़िटरी को छू चुका है, मानो वह पहले से उजागर है, और इस तरह डिज़ाइन करें कि एक्सपोज़र झेला जा सके। अल्पकालिक, स्वतः-रोटेट होने वाले क्रेडेंशियल किसी लीक हुई key को ऐसी समस्या में बदल देते हैं जो अपने आप एक्सपायर हो जाती है, बजाय एक खुले दरवाज़े के जो महीनों तक खुला रहता है।
प्री-कमिट और प्री-रिसीव हुक के साथ पहचान को बाईं ओर धकेलें, जो किसी सीक्रेट को कभी दर्ज होने से पहले ही रोक दें, और इसे सर्वर-साइड स्कैनिंग के साथ जोड़ें जो जो कुछ फिसल जाए उसे पकड़ ले। लक्ष्य कोई एक-बार की सफ़ाई नहीं बल्कि एक स्थायी नियंत्रण है जो नए लीक को दुर्लभ, ज़ोरदार और तेज़ी से रद्द होने-योग्य बना दे।
निष्कर्ष
किसी लीक हुए सीक्रेट को डिलीट करना सबसे कम महत्वपूर्ण क़दम है। पहले रोटेट करें, फिर हिस्ट्री मिटाएँ, और निरंतर पहचान की व्यवस्था लगाएँ ताकि एक्सपोज़र-खिड़कियाँ दोहराने के बजाय सिकुड़ें।
निरंतर सुरक्षा निगरानी, भेद्यता स्कैनिंग, और अनुपालन-तैयार साक्ष्य ट्रेल पाएँ।
निःशुल्क स्कैन शुरू करें