Apple Exclaves के बारे में
(randomaugustine.medium.com)monolithic operating system kernel की समस्याएँ
- आधुनिक operating system आमतौर पर दो मुख्य protection domains में बँटे होते हैं:
- non-privileged domain (user mode): प्रोग्राम file access, network communication जैसे शक्तिशाली काम सीधे नहीं कर सकते
- privileged domain (kernel mode): जब प्रोग्राम system call के जरिए kernel से कोई काम करने का अनुरोध करता है, तो kernel code वह काम करके परिणाम user mode में लौटाता है
- अधिकांश operating systems monolithic kernel design का उपयोग करते हैं:
- kernel के पास system के सभी hardware, memory और user data तक असीमित access अधिकार होते हैं
- अगर software में कोई defect न हो और security breach की कोशिशें न हों, तो यह ठीक है, लेकिन वास्तविकता में bugs और security vulnerabilities मौजूद होती हैं
- monolithic kernel का आकार बड़ा होने के कारण security vulnerability पैदा होने की संभावना अधिक होती है, और एक ही vulnerability पूरे system compromise तक ले जा सकती है
- microkernel design सुरक्षा मजबूत करने के लिए kernel से अधिकांश functions हटा देता है और उन्हें अलग non-privileged processes में चलाता है:
- security मजबूत की जा सकती है
- performance में गिरावट और application software की complexity बढ़ने की समस्या हो सकती है
- इसके बावजूद performance advantages के कारण monolithic kernel अब भी व्यापक रूप से उपयोग किए जाते हैं
- Apple का XNU kernel:
- iOS, macOS, tvOS, visionOS, watchOS में साझा रूप से इस्तेमाल होने वाला kernel
- Mach-आधारित microkernel है, लेकिन अधिकांश system functions एक ही privileged scope में चलते हैं, इसलिए व्यवहार में यह monolithic kernel की तरह काम करता है
- इसलिए इसमें monolithic kernel जैसी ही security vulnerabilities हो सकती हैं
isolation के प्रयास
- software और hardware-आधारित isolation technologies को अपनाने के कई प्रयास हुए हैं:
- Microsoft Virtualisation-based Security (VBS) – Windows के Credential Guard में उपयोग
- Intel Software Guard Extension (SGX) तथा VT-X2
- ARM TrustZone – Samsung Knox, Samsung Pay, Android Verified Boot, Android secure PIN input आदि में उपयोग
Apple भी kernel से data को अलग करने की कोशिशों का दायरा धीरे-धीरे बढ़ाता रहा है
-
2013 — Apple Secure Enclave
- पहली बार 2013 में iPhone 5s में पेश किया गया
- Secure Enclave एक स्वतंत्र hardened CPU core पर चलता है और microkernel-आधारित OS SepOS पर काम करता है
- SepOS का kernel Apple का custom L4 embedded microkernel cL4 उपयोग करता है
- encryption keys और biometric data (जैसे Face ID) जैसे sensitive data को store और protect करता है
- iOS kernel से स्वतंत्र रूप से चलता है और केवल सुरक्षित interaction के जरिए iOS को services देता है
- iOS kernel compromise हो जाने पर भी, जब तक कोई अतिरिक्त exploit न हो, Secure Enclave प्रभावित नहीं होता
- ध्यान दें कि Secure Enclave और Secure Exclave अलग अवधारणाएँ हैं
-
2017 — Page Protection Layer (PPL)
- iPhone 8 और iPhone X के A11 processor में पेश किया गया security feature
- hardware + software-आधारित feature, जो kernel के केवल कुछ हिस्सों को memory page table बदलने की अनुमति देता है
- kernel के बाकी हिस्सों की page table modification permission सीमित रहती है
- attack surface छोटा हो जाता है, इसलिए bypass के प्रयास कम देखने को मिलते हैं
- PPL ने protection layer जोड़ी, लेकिन kernel की अधिकांश privileges अब भी बनी रहीं, इसलिए पूर्ण security hardening की सीमा थी
-
2021–2023 — Secure Page Table Monitor (SPTM)
- iPhone 13 के A15 processor और iOS 17 में पेश किया गया नया feature
- यह PPL को replace करता है, अतिरिक्त memory features को protect करता है, और उन्हें कई sub-systems में विभाजित करता है
- code-signing verification और केवल Apple द्वारा signed code के execution को enforce करके security मजबूत करता है
- इसी अवधि में XNU source code में exclave के अप्रत्यक्ष references दिखाई देने लगे
- यह संभावना उठी कि SPTM द्वारा managed sub-systems ही exclave हो सकते हैं
-
2024 — exclave: XNU के प्रमुख security model का पुनर्गठन
- M4 और A18 processors को support करने वाले XNU source code में exclave की अवधारणा सामने आई
- पहले के processors में exclave enabled नहीं हैं
- यह स्पष्ट हुआ कि exclave, XNU के security model के बड़े पुनःडिज़ाइन का परिणाम हैं
-
XNU exclaves
डिस्क्लेमर: exclaves की आंतरिक संरचना पूरी तरह open source नहीं है, इसलिए कुछ बातें अनुमान या व्याख्या हो सकती हैं
- exclaves, XNU के मौजूदा monolithic kernel security model को बड़े पैमाने पर मजबूत करने वाला नया feature set हैं
- exclaves, XNU से isolated resources हैं, जो kernel compromise होने पर भी सुरक्षित रहते हैं
- exclaves की विशेषताएँ:
- OS build के समय पहले से परिभाषित होते हैं
- नाम या ID से पहचाने जाते हैं
- कई प्रकारों में संगठित होते हैं
- boot के समय initialize होते हैं
- independent domains के रूप में व्यवस्थित होते हैं
- SPTM नए exclave-specific page types के साथ exclave memory की रक्षा करता है
- exclave resource types
- shared memory buffer – kernel और exclave, दोनों से accessible
- XNU में इसे read-only या read/write के रूप में set किया जा सकता है
- audio buffers and sensors – camera और microphone access indicators की security मजबूत करते हैं
- Conclave – कई resources को अपने security domain में group करता है, और इसे manage करने के लिए Conclave Manager मौजूद है
- services – जब XNU threads call करते हैं, तो exclave में code execute होता है
- shared memory buffer – kernel और exclave, दोनों से accessible
-
Secure Kernel — seL4 आधारित?
- exclave services को XNU से स्वतंत्र रूप से चलाने के लिए नया kernel Secure Kernel (SK) पेश किया गया
- SK image file में "cL4" version string दिखाई देती है
- संभावना अधिक है कि SK, Apple के मौजूदा cL4 (L4-आधारित) kernel के बजाय seL4 पर आधारित हो
- XNU द्वारा SK से communication के लिए इस्तेमाल की जाने वाली IPC structure, seL4 की संरचना जैसी है
- SK में उपयोग होने वाली strings में seL4 की कई concepts (जैसे capabilities, frames, untyped memory आदि) मिलती हैं
- Apple का April 2024 में seL4 Foundation से जुड़ना शायद संयोग नहीं है
- C1 processor (Apple का नया baseband chip) का kernel भी L4-आधारित लगता है
-
Secure World — ARM TrustZone?
- SepOS अलग processor पर चलता है, जबकि SK high-speed application processor पर चलता है
- इसके लिए अतिरिक्त processor privilege level की ज़रूरत होती है → संभव है कि इसे इनमें से किसी एक तरह लागू किया गया हो:
- virtualization extension support
- Apple का SPTM extension
- ARM TrustZone technology के उपयोग की संभावना सबसे अधिक है
- TrustZone architecture
- system को दो worlds में विभाजित करता है:
- Secure World – secure code execution
- Insecure World – सामान्य code execution (XNU और iOS यहीं चलते हैं)
- XNU source code में TrustZone के Secure World और Insecure World के बीच switching के कई references मिलते हैं
- Apple, TrustZone के प्रस्तावित Trusted Application model के बजाय exclave service model लागू करता है
- SK isolated environment में exclave services और resources प्रदान करता है → security मजबूत होती है
- Secure World से Insecure World में निकलकर XNU को compromise करना बहुत कठिन होने की उम्मीद है
- system को दो worlds में विभाजित करता है:
- RINGGATE
- संभावना है कि Apple, SPTM का उपयोग Secure World ↔ Insecure World transitions को manage करने के लिए करता हो
- code में इस transition को "RINGGATE" कहा गया है
निष्कर्ष
- exclave को अपनाने का महत्व
- उन्नत threat actors के लगातार हमलों का जवाब देने के लिए Apple ने exclave पेश किए हैं ताकि operating system की security level को मजबूत किया जा सके
- sensitive resources को isolate करने से ये प्रभाव अपेक्षित हैं:
- attack surface में कमी
- एकल kernel vulnerability के प्रभाव में कमी
- monolithic kernel की रक्षा एक अंतहीन चुनौती है, और exclave इसे हल करने का एक approach है
- लंबी अवधि में यह सही दिशा है या सिर्फ अस्थायी उपाय, यह स्पष्ट नहीं है
- व्यक्तिगत उम्मीद → भविष्य में CHERI और ARM Morello आधारित redesign देखने को मिले 😊
- लेकिन अभी के लिए यह consumer device manufacturers में सबसे बड़ा defensive प्रयास है
- इस लेख में यह स्पष्ट रूप से नहीं बताया गया कि कौन-से specific components exclave में शिफ्ट किए गए हैं
- build images के आधार पर लगता है कि निम्न तत्व exclave में चलते हैं:
- secure camera/microphone indicators
- Apple Neural Engine (ANE) features का कुछ हिस्सा
- कुछ device drivers
- Secure Enclave के साथ communication components
- build images के आधार पर लगता है कि निम्न तत्व exclave में चलते हैं:
- आगे और अधिक components के exclave में migrate होने की संभावना है
- exclave की security effectiveness इस migration work के optimization level पर निर्भर करेगी
- यह भी संभव है कि exclave, Apple Private Cloud Compute infrastructure में उपयोग किए जाएँ
- cloud-आधारित AI में high-level security और privacy guarantees संभव हो सकती हैं
1 टिप्पणियां
Hacker News राय