रूटकिट

From Vigyanwiki

रूटकिट सॉफ्टवेयर का संग्रह है, जो सामान्यतः द्वेषपूर्ण होता है, जिसे कंप्यूटर या इसके सॉफ़्टवेयर के क्षेत्र तक पहुंच को सक्षम बनाने के लिए डिज़ाइन किया गया है, जिसे अन्यथा अनुमति नहीं है (उदाहरण के लिए, अनधिकृत उपयोगकर्ता के लिए) और अधिकांशतः इसके अस्तित्व या अन्य सॉफ़्टवेयर के अस्तित्व को छुपाता है।[1] अर्थात रूटकिट सामान्यतः गलत उद्देश्यों को पूरा करने के लिए बनाया जाता है। इसे इस तरह से बनाया जाता है कि ये कम्प्युटर या उस क्षेत्र में ऐसे स्थान पर भी कार्य करता है, जिस स्थान पर सॉफ्टवेयर को आम तौर पर अनुमति नहीं होती है।शब्द रूटकिट "रूट" का यौगिक है (यूनिक्स-जैसे ऑपरेटिंग सिस्टम पर विशेषाधिकार प्राप्त अकाउंट का पारंपरिक नाम) और शब्द किट (जो उपकरण को लागू करने वाले सॉफ़्टवेयर घटकों को संदर्भित करता है)।[2] रूटकिट शब्द का मैलवेयर के साथ जुड़ाव के कारण नकारात्मक अर्थ है।[1]

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

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

इतिहास

शब्द रूटकिट या रूट किट मूल रूप से यूनिक्स जैसे ऑपरेटिंग सिस्टम के लिए प्रशासनिक उपकरणों के द्वेषपूर्ण रूप से संशोधित सेट को संदर्भित करता है जो सुपरयूजर एक्सेस प्रदान करता है।[4] यदि घुसपैठिया रूटकिट के साथ सिस्टम पर मानक प्रशासनिक उपकरण को बदल सकता है, तो घुसपैठिया वैध सिस्टम प्रशासक से इन गतिविधियों को छुपाते हुए सिस्टम पर रूट एक्सेस प्राप्त कर सकता है। ये पहली पीढ़ी के रूटकिट ओपन सोर्स ट्रिपवायर जैसे उपकरणों का उपयोग करके पता लगाने के लिए तुच्छ थे, जिन्हें समान जानकारी तक पहुंचने के लिए समझौता नहीं किया गया था।[5][6]लेन डेविस और स्टीवन डैक ने सन माइक्रोसिस्टम्स के SunOS UNIX ऑपरेटिंग सिस्टम के लिए 1990 में सबसे पहला ज्ञात रूटकिट लिखा था।[7] 1983 में ट्यूरिंग पुरस्कार प्राप्त करने पर दिए गए व्याख्यान में, बेल लैब्स के केन थॉम्पसन, यूनिक्स के रचनाकारों में से एक, ने यूनिक्स वितरण में सी संकलक को नष्ट करने के बारे में सिद्धांत दिया और शोषण पर चर्चा की। संशोधित संकलक यूनिक्स को संकलित करने के प्रयासों का पता लगाएगा लॉग इन आदेश दें और परिवर्तित कोड उत्पन्न करें जो न मात्र उपयोगकर्ता के सही पासवर्ड को स्वीकार करेगा, बल्कि हमलावर को ज्ञात अतिरिक्त बैक डोर का पासवर्ड भी होगा। इसके अतिरिक्त, कंपाइलर कंपाइलर के नए संस्करण को संकलित करने के प्रयासों का पता लगाएगा, और उसी कारनामे को नए कंपाइलर में सम्मिलित करेगा। के लिए स्रोत कोड की समीक्षा लॉग इन कमांड या अपडेटेड कंपाइलर किसी भी द्वेषपूर्ण कोड को प्रकट नहीं करेगा।[8] यह कारनामा रूटकिट के बराबर था।

व्यक्तिगत कंप्यूटर को लक्षित करने वाला पहला प्रलेखित कंप्यूटर वायरस, जिसे 1986 में खोजा गया था, ने स्वयं को छिपाने के लिए क्लोकिंग तकनीकों का उपयोग किया: ब्रेन वायरस ने प्रारंभिक क्षेत्र को पढ़ने के प्रयासों को रोका, और इन्हें डिस्क पर कहीं और पुनर्निर्देशित किया, जहां मूल बूट सेक्टर की प्रति रखी गई थी[1] समय के साथ, डॉस-वायरस क्लोकिंग विधियां अधिक परिष्कृत हो गईं। उन्नत तकनीकों में फाइलों में अनधिकृत संशोधनों को छिपाने के लिए लो-लेवल डिस्क INT 13H BIOS रुकावट डालना कॉल को हुक करना सम्मलित है।[1]

