वनप्लस 3/3T बूटलोडर में एक गंभीर भेद्यता हमलावरों को SELinux स्थिति को एनफोर्सिंग से पर्मिसिव में बदलने की अनुमति देती है! अधिक जानने के लिए पढ़े!
वनप्लस 3 और यह वनप्लस 3T ये सबसे अच्छे फ़ोनों में से हैं जिन्हें आप अभी खरीद सकते हैं। जबकि 2017 के आगामी फ्लैगशिप अभी तक उपभोक्ताओं के सामने नहीं आए हैं, उनकी अनुपस्थिति में वनप्लस 3/3T वास्तविक दुनिया के प्रदर्शन पर हावी है किफायती कीमत पर.
लेकिन, अगर हमें डिवाइस का मूल्यांकन करने में निष्पक्ष होना है, हमें यह स्वीकार करने की आवश्यकता है कि वनप्लस के सर्वोत्तम प्रयासों के बावजूद, वनप्लस 3/3T में खामियाँ हैं। उदाहरण के लिए, हमने पहले सुरक्षा मुद्दों पर रिपोर्ट की है जैसे वनप्लस IMEI विवरण लीक कर रहा है जब आप अपने फ़ोन पर अपडेट की जाँच करते हैं तो नेटवर्क पर। और अब, हमारे पास सूची में जोड़ने के लिए एक और सुरक्षा मुद्दा है, यह संभावित रूप से अधिक खतरनाक प्रभाव वाला है।
वनप्लस 3/3T के बूटलोडर में एक भेद्यता दुर्भावनापूर्ण हमलों के द्वार खोलती है। जैसा कि आईबीएम एक्स-फोर्स एप्लीकेशन सिक्योरिटी रिसर्च टीम के रोई हे द्वारा पाया गया आईबीएम एक्स-फोर्स एक्सचेंज प्लेटफॉर्म पर खुलासा किया गया
, यह भेद्यता एक हमलावर को डिवाइस पर SELinux स्थिति में हेरफेर करने की अनुमति देती है, जिससे इसे अनुमेय मोड में बदल दिया जाता है। हमलावर को बस इतना ही चाहिए या तो भौतिक पहुंच डिवाइस के लिए, या एडीबी कनेक्शन तक दूरस्थ पहुंच डिवाइस के लिए.SELinux, या सुरक्षा-संवर्धित लिनक्स, एक लिनक्स कर्नेल सुरक्षा मॉड्यूल है जो सुरक्षा नीतियों तक पहुंच और प्रबंधन की अनुमति देता है। SELinux को एंड्रॉइड 4.3 के साथ एंड्रॉइड के लिए पेश किया गया था और इसे सेट किया गया था लागू करने एंड्रॉइड 4.4 के बाद से मोड डिफ़ॉल्ट है। यह अनिवार्य पहुंच नियंत्रण प्रणाली मौजूदा पहुंच नियंत्रण अधिकारों को लागू करने में मदद करती है और विशेषाधिकार वृद्धि के हमलों को रोकने का प्रयास करती है। यह आपके डिवाइस पर अनधिकृत नियंत्रण के लिए एक बाधा के रूप में कार्य करता है, जैसे कि कोई ऐप या भेद्यता जिसका उद्देश्य दुर्भावनापूर्ण रूप से रूट एक्सेस प्राप्त करना है। SELinux को इस पर सेट कर रहा हूँ लागू करने एंड्रॉइड पर डिफ़ॉल्ट रूप से सामान्य उपयोगकर्ताओं को ऐसे हमलों से बचाने के लिए पहला कदम के रूप में कार्य करता है।
भेद्यता का फायदा उठाना बहुत आसान है - वास्तव में, यह वनप्लस की ओर से एक बड़ी चूक प्रतीत होती है बजाय इसके कि आप अपने सामान्य कारनामे को जैसा दिखने की कल्पना करते हैं। सबसे पहले, एक हमलावर वनप्लस 3/3T को 'फास्टबूट' मोड में रीबूट करता है - यदि आपके पास भौतिक पहुंच है, तो बूट के दौरान वॉल्यूम-अप बटन दबाएं, लेकिन यदि आपके पास नहीं है तो आप एडीबी कमांड जारी कर सकते हैं adb reboot bootloader
डिवाइस के लिए. डिवाइस पर फास्टबूट मोड एक यूएसबी इंटरफ़ेस को उजागर करता है, जिसे लॉक किए गए डिवाइस पर किसी भी सुरक्षा संवेदनशील कमांड को पूरा करने की अनुमति नहीं देनी चाहिए। लेकिन वनप्लस 3/3T पर, बस जारी कर रहा है fastboot oem selinux permissive
फास्टबूट इंटरफ़ेस के माध्यम से कमांड SELinux मोड को टॉगल करता है लागू करने को अनुमोदक.
fastboot oem selinux permissive
...
OKAY[ 0.045s]
finished. totaltime: 0.047s...
OnePlus3:/ $ getenforce
Permissive
OnePlus3:/ $
समस्या को और अधिक जटिल बनाने के लिए, वनप्लस 3 और 3T में डिवाइस की वर्तमान SELinux स्थिति का उल्लेख करने के लिए 'स्क्रीन के बारे में' में कोई प्रविष्टि नहीं है। यदि कोई पीड़ित सक्रिय रूप से उपयोग किए जा रहे शोषण को नहीं देखता है तो वह अपने डिवाइस की क्षतिग्रस्त स्थिति से बेखबर रहेगा। 'स्क्रीन के बारे में' में SELinux स्थिति प्रविष्टि की कमी Android 6.0 आधारित ओपन बीटा रिलीज़ के साथ-साथ Android 7.0 आधिकारिक ROM दोनों से गायब है।
SELinux स्थिति को Permissive में टॉगल करने के लिए कई ऐप्स मौजूद हैं जैसे कि SELinuxModeChanger आवेदन पत्र। इस विधि के माध्यम से SELinux को टॉगल करने से रिबूट के दौरान स्थिति बनी नहीं रहती है। हालाँकि, आप कर सकते हैं स्क्रिप्ट का उपयोग करें को बनाए रखने के लिए अनुमोदक हार्ड रिबूट में SELinux स्थिति। इन दोनों तरीकों के लिए रूट एक्सेस की आवश्यकता होती है, जिसका अर्थ है कि उपयोगकर्ता को पहले से ही उन जोखिमों का ज्ञान है जिनसे वे संपर्क में हैं। लेकिन SELinux मोड को बदलने में मुख्य अंतर अनुमोदक उपरोक्त भेद्यता का उपयोग करते हुए यह न केवल है हार्ड रिबूट के दौरान बनी रहती है, ऐसा होता है रूट एक्सेस की आवश्यकता के बिना.
आज तक इस असुरक्षा के विरुद्ध कोई उपाय मौजूद नहीं है।
अद्यतन:
हम पहुंच गए सुलतानक्सदा, वनप्लस उपकरणों के लिए सबसे अधिक मान्यता प्राप्त कस्टम ROM डेवलपर्स में से एक, यह देखने के लिए कि क्या वह इस मुद्दे के बारे में अधिक जानने में हमारी मदद कर सकता है। उसने मूल स्रोत खोजने के लिए तुरंत कोड खोजा, उसे यही मिला:
जिस तरह से "फास्टबूट ओम सेलिनक्स
- उपयोगकर्ता बूटलोडर को एक फ़्लैग पास करवा सकते हैं जो आमतौर पर इंजीनियरिंग/डीबगिंग ROM बिल्ड पर सेलिनक्स को अनुमति देगा
- वनप्लस ने उत्पादन ROM बिल्ड के लिए भी "androidboot.selinux" ध्वज का सम्मान करने के लिए Android के init को संशोधित किया
यहां वह जगह है जहां एंड्रॉइड के init को उत्पादन बिल्ड के लिए "androidboot.selinux" ध्वज को अनदेखा करने के लिए कॉन्फ़िगर किया गया है: https://android.googlesource.com/platform/system/core/+/android-6.0.0_r41/init/Android.mk#7
स्रोत कोड में ALLOW_DISABLE_SELINUX ध्वज केवल यूजरडिबग और इंजीनियरिंग बिल्ड के लिए 1 पर सेट है
(मेरी ROM इससे प्रभावित नहीं होती क्योंकि मैं अपनी ROM उत्पादन (उपयोगकर्ता) मोड में बनाता हूं)
इसलिए "androidboot.selinux" को मेरे ROM में अनदेखा कर दिया गया है, "fastboot oem selinux"
- स्ट्रिंग "सेलिनक्स" के सभी उदाहरणों को कुछ अलग (जैसे "स्क्लिनक्स") में बदलने के लिए बूटलोडर को हेक्स-एडिट करें ताकि ध्वज को एंड्रॉइड के इनिट द्वारा पहचाना न जा सके
- "androidboot.selinux" के सभी उदाहरणों को बदलने के लिए OxygenOS में Android init बाइनरी को हेक्स-संपादित करें कुछ अलग (जैसे "androidboot.sclinux") ताकि Android init पहचान न सके androidboot.selinux ध्वज
- एंड्रॉइड के इनिट से "androidboot.selinux" ध्वज को छिपाने के लिए मेरे सेफ्टीनेट बाईपास के समान कर्नेल कमांड लाइन ड्राइवर में एक हैक जोड़ें
हम पर्दे के पीछे क्या चल रहा है इसका पता लगाने में मदद करने के लिए सुल्तानक्सडा को उनके समय और प्रयास के लिए धन्यवाद देना चाहते हैं। हमने वनप्लस से भी संपर्क किया है, जो स्थिति से अवगत है और मामले को देख रहा है।
हमें उम्मीद है कि वनप्लस सार्वजनिक रूप से इस गंभीर मुद्दे को स्वीकार करेगा और इसे ठीक करने की दिशा में अपनी योजनाओं में पारदर्शी होगा।