कोड को मैन्युअल रूप से पढ़ना एक समय लेने वाली प्रक्रिया है। इसमें त्रुटि होने की संभावना भी होती है, क्योंकि इसमें महत्वपूर्ण विवरण छूट जाना आसान है। डेवलपर्स और पैनेट्रेशन टेस्टर के रूप में, हमें इस प्रक्रिया को स्वचालित करने का तरीका खोजने की आवश्यकता है। SAST एक ऐसी तकनीक है जो इस कार्य में हमारी मदद कर सकती है।
SAST कोई आसान उपाय नहीं है। इसका उपयोग केवल ओपन-सोर्स प्रोजेक्ट या व्हाइट-बॉक्स पैनेट्रेशन टेस्टिंग के लिए सोर्स कोड तक पहुँच वाले उपयोग मामलों के लिए किया जा सकता है। हालाँकि, यह आपको कुछ आसान काम खोजने और समय बचाने में मदद कर सकता है।
स्टेटिक एप्लिकेशन सुरक्षा परीक्षण (SAST) स्टेटिक कोड विश्लेषण का एक उपसमूह है जिसका उपयोग कोड की सुरक्षा और विश्वसनीयता बढ़ाने के लिए किया जाता है। SAST पुरानी निर्भरता, गुप्त पहचान, तार्किक त्रुटियों का पता लगाता है जो कमजोरियों को जन्म देती हैं, और बहुत कुछ। SAST में ऐसे परीक्षण शामिल हैं जो साइबर सुरक्षा को द्वितीयक रूप से प्रभावित करते हैं, जैसे दृश्य कोड जटिलता, कोड अस्पष्टता और गैर-सहज अभ्यास जो कमजोरियों को जन्म दे सकते हैं।
SAST उपकरण आम तौर पर स्टेरॉयड पर रेगेक्स पैटर्न मैचर्स होते हैं जो कोड में ज्ञात कमजोरियों की तलाश करते हैं। उदाहरण के लिए, एक SAST उपकरण पायथन कोड में eval
, exec
, या pickle
उपयोग की तलाश कर सकता है, इन फ़ंक्शन का उपयोग मनमाने कोड को निष्पादित करने के लिए किया जा सकता है।
मैं SAST के प्रति अपने दृष्टिकोण को तीन श्रेणियों में विभाजित करूंगा:
भेद्यता का पता लगाना : मैं कोड में अटैक वेक्टर खोजने के लिए सेमग्रेप , बैंडिट , नोडजेसकैन जैसे टूल का उपयोग करता हूं। आप आमतौर पर कम-लटकते फल जैसे कि अनसैनिटाइज्ड इनपुट, खराब क्रिप्टोग्राफी या कमजोर लाइब्रेरी पा सकते हैं। वैसे, सेमग्रेप प्रो संस्करण में अधिक नियम हैं; यदि प्रोजेक्ट पर 10 से अधिक डेवलपर्स नहीं हैं तो यह मुफ़्त है।
गुप्त पहचान : Gitleaks , Trufflehog , या Grep आपको कोड में गुप्त जानकारी खोजने में मदद कर सकते हैं। यह महत्वपूर्ण है क्योंकि गुप्त जानकारी का उपयोग विशेषाधिकारों को बढ़ाने या संवेदनशील डेटा तक पहुँचने के लिए किया जा सकता है। आमतौर पर, डेटाबेस कनेक्शन स्ट्रिंग, API कुंजियाँ या पासवर्ड कोड में संग्रहीत होते हैं।
गलत कॉन्फ़िगरेशन : चेकोव या ट्रिवी जैसे उपकरण आपको गलत कॉन्फ़िगरेशन खोजने में मदद कर सकते हैं। गलत कॉन्फ़िगरेशन आमतौर पर "इन्फ्रास्ट्रक्चर ऐज़ कोड" (IaC) फ़ाइलों में होते हैं, लेकिन कोड में भी हो सकते हैं। एक उदाहरण एक गलत कॉन्फ़िगर की गई डॉकर-कंपोज़ फ़ाइल होगी जो इंटरनेट पर डेटाबेस को उजागर करती है। Dockerfiles को स्कैन करने के लिए, मैं hadolint और grype के संयोजन की सलाह देता हूँ
अधिक जानकारी: https://dkb-zh.gitlab-pages.ics.muni.cz/vulnerability-management/web-guides-external/docs/guide_iac_sast/#docker
SAST उपकरण परिपूर्ण नहीं हैं। वे आपको गलत सकारात्मक और गलत नकारात्मक परिणाम देंगे। **हालाँकि, यह कुछ अनुप्रयोगों का बेतरतीब ढंग से शोषण करने की तुलना में बहुत समय बचाता है। मैंने अपने प्रवेश परीक्षण कार्यक्रमों और प्रतियोगिताओं में SAST उपकरणों का उपयोग किया। इसने मुझे कोडबेस के साथ शुरुआत करने में मदद की और मुझे कुछ संकेत दिए कि कहाँ कमज़ोरियों की तलाश करनी है।
मेरा सुझाव है कि आप Hack The Box से शुरुआत करें। यह प्लेटफ़ॉर्म चुनौतियां पेश करता है, जैसे कि सोर्स कोड प्राप्त करना और कमज़ोरियों का पता लगाना। फिर, उन्हें वास्तविक मशीन पर इस्तेमाल करना। यह SAST टूल का व्यवहार में उपयोग करना सीखने का एक शानदार तरीका है।
या, यदि आप डेवलपर हैं, तो आप अपने CI/CD पाइपलाइन में SAST टूल का उपयोग कर सकते हैं। इस तरह, आप टूल और उनके आउटपुट के अभ्यस्त हो सकते हैं। साथ ही, आप अपने एप्लिकेशन की सुरक्षा में सुधार करेंगे।
मैंने SAST और गुप्त पहचान के साथ शुरुआत करने में आपकी मदद करने के लिए गाइड की एक सूची तैयार की है। ये गाइड मेरी थीसिस के हिस्से के रूप में लिखे गए हैं और SAST टूल में रुचि रखने वाले किसी भी व्यक्ति के लिए एक बढ़िया शुरुआती बिंदु हैं।
रहस्यों का पता लगाते समय, याद रखें: अगर हैकर्स को यह पता है तो यह कोई रहस्य नहीं है। अनुभवी डेवलपर्स भी गलती से पासवर्ड या कनेक्शन स्ट्रिंग को रिमोट सोर्स कंट्रोल में डाल सकते हैं। विभिन्न उपकरणों का उपयोग करके, यह गाइड इस जोखिम को कम करने के लिए त्वरित और आसान तरीके प्रदान करता है।
यह गाइड प्री-कमिट हुक और CI/CD पाइपलाइन का उपयोग करके गुप्त पहचान को समझने पर केंद्रित है। जबकि कोड मुख्य रूप से GitLab पर केंद्रित है, अंतिम खंड GitHub को भी कवर करेगा।
यह मार्गदर्शिका GitLab में स्टेटिक एप्लिकेशन सिक्योरिटी टेस्टिंग (SAST) आरंभ करने के चरणों को कुशलतापूर्वक रेखांकित करती है। SAST एक ऐसी प्रक्रिया है जो संभावित कमजोरियों की पहचान करने के लिए स्थिर कोड विश्लेषण का उपयोग करती है।
यह चीटशीट इन्फ्रास्ट्रक्चर एज़ कोड (IaC) आर्टिफैक्ट्स को स्कैन करने के लिए उपयोगी टूल प्रस्तुत करती है तथा उन्हें आपकी CI/CD पाइपलाइन में एकीकृत करने के उदाहरण प्रदान करती है।
मैंने गोलांग में एक कस्टम टूल बनाया है जो मुझे विशाल कोडबेस के साथ रेगेक्स का शीघ्रता से मिलान करने में मदद करता है।
परिशुद्धता और भिन्नता के बीच एक अनंत समझौता है।
मान लीजिए कि आपको ज़्यादा भिन्नता की ज़रूरत है और आपको ज़्यादा मैन्युअल समीक्षा करने में कोई आपत्ति नहीं है। उस स्थिति में, आप RegFinder आज़मा सकते हैं, जो grep
की तरह है लेकिन गुप्त पहचान के लिए ज़्यादा उपयुक्त है (बड़े रिपॉजिटरी में तेज़, स्पष्ट आउटपुट, कुछ फ़ाइल एक्सटेंशन को अनदेखा करना)। या आप सीधे grep का उपयोग कर सकते हैं। सबसे मूल्यवान रिपॉजिटरी में मौजूद रेगेक्स हैं , न कि वह टूल जिसका आप उपयोग करेंगे।
grep -n -r your_app/ -Ef regex_dir/general.txt
चलाएँया
./regfinder.elf -d your_app/ -f regex_dir/general.txt
चलाएँमौजूदा रेगेक्स पैटर्न को विस्तारित करना सीधा है। यह उपकरण स्वचालित पाइपलाइनों के लिए व्यवहार्य नहीं है। हालाँकि, यह तब काम आता है जब आपको कोई गैर-मानक रहस्य खोजने की आवश्यकता होती है या अन्य आकलन में, जैसे कि सुरक्षा समीक्षा, जहाँ अधिक मैन्युअल कार्य अपेक्षित होता है।
यदि आपको अन्य उपकरणों के साथ अच्छा अनुभव है तो टिप्पणी करें। पढ़ने के लिए धन्यवाद।