विंडोज एनटी ऑपरेटिंग सिस्टम के लिए पहला द्वेषपूर्ण रूटकिट 1999 में दिखाई दिया: एनटीआरओटकिट नामक ट्रोजन जिसे ग्रेग होगलंड द्वारा बनाया गया था।[9]इसके बाद 2003 में हैकर डिफेंडर द्वारा किया गया।[1]पहला रूटकिट लक्ष्यीकरण macOS 2009 में सामने आया,[10] जबकि स्टक्सनेट वर्म निर्देशयोग्य तर्क नियंत्रक्स (पीएलसी) को लक्षित करने वाला पहला था।[11]

सोनी बीएमजी कॉपी प्रोटेक्शन रूटकिट स्कैंडल

File:RootkitRevealer.png
रूटकिट रिवीलर का स्क्रीनशॉट, विस्तारित कॉपी सुरक्षा रूटकिट द्वारा छिपी हुई फाइलों को दिखा रहा है

2005 में, Sony BMG ने कॉपी सुरक्षा और डिजिटल अधिकार प्रबंधन सॉफ़्टवेयर के साथ कॉम्पैक्ट डिस्क प्रकाशित की, जिसे विस्तारित कॉपी सुरक्षा कहा जाता है, जिसे सॉफ़्टवेयर कंपनी फ़र्स्ट 4 इंटरनेट द्वारा बनाया गया है। सॉफ्टवेयर में म्यूजिक प्लेयर सम्मलित था परंतु चुपचाप रूटकिट स्थापित किया गया था जो सीडी तक पहुंचने के लिए उपयोगकर्ता की क्षमता को सीमित करता था।[12] सॉफ्टवेयर इंजीनियर मार्क रोसिनोविच, जिन्होंने रूटकिट डिटेक्शन टूल रूटकिटरिवेलर बनाया था, ने अपने कंप्यूटर पर रूटकिट की खोज की।[1]आगामी घोटाले ने रूटकिट्स के बारे में जनता की जागरूकता बढ़ा दी।[13] स्वयं को छिपाने के लिए, रूटकिट उपयोगकर्ता को $sys$ से शुरू होने वाली किसी भी फ़ाइल से छुपाता है। रोसिनोविच की रिपोर्ट के तुरंत बाद, मैलवेयर सामने आया जिसने प्रभावित सिस्टम की भेद्यता का लाभ उठाया।[1]बीबीसी के विश्लेषक ने इसे जनसंपर्क दुःस्वप्न कहा।[14] सोनी बीएमजी ने रूटकिट को अनइंस्टॉलर करने के लिए पैच जारी किया, परंतु इसने उपयोगकर्ताओं को और भी गंभीर भेद्यता के लिए उजागर किया।[15] कंपनी ने अंततः सीडी को वापस बुला लिया। संयुक्त राज्य अमेरिका में, सोनी बीएमजी के खिलाफ क्लास-एक्शन मुकदमा लगाया था।[16]

ग्रीक वायरटैपिंग मामला 2004–05

ग्रीक वायरटैपिंग मामला 2004–05, जिसे ग्रीक वाटरगेट भी कहा जाता है,[17] वोडाफोन यूनान नेटवर्क पर 100 से अधिक चल दूरभाष की अवैध टेलीफोन टैपिंग सम्मलित थी, जो ज्यादातर ग्रीस सरकार के सदस्यों और शीर्ष-श्रेणी के सिविल सेवकों के थे। उन्होंने अगस्त 2004 की प्रारंभ के पास शुरू हुए और अपराधियों की पहचान का पता लगाए बिना मार्च 2005 में हटा दिए गए। घुसपैठियों ने एरिक्सन के एक्स टेलीफोन एक्सचेंज को निशाना बनाते हुए रूटकिट स्थापित किया। IEEE स्पेक्ट्रम के अनुसार, यह पहली बार था जब किसी विशेष प्रयोजन प्रणाली पर रूटकिट देखा गया था, इस मामले में एरिक्सन टेलीफोन स्विच।[18] रूटकिट को एक्सचेंज की मेमोरी को पैच करने के लिए डिज़ाइन किया गया था जब यह चल रहा था, ऑडिट लॉग को अक्षम करते हुए वायरटैपिंग को सक्षम करें, सक्रिय प्रक्रियाओं और सक्रिय डेटा ब्लॉक को सूचीबद्ध करने वाले कमांड को पैच करें और डेटा ब्लॉक अंततः, सत्यापन कमांड को संशोधित करें। बैकडोर ने ऑपरेटर को स्य्सएडमिन स्थिति के साथ एक्सचेंज के लेनदेन लॉग, अलार्म और निगरानी क्षमता से संबंधित एक्सेस कमांड को निष्क्रिय करने की अनुमति दी।[18]घुसपैठियों द्वारा दोषपूर्ण अद्यतन स्थापित करने के बाद रूटकिट की खोज की गई, जिसके कारण एसएमएस पाठ वितरित नहीं हो पाए, जिससे स्वचालित विफलता रिपोर्ट उत्पन्न हुई। एरिक्सन इंजीनियरों को गलती की जांच करने के लिए बुलाया गया और रूटकिट और अवैध निगरानी सॉफ्टवेयर के साथ निगरानी किए जा रहे फोन नंबरों की सूची वाले छिपे हुए डेटा ब्लॉक की खोज की।

