- Exclaves dari Apple adalah fitur isolasi yang bertujuan tetap menyimpan sebagian resource sensitif di area terpisah meskipun kernel XNU berhasil dikompromikan; sebagian strukturnya terungkap lewat rilis source XNU untuk M4 dan A18
- XNU berbasis Mach, tetapi fungsi sistem nyata terkumpul dalam lingkup privilege yang sama sehingga berperilaku seperti kernel monolitik; Exclaves berada di atas alur defence-in-depth yang berlanjut dari Secure Enclave, PPL, hingga SPTM
- Exclaves tersusun dari domain dan resource yang didefinisikan saat boot, dan melindungi shared memory buffer, audio buffer, sensor, Conclave, layanan, dan lainnya dari XNU melalui tipe page baru milik SPTM
- Secure Kernel(SK) berjalan pada application processor yang sama dengan XNU; dari petunjuk source, ada kemungkinan penggunaan keluarga seL4 dan ARM TrustZone secure world, tetapi sebagian besar implementasi internalnya tidak dipublikasikan
- Efek keamanan sebenarnya bergantung pada komponen apa saja yang dipindahkan ke Exclaves; image build saat ini mengindikasikan penggunaan untuk indikator keamanan kamera/mikrofon, sebagian Apple Neural Engine, beberapa driver, dan komponen komunikasi Secure Enclave
Kernel monolitik dan alur penguatan isolasi Apple
- Sistem operasi modern biasanya berjalan dengan dua domain proteksi, yaitu user mode dan kernel mode
- Aplikasi tidak dapat langsung melakukan operasi berprivilege tinggi seperti akses file atau komunikasi jaringan, dan harus memintanya ke kernel melalui system call
- Kernel memeriksa hak akses, lalu mengembalikan hasil seperti handle yang merepresentasikan file yang dibuka ke user mode
- Sebagian besar sistem operasi menggunakan struktur kernel monolitik, dan kernel memiliki hak akses tak terbatas ke hardware, memori, dan seluruh data pengguna
- Semakin besar kernel, semakin besar pula kemungkinan munculnya vulnerability
- Eksploitasi vulnerability kernel dapat berujung pada kompromi seluruh sistem
- Microkernel dapat meningkatkan isolasi keamanan dengan mengurangi fungsi internal kernel dan memindahkan sebagian besar pekerjaan ke proses non-privileged terpisah
- Masalah performa dan meningkatnya kompleksitas software aplikasi tetap menjadi kekurangannya
- XNU, yang digunakan bersama oleh iOS, macOS, tvOS, visionOS, dan watchOS, berbasis microkernel Mach, tetapi dalam implementasinya banyak fungsi sistem berada dalam lingkup privilege yang sama sehingga pada praktiknya berperilaku seperti kernel monolitik
Isolasi keamanan Apple sebelum Exclaves
- Pada 2013, Secure Enclave diperkenalkan di iPhone 5s
- OS berbasis microkernel bernama SepOS berjalan pada core CPU hardened khusus
- Kernel SepOS adalah cL4, versi kustom Apple dari L4-embedded
- Digunakan untuk melindungi kunci kriptografi dan informasi biometrik seperti Face ID
- Meskipun kernel iOS dikompromikan, umumnya Secure Enclave sendiri tidak terdampak tanpa exploit tambahan yang menargetkan Secure Enclave
- Secure Enclave dan Secure Exclaves adalah target yang berbeda
- Pada iPhone 8 dan iPhone X berbasis A11 tahun 2017, Page Protection Layer(PPL) diperkenalkan
- Hanya sebagian kernel diberi hak untuk mengubah memory page table, sementara bagian kernel lainnya tidak dapat mengubahnya secara langsung
- Karena attack surface kecil, bypass jarang terjadi, tetapi bagian kernel lainnya masih mempertahankan banyak privilege yang diperlukan untuk kompromi data
- Pada A15 dan iOS 17 periode 2021–2023, Secure Page Table Monitor(SPTM) menggantikan dan menyempurnakan PPL
- Melindungi fungsi memori tambahan dan mengisolasi pada unit komponen kernel kecil
- Verifikasi code signing untuk memeriksa apakah kode ditandatangani Apple juga dipisahkan
- Pada periode ini, referensi tidak langsung ke exclaves muncul di source XNU, dan saat itu diperkirakan sebagai subsistem yang dikelola SPTM
Munculnya XNU Exclaves pada 2024
- Rilis source XNU yang mendukung sistem berbasis M4 dan A18 mengungkap sebagian struktur Exclaves
- Sistem seperti iPhone 16 menjadi targetnya
- Pada prosesor sebelumnya, Exclaves tidak diaktifkan
- Exclaves merujuk pada resource yang dipisahkan dari XNU, dan dirancang sebagai area yang tetap terlindungi meskipun kernel dikompromikan
- Resource didefinisikan terlebih dahulu saat OS build
- Diidentifikasi dengan nama atau ID
- Memiliki tipe dan diinisialisasi saat boot
- Disusun sebagai domain-domain unik
- SPTM melindungi memori Exclave dari XNU melalui tipe page khusus Exclave
- Tipe resource yang teridentifikasi menunjukkan di mana batas antara XNU dan Exclave terbentuk
- Shared memory buffer yang dapat diakses bersama oleh XNU dan Exclave
- Dari sudut pandang XNU, dapat disetel sebagai read-only atau read-write
- Audio buffer dan sensor yang digunakan untuk keamanan fitur seperti indikator akses kamera/mikrofon
- Conclave dan Conclave Manager yang mengikat beberapa resource ke dalam domain keamanan tersendiri
- Layanan yang dapat mengeksekusi kode di ruang Exclave saat dipanggil oleh thread XNU
- Shared memory buffer yang dapat diakses bersama oleh XNU dan Exclave
Secure Kernel dan secure world
- Agar layanan Exclave berjalan dalam kondisi terisolasi dari XNU, Apple memperkenalkan Secure Kernel(SK)
- File image SK memuat string versi “cL4”
- Struktur IPC tampak lebih dekat ke seL4 daripada L4-embedded milik SepOS cL4 asli
- Dalam string SK, istilah keluarga seL4 seperti capability, frame, untyped memory, dan minting sering muncul
- Apple mengumumkan bergabung dengan seL4 Foundation pada April 2024
- Berbeda dari SepOS yang berjalan pada prosesor khusus, SK berjalan pada application processor berkecepatan tinggi yang sama dengan XNU/iOS
- Struktur ini memerlukan level privilege prosesor tambahan, dan kemungkinan basisnya mencakup ekstensi virtualisasi, fungsi tambahan SPTM milik Apple, serta ARM TrustZone
- Source XNU memiliki referensi terkait perpindahan ke secure world milik TrustZone
- Strukturnya ditafsirkan sebagai XNU dan iOS berjalan di insecure world, sedangkan SK berjalan di secure world
- SK menyediakan lingkungan operasi terbatas untuk Exclave, resource, dan layanan
- Berbeda dari pola desain Trusted Applications yang diusulkan ARM
- Karena attack surface layanan Exclave dan Secure Kernel terbatas, kemungkinan keluar dari secure world lalu mengompromikan XNU jauh lebih sulit daripada menyerang XNU secara langsung dari insecure world
- Dalam source XNU, perpindahan ke secure world disebut RINGGATE
- Bagian bahwa SPTM dapat mengelola perpindahan ini masih sebatas dugaan, dan area terkait bukan open source sehingga memerlukan analisis binary
Domain, resource, Conclave
- XNU menginisialisasi struktur tabel kernel dua tingkat untuk memuat informasi resource Exclave yang ditemukan saat boot
root_tablemengidentifikasi domain berdasarkan nama- Tiap domain merujuk ke tabel tingkat kedua yang memuat resource milik domain tersebut
- Struktur domain yang teridentifikasi adalah sebagai berikut
com.apple.kernel- Mencakup Conclave launcher, layanan debug, ExclaveIndicatorController untuk indikator keamanan, layanan log, FrameMint yang digunakan untuk boot ExclaveKit, dan lainnya
- Juga mencakup shared memory buffer
com.apple.storage.backendyang digunakan layanan Exclave untuk melakukan file I/O di ruang XNU melalui upcall - Mencakup resource Conclave Manager, satu untuk tiap Conclave
com.apple.darwin- Tidak ada kasus penggunaan pada komponen open source
com.apple.conclave.name- Terdapat satu domain untuk tiap Conclave
- Dapat mencakup layanan, audio buffer, shared memory buffer, dan lainnya
com.apple.driver.*name*- Disebut ada sebagai domain per device driver berdasarkan komentar, tetapi tidak benar-benar terkonfirmasi dalam kode open source
- Conclave adalah tipe resource yang dapat memuat beberapa resource, sekaligus unit keamanan yang membuat layanan dan resource memiliki akses bersama satu sama lain
- Mach task dibatasi pada Conclave yang dapat dipanggilnya
- Tiap Conclave memiliki Conclave Manager yang berada di domain kernel
- Conclave memiliki lifecycle seperti attach, launch, stop, detach
- Terdapat juga status transisi seperti launching dan stopping
Pembuatan, koneksi, dan eksekusi Conclave
posix_spawn()milik XNU dapat memanggiltask_add_conclave()untuk menghubungkan task dengan resource Conclave Manager- Relasinya 1:1
- Satu task hanya terhubung ke satu Conclave Manager, dan sebaliknya juga sama
- Pihak yang dapat melakukan spawn Conclave adalah launchd atau task yang memiliki entitlement
com.apple.private.exclaves.conclave-spawn- Entitlement
com.apple.private.exclaves.conclave-hostditafsirkan lebih dekat sebagai hak untuk meng-attach dirinya sendiri daripada men-spawn task baru
- Entitlement
- Kernel mencari resource Conclave Manager yang terhubung ke Conclave target di domain
com.apple.kernel- Setelah itu, endpoint Tightbeam yang mengarah ke endpoint Conclave Manager disimpan dalam struct resource Conclave
- Tightbeam tampaknya merupakan framework RPC untuk komunikasi antar komponen Exclave
- Eksekusi Conclave harus dilakukan dari task Conclave Manager yang terhubung
- Percobaan launch menunggu hingga Exclaves sepenuhnya boot sampai status
EXCLAVES_BS_BOOTED_EXCLAVEKIT - Mach trap baru masuk melalui fungsi
_exclaves_ctl_trap(), danEXCLAVES_CTL_OP_LAUNCH_CONCLAVEdigunakan untuk menjalankan Conclave - Di lingkungan production, host Conclave yang di-launch dapat menjadi berstatus tainted, dan setelah itu
exit()dapat menyebabkan kernel panic
- Percobaan launch menunggu hingga Exclaves sepenuhnya boot sampai status
Mach trap baru untuk Exclaves
_exclaves_ctl_trap()adalah Mach trap baru yang menangani fungsi Exclave- Melakukan berbagai tindakan sesuai parameter operation
- Umumnya memverifikasi entitlement yang diperlukan untuk operation yang dipanggil
EXCLAVES_CTL_OP_BOOTdipanggil dua kali selama boot sistem- Memulai Exclaves boot stage 2
- Boot ExclaveKit
- Pemanggilnya harus launchd atau memiliki entitlement
com.apple.private.exclaves.boot
- Operation utama lainnya setidaknya mensyaratkan task saat ini memiliki entitlement
com.apple.private.exclaves.kernel-domainatau merupakan task Conclave Manager terkaitEXCLAVES_CTL_OP_LOOKUP_SERVICES: mencari layanan di domain Exclave milik task saat ini, dan jika gagal memeriksa domain Darwin dan domain kernel sesuai hak aksesEXCLAVES_CTL_OP_ENDPOINT_CALL: memanggil endpoint layanan Exclave di domain task saat ini sehingga thread saat ini berpindah ke secure world dan mengeksekusi kode tertentu- Pembuatan named buffer dan copyin/copyout
- Pembuatan audio buffer dan copyout
- Pembuatan sensor, start, stop, status
- Lookup notification resource
Downcall dan Upcall
- Downcall adalah pemanggilan endpoint layanan Exclave yang berada di secure world, dan menjadi titik dimulainya eksekusi kode secure world
- Downcall memindahkan thread saat ini ke secure world dan memulai eksekusi dari entry point secure code
- Bukan mekanisme menyerahkan pekerjaan ke thread lain
- Task pemanggil harus memiliki entitlement kernel domain atau merupakan task Conclave Manager yang terhubung ke Conclave layanan tersebut
- Conclave memiliki hingga 128 layanan yang dapat dipanggil
- XNU tampaknya menjadwalkan thread ke Secure Kernel melalui
sk_enter()- Ada kemungkinan SK tidak memiliki thread independen, dan XNU menangani seluruh penjadwalan thread secure world
- Thread yang sedang berjalan di secure world dapat melakukan operasi scheduler umum seperti yield, wait, suspend, interrupt
- Dalam kasus ini, thread meninggalkan secure world dan kembali ke konteks kernel XNU, lalu kemudian dijadwalkan kembali ke secure world oleh kode scheduling Exclave
- Struktur IPC Downcall disiapkan sebagai buffer request-response sebelum masuk ke secure world
- Interrupt dan preemption dinonaktifkan saat menyiapkan struktur IPC request akhir dan memanggil
sk_enter() - Sebab struktur ini hanya ada satu per CPU core
- Response Downcall dapat kembali melalui per-core response buffer di CPU lain akibat interupsi, upcall, yield, atau rescheduling
- Interrupt dan preemption dinonaktifkan saat menyiapkan struktur IPC request akhir dan memanggil
- Upcall adalah cara thread yang sedang berjalan di secure world memanggil Exclaves upcall handler melalui Tightbeam saat membutuhkan bantuan XNU
- Dibatasi hanya pada fungsi XNU tertentu yang diizinkan
- Thread yang sedang melakukan upcall tidak dapat kembali ke user mode
- Melakukan downcall lagi ke secure world untuk re-entry juga tidak diizinkan
- Thread harus kembali ke konteks secure world pada titik tempat upcall dilakukan
- Kategori upcall yang terkonfirmasi dari source adalah memori, file storage, DriverKit, DriverKit Apple Neural Engine, dan kontrol Conclave
XNUProxy dan tahap boot
- Ada banyak referensi ke XNUProxy, tetapi lokasi dan perannya yang tepat belum dipastikan
- Bisa jadi domain Exclave independen
- Bisa jadi layanan atau kumpulan layanan di domain
com.apple.kernelyang menangani downcall tertentu - Bisa juga merupakan subsistem SPTM yang melakukan downcall ke secure world
- Komentar di
Exclaves_L4.hmenyebutkan bahwa XNU Proxy membuat beberapa Exclave menjadi reachable- Template user app
- Audio driver
- ExclaveDriverKit
- SecureRTBuddy untuk Always On Processor dan Display Coprocessor
- Conclave control, Conclave debug, dan lainnya
- Boot Exclaves membutuhkan koordinasi antara insecure world dan secure world, dan jika terjadi masalah biasanya berujung pada
panic() - Boot dibagi menjadi tiga tahap
- Stage 1 tidak terlihat di open source, dan kemungkinan merupakan proses secure boot yang memuat SK ke memori, memverifikasi code signing, lalu membuatnya dapat dieksekusi
- Stage 2 melakukan inisialisasi upcall server, pengumpulan informasi boot secure kernel, inisialisasi Exclave scheduler, inisialisasi kext XrtHostedXNU, inisialisasi multicore, inisialisasi XNU Proxy, penemuan static Exclave resource, pembuatan endpoint Conclave Manager, dan lainnya
- Stage 3 mencari layanan
com.apple.service.FrameMint, melakukan pemanggilan terkaitframemint_framemint__init(),framemint_framemint_populate(), lalu masuk ke statusEXCLAVES_BS_BOOTED_EXCLAVEKIT
Tipe memori SPTM dan batasan yang tersisa
- SPTM menetapkan tipe pada memory page untuk kontrol akses per subsistem
- Tipe yang sudah ada mencakup
XNU_USER_EXEC,XNU_USER_DEBUG,XNU_USER_JIT,XNU_ROZONE,XNU_KERNEL_RESTRICTED, tipe terkait TXM dan DART, dan lainnya
- Tipe yang sudah ada mencakup
- Exclaves menambahkan tipe baru terkait SK
SK_DEFAULT: khusus SK, tidak dapat diakses XNUSK_IO: khusus SK, tidak dapat diakses XNUSK_SHARED_RO: dibagikan antara SK dan XNU, tetapi XNU hanya read-onlySK_SHARED_RW: dibagikan antara SK dan XNU, dan XNU dapat read-write
- Exclaves dapat dilihat sebagai investasi besar untuk menambahkan defence in depth pada sistem operasi Apple
- Mengurangi potensi attack surface dengan mengisolasi resource sensitif
- Arahnya adalah menurunkan dampak dari kompromi kernel tunggal
- Komponen apa yang benar-benar dipindahkan dari kernel ke Exclaves belum dianalisis secara langsung
- Image build mengindikasikan penggunaan untuk indikator keamanan kamera/mikrofon, sebagian fungsi Apple Neural Engine, beberapa device driver, dan komponen yang berkomunikasi dengan Secure Enclave
- Ke depannya lebih banyak komponen dapat dipindahkan ke Exclaves
- Area XNU di luar Exclaves tetap menjadi target serangan
- Analisis ini berbasis Apple Open Source XNU build 11215
- Lokasi tepat ExclaveKit, ExclaveDriverKit, XNUProxy, cara XNU berpindah ke secure world, Secure Kernel, serta secure world userspace masih menjadi area yang memerlukan analisis tambahan
1 komentar
Opini Hacker News
SoC ponsel dan laptop Apple belakangan ini menyertakan dukungan hardware untuk nested virtualization, termasuk M4 iPad Pro yang menggunakan exclave untuk LED kamera
Saya berharap revisi berikutnya dari panduan Apple Platform Security akan membahas SK exclave dan mitigasi baseband untuk deteksi radar Wi‑Fi: https://help.apple.com/pdf/security/en_US/apple-platform-sec...
Untuk fitur tambahan SPTM Apple, ada juga tulisan reverse engineering SPTM: https://www.df-f.com/blog/sptm3
XNU sedang direfaktor menjadi struktur yang terinspirasi dari microkernel, dengan arah mengurangi basis kode sekaligus memindahkan pekerjaan yang sensitif terhadap keamanan ke luar. Isolasi ruang memori dibantu oleh Secure Page Table Monitor (SPTM), sementara pekerjaan seperti penandatanganan kode, verifikasi hak akses, Developer Mode, dan Restricted Execution Mode ditangani oleh Trusted eXecution Monitor (TXM)
Ada lebih dari 150 CVE terkait TrustZone: https://www.cve.org/CVERecord/SearchResults?query=trustzone
Google juga beberapa tahun lalu mengimplementasikan pKVM yang menggunakan hardware nested virtualization di Pixel, dan bahkan memasukkan ke mainline Linux kode untuk menurunkan privilege TrustZone secara kooperatif dibandingkan pKVM L0. Namun, selain VM Debian “Linux Terminal”, mereka belum mengumumkan fitur pertahanan yang memanfaatkan pKVM/AVF
Awalnya ia menduga penggunaan TrustZone, tetapi exclave tampaknya juga bisa memakai level privilege SPTM dan GXF (Guarded Execution) yang sudah ada. Jika demikian, selain kebutuhan RAM dan upaya pengembangan, mungkin tidak ada alasan mendasar mengapa ini tidak bisa didukung di iPhone 13 ke atas. Tentu saja, jelas ini tetap pekerjaan yang sangat besar bahkan bagi Apple
Steve tampaknya sungguh-sungguh percaya bahwa “laptop adalah buku harian pribadi” dan Apple bertanggung jawab untuk melindunginya
Rasanya Tim juga tidak akan menjadi CEO jika ia tidak memiliki keyakinan yang sama dengan Steve. Kedengarannya aneh, tetapi saya benar-benar merindukan Steve
https://www.youtube.com/watch?v=Ij-jlF98SzA
Saya juga tidak suka cara Apple mengendalikan perangkat dan pasar software bahkan setelah kepemilikan perangkat berpindah tangan. Saya benar-benar menghindari ekosistem seperti ini, dan tidak mengerti mengapa begitu banyak yang disebut “hacker” begitu antusias pada sistem yang kap mesinnya dilas tertutup
Banyak hal yang pernah dikatakan Jobs masih terasa relevan. Baru-baru ini Apple merilis screensaver “classic Mac”, yang menunjukkan betapa cermatnya GUI Mac asli dirancang. Mungkin tidak ada yang merindukan masa ketika bug aplikasi bisa mematikan sistem operasi, tetapi saya berharap Apple masih terobsesi pada detail seperti saat itu
Kalau agak terus terang, tampaknya ada unsur mistis atau religius di dalamnya. Terasa seperti kerinduan akan pria penyayang bak dewa yang akan memberikan mukjizat, wahyu, produk dan ritual yang indah, serta masa depan yang mulus, makmur, dan abadi. Seperti ada semacam “lubang” spiritual yang terisi
Saya tidak bermaksud merendahkan orang yang menyukai Jobs atau LLM; ini hanya berbagi pengamatan
Thread terkait: “Apple rearranged its XNU kernel with exclaves” https://news.ycombinator.com/item?id=43314171
Disebutkan juga bahwa tidak jarang rilis minor macOS memuat fitur untuk mempersiapkan versi mayor berikutnya, dan exclave mungkin merupakan fitur paling mendasar dan penting yang ditambahkan ke Sonoma 14.4, iOS 17.4, iPadOS 17.4, dan watchOS 10.4
https://eclecticlight.co/2024/08/20/sonomas-unfinished-busin...
Menggunakan security exclave untuk mengendalikan LED kamera fisik cukup mengejutkan, dan terlihat seperti desain yang terlalu rumit untuk tugas yang sederhana
Rasanya cukup dengan menaruh logika hardware khusus yang sangat kecil di modul kamera. Gate input/output digital atau daya kamera, lalu tambahkan pulse stretcher agar LED selalu menyala setidaknya beberapa detik setiap kali, untuk mencegah serangan yang menyalakan dan mematikan logika kamera dengan cepat
Akan bagus juga jika mikrofon punya rangkaian serupa dan LED fisik dengan warna berbeda. Titik yang ditampilkan secara software di layar saja tidak cukup
Driver LED juga perlu mengetahui kecerahan layar atau informasi sensor cahaya sekitar. LED harus cukup terang agar terlihat di bawah sinar matahari langsung, tetapi tingkat kecerahan itu bisa mengganggu di lingkungan gelap dan bahkan menghambat penggunaan kamera secara normal
Jika kita percaya bahwa SK aman, memakai itu akan lebih sederhana sekaligus bisa bekerja lebih baik. Kalau SK dianggap tidak aman, semua asumsi memang sudah runtuh
Apple umumnya tidak sengaja membuat sesuatu menjadi rumit tanpa alasan yang sah
https://news.ycombinator.com/item?id=42260379
Saya penasaran siapa penulis tulisan ini. Tulisannya sangat cermat dan bagus, dan bahkan bagi yang mengikuti perkembangan exclave, rangkumannya tersusun dengan baik
Saya penasaran bagaimana ini dibandingkan dengan Virtualization Based Security di Linux
Menurut halaman yang berisi videonya, fitur keamanan ini dapat memperkuat kernel dan memastikan resource kernel penting tidak dapat diubah meskipun kernel disusupi. VBS menggunakan virtualisasi hardware dan Hyper‑V sebagai hypervisor untuk membuat lingkungan virtual terisolasi yang berjalan pada tingkat kepercayaan lebih tinggi, yaitu Virtual Trust Level 1(VTL1), dan VTL1 memiliki kernelnya sendiri yang terpisah dari kernel Guest, yaitu Secure Kernel
https://lssna24.sched.com/event/1aIeD/linux-virtualization-b...
Exclave penting, tetapi tampak seperti tahap perantara. Apple sedang membuat XNU menjadi lebih kecil risikonya, tetapi alih-alih sepenuhnya menerima arsitektur microkernel, mereka masih bergerak secara defensif
Kalau harus bertaruh, exclave sepertinya adalah jembatan menuju perubahan yang lebih besar. Bisa jadi sistem operasi yang lebih modular seperti Fuchsia, atau model keamanan ala CHERI yang memaksakan memory safety di tingkat hardware
Apple memang memimpin dalam keamanan sistem operasi konsumen, tetapi exclave lebih terasa seperti perbaikan tambal-sulam daripada hasil dari pemikiran ulang total atas desain sistem. Meski begitu, ini kemungkinan merupakan perubahan keamanan terbesar dalam desain sistem operasi arus utama selama 10 tahun terakhir, dan butuh beberapa tahun sampai dampak penuhnya terlihat
Saat Mach dibuat, keamanan belum menjadi perhatian sebesar sekarang. Karena mesin saat ini sudah sangat kencang, overhead dari komunikasi antarproses microkernel mungkin sudah dapat diabaikan
Saya tidak terbiasa dengan materi di level ini, tetapi sekilas terlihat seolah-olah seseorang bisa menyerang enclave itu sendiri lalu naik ke privilege yang lebih tinggi daripada kernel. Saya penasaran apakah potongan hardware ini semacam koprosesor
Jadi kalau ini dieksploitasi, benar bahwa penyerang akan mendapatkan hak akses yang tidak dimiliki kernel. Namun justru itulah maksudnya. Tujuannya adalah agar meskipun kernel dibobol, area sensitif itu tetap tidak bisa diakses
Menurut dokumentasi Apple, SPTM tidak digunakan, jadi saya penasaran apa dampaknya terhadap keamanan macOS: https://support.apple.com/guide/security/operating-system-in...
Untuk saat ini, exclave yang sudah ada seperti untuk menampilkan indikator kamera sepertinya tidak terlalu berlaku di macOS karena MacBook memiliki hardware khusus. Namun ke depannya bisa saja ada exclave yang juga berlaku untuk macOS
Jadi itu bukan berarti macOS tidak memakai SPTM. Artinya macOS tidak memakai SPTM untuk memblokir eksekusi kode yang tidak ditandatangani. Karena macOS harus tetap memungkinkan pengguna menjalankan kode yang tidak ditandatangani setelah melewati beberapa langkah
Bertanya-tanya apakah pengembang aplikasi bisa menggunakan Exclave. Yang membuat kesal adalah Apple kadang membuat fitur baru yang luar biasa secara internal, lalu menutupnya sepenuhnya bagi pengembang. Akibatnya, hal-hal seperti aplikasi perbankan, dompet, dan messenger aman harus terus berjalan di user space yang keamanannya lebih lemah
Sebagai contoh sederhana, macOS belakangan ini menjalankan semua aplikasi di dalam sandbox meskipun aplikasi tersebut tidak secara eksplisit memilihnya. Sandbox ini mencegah aplikasi memodifikasi file milik satu sama lain, yang sebelumnya merupakan kelemahan besar dalam sistem keamanan. Sebab, tanda tangan bundle hanya diperiksa saat pertama kali dijalankan, bukan pada setiap eksekusi
Saat ini strukturnya juga kernel-ke-kernel, jadi kalaupun ada dukungan pihak ketiga, kemungkinan besar akan terbatas pada implementasi semacam driver perangkat keamanan. Namun Apple selama ini berupaya mendorong driver pihak ketiga ke user space, bukan ke hypervisor. Melihat transisi ini berjalan beriringan dengan pengembangan exclave, tampaknya Apple tidak akan beralih ke arah yang membuat pengembang driver pihak ketiga menggunakan exclave
Sudah umum bagi Apple untuk menstabilkan fitur platform yang dipaksakan oleh kernel seperti ini jauh lebih matang secara internal sebelum membukanya ke pihak luar. Pointer authentication pada arm64e juga contoh yang mirip