प्रभाव
API की, टोकन किंवा क्रेडेन्शियल्स यांसारखी रहस्ये लीक केल्याने संवेदनशील डेटामध्ये अनधिकृत प्रवेश, सेवा तोतयागिरी आणि संसाधनांच्या दुरुपयोगामुळे लक्षणीय आर्थिक नुकसान होऊ शकते [S1]. सार्वजनिक भांडारासाठी गुप्ततेने वचनबद्ध झाल्यानंतर किंवा फ्रंटएंड ऍप्लिकेशनमध्ये एकत्रित केल्यावर, ते तडजोड केलेले [S1] मानले जावे.
मूळ कारण
मूळ कारण म्हणजे संवेदनशील क्रेडेंशियल्सचा थेट स्त्रोत कोड किंवा कॉन्फिगरेशन फायलींमध्ये समावेश करणे जे नंतर आवृत्ती नियंत्रणासाठी वचनबद्ध आहेत किंवा [S1] ला दिले जातात. डेव्हलपर्स अनेकदा डेव्हलपमेंट दरम्यान सोयीसाठी हार्ड-कोड की किंवा चुकून .env फाइल्स त्यांच्या कमिटमध्ये समाविष्ट करतात [S1].
ठोस निराकरणे
- रोटेट कॉम्प्रोमाइज्ड सिक्रेट्स: एखादे गुपित लीक झाल्यास, ते रद्द केले जाणे आणि त्वरित बदलणे आवश्यक आहे. कोडच्या वर्तमान आवृत्तीमधून फक्त रहस्य काढून टाकणे पुरेसे नाही कारण ते आवृत्ती नियंत्रण इतिहास [S1][S2] मध्ये राहते.
- पर्यावरण व्हेरिएबल्स वापरा: एन्व्हायर्नमेंट व्हेरिएबल्समध्ये हार्ड-कोडिंग करण्याऐवजी गुपिते साठवा.
.envफाईल्स.gitignoreमध्ये जोडल्या गेल्या आहेत याची खात्री करा, [S1] अपघाती कमिट टाळण्यासाठी. - गुप्त व्यवस्थापनाची अंमलबजावणी करा: रनटाइम [S1] वर ऍप्लिकेशन वातावरणात क्रेडेन्शियल्स इंजेक्ट करण्यासाठी समर्पित गुप्त व्यवस्थापन साधने किंवा वॉल्ट सेवा वापरा.
- पर्ज रिपॉजिटरी हिस्ट्री: जर Git ला गुप्ततेने वचनबद्ध केले असेल, तर
git-filter-repoकिंवा BFG रेपो-क्लीनर सारखी साधने वापरा आणि रिपॉझिटरी इतिहास [S2] मधील सर्व शाखा आणि टॅगमधील संवेदनशील डेटा कायमचा काढून टाका.
त्यासाठी FixVibe चाचण्या कशा करतात
FixVibe मध्ये आता हे थेट स्कॅनमध्ये समाविष्ट आहे. निष्क्रिय secrets.js-bundle-sweep समान मूळ JavaScript बंडल डाउनलोड करते आणि ज्ञात API की, टोकन आणि एंट्रोपी आणि प्लेसहोल्डर गेट्ससह क्रेडेन्शियल नमुने जुळतात. संबंधित लाइव्ह चेक ब्राउझर स्टोरेज, स्त्रोत नकाशे, प्रमाणीकरण आणि BaaS क्लायंट बंडल आणि GitHub रेपो स्त्रोत नमुन्यांची तपासणी करतात. Git इतिहास पुनर्लेखन एक उपाय उपाय राहते; FixVibe चे लाइव्ह कव्हरेज शिप केलेल्या मालमत्ता, ब्राउझर स्टोरेज आणि वर्तमान रेपो सामग्रीमध्ये उपस्थित असलेल्या रहस्यांवर लक्ष केंद्रित करते.