उपयोग

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

रूटकिट्स और उनके पेलोड के कई उपयोग हैं:

  • एक हमलावर को बैक डोर के माध्यम से पूर्ण पहुंच प्रदान करें,अनधिकृत पहुंच की अनुमति दें, उदाहरण के लिए, दस्तावेज़ों को चुराना या गलत करना। इसे पूरा करने के तरीकों में से लॉगिन तंत्र को हटाना है, जैसे कि यूनिक्स जैसी प्रणालियों पर / बिन / लॉगिन प्रोग्राम या विंडोज़ पर ग्राफिकल पहचान और प्रमाणीकरण है। प्रतिस्थापन सामान्य रूप से कार्य करता प्रतीत होता है, परंतु गुप्त लॉगिन संयोजन को भी स्वीकार करता है जो हमलावर को मानक प्रमाणीकरण और प्राधिकरण तंत्र को दरकिनार करते हुए प्रशासनिक विशेषाधिकारों के साथ सिस्टम तक सीधी पहुंच की अनुमति देता है।
  • अन्य मैलवेयर, विशेष रूप से पासवर्ड-चोरी करने वाले कीस्ट्रोक लॉगिंग और कंप्यूटर वायरस है।[19]
  • अन्य कंप्यूटरों पर हमलों के लिए समझौता मशीन को ज़ोंबी कंप्यूटर के रूप में उपयुक्त करें। (हमला हमलावर के सिस्टम के अतिरिक्त समझौता किए गए सिस्टम या नेटवर्क से उत्पन्न होता है।) ज़ोंबी कंप्यूटर सामान्यतः बड़े बॉटनेट्स के सदस्य होते हैं जो अन्य चीजों के साथ-डिनायल-ऑफ-सर्विस हमलों को लॉन्च कर सकते हैं, ईमेल स्पैम वितरित करें, और क्लिक धोखाधड़ी करें।[20]

कुछ उदाहरणों में, रूटकिट वांछित कार्यक्षमता प्रदान करता है, और कंप्यूटर उपयोगकर्ता की ओर से अभिप्रायपूर्वक स्थापित किया जा सकता है:

  • हमलों का पता लगाएं, उदाहरण के लिए, हनीपोट में।[21]
  • एमुलेशन सॉफ्टवेयर और सुरक्षा सॉफ्टवेयर को बेहतर बनाएं।[22] एल्कोहल 120% और डेमोन टूल्स गैर-विरोधी रूटकिट के व्यावसायिक उदाहरण हैं जिनका उपयोग SafeDisc और SecuROM जैसे कॉपी-प्रोटेक्शन मैकेनिज्म को हराने के लिए किया जाता है।[23] कैसपर्सकी एंटी-वायरस स्वयं को द्वेषपूर्ण कार्यों से बचाने के लिए रूटकिट जैसी तकनीकों का भी उपयोग करता है। यह सिस्टम गतिविधि को बाधित करने के लिए अपने स्वयं के डिवाइस ड्राइवर को लोड करता है, और फिर अन्य प्रक्रियाओं को स्वयं को नुकसान पहुँचाने से रोकता है। इसकी प्रक्रियाएँ छिपी नहीं हैं, परंतु मानक विधियों द्वारा समाप्त नहीं की जा सकती हैं।
  • एंटी-थेफ्ट प्रोटेक्शन: लैपटॉप में BIOS-आधारित रूटकिट सॉफ्टवेयर हो सकता है जो समय-समय पर केंद्रीय प्राधिकरण को रिपोर्ट करेगा, जिससे लैपटॉप की निगरानी की जा सकेगी, चोरी होने की स्थिति में सूचना को अक्षम या मिटा दिया जा सकेगा।[24]
  • माइक्रोसॉफ्ट उत्पाद सक्रियण को दरकिनार करना[25]

प्रकार

