Tentang Apple Exclaves
(randomaugustine.medium.com)Masalah pada kernel sistem operasi monolitik
- Sistem operasi modern umumnya dibagi menjadi dua domain perlindungan utama:
- Domain non-istimewa (mode pengguna): program tidak dapat langsung melakukan operasi kuat seperti akses file atau komunikasi jaringan
- Domain istimewa (mode kernel): ketika program meminta kernel menjalankan suatu tugas melalui system call, kode kernel menjalankan tugas tersebut lalu mengembalikan hasilnya ke mode pengguna
- Sebagian besar sistem operasi menggunakan desain kernel monolitik:
- Kernel memiliki hak akses tanpa batas ke seluruh perangkat keras, memori, dan data pengguna di sistem
- Ini tidak masalah jika perangkat lunak bebas cacat dan tidak ada upaya pelanggaran keamanan, tetapi pada praktiknya bug dan kerentanan keamanan memang ada
- Karena ukuran kernel monolitik besar, kemungkinan munculnya kerentanan keamanan lebih tinggi, dan satu kerentanan saja dapat berisiko merusak seluruh sistem
- Desain mikrokernel memperkuat keamanan dengan menghapus sebagian besar fungsi dari kernel dan menanganinya sebagai proses non-istimewa terpisah:
- Dapat memperkuat keamanan
- Dapat menimbulkan penurunan performa dan peningkatan kompleksitas perangkat lunak aplikasi
- Meski begitu, kernel monolitik tetap luas digunakan karena keunggulan performanya
- Kernel XNU milik Apple:
- Kernel yang digunakan bersama di iOS, macOS, tvOS, visionOS, dan watchOS
- Merupakan mikrokernel berbasis Mach, tetapi karena sebagian besar fungsi sistem berjalan dalam cakupan istimewa yang sama, pada praktiknya ia bekerja seperti kernel monolitik
- Karena itu, kerentanan keamanan yang sama seperti pada kernel monolitik juga dapat muncul
Upaya isolasi
- Berbagai teknologi isolasi berbasis perangkat lunak dan perangkat keras telah dicoba:
- Microsoft Virtualisation-based Security (VBS) – digunakan di Credential Guard pada Windows
- Intel Software Guard Extension (SGX) dan VT-X2
- ARM TrustZone – digunakan di Samsung Knox, Samsung Pay, Android Verified Boot, keamanan input PIN Android, dan lainnya
Apple juga secara bertahap memperluas upaya memisahkan data dari kernel
-
2013 — Apple Secure Enclave
- Pertama kali diperkenalkan pada iPhone 5s tahun 2013
- Secure Enclave berjalan pada inti CPU independen yang diperkeras, dan beroperasi di atas OS berbasis mikrokernel SepOS
- Kernel SepOS menggunakan cL4, mikrokernel embedded L4 kustom milik Apple
- Menyimpan dan melindungi data sensitif seperti kunci kriptografi dan informasi biometrik (misalnya Face ID)
- Beroperasi secara independen dari kernel iOS dan hanya menyediakan layanan ke iOS melalui interaksi yang diamankan
- Bahkan jika kernel iOS dikompromikan, Secure Enclave tidak akan terpengaruh kecuali terjadi eksploitasi tambahan
- Perlu dicatat bahwa Secure Enclave dan Secure Exclave adalah konsep yang berbeda
-
2017 — Page Protection Layer (PPL)
- Fitur keamanan yang diperkenalkan pada prosesor A11 di iPhone 8 dan iPhone X
- Fitur berbasis perangkat keras + perangkat lunak yang memberi hak modifikasi tabel halaman memori hanya pada bagian tertentu dari kernel
- Sisa kernel dibatasi dari hak memodifikasi tabel halaman
- Permukaan serangan mengecil sehingga upaya bypass menjadi lebih jarang
- PPL menambahkan lapisan perlindungan, tetapi karena sebagian besar hak kernel tetap dipertahankan, penguatan keamanannya masih terbatas
-
2021–2023 — Secure Page Table Monitor (SPTM)
- Fitur baru yang diperkenalkan pada prosesor A15 di iPhone 13 dan iOS 17
- Menggantikan PPL, melindungi fungsi memori tambahan, dan memisahkannya ke beberapa subsistem
- Memperkuat keamanan melalui verifikasi penandatanganan kode dan memastikan hanya kode yang ditandatangani Apple yang dapat dijalankan
- Pada periode ini, mulai muncul penyebutan tidak langsung tentang exclave dalam kode sumber XNU
- Muncul dugaan bahwa subsistem yang dikelola SPTM mungkin adalah exclave
-
2024 — Exclave: perombakan besar model keamanan XNU
- Konsep exclave muncul dalam kode sumber XNU yang mendukung prosesor M4 dan A18
- Pada prosesor sebelumnya, exclave tidak diaktifkan
- Menjadi jelas bahwa exclave adalah hasil dari redesain besar terhadap model keamanan XNU
-
XNU Exclaves
Penafian: struktur internal exclave tidak sepenuhnya open source, jadi sebagian isi dapat berupa dugaan atau interpretasi
- Exclave adalah kumpulan fitur baru yang secara signifikan memperkuat model keamanan kernel monolitik XNU yang ada
- Exclave adalah sumber daya yang diisolasi dari XNU, dan tetap terlindungi meskipun kernel dikompromikan
- Karakteristik exclave:
- Didefinisikan sebelumnya saat build OS
- Diidentifikasi dengan nama atau ID
- Terdiri dari berbagai jenis
- Diinisialisasi saat boot
- Diorganisasikan ke dalam domain independen
- SPTM melindungi memori exclave dengan tipe halaman khusus baru untuk exclave
- Jenis sumber daya exclave
- Buffer memori bersama – dapat diakses baik oleh kernel maupun exclave
- Di XNU dapat diatur sebagai hanya-baca atau baca/tulis
- Buffer audio dan sensor – memperkuat keamanan indikator akses kamera dan mikrofon
- Conclave – mengelompokkan banyak sumber daya ke dalam domain keamanan sendiri, dengan Conclave Manager untuk mengelolanya
- Service – mengeksekusi kode di exclave saat thread XNU memanggilnya
- Buffer memori bersama – dapat diakses baik oleh kernel maupun exclave
-
Kernel aman — berbasis seL4?
- Untuk menjalankan service exclave secara independen dari XNU, diperkenalkan kernel baru Secure Kernel (SK)
- String versi "cL4" ditemukan dalam berkas image SK
- Ada kemungkinan besar SK berbasis seL4, bukan kernel cL4 (berbasis L4) Apple yang lama
- Struktur IPC yang digunakan XNU saat berkomunikasi dengan SK mirip dengan struktur seL4
- Dalam string yang digunakan SK ditemukan banyak konsep yang dipakai seL4 (misalnya capabilities, frames, untyped memory, dll.)
- Bergabungnya Apple ke seL4 Foundation pada April 2024 mungkin bukan kebetulan
- Kernel untuk prosesor C1 (chip baseband baru Apple) juga tampak berbasis L4
-
Secure World — ARM TrustZone?
- SepOS berjalan di prosesor terpisah, sedangkan SK berjalan di prosesor aplikasi berkecepatan tinggi
- Ini memerlukan tingkat hak istimewa prosesor tambahan → kemungkinan diimplementasikan dengan salah satu dari berikut:
- Dukungan ekstensi virtualisasi
- Ekstensi SPTM milik Apple
- Kemungkinan terbesar adalah memanfaatkan teknologi ARM TrustZone
- Struktur TrustZone
- Membagi sistem menjadi dua world:
- Secure World – menjalankan kode aman
- Insecure World – menjalankan kode umum (XNU dan iOS berjalan di sini)
- Dalam kode sumber XNU ditemukan banyak penyebutan tentang perpindahan antara Secure World dan Insecure World milik TrustZone
- Apple tampaknya menerapkan model service exclave alih-alih Trusted Application model yang diusulkan TrustZone
- SK menyediakan service dan sumber daya exclave di lingkungan yang terisolasi → memperkuat keamanan
- Diperkirakan akan sangat sulit keluar dari Secure World ke Insecure World lalu mengompromikan XNU
- Membagi sistem menjadi dua world:
- RINGGATE
- Ada kemungkinan Apple menggunakan SPTM untuk mengelola perpindahan Secure World ↔ Insecure World
- Dalam kode, perpindahan ini disebut sebagai "RINGGATE"
Kesimpulan
- Makna dari adopsi exclave
- Untuk menghadapi serangan berkelanjutan dari aktor ancaman tingkat lanjut, Apple memperkenalkan exclave guna memperkuat tingkat keamanan sistem operasinya
- Dengan mengisolasi sumber daya sensitif, efek berikut diharapkan dapat dicapai:
- Mengurangi permukaan serangan
- Mengurangi dampak dari satu kerentanan kernel
- Pertahanan kernel monolitik adalah tantangan tanpa akhir, dan exclave adalah salah satu pendekatan untuk menanganinya
- Belum jelas apakah ini arah yang tepat dalam jangka panjang, atau hanya solusi sementara
- Harapan pribadi → di masa depan akan ada redesain berbasis CHERI dan ARM Morello 😊
- Namun untuk saat ini, ini adalah upaya pertahanan terbesar di antara produsen perangkat konsumen
- Artikel ini tidak secara jelas membahas komponen mana saja yang telah dipindahkan ke exclave
- Dari image build, elemen berikut tampak berjalan di exclave:
- Indikator kamera/mikrofon aman
- Sebagian fungsi Apple Neural Engine (ANE)
- Sebagian device driver
- Komponen komunikasi dengan Secure Enclave
- Dari image build, elemen berikut tampak berjalan di exclave:
- Kemungkinan lebih banyak komponen akan dipindahkan ke exclave ke depannya
- Efektivitas keamanan exclave bergantung pada tingkat optimalisasi dari proses pemindahan ini
- Ada kemungkinan exclave digunakan dalam infrastruktur Apple Private Cloud Compute
- Dapat memberikan tingkat keamanan dan privasi yang tinggi pada AI berbasis cloud
1 komentar
Komentar Hacker News