विशेषाधिकार वृद्धि



प्रिविलेज एस्केलेशन एक सॉफ्टवेयर बग, एक डिजाइन दोष, या एक ऑपरेटिंग सिस्टम या सॉफ़्टवेयर एप्लिकेशन में एक कॉन्फ़िगरेशन ओवरसाइट का शोषण करने का कार्य है, जो संसाधन (कंप्यूटर विज्ञान) तक पहुंच प्राप्त करने के लिए सामान्य रूप से एक एप्लिकेशन या उपयोगकर्ता (कंप्यूटिंग) से सुरक्षित है। इसका परिणाम यह होता है कि प्रोग्रामर या कार्यकारी प्रबंधक  के इरादे से अधिक विशेषाधिकार (कंप्यूटिंग) वाला एप्लिकेशन प्राधिकरण क्रियाएं कर सकता है।

पृष्ठभूमि
अधिकांश कंप्यूटर सिस्टम को कई उपयोगकर्ता खातों के साथ उपयोग करने के लिए डिज़ाइन किया गया है, जिनमें से प्रत्येक में प्रिविलेज (कंप्यूटिंग) के रूप में जानी जाने वाली क्षमताएं हैं। सामान्य विशेषाधिकारों में फ़ाइलें देखना और संपादित करना या सिस्टम फ़ाइलों को संशोधित करना शामिल है।

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


 * वर्टिकल प्रिविलेज एस्केलेशन, जिसे प्रिविलेज एलिवेशन के रूप में भी जाना जाता है, जहां एक कम विशेषाधिकार प्राप्त उपयोगकर्ता या एप्लिकेशन उच्च विशेषाधिकार प्राप्त उपयोगकर्ताओं या एप्लिकेशन के लिए आरक्षित कार्यों या सामग्री तक पहुंचता है (उदाहरण के लिए इंटरनेट बैंकिंग उपयोगकर्ता साइट प्रशासनिक कार्यों तक पहुंच सकते हैं या स्मार्टफोन के लिए पासवर्ड प्राप्त कर सकते हैं) बाईपास हो।)
 * क्षैतिज विशेषाधिकार वृद्धि, जहां एक सामान्य उपयोगकर्ता अन्य सामान्य उपयोगकर्ताओं के लिए आरक्षित कार्यों या सामग्री का उपयोग करता है (उदाहरण के लिए इंटरनेट बैंकिंग उपयोगकर्ता A, उपयोगकर्ता B के इंटरनेट बैंक खाते तक पहुँचता है)

कार्यक्षेत्र
इस प्रकार का विशेषाधिकार (कंप्यूटिंग) एस्केलेशन तब होता है जब उपयोगकर्ता या प्रक्रिया किसी व्यवस्थापक या सिस्टम डेवलपर की तुलना में उच्च स्तर की पहुंच प्राप्त करने में सक्षम होती है, संभवतः रिंग (कंप्यूटर सुरक्षा)|कर्नेल-स्तरीय संचालन करके।