रूटकिट कम से कम 69 प्रकार के रूटकिट हैं, फ़र्मवेयर में निम्नतम स्तर (उच्चतम विशेषाधिकारों के साथ) से लेकर कर्नेल में संचालित होने वाले कम से कम विशेषाधिकार प्राप्त उपयोगकर्ता-आधारित वेरिएंट तक। इनमें से हाइब्रिड संयोजन फैले हुए हो सकते हैं, उदाहरण के लिए, उपयोगकर्ता मोड और कर्नेल मोड।[26]

उपयोगकर्ता मोड

File:CPU ring scheme.svg
रिंग -1 नहीं दिखाया गया है)

उपयोक्ता-मोड रूटकिट रिंग में चलते हैं, अन्य अनुप्रयोगों के साथ-साथ निम्न-स्तरीय सिस्टम प्रक्रियाओं के अतिरिक्त उपयोगकर्ता के रूप में अन्य अनुप्रयोगों के साथ, रिंग 3 में चलते हैं।[27]एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) के मानक व्यवहार को रोकने और संशोधित करने के लिए उनके पास कई संभावित इंस्टॉलेशन वैक्टर हैं। कुछ अन्य प्रक्रियाओं में गतिशील लिंकर लाइब्रेरी (जैसे विंडोज़ पर डायनेमिक-लिंक लाइब्रेरी .DLL फ़ाइल, या macOS पर .dylib फ़ाइल ) इंजेक्ट करते हैं, और इस प्रकार किसी भी लक्षित प्रक्रिया के अंदर इसे धोखा देने के लिए निष्पादित करने में सक्षम हैं; अन्य पर्याप्त विशेषाधिकारों के साथ लक्ष्य अनुप्रयोग की स्मृति को अधिलेखित कर देते हैं इनमें इंजेक्शन तंत्र में सम्मलित हैं:[27]

विक्रेता द्वारा आपूर्ति किए गए एप्लिकेशन एक्सटेंशन का उपयोग। उदाहरण के लिए, विंडोज़ एक्सप्लोरर में सार्वजनिक इंटरफेस हैं जो तीसरे पक्ष को इसकी कार्यक्षमता बढ़ाने की अनुमति देते हैं।

  • संदेश पारित करने का अवरोधन।
  • डिबगर्स।
  • भेद्यता का शोषण ।
  • ... चूंकि उपयोगकर्ता मोड एप्लिकेशन सभी अपने स्वयं के मेमोरी स्पेस में चलते हैं, रूटकिट को प्रत्येक चल रहे एप्लिकेशन के मेमोरी स्पेस में इस पैचिंग को करने की आवश्यकता होती है। इसके अलावा, रूटकिट को किसी भी नए एप्लिकेशन के लिए सिस्टम की निगरानी करने की आवश्यकता होती है जो पूरी तरह से निष्पादित होने से पहले उन प्रोग्रामों की मेमोरी स्पेस को निष्पादित और पैच करता है।

    — विंडोज रूटकिट अवलोकन, Symantec[4]
    सामान्यतः उपयोग किए जाने वाले एपीआई के फंक्शन हुकिंग या पैचिंग, उदाहरण के लिए, फाइल सिस्टम पर चलने वाली प्रक्रिया या फाइल को छिपाने के लिए।[28]

कर्नेल मोड

कर्नेल-मोड रूटकिट उच्चतम ऑपरेटिंग सिस्टम विशेषाधिकारों (रिंग) के साथ कोड जोड़कर या कर्नेल (कंप्यूटर विज्ञान) और संबंधित डिवाइस ड्राइवर दोनों सहित कोर ऑपरेटिंग सिस्टम के भागों को बदलकर चलते हैं।[citation needed] अधिकांश ऑपरेटिंग सिस्टम कर्नेल-मोड डिवाइस ड्राइवरों का समर्थन करते हैं, जो ऑपरेटिंग सिस्टम के समान विशेषाधिकारों के साथ निष्पादित होते हैं। जैसे, कई कर्नेल-मोड रूटकिट डिवाइस ड्राइवर या लोड करने योग्य मॉड्यूल के रूप में विकसित किए जाते हैं, जैसे लिनक्स में मॉड्यूल (लिनक्स) या माइक्रोसॉफ़्ट विंडोज़ में डिवाइस ड्राइवर। रूटकिट के इस वर्ग के पास अप्रतिबंधित सुरक्षा पहुंच है, परंतु लिखना अधिक कठिन है।[29]जटिलता बग को सामान्य बनाती है, और कर्नेल स्तर पर संचालन करने वाले कोड में कोई भी बग सिस्टम स्थिरता को गंभीर रूप से प्रभावित कर सकता है, जिससे रूटकिट की खोज हो सकती है।