यूईएफआई सुरक्षित बूट को दूर से बायपास करने के लिए उबंटू में लॉकडाउन सुरक्षा को अक्षम करने के तरीके

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

लॉकडाउन रूट उपयोगकर्ता की कर्नेल तक पहुंच को प्रतिबंधित करता है और यूईएफआई सिक्योर बूट बाईपास पथ को अवरुद्ध करता है। उदाहरण के लिए, लॉकडाउन मोड में, /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes डिबगिंग मोड, mmiotrace, ट्रेसफ़्स, BPF, PCMCIA CIS (कार्ड सूचना संरचना), कुछ तक पहुंच इंटरफ़ेस CPU के ACPI और MSR रजिस्टर सीमित हैं, kexec_file और kexec_load पर कॉल अवरुद्ध हैं, स्लीप मोड निषिद्ध है, PCI उपकरणों के लिए DMA का उपयोग सीमित है, EFI वेरिएबल्स से ACPI कोड का आयात निषिद्ध है, I/O पोर्ट के साथ हेरफेर नहीं हैं सीरियल पोर्ट के लिए इंटरप्ट नंबर और I/O पोर्ट को बदलने सहित अनुमति दी गई है।

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

उबंटू और फेडोरा में, लॉकडाउन को अक्षम करने के लिए कुंजी संयोजन Alt+SysRq+X प्रदान किया गया है। यह समझा जाता है कि Alt+SysRq+X संयोजन का उपयोग केवल डिवाइस तक भौतिक पहुंच के साथ किया जा सकता है, और रिमोट हैकिंग और रूट एक्सेस प्राप्त करने के मामले में, हमलावर लॉकडाउन को अक्षम करने में सक्षम नहीं होगा और, उदाहरण के लिए, रूटकिट वाला मॉड्यूल जो कर्नेल में डिजिटल रूप से हस्ताक्षरित नहीं है।

एंड्री कोनोवलोव ने दिखाया कि उपयोगकर्ता की भौतिक उपस्थिति की पुष्टि करने के लिए कीबोर्ड-आधारित तरीके अप्रभावी हैं। लॉकडाउन को अक्षम करने का सबसे सरल तरीका प्रोग्रामेटिक रूप से होगा सिमुलेशन /dev/uinput के माध्यम से Alt+SysRq+X दबाएँ, लेकिन यह विकल्प प्रारंभ में अवरुद्ध है। साथ ही, प्रतिस्थापन के कम से कम दो और तरीकों Alt+SysRq+X की पहचान करना संभव था।

पहली विधि में "sysrq-trigger" इंटरफ़ेस का उपयोग करना शामिल है - इसे अनुकरण करने के लिए, बस /proc/sys/kernel/sysrq पर "1" लिखकर इस इंटरफ़ेस को सक्षम करें, और फिर /proc/sysrq-trigger पर "x" लिखें। बचाव का रास्ता कहा सफाया दिसंबर उबंटू कर्नेल अपडेट में और फेडोरा 31 में। यह उल्लेखनीय है कि डेवलपर्स, जैसा कि /dev/uinput के मामले में, शुरू में करने की कोशिश की इस विधि को ब्लॉक करें, लेकिन ब्लॉक करने के कारण काम नहीं हुआ त्रुटियाँ कोड में।

दूसरी विधि में कीबोर्ड अनुकरण शामिल है यूएसबी/आईपी और फिर वर्चुअल कीबोर्ड से अनुक्रम Alt+SysRq+X भेज रहा है। उबंटू के साथ भेजा गया यूएसबी/आईपी कर्नेल डिफ़ॉल्ट रूप से सक्षम है (CONFIG_USBIP_VHCI_HCD=m और CONFIG_USBIP_CORE=m) और संचालन के लिए आवश्यक डिजिटल रूप से हस्ताक्षरित usbip_core और vhci_hcd मॉड्यूल प्रदान करता है। हमलावर कर सकता है बनाने वर्चुअल USB डिवाइस, दौड़कर लूपबैक इंटरफ़ेस पर नेटवर्क हैंडलर और इसे USB/IP का उपयोग करके रिमोट USB डिवाइस के रूप में कनेक्ट करना। निर्दिष्ट विधि के बारे में की सूचना दी उबंटू डेवलपर्स के लिए, लेकिन अभी तक कोई समाधान जारी नहीं किया गया है।

स्रोत: opennet.ru

एक टिप्पणी जोड़ें