
Microsoft HoloLens Device Portal के लिए Denial of Service exploit, जो बार-बार API pairing requests के माध्यम से CPU overload और system unresponsiveness का कारण बनता है।
Tânia Silva, António Pinto, Pedro Pinto और Sara Paiva
एक Denial of Service (DoS) हमले का उद्देश्य किसी लक्ष्य प्रणाली को इस प्रकार ओवरलोड करना होता है कि वह धीरे-धीरे उसे भेजे गए सभी अनुरोधों का जवाब देने में असमर्थ हो जाए। इस प्रकार, एक वैध उपयोगकर्ता किसी सेवा तक पहुंच खो देता है, जो एप्लिकेशन डोमेन के आधार पर, उनकी प्रक्रिया के लिए महत्वपूर्ण हो सकती है। इस समस्या के लिए, हमने HoloLens हेडसेट का विश्लेषण किया जो एक Mixed Reality (MR) अनुभव प्रदान करते हैं। HoloLens 1 और 2 HoloLens पर सामग्री और कार्यक्षमताओं को दूरस्थ रूप से प्रबंधित और हेरफेर करने के लिए एक ढांचा प्रदान करते हैं। इस उपकरण को ”Device Portal” कहा जाता है, जैसा कि चित्र 1.1 में दिखाया गया है, और यह उपयोगकर्ता को हेड-माउंटेड डिवाइस पर संग्रहीत एप्लिकेशन, दस्तावेज़ और मल्टीमीडिया सामग्री को प्रबंधित करने की अनुमति देता है। यह उपकरण डिवाइस पर उपयोगकर्ता की गतिविधियों का रीयल-टाइम विज़ुअलाइज़ेशन और तत्काल रिकॉर्डिंग या स्क्रीन कैप्चर भी सक्षम करता है। इसके अलावा, यह उपकरण सिस्टम घटकों की निगरानी के साथ-साथ उस समय सिस्टम पर चल रही प्रक्रियाओं के प्रबंधन को भी सक्षम करता है।
चित्र 1.1: HoloLens Device Portal
चित्र 1.2 में, किए गए हमले की संरचना को दर्शाया गया है। हमले को अंजाम देने के लिए, दुर्भावनापूर्ण व्यक्ति को लक्ष्य के समान नेटवर्क से जुड़ा होना आवश्यक है। यह कनेक्शन हैकर को नेटवर्क पर उपलब्ध उपकरणों की पहचान करने के उद्देश्य से पूरे नेटवर्क का विश्लेषण करने के लिए एक सुरक्षा स्कैनर का उपयोग करने में सक्षम बनाता है।
नेटवर्क से जुड़ा कोई भी उपकरण केवल ब्राउज़र में संबंधित HoloLens IP दर्ज करके ”Device Portal” तक पहुंच सकता है। स्कैनर द्वारा एकत्रित जानकारी से, हमलावर IP की पहचान कर सकता है और रिमोट प्रबंधन सेवा तक पहुंचने का प्रयास करने के लिए इसका उपयोग कर सकता है। ”Device Portal” पर कोई कार्रवाई करने पर नेटवर्क ट्रैफ़िक का विश्लेषण करके, हैकर डिवाइस के API को भेजे गए अनुरोधों तक पहुंच प्राप्त करता है। इस जानकारी के साथ, वे इन अनुरोधों को API पर लगातार चलाने के लिए एक स्क्रिप्ट विकसित कर सकते हैं। इन सभी अनुरोधों को प्राप्त करने पर, CPU ओवरलोड हो जाता है, और परिणामस्वरूप, सिस्टम वैध उपयोगकर्ताओं के आदेशों का जवाब देना बंद कर देता है, जिससे HoloLens का उपयोग अवरुद्ध हो जाता है। भले ही उपयोगकर्ता हेडसेट को पुनरारंभ करने का निर्णय लेता है, हमला तब तक जारी रहता है जब तक IP अपरिवर्तित रहता है या हमलावर इसे रोकने का निर्णय नहीं लेता।
चित्र 1.2: HoloLens DoS हमले की संरचना
इस हमले के सही पुनरुत्पादन के लिए आवश्यक शर्तें हैं:
हमले को निष्पादित करने के लिए किसी विशिष्ट ऑपरेटिंग सिस्टम की आवश्यकता नहीं है। DoS के लिए उपयोग की जाने वाली स्क्रिप्ट को स्क्रिप्ट चलाने के लिए चुने गए उपकरण की आवश्यकताओं के अनुसार अनुकूलित किया जाना चाहिए।
दुर्भावनापूर्ण व्यक्ति नेटवर्क से जुड़े हेडसेट का वर्तमान IP पहचानने के लिए एक नेटवर्क स्कैन टूल का चयन करके हमला शुरू करता है। ”Device Portal” होमपेज तक पहुंचने के लिए, ब्राउज़र में हेडसेट का IP दर्ज करना ही पर्याप्त है। इस पृष्ठ पर, आपको लॉगिन क्रेडेंशियल दर्ज करने के लिए कहा जाएगा। हालांकि, एक बार 3 गलत प्रयासों की गिनती पूरी हो जाने पर, उपयोगकर्ता को उस पृष्ठ पर पुनर्निर्देशित किया जाता है जहां हेडसेट के साथ एक नई जोड़ी का अनुरोध किया जा सकता है, और बाद में, एक नया उपयोगकर्ता बनाया जा सकता है। इस वेबपेज के तत्वों का निरीक्षण करके, HoloLens API को भेजे गए नेटवर्क अनुरोधों का विश्लेषण करना संभव है। इन अनुरोधों में अनुरोध के बॉडी और हेडर के बारे में जानकारी होती है, जिसे किसी अन्य उपकरण में आसानी से दोहराया जा सकता है, जैसा कि चित्र 1.3 में प्रस्तुत किया गया है। इन अनुरोधों को भेजने की क्षमता पहचाना गया हमला वेक्टर था।
चित्र 1.3: HoloLens API अनुरोध
जब भी कोई नया पेयरिंग अनुरोध किया जाता है, HoloLens की प्रक्रियाएं रुक जाती हैं, और उपयोगकर्ता के दृश्य पर एक PIN ओवरले कर दिया जाता है, जिसे डिवाइस की पेयरिंग के साथ आगे बढ़ने के लिए वेब पेज पर दर्ज किया जाना चाहिए, जैसा कि चित्र 1.4 में दर्शाया गया है। HoloLens सामान्य संचालन तभी फिर से शुरू करता है जब यह PIN गायब हो जाता है। इसे गायब करने के लिए, उपयोगकर्ता वेब पेज पर पेयरिंग प्रक्रिया को पूरा कर सकता है या एक सेटिंग्स मेनू खोल सकता है जहां वे HoloLens के सामान्य दृश्य पर लौट सकते हैं।
चित्र 1.4: HoloLens पेयरिंग पिन
इस समस्या का परीक्षण करने के लिए, API को बार-बार पेयरिंग अनुरोध भेजने के लिए एक स्क्रिप्ट विकसित की गई, जो किसी भी संभावित त्रुटि को अनदेखा करती है जब तक कि इस प्रक्रिया को हमलावर द्वारा मैन्युअल रूप से रोका नहीं जाता (चित्र 1.5 और परिशिष्ट A देखें)। यह स्क्रिप्ट Windows PowerShell के लिए विकसित की गई थी, क्योंकि कंप्यूटर चालू होने पर हर बार स्क्रिप्ट चलाने के लिए शेड्यूल करना संभव है। इस तरह, हमलावर लक्ष्य मशीनों पर स्क्रिप्ट स्थापित कर सकता है, जो आमतौर पर HoloLens के समान नेटवर्क से जुड़ी होती हैं। हमला बैकग्राउंड में चलता है, उपयोगकर्ताओं को पता नहीं चलता, और उपकरण को अनुपयोगी बना देता है। PowerShell ”New-ScheduledTask” कमांड प्रदान करता है, जो जब भी कंप्यूटर चालू होता है, दुर्भावनापूर्ण स्क्रिप्ट चलाने के लिए एक ट्रिगर बनाने की अनुमति देता है।
चित्र 1.5: PowerShell स्क्रिप्ट
जब भी कोई पेयरिंग अनुरोध किया जाता है, पेयरिंग पिन उपयोगकर्ता के दृश्य पर ओवरले हो जाता है। पिछली स्क्रिप्ट के साथ किए गए परीक्षणों के परिणामस्वरूप, यह देखा गया कि लगातार अनुरोध भेजने से HoloLens उपयोगकर्ता के दृश्य पर लगातार नए पिन ओवरले करता है, जिससे वे कोई अन्य कार्य करने से रुक जाते हैं। उपयोगकर्ता के पास इस पिन के ऊपर एक मेनू खोलने का विकल्प होता है, हालांकि, चूंकि हेडसेट लगातार नए अनुरोध प्राप्त कर रहे हैं, उपयोगकर्ता के पास इस मेनू में कोई भी संचालन करने का समय नहीं होता है। समय के साथ, चश्मा खराब होने लगता है, और HoloLens उपयोगकर्ता द्वारा बोले गए इशारों या आदेशों को समझने में संघर्ष करता है। इस प्रकार, उपयोगकर्ता हमले के रुकने तक डिवाइस का उपयोग नहीं कर सकता।
हमले का विभिन्न परिदृश्यों में परीक्षण किया गया और यह पूरी तरह से प्रभावी साबित हुआ। जब उपयोगकर्ता HoloLens को पुनरारंभ करने का प्रयास करता है, तो उम्मीद के अनुसार, API प्रतिक्रिया देना बंद कर देता है। हालांकि, स्क्रिप्ट में परिभाषित अनुसार, सर्वर द्वारा लौटाई गई त्रुटियों को अनदेखा किया जाना चाहिए, जिससे यह बैकग्राउंड में चलता रहे। एक बार जब यह पता लग जाता है कि HoloLens ने नेटवर्क से फिर से कनेक्शन स्थापित कर लिया है, तो हमला जारी रहता है, जिससे उपयोगकर्ता कोई अन्य कार्य करने से रुक जाता है। परीक्षण तब भी किया गया जब हेडसेट के साथ पहले से ही एक विश्वसनीय उपकरण जोड़ा गया था। परिणाम वही था, जब तक प्रेषक का IP पहले से जोड़े गए IP से भिन्न है, हमला संभव है।
किए गए परीक्षणों के दौरान, यह देखा गया कि CPU ओवरलोड के कारण हेडसेट में ओवरहीटिंग का अनुभव हुआ। चित्र 1.6 में, हमले के दौरान हेडसेट के CPU और मेमोरी के प्रसंस्करण को प्रदर्शित किया गया है। जैसा कि कुछ क्षणों में देखा जा सकता है, CPU बहुत उच्च स्तर तक बढ़ जाता है, जिससे उपकरण गर्म हो जाता है और अन्य सेवाओं के प्रति इसकी प्रतिक्रिया में देरी होती है।
चित्र 1.6: CPU और मेमोरी प्रसंस्करण
संक्षेप में, इस DoS हमले में HoloLens API को पेयरिंग अनुरोधों से ओवरलोड करना शामिल है। इस प्रकार, सेकंडों के भीतर उपयोगकर्ता के दृश्य पर लगातार नए पिन ओवरले किए जाते हैं। यह व्यवहार वैध उपयोगकर्ता को हमले के रुकने तक HoloLens पर कोई अन्य कार्य करने से रोकता है। इस प्रकार के हमले के लिए उपयुक्त शमन विधियाँ API स्तर पर होंगी, जिसमें किसी विशिष्ट IP से किए गए पेयरिंग अनुरोधों पर प्रतिबंध लगाना शामिल है। हालांकि, यदि हमलावर अपने अनुरोधों में IP को स्पूफ करने का इरादा रखता है, तो इस पद्धति को आसानी से पार किया जा सकता है। इसलिए, थोड़े समय के भीतर किए गए कुल अनुरोधों की संख्या को भी प्रतिबंधित करने का प्रस्ताव है।