
SEDATED® प्रोजेक्ट (संवेदनशील एंटरप्राइज़ डेटा विश्लेषक प्रकटीकरण को समाप्त करने के लिए)

SEDATED® परियोजना (सेंसिटिव एंटरप्राइज डेटा एनालाइज़र टू एलिमिनेट डिस्क्लोज़र) संवेदनशील डेटा जैसे उपयोगकर्ता क्रेडेंशियल और टोकन को Git पर पुश होने से रोकने पर केंद्रित है।
आज के CICD वातावरण में आवश्यक कोड परिवर्तनों की अधिकता के साथ, डेवलपर लगातार ऐसा कोड पुश कर रहे हैं जो अनजाने में संवेदनशील जानकारी शामिल कर सकता है। संवेदनशील डेटा का यह संभावित एक्सपोज़र संगठनों के लिए एक बड़ा जोखिम प्रस्तुत करता है (2017 OWASP टॉप टेन #3 - संवेदनशील डेटा एक्सपोज़र)। SEDATED® सभी आने वाले कोड परिवर्तनों की स्वचालित रूप से समीक्षा करके और डेवलपर को तत्काल प्रतिक्रिया प्रदान करके इस मुद्दे का समाधान करता है। यदि यह संवेदनशील डेटा की पहचान करता है, तो यह कमिट को Git सर्वर पर पुश होने से रोक देगा।
**नोट: SEDATED® द्वारा केवल कमिट पुश में जोड़ी या संशोधित की जा रही पंक्तियाँ (पैच फ़ाइल में + से शुरू होने वाली) स्कैन की जाती हैं। कमिट पुश में हटाई जा रही पंक्तियाँ (पैच फ़ाइल में - से शुरू होने वाली) SEDATED® द्वारा नहीं स्कैन की जाती हैं।
git clone https://github.com/OWASP/SEDATED.git
cd SEDATED/
cp /config/whitelists/commit_whitelist.txt.example /config/whitelists/commit_whitelist.txt
cp /config/whitelists/repo_whitelist.txt.example /config/whitelists/repo_whitelist.txt
cp /config/enforced_repos_list.txt.example /config/enforced_repos_list.txt
SEDATED® के संगठन-विशिष्ट कार्यान्वयन को संगठन की वांछित Git रिपॉजिटरी (GitHub, GitLab, Git, आदि) पर पुश करें।
GitHub एंटरप्राइज़ इंस्टेंस पर इसे पूरा करने के निर्देश GitHub_Enterprise_Setup.md में पाए जा सकते हैं।
always_reject.sh को SEDATED® pre-receive.sh स्क्रिप्ट से बदलना होगा।pre-receive.sh स्क्रिप्ट के लिए सुलभ बनाना होगा।pre-receive.sh के साथ उपयोग की जाती है, संगठनों को अपने SEDATED® कार्यान्वयन को अनुकूलित करने की अनुमति देती है, बिना pre-receive.sh फ़ाइल के भीतर किसी भी स्रोत कोड को संशोधित किए, pre-receive.sh से प्राप्त बिल्ट-इन अनुकूलन योग्य वेरिएबल और फंक्शन प्रदान करके।config/custom_configs.sh में SEDATED® (प्री-रिसीव हुक) use_enforced_repo_check_custom फ़्लैग "True" पर सेट होता है।/* जोड़कर पूरा किया जा सकता है जहाँ प्रवर्तन वांछित है।/config/enforced_repos_list.txt फ़ाइल में प्रकट नहीं होता है, तो पुश करने वाला (यदि कमांड लाइन से पुश कर रहा है) एक अनुकूलन योग्य संदेश देखेगा (/config/custom_configs.sh फ़ाइल के माध्यम से अनुकूलित करें) और SEDATED® पुश में शामिल किसी भी कोड को स्कैन नहीं करेगा।/config/custom_configs.sh में पाया जा सकता है और इसे "True" या "False" पर सेट किया जा सकता है।
/config/enforced_repos_list.txt में सूचीबद्ध रिपॉजिटरी पर SEDATED® "लागू" होगा। SEDATED® "सक्षम" वाली लेकिन /config/enforced_repos_list.txt फ़ाइल में सूचीबद्ध नहीं अन्य सभी रिपॉजिटरी केवल एक कस्टम संदेश देखेंगी, उन रिपॉजिटरी से पुश के लिए कोई कोड स्कैन नहीं किया जाएगा।config/custom_configs.sh में use_enforced_repo_check_custom फ़्लैग "True" पर सेट है।pre-receive.sh में) -P फ़्लैग के साथ किया जाता है, जो उन्हें Perl-संगत रेगुलर एक्सप्रेशन (PCRE) बनाता है।/testing/regex_testing/regex_test_script.sh स्क्रिप्ट का उपयोग कर रहे हैं तो /testing/regex_testing/test_cases.txt फ़ाइल को अपडेट करना होगा, अद्यतन regexes से संबंधित परीक्षण मामलों को जोड़कर या हटाकर ताकि /testing/regex_testing/regex_test_script.sh के परिणाम सटीक हों।\ की आवश्यकता हो सकती है क्योंकि यह फ़ाइल JSON प्रारूप में है।/config/whitelists/commit_whitelist.txt.example फ़ाइल में दिखाया गया है।commit_whitelist.txt) फ़ाइल में पुल रिक्वेस्ट सबमिट करें ताकि उनकी समीक्षा की जा सके।/config/whitelists/repo_whitelist.txt.example फ़ाइल में दिखाया गया है।testing/regex_testing/test_cases.txt के साथ उपयोग की जाती है, config/regexes.json के अंदर regexes को ऑफ़लाइन परीक्षण/मान्य करने का एक सरल, त्वरित तरीका है कि वे मान्य हैं और वांछित पैटर्न से मेल खा रहे हैं और वांछित के रूप में बहिष्कृत/मेल नहीं खा रहे हैं।
/testing/regex_testing/test_cases.txt) की सूची के विरुद्ध regexes का परीक्षण करता है कि regexes अपेक्षित रूप से काम कर रहे हैं।/testing/regex_testing/test_cases.txt) के लिए परीक्षण शामिल है।-P फ़्लैग नहीं है)।/testing/regex_testing/test_cases.txt से लिए गए हैं।/testing/regex_testing/regex_test_script.sh में उपभोग के लिए पास किए जाने वाले परीक्षण मामलों की सूची।>>pass या >>fail जोड़ा जाता है, ये /testing/regex_testing/regex_test_script.sh स्क्रिप्ट को regexes की अपेक्षा बताते हैं।
>>pass का अर्थ है कि पूर्ववर्ती स्ट्रिंग वाले पुश को SEDATED® द्वारा स्वीकार किया जाएगा (अर्थात regexes पूर्ववर्ती स्ट्रिंग को फ़्लैग नहीं करेंगे)।>>fail का अर्थ है कि पूर्ववर्ती स्ट्रिंग वाले पुश को SEDATED® द्वारा अस्वीकार कर दिया जाएगा (अर्थात regexes पूर्ववर्ती स्ट्रिंग को फ़्लैग करेंगे)।कस्टम वेरिएबल और फंक्शन संगठनों को मुख्य प्री-रिसीव हुक फ़ाइल को बदले बिना SEDATED® के अपने विशिष्ट कार्यान्वयन को आसानी से अनुकूलित करने की अनुमति देने के लिए डिज़ाइन किए गए हैं जो सभी भारी काम करता है। सभी कस्टम वेरिएबल और फंक्शन /config/custom_configs.sh में पाए जा सकते हैं और इस फ़ाइल में शामिल वेरिएबल की व्याख्या नीचे सूचीबद्ध है।
show_SEDATED_link_custom - OWASP/SEDATED GitHub रिपॉजिटरी का लिंक प्रदर्शित करने के लिए "True" (केस-सेंसिटिव), अन्यथा "False" पर सेट करें।documentation_link_custom - संगठन-विशिष्ट दस्तावेज़ीकरण का लिंक जोड़ें कि संगठन डेवलपर्स को अस्वीकृत पुश को कैसे संभालना चाहिए और/या SEDATED® के बारे में सामान्य संगठन-विशिष्ट जानकारी।
enforced_repos_list.txt फ़ाइल पर शामिल नहीं होती है तो डेवलपर को वापस प्रदर्शित किया जाता है।use_enforced_repo_check_custom - "True" या "False" (केस-सेंसिटिव)।
/config/enforced_repos_list.txt का फ़ाइल विवरण देखें।enforced_repo_check_true_message_custom कस्टम संदेश के साथ (केवल आवश्यक है यदि use_enforced_repo_check_custom "True" पर सेट है)।obfuscate_output_custom - "True" या "False" (केस-सेंसिटिव)। SEDATED® के आउटपुट में प्रदर्शित संवेदनशील डेटा को मास्क करने के लिए इस विकल्प का उपयोग करें।SET_USER_REPO_NAME_CUSTOM
PRINT_ERROR_MESSAGE_CUSTOM
EXIT_SEDATED_CUSTOM
: "कुछ न करें" है, और इसे बदलना आवश्यक नहीं है।UNABLE_TO_ACCESS_REPO_WHITELIST_CUSTOM
: "कुछ न करें" है, और इसे बदलना आवश्यक नहीं है।PUSH_ACCEPTED_CUSTOM
: "कुछ न करें" है, और इसे बदलना आवश्यक नहीं है।UNABLE_TO_ACCESS_REGEXES_CUSTOM
: "कुछ न करें" है, और इसे बदलना आवश्यक नहीं है।exit 1 करेगा और यदि regexes तक पहुँचने में असमर्थ है तो त्रुटि संदेश प्रिंट करेगा, हालांकि इन मामलों में वांछित होने पर अतिरिक्त कस्टम कार्रवाई की जा सकती है (जैसे अतिरिक्त त्रुटि संदेश प्रिंट करें, लॉग करें, मीट्रिक भेजें, आदि)।PUSH_REJECTED_WITH_VIOLATIONS_CUSTOM
: "कुछ न करें" है, और इसे बदलना आवश्यक नहीं है।UNABLE_TO_ACCESS_COMMIT_WHITELIST_CUSTOM
: "कुछ न करें" है, और इसे बदलना आवश्यक नहीं है।केवल उन SCM टूल के साथ संगत है जो Git संस्करण नियंत्रण प्रणाली का उपयोग करते हैं।
SET_USER_REPO_NAME_CUSTOM में संशोधन की आवश्यकता होगी।.git/hooks/ निर्देशिका में रखना होगा (दस्तावेज़ीकरण फ़ोल्डर/फ़ाइलों को छोड़कर)।pre-receive.sample से .sample हटाएँ और SEDATED® की pre-receive.sh फ़ाइल से कोड को उस pre-receive फ़ाइल में कॉपी करें जिसे हमने .sample फ़ाइल से अभी बनाया है।SET_USER_REPO_NAME_CUSTOM में संशोधन की संभावना होगी।आप निम्नलिखित में से किसी भी तरीके से योगदान कर सकते हैं:
SEDATED® को BSD 3-क्लॉज़ "न्यू" या "रिवाइज़्ड" लाइसेंस के तहत लाइसेंस दिया गया है।
**SEDATED® हार्ड-कोडेड क्रेडेंशियल, कुंजी, रहस्य, आदि के हर उदाहरण को फ़्लैग करने की गारंटी नहीं देता है, यह regex पैटर्न मिलान का उपयोग करता है और हालांकि यह अधिकांश उदाहरणों को पकड़ने में काफी अच्छा हो गया है, यह सही नहीं है, लेकिन हम SEDATED® को और भी बेहतर बनाने में मदद करने के लिए विचारों और/या पुल रिक्वेस्ट का हमेशा स्वागत करते हैं।