paint-brush
SAST तकनीक से हैकर की तरह कोड पढ़ेंद्वारा@matejsmycka
2,749 रीडिंग
2,749 रीडिंग

SAST तकनीक से हैकर की तरह कोड पढ़ें

द्वारा Matěj Smyčka4m2024/05/03
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

स्टेटिक एप्लीकेशन सिक्योरिटी टेस्टिंग (SAST) स्टेटिक कोड विश्लेषण का एक उपसमूह है जिसका उपयोग कोड की सुरक्षा और विश्वसनीयता बढ़ाने के लिए किया जाता है। SAST पुरानी निर्भरता, गुप्त पहचान, तार्किक त्रुटियों का पता लगाता है जो कमजोरियों की ओर ले जाती हैं, और बहुत कुछ। यह कोई आसान उपाय नहीं है, लेकिन यह आपको कुछ आसान उपाय खोजने और समय बचाने में मदद कर सकता है।
featured image - SAST तकनीक से हैकर की तरह कोड पढ़ें
Matěj Smyčka HackerNoon profile picture
0-item
1-item
2-item

कोड को मैन्युअल रूप से पढ़ना एक समय लेने वाली प्रक्रिया है। इसमें त्रुटि होने की संभावना भी होती है, क्योंकि इसमें महत्वपूर्ण विवरण छूट जाना आसान है। डेवलपर्स और पैनेट्रेशन टेस्टर के रूप में, हमें इस प्रक्रिया को स्वचालित करने का तरीका खोजने की आवश्यकता है। SAST एक ऐसी तकनीक है जो इस कार्य में हमारी मदद कर सकती है।


SAST कोई आसान उपाय नहीं है। इसका उपयोग केवल ओपन-सोर्स प्रोजेक्ट या व्हाइट-बॉक्स पैनेट्रेशन टेस्टिंग के लिए सोर्स कोड तक पहुँच वाले उपयोग मामलों के लिए किया जा सकता है। हालाँकि, यह आपको कुछ आसान काम खोजने और समय बचाने में मदद कर सकता है।

एसएएसटी क्या है?

स्टेटिक एप्लिकेशन सुरक्षा परीक्षण (SAST) स्टेटिक कोड विश्लेषण का एक उपसमूह है जिसका उपयोग कोड की सुरक्षा और विश्वसनीयता बढ़ाने के लिए किया जाता है। SAST पुरानी निर्भरता, गुप्त पहचान, तार्किक त्रुटियों का पता लगाता है जो कमजोरियों को जन्म देती हैं, और बहुत कुछ। SAST में ऐसे परीक्षण शामिल हैं जो साइबर सुरक्षा को द्वितीयक रूप से प्रभावित करते हैं, जैसे दृश्य कोड जटिलता, कोड अस्पष्टता और गैर-सहज अभ्यास जो कमजोरियों को जन्म दे सकते हैं।

व्यवहार में उपकरण

SAST उपकरण आम तौर पर स्टेरॉयड पर रेगेक्स पैटर्न मैचर्स होते हैं जो कोड में ज्ञात कमजोरियों की तलाश करते हैं। उदाहरण के लिए, एक SAST उपकरण पायथन कोड में eval , exec , या pickle उपयोग की तलाश कर सकता है, इन फ़ंक्शन का उपयोग मनमाने कोड को निष्पादित करने के लिए किया जा सकता है।

नियम का उदाहरण

हैकिंग और SAST

मैं SAST के प्रति अपने दृष्टिकोण को तीन श्रेणियों में विभाजित करूंगा:

  1. भेद्यता का पता लगाना : मैं कोड में अटैक वेक्टर खोजने के लिए सेमग्रेप , बैंडिट , नोडजेसकैन जैसे टूल का उपयोग करता हूं। आप आमतौर पर कम-लटकते फल जैसे कि अनसैनिटाइज्ड इनपुट, खराब क्रिप्टोग्राफी या कमजोर लाइब्रेरी पा सकते हैं। वैसे, सेमग्रेप प्रो संस्करण में अधिक नियम हैं; यदि प्रोजेक्ट पर 10 से अधिक डेवलपर्स नहीं हैं तो यह मुफ़्त है।

    सेमग्रेप और SQLi

  2. गुप्त पहचान : Gitleaks , Trufflehog , या Grep आपको कोड में गुप्त जानकारी खोजने में मदद कर सकते हैं। यह महत्वपूर्ण है क्योंकि गुप्त जानकारी का उपयोग विशेषाधिकारों को बढ़ाने या संवेदनशील डेटा तक पहुँचने के लिए किया जा सकता है। आमतौर पर, डेटाबेस कनेक्शन स्ट्रिंग, API कुंजियाँ या पासवर्ड कोड में संग्रहीत होते हैं।

  3. गलत कॉन्फ़िगरेशन : चेकोव या ट्रिवी जैसे उपकरण आपको गलत कॉन्फ़िगरेशन खोजने में मदद कर सकते हैं। गलत कॉन्फ़िगरेशन आमतौर पर "इन्फ्रास्ट्रक्चर ऐज़ कोड" (IaC) फ़ाइलों में होते हैं, लेकिन कोड में भी हो सकते हैं। एक उदाहरण एक गलत कॉन्फ़िगर की गई डॉकर-कंपोज़ फ़ाइल होगी जो इंटरनेट पर डेटाबेस को उजागर करती है। Dockerfiles को स्कैन करने के लिए, मैं hadolint और grype के संयोजन की सलाह देता हूँ

    अधिक जानकारी: https://dkb-zh.gitlab-pages.ics.muni.cz/vulnerability-management/web-guides-external/docs/guide_iac_sast/#docker


