← नवीनतम पेपर
💻 computer science

Extracting Database Access-Control Policies From Web Applications

यह शोध पत्र ओटे (Ote) को प्रस्तुत करता है, जो एक ऐसा टूल है जो रूबी ऑन रेल्स (Ruby on Rails) वेब अनुप्रयोगों से एक्सेस-कंट्रोल नीतियों को स्वचालित रूप से निकालने और उनका सारांश तैयार करने के लिए कॉनकोलिक निष्पादन (concolic execution) का उपयोग करता है, जो अंतर्निहित, तदर्थ (ad hoc) सुरक्षा कार्यान्वयन की त्रुटि-पूर्ण प्रकृति को संबोधित करता है और नीति त्रुटियों का पता लगाने में सक्षम बनाता है।

मूल लेखक: Wen Zhang, Dev Bali, Jamison Kerney, Aurojit Panda, Scott Shenker

प्रकाशित 2026-07-20
📖 7 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Wen Zhang, Dev Bali, Jamison Kerney, Aurojit Panda, Scott Shenker

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

डिजिटल जंगल का गुप्त मानचित्र

कल्पना कीजिए कि इंटरनेट एक विशाल, हलचल भरे शहर की तरह है जहाँ हर वेबसाइट कमरों, फाइलों और रहस्यों से भरी एक इमारत है। इस शहर में, डेटाबेस (databases) वे विशाल तिजोरियाँ हैं जहाँ सारा महत्वपूर्ण डेटा—जैसे ग्रेड, निजी संदेश, या मेडिकल रिकॉर्ड—संग्रहित होता है। इन तिजोरियों को सुरक्षित रखने के लिए, हर इमारत को एक सुरक्षा गार्ड (एक एक्सेस-कंट्रोल पॉलिसी) की आवश्यकता होती है जो यह तय करता है कि कौन किस कमरे में जा सकता है और वे क्या देखने के लिए अधिकृत हैं।

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


वह जासूसी बॉट जो कोड का मन पढ़ता है

यहाँ आता है ओटे (Ote), एक नया डिजिटल जासूस जिसे इन छिपे हुए सुरक्षा नियमों के रहस्य को सुलझाने के लिए डिज़ाइन किया गया है। ओटे के पीछे के शोधकर्ताओं ने, जो UC बर्कले और NYU की एक टीम है, महसूस किया कि पुराने वेब एप्लिकेशन्स के बिखरे हुए कोड को नियमों को खोजने के लिए पढ़ना वैसा ही है जैसे आँखों पर पट्टी बाँधकर घास के ढेर में सुई ढूँढना। कोड को लाइन-दर-लाइन पढ़ने के बजाय, ओटे खेल खेलना तय करता है।

ओटे कॉनकोलिक एक्जीक्यूशन (concolic execution) नामक तकनीक का उपयोग करता है। इसे एक सुपर-पावर्ड वीडियो गेम बॉट के रूप में समझें जो केवल एक बार गेम नहीं खेलता; बल्कि यह लाखों बार खेलता है, इनपुट्स के हर संभव संयोजन को आज़माता है। यह एक ऐसे जासूस की तरह है जो एक इमारत में घूमता है, हर दरवाजे की जाँच करता है, हर खिड़की को देखता है, और यह नोट करता है कि एक विशिष्ट बटन दबाने पर वास्तव में क्या होता है। यदि बॉट बटन A दबाता है और एक गुप्त फ़ाइल खुल जाती है, तो वह लिख देता है: "बटन A दबाने से फ़ाइल B खुलती है।" यदि वह बटन A दबाता है और कुछ नहीं होता है, तो वह इसे भी नोट करता है।

लेकिन यहाँ पेचीदा हिस्सा यह है: वास्तविक वेबसाइटें बहुत बड़ी होती हैं। यदि ओटे हर एक रास्ते की जाँच करने की कोशिश करता, तो इसमें बहुत समय लगता—शायद सालों! इस समस्या को हल करने के लिए, टीम ने गौर किया कि ये वेबसाइटें कैसे काम करती हैं। उन्होंने पाया कि कोड का वह हिस्सा जो वास्तव में यह तय करता है कि कौन सा डेटा प्राप्त करना है, वह आमतौर पर बहुत सरल होता है, जैसे कि "यदि यह, तो वह" वाले छोटे नियमों की एक सूची। बाकी का कोड केवल सजावट (जैसे पेज को सुंदर बनाना) है। इसलिए, ओटे सजावट को अनदेखा करता है और केवल सरल तर्क (logic) पर ध्यान केंद्रित करता है।

