AI की मदद से वल्नरेबिलिटी (कमज़ोरियों) की खोज
Fuzzers और स्टैटिक एनालिसिस टूल्स संभावित बग्स ढूंढते हैं। AI उन्हें सही दिशा दिखाने और नतीजों को छांटने में मदद कर सकता है, लेकिन इंसान ही उनकी पुष्टि करते हैं और ज़िम्मेदारी से रिपोर्ट करते हैं।
60 सेकंड में
AI की मदद से वल्नरेबिलिटी (कमज़ोरियों) की खोज
Fuzzers और स्टैटिक एनालिसिस टूल्स संभावित बग्स ढूंढते हैं। AI उन्हें सही दिशा दिखाने और नतीजों को छांटने में मदद कर सकता है, लेकिन इंसान ही उनकी पुष्टि करते हैं और ज़िम्मेदारी से…
मुख्य टूल्स
| तरीका | यह क्या करता है | AI कैसे मदद कर सकता है |
|---|---|---|
| स्टैटिक एनालिसिस (SAST) | बिना चलाए जोखिम भरे पैटर्नों को ढूंढने के लिए सोर्स कोड को पढ़ता है | नतीजों को समझाता है, संभावित ग़लत चेतावनियों (false positives) को हटाता है, समाधान सुझाता है |
| Fuzzing | किसी प्रोग्राम को क्रैश करने या गड़बड़ करने के लिए उसमें कई असामान्य या रैंडम इनपुट भेजता है | Fuzz harnesses (छोटे टेस्ट प्रोग्राम) लिखता है और दिलचस्प इनपुट्स सुझाता है |
| डिपेंडेंसी स्कैनिंग | ज्ञात वल्नरेबिलिटीज़ के ख़िलाफ़ लाइब्रेरीज़ की जांच करता है | संक्षेप में बताता है कि कौन से नतीजे उस कोड को प्रभावित करते हैं जिसका आप सच में उपयोग करते हैं |
| मैनुअल रिव्यू | एक विशेषज्ञ कोड और डिज़ाइन को पढ़ता है | अनजान कोड को समझाता है और सुझाव देता है कि कहाँ देखना चाहिए |
स्कैनर के नतीजों को छांटना (Triaging)
- 1
ग्रुप करें
एक ही मूल कारण (root cause) वाले मिलते-जुलते नतीजों को एक साथ मिला दें। - 2
समझाएं
AI से पूछें कि हर नतीजे का क्या मतलब है और डेटा जोखिम वाली लाइन तक कैसे पहुँचता है। - 3
पहुँच की जांच करें (reachability)
क्या बाहरी इनपुट वास्तव में इस कोड तक पहुँच सकता है? क्या इसका बिल्कुल भी इस्तेमाल हो रहा है? - 4
पुष्टि करें
अपने माहौल में एक सुरक्षित टेस्ट के साथ इसे दोबारा दोहराएं (reproduce करें)। - 5
प्राथमिकता तय करें
जो असली है, जहाँ तक पहुँचा जा सकता है और जिसका असर बड़ा है, उसे पहले ठीक करें।
ज़िम्मेदार प्रकटीकरण (Responsible disclosure)
- "बस जांचने के लिए" किसी कंपनी की वेबसाइट को स्कैन करना
- मेंटेनर के ठीक करने से पहले किसी बग को सार्वजनिक रूप से पोस्ट करना
- बिना जांचे AI द्वारा तैयार की गई बग रिपोर्ट्स सबमिट करना
- केवल उसी की टेस्टिंग करना जिसके आप मालिक हैं या जिसके लिए आप अधिकृत हैं
- प्रोजेक्ट के सुरक्षा संपर्क के माध्यम से निजी तौर पर रिपोर्ट करना
- रिपोर्ट करने से पहले समस्या को खुद दोहराना और साफ़-साफ़ समझाना
और देखें और पढ़ें
लैब
कारणों और प्राथमिकताओं के साथ काल्पनिक स्कैनर नतीजों की एक छांटी गई सूची।
समस्या
नीचे आपके अपने प्रैक्टिस प्रोजेक्ट के काल्पनिक स्कैनर नतीजे दिए गए हैं। केवल कागज़ पर या अपने एडिटर में काम करें।
- प्रत्येक नतीजे के लिए, किसी AI से इसे आसान शब्दों में समझाने को कहें।
- नोट्स का उपयोग करके निर्णय लें: संभावित रूप से असली, संभावित रूप से फ़ॉल्स पॉज़िटिव, या अधिक जांच की ज़रूरत है। अपना कारण लिखें।
- असली वाले नतीजों को प्राथमिकता के क्रम में रखें।
- शीर्ष नतीजे के लिए एक संक्षिप्त निजी प्रकटीकरण नोट लिखें, जैसे कि प्रोजेक्ट किसी और का हो: क्या, कहाँ, प्रभाव, सुरक्षित रूप से कैसे दोहराएं (reproduce करें), और एक सुझाया गया समाधान।
F1 SQL built from string app/orders.py:42 note: value comes from URL parameter "order_id"
F2 Hard-coded password tests/fixtures.py:8 note: file used only in unit tests, fake value
F3 Weak hash (MD5) app/cache.py:15 note: used to name cache files, not for passwords
F4 Missing auth check app/admin.py:77 note: route /admin/export has no login decorator
F5 Outdated library requirements.txt note: known issue is in a feature the app does not importआपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1F5 आज "पहुँच योग्य नहीं" (not reachable) है। फिर भी आप लाइब्रेरी को अपग्रेड क्यों कर सकते हैं?दिखाएं
कोड बदलता रहता है। भविष्य का कोई फ़ीचर कमज़ोर हिस्से का उपयोग करना शुरू कर सकता है, और हो सकता है किसी को पुराने नतीजे याद न रहें। अपग्रेड भविष्य के पैच को भी आसान बनाते हैं। यह F1 और F4 की तुलना में कम प्राथमिकता वाला है, लेकिन इसे ट्रैक किया जाना चाहिए, भुलाया नहीं जाना चाहिए।
Q2बग्स को अपने आप ढूंढने वाला AI सिस्टम बचाव करने वालों (defenders) के लिए अच्छा और जोखिम भरा दोनों क्यों है?दिखाएं
अच्छा इसलिए, क्योंकि यह बचाव करने वालों को बग्स को तेज़ी से ढूंढने और ठीक करने में मदद कर सकता है। जोखिम भरा इसलिए, क्योंकि हमलावर भी इसी तरह के तरीकों का उपयोग कर सकते हैं, और क्योंकि ग़लत रिपोर्ट्स से मेंटेनर्स परेशान हो सकते हैं। बढ़त उन टीमों को मिलती है जो इसे त्वरित सुधार, सावधानीपूर्वक जांच और ज़िम्मेदार प्रकटीकरण के साथ जोड़ती हैं।
अक्सर पूछे जाने वाले सवाल
स्कैनिंग में फ़ॉल्स पॉज़िटिव (false positive) क्या है?
एक ऐसा नतीजा जो वल्नरेबिलिटी जैसा दिखता है लेकिन असल में नहीं होता, उदाहरण के लिए क्योंकि इनपुट की जांच पहले ही हो चुकी है, या कोड तक कभी पहुँचा ही नहीं जा सकता। स्कैनर सतर्क रहने के लिए बनाए जाते हैं, इसलिए वे अक्सर इन्हें रिपोर्ट करते हैं।
fuzz harness क्या है?
कोड का एक छोटा सा टुकड़ा जो fuzzer से इनपुट लेता है और उसे उस फ़ंक्शन में भेजता है जिसे आप टेस्ट करना चाहते हैं। Harnesses लिखना धीमा काम है, और AI उनका ड्राफ़्ट तैयार करने में मदद कर सकता है। आप फिर भी यह जांचते हैं कि harness सही चीज़ का टेस्ट कर रहा है या नहीं।
क्या AI ऐसे बग्स ढूंढ सकता है जो टूल्स से छूट जाते हैं?
कभी-कभी यह लॉजिक की उन समस्याओं को पकड़ लेता है जो पैटर्न-आधारित स्कैनर से छूट जाती हैं, जैसे कि किसी परमिशन की जांच का छूट जाना। यह कई बग्स को छोड़ भी देता है और कुछ ऐसे बग्स रिपोर्ट करता है जिनका कोई वजूद नहीं होता। यह टूल्स और इंसानी जांच के साथ मिलकर सबसे अच्छा काम करता है।
क्या बग बाउंटी ढूंढना कानूनी है?
हाँ, जब आप प्रोग्राम के लिखित नियमों और दायरे (scope) का पालन करते हैं। उस दायरे से बाहर, या बिना किसी प्रोग्राम या अनुमति के किसी भी चीज़ की जांच करने की अनुमति नहीं है।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।