SAST उपकरण परिपूर्ण नहीं हैं। वे आपको गलत सकारात्मक और गलत नकारात्मक परिणाम देंगे। **हालाँकि, यह कुछ अनुप्रयोगों का बेतरतीब ढंग से शोषण करने की तुलना में बहुत समय बचाता है। मैंने अपने प्रवेश परीक्षण कार्यक्रमों और प्रतियोगिताओं में SAST उपकरणों का उपयोग किया। इसने मुझे कोडबेस के साथ शुरुआत करने में मदद की और मुझे कुछ संकेत दिए कि कहाँ कमज़ोरियों की तलाश करनी है।

हैकिंग में SAST का उपयोग करके प्रशिक्षण कैसे प्राप्त करें

मेरा सुझाव है कि आप Hack The Box से शुरुआत करें। यह प्लेटफ़ॉर्म चुनौतियां पेश करता है, जैसे कि सोर्स कोड प्राप्त करना और कमज़ोरियों का पता लगाना। फिर, उन्हें वास्तविक मशीन पर इस्तेमाल करना। यह SAST टूल का व्यवहार में उपयोग करना सीखने का एक शानदार तरीका है।

या, यदि आप डेवलपर हैं, तो आप अपने CI/CD पाइपलाइन में SAST टूल का उपयोग कर सकते हैं। इस तरह, आप टूल और उनके आउटपुट के अभ्यस्त हो सकते हैं। साथ ही, आप अपने एप्लिकेशन की सुरक्षा में सुधार करेंगे।

HackTheBox चुनौतियां

गाइड की अनुशंसा

मैंने SAST और गुप्त पहचान के साथ शुरुआत करने में आपकी मदद करने के लिए गाइड की एक सूची तैयार की है। ये गाइड मेरी थीसिस के हिस्से के रूप में लिखे गए हैं और SAST टूल में रुचि रखने वाले किसी भी व्यक्ति के लिए एक बढ़िया शुरुआती बिंदु हैं।

गुप्त पता लगाने की शुरुआत कैसे करें?

रहस्यों का पता लगाते समय, याद रखें: अगर हैकर्स को यह पता है तो यह कोई रहस्य नहीं है। अनुभवी डेवलपर्स भी गलती से पासवर्ड या कनेक्शन स्ट्रिंग को रिमोट सोर्स कंट्रोल में डाल सकते हैं। विभिन्न उपकरणों का उपयोग करके, यह गाइड इस जोखिम को कम करने के लिए त्वरित और आसान तरीके प्रदान करता है।

गुप्त जानकारी का पता लगाना स्वचालित कैसे करें

यह गाइड प्री-कमिट हुक और CI/CD पाइपलाइन का उपयोग करके गुप्त पहचान को समझने पर केंद्रित है। जबकि कोड मुख्य रूप से GitLab पर केंद्रित है, अंतिम खंड GitHub को भी कवर करेगा।

SAST पाइपलाइनों के साथ कैसे शुरुआत करें

यह मार्गदर्शिका GitLab में स्टेटिक एप्लिकेशन सिक्योरिटी टेस्टिंग (SAST) आरंभ करने के चरणों को कुशलतापूर्वक रेखांकित करती है। SAST एक ऐसी प्रक्रिया है जो संभावित कमजोरियों की पहचान करने के लिए स्थिर कोड विश्लेषण का उपयोग करती है।

IaC SAST के साथ कैसे शुरुआत करें

यह चीटशीट इन्फ्रास्ट्रक्चर एज़ कोड (IaC) आर्टिफैक्ट्स को स्कैन करने के लिए उपयोगी टूल प्रस्तुत करती है तथा उन्हें आपकी CI/CD पाइपलाइन में एकीकृत करने के उदाहरण प्रदान करती है।

Golang में कस्टम टूल

मैंने गोलांग में एक कस्टम टूल बनाया है जो मुझे विशाल कोडबेस के साथ रेगेक्स का शीघ्रता से मिलान करने में मदद करता है।

परिशुद्धता और भिन्नता के बीच एक अनंत समझौता है।

मान लीजिए कि आपको ज़्यादा भिन्नता की ज़रूरत है और आपको ज़्यादा मैन्युअल समीक्षा करने में कोई आपत्ति नहीं है। उस स्थिति में, आप RegFinder आज़मा सकते हैं, जो grep की तरह है लेकिन गुप्त पहचान के लिए ज़्यादा उपयुक्त है (बड़े रिपॉजिटरी में तेज़, स्पष्ट आउटपुट, कुछ फ़ाइल एक्सटेंशन को अनदेखा करना)। या आप सीधे grep का उपयोग कर सकते हैं। सबसे मूल्यवान रिपॉजिटरी में मौजूद रेगेक्स हैं , न कि वह टूल जिसका आप उपयोग करेंगे।

  1. इस रिपोजिटरी को क्लोन करें
  2. grep -n -r your_app/ -Ef regex_dir/general.txt चलाएँ

या

  1. ./regfinder.elf -d your_app/ -f regex_dir/general.txt चलाएँ

मौजूदा रेगेक्स पैटर्न को विस्तारित करना सीधा है। यह उपकरण स्वचालित पाइपलाइनों के लिए व्यवहार्य नहीं है। हालाँकि, यह तब काम आता है जब आपको कोई गैर-मानक रहस्य खोजने की आवश्यकता होती है या अन्य आकलन में, जैसे कि सुरक्षा समीक्षा, जहाँ अधिक मैन्युअल कार्य अपेक्षित होता है।



यदि आपको अन्य उपकरणों के साथ अच्छा अनुभव है तो टिप्पणी करें। पढ़ने के लिए धन्यवाद।