Rantai serangan 'Operation Triangulation'
- Mengirim lampiran iMessage berbahaya yang diproses oleh aplikasi tanpa sepengetahuan pengguna.
- Lampiran ini memanfaatkan kerentanan eksekusi kode jarak jauh CVE-2023-41990 pada perintah font ADJUST TrueType milik Apple yang tidak terdokumentasi.
- Menggunakan multi-tahap yang ditulis dengan return/jump-oriented programming serta bahasa kueri NSExpression/NSPredicate untuk menambal lingkungan library JavaScriptCore dan menjalankan eksploitasi eskalasi hak akses yang ditulis dalam JavaScript.
- Eksploitasi JavaScript dibuat sangat terobfuskasi hingga nyaris tidak dapat dibaca dan ukurannya diminimalkan. Sekitar 11.000 baris kode sebagian besar dialokasikan untuk parsing dan manipulasi memori JavaScriptCore serta kernel.
- Dengan memanfaatkan fitur debugging DollarVM($vm) milik JavaScriptCore, penyerang memperoleh kemampuan untuk memanipulasi memori JavaScriptCore dari skrip dan menjalankan fungsi API native.
- Dirancang untuk mendukung iPhone lama maupun baru, termasuk bypass Pointer Authentication Code(PAC) untuk mengeksploitasi kerentanan pada model terbaru.
- Memanfaatkan kerentanan integer overflow CVE-2023-32434 pada system call pemetaan memori XNU (
mach_make_memory_entry dan vm_map) untuk memperoleh akses baca/tulis ke seluruh memori fisik perangkat dari level pengguna.
- Menggunakan register memory-mapped I/O(MMIO) perangkat keras untuk melewati Page Protection Layer(PPL). Ini dimitigasi melalui CVE-2023-38606.
- Setelah semua kerentanan dimanfaatkan, eksploitasi JavaScript dapat melakukan operasi apa pun yang diinginkan pada perangkat. Alih-alih langsung menjalankan spyware, ia dapat menyuntikkan payload yang memulai proses IMAgent dan menghapus jejak eksploitasi dari perangkat, atau menjalankan proses Safari dalam mode tak terlihat untuk meneruskan ke halaman web tahap berikutnya.
- Halaman web tersebut memiliki skrip yang memverifikasi korban, dan jika lolos pemeriksaan akan menerima tahap berikutnya, yaitu eksploitasi Safari.
- Eksploitasi Safari menggunakan CVE-2023-32435 untuk menjalankan shellcode.
- Shellcode menjalankan eksploitasi kernel lain dalam bentuk berkas objek Mach. Ini menggunakan kerentanan yang sama, yaitu CVE-2023-32434 dan CVE-2023-38606. Ukurannya besar dan fungsinya luas, tetapi sepenuhnya berbeda dari eksploitasi kernel yang ditulis dalam JavaScript. Meski ada bagian terkait yang dibagikan oleh keduanya, sebagian besar kodenya dialokasikan untuk parsing dan manipulasi memori kernel. Ini mencakup berbagai utilitas pasca-intrusi, tetapi sebagian besar tidak digunakan.
- Eksploitasi tersebut memperoleh hak akses root dan menjalankan tahap lain untuk memuat spyware.
Misteri dan kerentanan CVE-2023-38606
- Model iPhone terbaru memiliki perlindungan keamanan tambahan berbasis perangkat keras untuk area sensitif pada memori kernel.
- Perlindungan ini mencegah penyerang mengambil alih perangkat sepenuhnya meskipun mereka dapat membaca dan menulis memori kernel.
- Penyerang melewati perlindungan keamanan berbasis perangkat keras ini dengan menggunakan fitur perangkat keras lain pada SoC yang dirancang Apple.
- Penyerang melewati perlindungan memori berbasis perangkat keras dengan menulis data, alamat tujuan, dan hash data ke register perangkat keras tak dikenal pada chip yang tidak digunakan oleh firmware.
- Fitur perangkat keras tak dikenal ini diduga dimaksudkan untuk digunakan oleh insinyur Apple atau di pabrik untuk keperluan debugging atau pengujian, atau bisa juga tersertakan secara tidak sengaja.
Detail teknis
- Berbagai periferal pada SoC menyediakan register perangkat keras khusus yang dapat digunakan CPU untuk mengoperasikan perangkat-perangkat ini.
- Register perangkat keras ini dipetakan ke memori yang dapat diakses CPU, dan dikenal sebagai "memory-mapped I/O(MMIO)".
- Rentang alamat MMIO periferal pada produk Apple(iPhone, Mac, dll.) disimpan dalam format berkas khusus bernama DeviceTree.
- Sebagian besar MMIO yang digunakan dalam serangan tidak termasuk dalam rentang MMIO mana pun yang didefinisikan di DeviceTree.
- Tidak jelas bagaimana penyerang mengetahui MMIO yang tidak digunakan firmware ini, atau periferal mana yang memiliki alamat MMIO tersebut.
- Register MMIO ini telah diidentifikasi sebagai milik koprosesor GPU.
- Penyerang menggunakan register MMIO ini untuk melewati Page Protection Layer(PPL) dan menambal entri tabel halaman.
- Metode perhitungan hash memungkinkan fitur perangkat keras yang digunakan dalam serangan melakukan operasi direct memory access(DMA) ke lokasi memori yang diminta.
Opini GN⁺
- Riset ini mengungkap rantai serangan yang sangat canggih terhadap iPhone. Ini merupakan temuan yang sangat penting bagi peneliti keamanan dan dapat berkontribusi pada penguatan keamanan produk Apple.
- Bagaimana penyerang mengetahui fitur perangkat keras yang tidak digunakan firmware masih menjadi misteri. Ini menekankan pentingnya riset keamanan perangkat keras.
- Tulisan ini menawarkan materi yang sangat menarik bagi orang-orang yang tertarik pada keamanan perangkat lunak dan perangkat keras. Metode serangan yang sangat kompleks serta proses analisisnya menunjukkan kedalaman dan pentingnya riset keamanan.
1 komentar
Opini Hacker News
Hal yang mengejutkan tentang penyalahgunaan MMIO
Ringkasan Twitter Steve Weis
Penjelasan tentang Coresight
Spekulasi tentang kemungkinan menemukan register MMIO
Pertanyaan tentang penggunaan hash pada fitur debug chip
Pengamatan tentang karakteristik algoritma hash
Kekaguman terhadap upaya para penyerang
Penjelasan tentang fitur yang dimanfaatkan penyerang
Pentingnya kerentanan yang baru ditemukan