API सिक्योरिटी टूल्स के दो वर्ग
| प्रोटेक्शन, रनटाइम पर | गेटवे, वेब एप्लिकेशन फ़ायरवॉल, रेट लिमिटिंग, बॉट मिटिगेशन, सीक्रेट्स मैनेजमेंट। आपकी सर्विस तक जो पहुँचता है, उसे कम करते हैं। इन्हें प्लेटफ़ॉर्म या सिक्योरिटी टीमें खरीदती हैं। |
| वेरिफिकेशन, रिलीज़ से पहले | स्कैनर, फ़ज़र, और ऑथराइज़ेशन व बाउंड्री पर बिहेवियरल चेक। ये बताते हैं कि आपकी सर्विस क्या करेगी। इन्हें इंजीनियरिंग खरीदती है, या नहीं खरीदती। |
सिर्फ़ प्रोटेक्शन पर भरोसा करना कहाँ नाकाम होता है
कोई गेटवे यह नहीं जान सकता कि यूज़र A को यूज़र B का ऑर्डर पढ़ने की अनुमति नहीं होनी चाहिए। यह एक बिज़नेस रूल है, यह आपके कोड में रहता है, और इसे आज़माने वाली हर रिक्वेस्ट नेटवर्क पर देखने में पूरी तरह वैध लगती है। सही मेथड, वैलिड टोकन, ठीक से बना पाथ।
असली API में सबसे ज़्यादा एक्सप्लॉइट की जाने वाली खामी ऑब्जेक्ट-लेवल ऑथराइज़ेशन है, और यह ठीक वही श्रेणी है जो किसी भी प्रोटेक्शन लेयर को दिखाई नहीं देती। इसे सर्विस के भीतर, रिलीज़ से पहले वेरिफ़ाई करना पड़ता है।
हर वर्ग असल में क्या कवर करता है
गेटवे और फ़ायरवॉल: जाने-पहचाने अटैक पैटर्न, खराब बनी रिक्वेस्ट, वॉल्यूम। असली फ़ायदा देते हैं, और लॉजिक के मामले में अंधे हैं।
रेट लिमिटिंग: वॉल्यूम के ज़रिए होने वाला दुरुपयोग। ठीक से बनी एक अकेली मैलिशियस रिक्वेस्ट के बारे में कुछ नहीं करती।
सीक्रेट्स मैनेजमेंट: क्रेडेंशियल्स का लीक होना। यहाँ बाकी सब से पूरी तरह अलग मामला है, और रखने लायक है।
स्कैनर: डिपेंडेंसी वल्नरेबिलिटी, इंजेक्शन की श्रेणियाँ, TLS कॉन्फ़िगरेशन।
बिहेवियरल वेरिफिकेशन: API जिसे मना करना चाहिए, उसे मना करती है या नहीं। सबसे सस्ता, और सबसे ज़्यादा बार गायब।
यह गैप बना क्यों रहता है
बिहेवियरल ऑथराइज़ेशन चेकिंग सस्ती है, बहुत फ़ायदा देती है, और बड़े पैमाने पर गायब है — यह एक अजीब मेल है, जिसकी वजह समझने लायक है।
यह दो मालिकों के बीच फँस जाती है। यह सिक्योरिटी का काम लगती है, इसलिए इंजीनियरिंग मान लेती है कि सिक्योरिटी प्रोसेस इसे कवर करती है। सिक्योरिटी प्रोसेस का मतलब है स्कैनर और साल में एक असेसमेंट, और इनमें से कोई आपके बिज़नेस रूल नहीं जानता, इसलिए वह मान लेती है कि टेस्ट इसे कवर करते हैं। अपनी-अपनी जगह दोनों धारणाएँ ठीक लगती हैं, और गैप सालों तक ज़िंदा रहता है।
मालिक तय कर देना ही इसका ज़्यादातर इलाज है। जो एंडपॉइंट लिखता है, वही ऑथराइज़ेशन चेक भी लिखता है, उसी पुल रिक्वेस्ट में, काम के सामान्य हिस्से की तरह। इससे यह काम उसी एक इंसान के पास पहुँचता है जो जानता है कि उस चीज़ को देखने की अनुमति किसे होनी चाहिए, और यह सिक्योरिटी टीम के साथ नहीं, एंडपॉइंट की संख्या के साथ स्केल करता है।
वह चेक, जो इस हफ़्ते चलाने लायक है
दो अकाउंट बनाएँ। एक से एक रिकॉर्ड बनवाएँ। उसे दूसरे के टोकन से पढ़ने की कोशिश करें। अगर डेटा वापस आता है, तो आपके पास API की सबसे आम गंभीर खामी है, और आपकी सर्विस के आगे लगा कोई भी गेटवे इसे नहीं रोक पाता।
फिर इसे ऑटोमेट करें, क्योंकि यह चेक हर नए एंडपॉइंट के लिए दोहराना पड़ता है और किसी को याद नहीं रहेगा।
टर्मिनल
npm install -g @testsprite/testsprite-cli
testsprite setup
अगर आप कुछ इंस्टॉल नहीं करना चाहते, तो डैशबोर्ड से भी वही काम हो जाता है। कमांड लाइन जो कुछ और कर सकती है, वह सब यहाँ है: CLI रिपॉज़िटरी।
जनरेट किए गए API प्लान में ऑथराइज़ेशन और बाउंड्री कैटेगरी शामिल होती हैं, इसलिए ये चेक फ़ंक्शनल कवरेज के साथ-साथ चलते हैं, किसी तिमाही कवायद का इंतज़ार नहीं करते। इसका तरीका यहाँ देखें: API टेस्टिंग डॉक्युमेंटेशन।
डैशबोर्ड से रिपॉज़िटरी कनेक्ट करें, और रन उसी डिप्लॉयमेंट से शुरू हो जाते हैं जो आप पहले से बनाते हैं; या इसके बजाय अपने वर्कफ़्लो में एक स्टेप जोड़ लें।
वेरिफिकेशन वर्ग में TestSprite क्या कवर करता है
वे बिहेवियरल चेक जो कोई प्रोटेक्शन लेयर नहीं कर सकती: बिना ऑथेंटिकेशन वाला एक्सेस, ऑब्जेक्ट-लेवल ऑथराइज़ेशन, रोल की सीमाएँ, एक्सपायर हो चुके क्रेडेंशियल, और रेंज से बाहर का इनपुट। जनरेट किए गए प्लान में ऑथराइज़ेशन और बाउंड्री कैटेगरी शामिल होती हैं, इसलिए हर एंडपॉइंट को ये मिलते हैं — उसे भी, जो पिछले हफ़्ते जोड़ा गया।
यह चल रही सर्विस के साथ उसके इंटरफ़ेस के ज़रिए काम करता है — डिस्कवरी और आपकी स्पेसिफिकेशन के सहारे। Auto-Authentication पूरे रन में सेशन ज़िंदा रखता है, Dynamic Variables एक कॉल से दूसरी कॉल तक वैल्यू पहुँचाते हैं, Dependency Chains एक्ज़ीक्यूशन का क्रम तय करते हैं, और Auto-Cleanup ठीक वही हटाता है जो उस रन ने बनाया था।
फ़ायदा नियमितता का है। ये चेक मुश्किल नहीं हैं, चालीसवें एंडपॉइंट पर इन्हें भूल जाना आसान है, और हर बदलाव पर इन्हें चलाना ही असली API में सबसे ज़्यादा एक्सप्लॉइट होने वाले गैप को बंद करता है। आपका गेटवे और आपका स्कैनर वही करते रहेंगे जिसमें वे अच्छे हैं।
क्या TestSprite एक API सिक्योरिटी टूल है?
यह वेरिफिकेशन वर्ग में आता है, और ऑथराइज़ेशन, रोल की सीमाएँ तथा बाउंड्री वैल्यू कवर करता है। यह न गेटवे है, न वल्नरेबिलिटी स्कैनर।
क्या हमें दोनों वर्ग चाहिए?
हाँ। प्रोटेक्शन यह कम करता है कि आप तक क्या पहुँचता है; वेरिफिकेशन बताता है कि जो पहुँच जाता है, उसके साथ आप क्या करेंगे। कोई एक दूसरे की जगह नहीं ले सकता।
क्या WAF टूटे हुए ऑथराइज़ेशन को पकड़ सकता है?
नहीं। WAF जिस-जिस पहलू की जाँच कर सकता है, उस हर पहलू से रिक्वेस्ट वैध है। सिर्फ़ सर्विस जानती है कि उस रिकॉर्ड को कौन देख सकता है।
छोटी टीम के साथ कहाँ से शुरू करें?
हर उस एंडपॉइंट पर बिहेवियरल ऑथराइज़ेशन चेक, जो कोई आइडेंटिफ़ायर लेता है। सबसे ज़्यादा हिट रेट, सबसे कम लागत, और यह आपकी मौजूदा पाइपलाइन में ही चलता है।
हर एक को कितनी बार चलना चाहिए?
प्रोटेक्शन हमेशा चालू रहता है। वेरिफिकेशन हर बदलाव पर होना चाहिए, क्योंकि नए एंडपॉइंट लगातार आते रहते हैं और हर एक को वही चेक चाहिए।
कोई गेटवे आपके बिज़नेस रूल नहीं जान सकता।
API सिक्योरिटी टूल्स या तो चल रही API को प्रोटेक्ट करते हैं, या यह वेरिफ़ाई करते हैं कि वह क्या करेगी। प्रोटेक्शन ऑथराइज़ेशन लॉजिक के मामले में अंधा है, और सबसे ज़्यादा एक्सप्लॉइट होने वाली खामी वहीं रहती है। दो अकाउंट वाला चेक चलाएँ, फिर उसे ऑटोमेट करें।