GraphQLer: Enhancing GraphQL Security with Context-Aware API Testing
GraphQLer एक ओपन-सोर्स स्वचालित सुरक्षा परीक्षण फ्रेमवर्क है जो लाइव स्कीमा से टाइप किए गए डिपेंडेंसी ग्राफ बनाकर मल्टी-स्टेप भेद्यता श्रृंखलाओं (vulnerability chains) को संश्लेषित करके GraphQL API सुरक्षा को बढ़ाता है, जिससे यह IDOR, UAF और इंजेक्शन कमजोरियों जैसे जटिल, स्टेट-डिपेंडेंट दोषों का पता लगाने में ZAP और EvoMaster जैसे मौजूदा टूल की तुलना में बेहतर प्रदर्शन करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि इंटरनेट एक विशाल, हलचल भरे शहर की तरह है जहाँ विभिन्न कंप्यूटर प्रोग्राम (ऐप्स) जानकारी साझा करने के लिए लगातार एक-दूसरे से बात करते हैं। वर्षों तक, ये बातचीत एक सख्त, अनुमानित मानचित्र का पालन करती थी: यदि आपको एक तस्वीर चाहिए थी, तो आप "चित्र" फोल्डर मांगते थे; यदि आपको एक संदेश चाहिए था, तो आप "संदेश" फोल्डर मांगते थे। यह एक ऐसे मेनू से ऑर्डर करने जैसा था जहाँ हर व्यंजन का एक निश्चित नाम और स्थान होता है। लेकिन हाल ही में, बात करने का एक नया तरीका जिसे GraphQL कहा जाता है, लोकप्रिय हुआ है। एक निश्चित मेनू के बजाय, GraphQL एक जादुई, आकार बदलने वाली वेंडिंग मशीन की तरह है। आप जो कुछ भी चाहते हैं उसके लिए बिल्कुल सटीक रूप से पूछ सकते हैं, और यह उसे आपके लिए तुरंत बनाने की कोशिश करेगा। समस्या यह है कि क्योंकि यह मशीन इतनी लचीली है, इसलिए यह कभी-कभी यह जांचना भूल जाती है कि इसके सामने कौन खड़ा है। एक नियमित वेंडिंग मशीन केवल सिक्के वाले व्यक्ति को सोडा दे सकती है, लेकिन यह जादुई मशीन गलती से आपकी निजी डायरी या बैंक खाता भी थमा सकती है यदि आप सही तरीके से मांग लें। यहीं पर सुरक्षा शोधकर्ता आते हैं, जो यह पता लगाने की कोशिश करते हैं कि शहर को तोड़े बिना इस मशीन को अपने रहस्य बताने के लिए कैसे ठगा जाए।
जिस शोध पत्र को आप पढ़ने जा रहे हैं, वह एक नए डिजिटल जासूस GraphQLer का परिचय देता है। सोचिए कि अधिकांश सुरक्षा स्कैनर अनाड़ी पर्यटकों की तरह हैं जो वेंडिंग मशीन के पास जाते हैं, एक यादृच्छिक बटन दबाते हैं, और देखते हैं कि क्या होता है। यदि वे "सोडा" दबाते हैं और उन्हें सोडा मिलता है, तो वे आगे बढ़ जाते हैं। यदि वे "पानी" दबाते हैं और उन्हें त्रुटि (error) मिलती है, तो वे हार मान लेते हैं। वे यह कभी नहीं समझ पाते कि "गुप्त भंडार" (Secret Stash) पाने के लिए, पहले आपको "सोडा खरीदें" दबाना होगा, फिर "रसीद प्राप्त करें" दबाना होगा, और फिर "गुप्त भंडार" दबाना होगा। पुराने उपकरण बहुत मूर्ख हैं; वे हर बटन का अलग-अलग परीक्षण करते हैं और जटिल अनुक्रमों (sequences) को जोड़ने में विफल रहते हैं जो सिस्टम को तोड़ने के लिए आवश्यक होते हैं।
GraphQLer अलग है। यह एक ऐसे जासूस की तरह है जो पहले मशीन के ब्लूप्रिंट (जिसे "स्कीमा" कहा जाता है) का अध्ययन करता है ताकि यह समझ सके कि बटन एक-दूसरे से कैसे जुड़े हैं। यह एक मानसिक मानचित्र बनाता है जिससे पता चलता है कि "बटन A" एक नई वस्तु बनाता है, "बटन B" उसे हटा देता है, और "बटन C" अभी भी उसे देख सकता है भले ही वह हट चुका हो। इस मानचित्र के साथ, GraphQLer केवल यादृच्छिक रूप से बटन नहीं दबाता है; यह कार्यों की विशिष्ट शृंखलाएं (chains) बनाता है। यह एक ऐसी स्थिति का अनुकरण करता है जहाँ एक उपयोगकर्ता कोई वस्तु खरीदता है, फिर उसे चुराने की कोशिश करता है, या उसे हटा देता है और फिर भी उसे फिर से पढ़ने की कोशिश करता है।
शोधकर्ताओं ने इस नए जासूस का परीक्षण 21 अलग-अलग वास्तविक दुनिया और काल्पनिक-लेकिन-यथार्थवादी API (उन कंप्यूटर प्रणालियों जिन्हें परखा जा रहा है) पर किया। उन्होंने पाया कि GraphQLer मौजूदा उपकरणों की तुलना में एक बड़ा सुधार था। जबकि सबसे अच्छे मौजूदा उपकरण केवल मशीन के लगभग 29% बटनों तक ही पहुँच पा रहे थे, GraphQLer ने 85.52% तक पहुँचने में सफलता प्राप्त की। अधिक महत्वपूर्ण बात यह है कि जब जटिल सुरक्षा छिद्रों को खोजने की बात आई, तो पुराने उपकरणों ने जटिल, बहु-चरणीय समस्याओं में से एक भी नहीं खोजा। हालाँकि, GraphQLer ने सभी पाँच पुष्ट "IDOR" कमजोरियों (जहाँ आप केवल एक नंबर बदलकर किसी दूसरे की चीज़ देख सकते हैं) को ढूंढ निकाला और यहाँ तक कि एक "Use-After-Free" बग को भी पकड़ लिया (जहाँ आप किसी फ़ाइल को उसके हटाए जाने के बाद भी देख सकते हैं)।
एक वास्तविक वित्तीय प्रणाली पर एक वास्तविक परीक्षण में (जिसे लेखकों ने गुमनाम रखने के लिए "FinServ" कहा है), GraphQLer ने बिना किसी पासवर्ड या गुप्त दस्तावेज़ के आठ संभावित सुरक्षा खामियां पाईं। इसने ऐसे तरीके भी खोजे जिनसे सिस्टम क्रैश हो सकता है और आंतरिक कोड प्रकट कर सकता है, जो सुरक्षा के लिहाज से बहुत बुरा है। शोध पत्र ने यह भी दिखाया कि GraphQLer एक लोकप्रिय ओपन-सोर्स प्लेटफॉर्म, 'Saleor' में ज्ञात कमजोरियों को फिर से उत्पन्न कर सकता है, जो यह सिद्ध करता है कि यह उन प्रणालियों पर भी काम करता है जो पहले से ही टूटी हुई मानी जाती हैं।
लेखक बहुत सावधानी से कहते हैं कि हालांकि उनका उपकरण इन विशिष्ट प्रकार के चेन-रिएक्शन बग्स को खोजने के लिए उत्कृष्ट है, लेकिन यह सब कुछ हल करने वाली कोई जादुूक छड़ी नहीं है। यह अभी भी कुछ बहुत ही विशिष्ट, जटिल परिदृश्यों में संघर्ष करता है जहाँ मशीन को काम करने के लिए एक साथ कई जानकारियों की आवश्यकता होती है। लेकिन आधुनिक ऐप्स के विशाल बहुमत के लिए जो इस लचीली GraphQL तकनीक का उपयोग करते हैं, GraphQLer यह साबित करता है कि अब आप केवल एक-एक करके बटन का परीक्षण नहीं कर सकते। आपको मशीन द्वारा सुनाई जा रही कहानी को समझना होगा, और तभी आप कहानी के छिद्रों (plot holes) को ढूंढ पाएंगे।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।