'Operation Triangulation' अटैक चेन
- एक malicious iMessage attachment भेजा जाता है, जिसे यूज़र की जानकारी के बिना application में प्रोसेस किया जाता है.
- यह attachment undocumented, Apple-specific ADJUST TrueType font instruction की remote code execution vulnerability CVE-2023-41990 का उपयोग करता है.
- return/jump-oriented programming और NSExpression/NSPredicate query language में लिखे गए multi-stage steps का उपयोग करके JavaScriptCore library environment को patch किया जाता है और JavaScript में लिखा privilege escalation exploit चलाया जाता है.
- JavaScript exploit पूरी तरह से unreadable obfuscation के साथ है और इसका आकार न्यूनतम रखा गया है. लगभग 11,000 lines का कोड मुख्यतः JavaScriptCore और kernel memory parsing तथा manipulation के लिए समर्पित है.
- JavaScriptCore की debugging feature DollarVM($vm) का उपयोग करके script से JavaScriptCore की memory को manipulate करने और native API functions को execute करने की क्षमता हासिल की जाती है.
- इसे पुराने और नए दोनों iPhone मॉडल्स को support करने के लिए डिज़ाइन किया गया है, और नए मॉडल्स की vulnerability का फायदा उठाने के लिए Pointer Authentication Code(PAC) bypass भी शामिल है.
- XNU के memory mapping system calls (mach_make_memory_entry और vm_map) में integer overflow vulnerability CVE-2023-32434 का उपयोग करके user level पर device की पूरी physical memory के लिए read/write access हासिल किया जाता है.
- hardware memory-mapped I/O(MMIO) registers का उपयोग करके Page Protection Layer(PPL) को bypass किया जाता है. इसे CVE-2023-38606 द्वारा mitigate किया गया.
- सभी vulnerabilities का उपयोग करने के बाद JavaScript exploit device पर मनचाहा काम कर सकता है. spyware चलाने के बजाय यह IMAgent process शुरू करता है और ऐसा payload inject करता है जो device से exploit के निशान मिटा दे, या Safari process को invisible mode में चलाकर अगले stage वाले web page पर भेज देता है.
- web page में victim की पहचान करने वाली script होती है, और जाँच पास होने पर अगला stage यानी Safari exploit दिया जाता है.
- Safari exploit CVE-2023-32435 का उपयोग करके shellcode execute करता है.
- shellcode Mach object file के रूप में एक और kernel exploit चलाता है. यह CVE-2023-32434 और CVE-2023-38606 जैसी ही vulnerabilities का उपयोग करता है. आकार और functionality के लिहाज़ से यह बहुत बड़ा है, लेकिन JavaScript में लिखे kernel exploit से पूरी तरह अलग है. संबंधित हिस्से दोनों exploits में साझा हैं, लेकिन अधिकतर कोड kernel memory parsing और manipulation के लिए समर्पित है. इसमें कई post-compromise utilities शामिल हैं, हालांकि उनमें से अधिकांश का उपयोग नहीं होता.
- exploit root privileges हासिल करता है और spyware लोड करने के लिए अन्य stages चलाता है.
रहस्य और CVE-2023-38606 vulnerability
- हाल के iPhone models में kernel memory के sensitive क्षेत्रों के लिए अतिरिक्त hardware-based security protection मौजूद है.
- यह protection इस बात को रोकती है कि हमलावर kernel memory को पढ़ और लिख सकें, फिर भी device का पूरा control न ले सकें.
- हमलावर Apple द्वारा डिज़ाइन किए गए SoC की एक दूसरी hardware feature का उपयोग करके इस hardware-based security protection को bypass करते हैं.
- हमलावर data, destination address और data hash को chip के उन unknown hardware registers में लिखकर hardware-based memory protection को bypass करते हैं, जिनका firmware में उपयोग नहीं होता.
- अनुमान है कि यह unknown hardware feature शायद Apple engineers या factory में debugging या testing के लिए intended था, या फिर गलती से शामिल रह गया.
तकनीकी विवरण
- SoC में मौजूद विभिन्न peripherals ऐसे special hardware registers प्रदान करते हैं जिनका उपयोग CPU इन devices को operate करने के लिए कर सकता है.
- ये hardware registers उस memory में mapped होते हैं जिसे CPU access कर सकता है, और इसे "memory-mapped I/O(MMIO)" कहा जाता है.
- Apple products (iPhone, Mac आदि) के peripheral MMIO address ranges DeviceTree नामक विशेष file format में संग्रहीत होते हैं.
- अटैक में उपयोग किए गए अधिकांश MMIO, DeviceTree में परिभाषित किसी भी MMIO range का हिस्सा नहीं हैं.
- हमलावरों ने firmware में उपयोग न होने वाले MMIO का पता कैसे लगाया, और ये MMIO addresses किस peripheral से संबंधित हैं, यह स्पष्ट नहीं है.
- यह पुष्टि हुई है कि ये MMIO registers GPU coprocessor से संबंधित हैं.
- हमलावरों ने इन MMIO registers का उपयोग Page Protection Layer(PPL) को bypass करने और page table entries को patch करने के लिए किया.
- hash calculation का तरीका अटैक में उपयोग की गई hardware feature को requested location पर direct memory access(DMA) operation करने देता है.
GN⁺ की राय
- यह शोध iPhone को लक्ष्य बनाने वाली एक अत्यंत परिष्कृत अटैक चेन को उजागर करता है. यह security researchers के लिए बहुत महत्वपूर्ण खोज है और Apple products की security मजबूत करने में योगदान दे सकती है.
- हमलावरों ने firmware में उपयोग न होने वाली hardware feature का पता कैसे लगाया, यह अब भी एक रहस्य है. यह hardware security research के महत्व को रेखांकित करता है.
- यह लेख software और hardware security में रुचि रखने वालों के लिए बेहद दिलचस्प सामग्री प्रदान करता है. अत्यधिक जटिल attack methods और उनका analysis, security research की गहराई और आवश्यकता को दिखाते हैं.
1 टिप्पणियां
Hacker News राय
MMIO के दुरुपयोग पर हैरानी
Steve Weis का Twitter सारांश
Coresight के बारे में व्याख्या
MMIO register खोजे जाने की संभावना पर अटकल
chip debugging feature में data hash के उपयोग पर सवाल
hash algorithm की विशेषताओं पर टिप्पणी
हमलावरों की मेहनत पर आश्चर्य
हमलावरों द्वारा उपयोग किए गए फीचर पर व्याख्या
नई खोजी गई vulnerability के महत्व पर टिप्पणी