उदाहरण
कुछ मामलों में, एक उच्च-विशेषाधिकार आवेदन मानता है कि यह केवल इसके इंटरफ़ेस विनिर्देश से मेल खाने वाले इनपुट के साथ प्रदान किया जाएगा, इस प्रकार इस इनपुट को मान्य नहीं करता है। फिर, एप्लिकेशन के विशेषाधिकारों के साथ अनधिकृत कोड चलाने के लिए एक हमलावर इस धारणा का फायदा उठाने में सक्षम हो सकता है:
 * कुछ विंडोज सेवाओं को स्थानीय सिस्टम उपयोगकर्ता खाते के तहत चलाने के लिए कॉन्फ़िगर किया गया है। बफ़र अधिकता  जैसी भेद्यता का उपयोग मनमाने कोड को निष्पादित करने के लिए किया जा सकता है, जिसमें विशेषाधिकार स्थानीय सिस्टम के लिए बढ़ाए गए हैं। वैकल्पिक रूप से, एक सिस्टम सेवा जो एक कम उपयोगकर्ता का प्रतिरूपण कर रही है, उस उपयोगकर्ता के विशेषाधिकारों को बढ़ा सकती है यदि उपयोगकर्ता का प्रतिरूपण करते समय त्रुटियों को सही ढंग से नियंत्रित नहीं किया जाता है (उदाहरण के लिए यदि उपयोगकर्ता ने एक दुर्भावनापूर्ण अपवाद हैंडलिंग शुरू की है)
 * Microsoft Windows ऑपरेटिंग सिस्टम के कुछ विरासत संस्करणों के तहत, सभी उपयोगकर्ता स्क्रीन सेवर  स्थानीय सिस्टम खाते के अंतर्गत चलते हैं - कोई भी खाता जो फ़ाइल सिस्टम या Windows रजिस्ट्री में निष्पादन योग्य वर्तमान स्क्रीनसेवर को प्रतिस्थापित कर सकता है, इसलिए विशेषाधिकारों को बढ़ा सकता है।
 * लिनक्स कर्नेल के कुछ संस्करणों में एक प्रोग्राम लिखना संभव था जो इसकी वर्तमान निर्देशिका को सेट करेगा, अनुरोध करें कि एक  कोर निपात  को क्रैश होने की स्थिति में निष्पादित किया जाए और फिर किसी अन्य प्रक्रिया द्वारा खुद को (यूनिक्स) मार दिया जाए। कोर डंप फ़ाइल को प्रोग्राम की वर्तमान निर्देशिका में रखा गया होगा, अर्थात,  , और   इसे एक पाठ फ़ाइल के रूप में माना जाता है जो इसे कार्यक्रम को समय पर चलाने का निर्देश देता है। क्योंकि फ़ाइल की सामग्री हमलावर के नियंत्रण में होगी, हमलावर किसी भी प्रोग्राम को सुपर उपयोगकर्ता विशेषाधिकारों के साथ निष्पादित करने में सक्षम होगा।
 * क्रॉस जोन स्क्रिप्टिंग एक प्रकार का विशेषाधिकार वृद्धि हमला है जिसमें एक वेबसाइट वेब ब्राउज़रों के सुरक्षा मॉडल को उलट देती है, इस प्रकार यह क्लाइंट कंप्यूटरों पर दुर्भावनापूर्ण कोड चलाने की अनुमति देती है।
 * ऐसी स्थितियाँ भी होती हैं जहाँ कोई एप्लिकेशन अन्य उच्च विशेषाधिकार वाली सेवाओं का उपयोग कर सकता है और गलत धारणा है कि कोई ग्राहक इन सेवाओं के उपयोग में हेरफेर कैसे कर सकता है। एक एप्लिकेशन जो कमांड लाइन या यूनिक्स खोल  कमांड को निष्पादित कर सकता है, उसमें कोड इंजेक्शन भेद्यता हो सकती है यदि यह निष्पादित कमांड के हिस्से के रूप में अमान्य इनपुट का उपयोग करता है। एक हमलावर तब एप्लिकेशन के विशेषाधिकारों का उपयोग करके सिस्टम कमांड चलाने में सक्षम होगा।
 * टेक्सस उपकरण कैलकुलेटर (विशेष रूप से TI-85 और TI-82) मूल रूप से TI-BASIC की बोलियों में लिखे गए केवल व्याख्या किए गए प्रोग्राम का उपयोग करने के लिए डिज़ाइन किए गए थे; हालांकि, उपयोगकर्ताओं द्वारा उन बगों की खोज करने के बाद जिनका कैलकुलेटर हार्डवेयर पर देशी Z-80 कोड को चलाने की अनुमति देने के लिए शोषण किया जा सकता है, TI ने तीसरे पक्ष के विकास का समर्थन करने के लिए प्रोग्रामिंग डेटा जारी किया। (यह एआरएम वास्तुकला टीआई-एनस्पायर पर जारी नहीं था, जिसके लिए टीआई-एनस्पायर श्रृंखला #Ndless का उपयोग करके जेलब्रेक पाए गए हैं लेकिन अभी भी टेक्सास इंस्ट्रूमेंट्स द्वारा सक्रिय रूप से लड़े जा रहे हैं।)
 * iPhone के कुछ संस्करण अनधिकृत उपयोगकर्ता को फ़ोन लॉक होने पर उसे एक्सेस करने की अनुमति देते हैं.

जेलब्रेकिंग
कंप्यूटर सुरक्षा में, जेलब्रेकिंग को उन सीमाओं को हटाने के कार्य के रूप में परिभाषित किया जाता है जो एक विक्रेता ने अपने सॉफ़्टवेयर या सेवाओं में हार्ड-कोड करने का प्रयास किया था। यूनिक्स जैसे ऑपरेटिंग सिस्टम में चेरोट या फ्रीबीएसडी जेल से बाहर निकलने के लिए एक सामान्य उदाहरण टूलसेट का उपयोग है। या डिजिटल अधिकार प्रबंधन  (DRM) को बायपास करना। पूर्व मामले में, यह उपयोगकर्ता को फ़ाइल फाइल सिस्टम के बाहर की फ़ाइलों को देखने की अनुमति देता है जिसे व्यवस्थापक एप्लिकेशन या उपयोगकर्ता को प्रश्न के लिए उपलब्ध कराने का इरादा रखता है। डीआरएम के संदर्भ में, यह उपयोगकर्ता को डीआरएम के साथ उपकरणों पर मनमाने ढंग से परिभाषित कोड चलाने के साथ-साथ क्रोट-जैसी प्रतिबंधों से बाहर निकलने की अनुमति देता है। यह शब्द iPhone/iOS जेलब्रेकिंग समुदाय के साथ उत्पन्न हुआ है और इसका उपयोग PlayStation पोर्टेबल हैकिंग के लिए एक शब्द के रूप में भी किया गया है; ये डिवाइस बार-बार जेलब्रेक के अधीन रहे हैं, मनमाने कोड के निष्पादन की अनुमति देते हैं, और कभी-कभी उन जेलब्रेक को वेंडर अपडेट द्वारा अक्षम कर दिया गया है।

आईफोन, ipad  और आईपॉड टच समेत आईओएस सिस्टम आईओएस जेलब्रेकिंग प्रयासों के अधीन रहे हैं क्योंकि वे जारी किए गए थे, और प्रत्येक फर्मवेयर अपडेट के साथ जारी रहे।  iOS जेलब्रेकिंग टूल में सिस्टम ट्वीक और बायनेरिज़ को खोजने और स्थापित करने के तरीके के रूप में, ऐप स्टोर (iOS) के तृतीय-पक्ष विकल्प, Cydia और Installer.app जैसे पैकेज फ्रंटेंड को स्थापित करने का विकल्प शामिल है। IOS जेलब्रेकिंग को रोकने के लिए, Apple ने डिवाइस बूट ROM को SHSH ब्लब्स के लिए चेक निष्पादित करने के लिए बनाया है ताकि कस्टम कर्नेल के अपलोड को अस्वीकार किया जा सके और सॉफ़्टवेयर डाउनग्रेड को पहले, जेलब्रेक करने योग्य फ़र्मवेयर से रोका जा सके। एक अनएथर्ड जेलब्रेक में, iBoot वातावरण को एक बूट ROM एक्सप्लॉइट को निष्पादित करने के लिए बदल दिया जाता है और एक पैच किए गए निम्न स्तर के बूटलोडर को जमा करने की अनुमति देता है या SHSH जाँच के बाद जेलब्रेक कर्नेल को जमा करने के लिए कर्नेल को हैक करता है।

S60 प्लेटफ़ॉर्म स्मार्टफोन्स के लिए जेलब्रेकिंग की एक समान विधि मौजूद है, जहाँ हैलोएक्स जैसी उपयोगिताएँ अहस्ताक्षरित कोड के निष्पादन और सिस्टम फ़ाइलों तक पूर्ण पहुँच की अनुमति देती हैं। या संपादित फ़र्मवेयर (PlayStation पोर्टेबल के लिए उपयोग किए जाने वाले M33 हैक किए गए फ़र्मवेयर के समान) अहस्ताक्षरित कोड पर प्रतिबंधों को दरकिनार करने के लिए। तब से नोकिया ने अनाधिकृत जेलब्रेकिंग को रोकने के लिए एप्पल की तरह अपडेट जारी किया है।

गेमिंग कंसोल के मामले में, होमब्रू (वीडियो गेम) को निष्पादित करने के लिए अक्सर जेलब्रेकिंग का उपयोग किया जाता है। 2011 में, सोनी ने कानूनी फर्म किलपैट्रिक स्टॉकटन की सहायता से, 21 वर्षीय कोल्ड जॉर्ज ़ और समूह के सहयोगियों के खिलाफ प्लेस्टेशन 3 को जेलब्रेक करने के लिए मुकदमा दायर किया (सोनी कंप्यूटर एंटरटेनमेंट अमेरिका बनाम जॉर्ज हॉट्ज़ और प्लेस्टेशन जेलब्रेक देखें)।

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

शमन रणनीतियाँ
विशेषाधिकार वृद्धि के जोखिम को कम करने के लिए ऑपरेटिंग सिस्टम और उपयोगकर्ता निम्नलिखित रणनीतियों का उपयोग कर सकते हैं:
 * डेटा निष्पादन प्रतिबंध
 * पता स्थान लेआउट यादृच्छिकरण (मेमोरी में ज्ञात पतों पर विशेषाधिकार प्राप्त निर्देशों को निष्पादित करने के लिए बफर ओवरफ्लो को कठिन बनाने के लिए)
 * किसी के विशेषाधिकारों का दुरुपयोग करने के लिए बफ़र ओवररन एक्सप्लॉइट (कंप्यूटर सुरक्षा) की क्षमता को कम करने के लिए कम से कम विशेषाधिकार के सिद्धांत के साथ चल रहे अनुप्रयोग (उदाहरण के लिए सत्र (कंप्यूटर विज्ञान) प्रक्रिया में अक्षम प्रशासक सुरक्षा पहचानकर्ता के साथ इंटरनेट एक्सप्लोरर चलाकर) उन्नत उपयोगकर्ता।
 * कर्नेल मोड कोड को डिजिटल रूप से हस्ताक्षरित करने की आवश्यकता है।
 * पैच (कंप्यूटिंग)
 * संकलक ्स का उपयोग जो ट्रैप बफर ओवररन करता है
 * सॉफ्टवेयर और/या फर्मवेयर घटकों का एन्क्रिप्शन।
 * SELinux जैसे अनिवार्य अभिगम नियंत्रण (MAC) के साथ एक ऑपरेटिंग सिस्टम का उपयोग

क्षैतिज
क्षैतिज विशेषाधिकार वृद्धि तब होती है जब कोई एप्लिकेशन हमलावर को संसाधन (कंप्यूटर विज्ञान) तक पहुंच प्राप्त करने की अनुमति देता है जो आमतौर पर किसी एप्लिकेशन या उपयोगकर्ता (कंप्यूटिंग) से सुरक्षित होता। परिणाम यह है कि एप्लिकेशन एक ही उपयोगकर्ता के साथ कार्य करता है लेकिन प्रोग्रामर या सिस्टम एडमिनिस्ट्रेटर के इरादे से भिन्न सुरक्षा संदर्भ; यह प्रभावी रूप से विशेषाधिकार वृद्धि का एक सीमित रूप है (विशेष रूप से, अन्य उपयोगकर्ताओं को प्रतिरूपित करने की क्षमता की अनधिकृत धारणा)। वर्टिकल प्रिविलेज एस्केलेशन की तुलना में हॉरिजॉन्टल के लिए अकाउंट्स के प्रिविलेज को अपग्रेड करने की जरूरत नहीं है। यह अक्सर सिस्टम में बग्स पर निर्भर करता है।

उदाहरण
यह समस्या अक्सर वेब अनुप्रयोग में होती है। निम्नलिखित उदाहरण पर विचार करें:
 * उपयोगकर्ता A की इंटरनेट बैंकिंग एप्लिकेशन में अपने स्वयं के बैंक खाते तक पहुंच है।
 * उपयोगकर्ता B की उसी इंटरनेट बैंकिंग एप्लिकेशन में अपने स्वयं के बैंक खाते तक पहुंच है।
 * भेद्यता तब होती है जब उपयोगकर्ता A किसी प्रकार की दुर्भावनापूर्ण गतिविधि करके उपयोगकर्ता B के बैंक खाते तक पहुँचने में सक्षम होता है।

यह दुर्भावनापूर्ण गतिविधि सामान्य वेब एप्लिकेशन की कमजोरियों या कमजोरियों के कारण संभव हो सकती है।

संभावित वेब एप्लिकेशन भेद्यताएं या परिस्थितियां जो इस स्थिति को जन्म दे सकती हैं उनमें शामिल हैं:
 * उपयोगकर्ता की HTTP कुकी में अनुमानित सत्र आईडी
 * सत्र निर्धारण
 * क्रॉस साइट स्क्रिप्टिंग
 * आसानी से अनुमान लगाने योग्य पासवर्ड
 * HTTP कुकी की चोरी या अपहरण
 * कीस्ट्रोक लॉगिंग

यह भी देखें

 * रक्षात्मक प्रोग्रामिंग
 * उपभोक्ता इलेक्ट्रॉनिक्स की हैकिंग
 * अवैध संख्या
 * कम से कम विशेषाधिकार का सिद्धांत
 * विशेषाधिकार निरसन (कंप्यूटिंग)
 * विशेषाधिकार जुदाई
 * रूटिंग (एंड्रॉइड ओएस)
 * पंक्ति हथौड़ा