इससे भी बेहतर, ओटे के पास एक स्मार्ट सहायक (smart assistant) है (एक AI लैंग्वेज मॉडल) जो एक प्रासंगिकता निर्णायक (relevance judge) के रूप में कार्य करता है। जब बॉट कोड में किसी अजीब मोड़ (branch) का सामना करता है, तो सहायक पूछता है, "क्या यह सुरक्षा के लिए महत्वपूर्ण है?" यदि वह मोड़ केवल फॉन्ट का रंग बदलने या "अनऑफिशियल" लेबल दिखाने के बारे में है, तो सहायक कहता है, "इसे अनदेखा करो!" यह ओटे को बेकार के रास्तों पर समय बर्बाद करने से बचाता है, जिससे एक ऐसा कार्य जो दिनोंों का काम था, कुछ ही घंटों में पूरा हो जाता है।

ओटे ने क्या पाया: "अहा!" के क्षण

टीम ने तीन वास्तविक दुनिया के अनुप्रयोगों पर ओटे का परीक्षण किया: डायस्पोरा (diaspora) (एक सोशल नेटवर्क), ऑटो लैब (Autolab) (स्कूल असाइनमेंट के लिए एक टूल), और द ओडिन प्रोजेक्ट (The Odin Project) (एक कोडिंग स्कूल वेबसाइट)। वे केवल यह नहीं देखना चाहते थे कि क्या ओटे काम कर सकता है; वे यह देखना चाहते थे कि क्या यह उन गलतियों को पकड़ सकता है जो इंसानों से छूट गई थीं।

परिणाम आश्चर्यजनक थे। जब टीम ने ओटे द्वारा निकाले गए नियमों की तुलना उन नियमों से की जो उन्होंने वर्षों पहले हाथ से लिखे थे, तो ओटे ने कई खामियां (glitches) पाईं:

  1. अत्यधिक उदार गार्ड (The Over-Permissive Guard): ऑटो लैब सिस्टम में, मानव-लिखित नियमों ने गलती से "कोर्स असिस्टेंट्स" को उन कोर्सेस के संवेदनशील डेटा को देखने की अनुमति दे दी थी जिन्हें "डिसेबल" किया जाना चाहिए था। केवल निर्देशकों (instructors) को ही वह डेटा देखना चाहिए था। ओटे ने इस रिसाव को तुरंत पकड़ लिया।
  2. खोई हुई कुंजी (The Missing Key): डायस्पोरा सोशल नेटवर्क में, मानव-लिखित नियम कुछ सूचनाओं (notifications) और प्रोफाइल विवरणों तक पहुँच देने में विफल रहे जिनकी ऐप को कार्य करने के लिए वास्तव में आवश्यकता थी। यदि उन्होंने पुराने नियमों को लागू किया होता, तो ऐप वास्तविक उपयोगकर्ताओं के लिए टूट जाता।
  3. शांत बग (The Silent Bug): सबसे रोमांचक खोज ऑटो लैब कोड में एक सूक्ष्म बग थी। वर्षों पहले, एक डेवलपर ने सुरक्षा जांच सेट करते समय गलती से एक कॉलम का नाम गलत टाइप कर दिया था। कोड ऐसा लग रहा था जैसे वह यह जाँच रहा हो कि छात्र को परीक्षा देखने की अनुमति है या नहीं, लेकिन टाइपो (typo) के कारण, वह जाँच चुपचाप कुछ भी नहीं कर रही थी। ओटे की निकाली गई पॉलिसी ने दिखाया कि कोई जाँच नहीं हो रही थी, जिससे टीम को टाइपो को खोजने और ठीक करने में मदद मिली।

निर्णय: नियम पुस्तिका लिखने का एक बेहतर तरीका

ओटे कोई जादुई छड़ी नहीं है जो पूर्ण सुरक्षा की गारंटी देती है। यह स्वीकार करता है कि यह कुछ बहुत दुर्लभ रास्तों को मिस कर सकता है या अत्यंत जटिल कोड के साथ संघर्ष कर सकता है जो सरल नियमों का पालन नहीं करते। हालाँकि, प्रयोगों से पता चला कि वास्तविक दुनिया के अनुप्रयोगों के लिए, ओटे अविश्वसनीय रूप से उपयोगी है। यह पांच घंटे से भी कम समय में स्पष्ट, पठनीय सुरक्षा नियमों की सूची (SQL नामक भाषा में लिखी गई) निकाल सकता है।

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

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →