Keamanan ROM Pilihan di macOS
Catatan: ROM Pilihan saat ini tidak didukung di Mac dengan Apple silicon.
Keamanan ROM Pilihan di Mac dengan Keping Keamanan T2 Apple
Perangkat Thunderbolt dan PCIe dapat memiliki “ROM Pilihan (OROM)” yang dipasang secara fisik ke perangkat. (Ini biasanya bukan merupakan ROM yang sebenarnya, tapi keping yang dapat ditulisi ulang yang menyimpan firmware.) Di sistem berbasis UEFI, firmware tersebut biasanya merupakan driver UEFI, yang dibaca oleh firmware UEFI dan dieksekusi. Kode yang dieksekusi harus menginisialisasi dan mengonfigurasi perangkat keras tempat kode diambil, sehingga perangkat keras menjadi dapat digunakan oleh seluruh bagian lainnya dari firmware. Kemampuan ini diperlukan agar perangkat pihak ketiga yang bersifat khusus dapat dimuat dan dioperasikan pada fase mulai paling awal—misalnya untuk memulai dari larik RAID eksternal.
Namun, karena OROM biasanya dapat ditulisi kembali, jika penyerang menimpa OROM dari periferal yang sah, kode penyerang dieksekusi di awal proses boot, dan akan dapat mengubah lingkungan eksekusi dan merusak integritas perangkat lunak yang dimuat setelahnya. Sama halnya, jika penyerang memperkenalkan perangkat berbahayanya ke sistem, mereka juga akan dapat mengeksekusi kode berbahaya.
Di macOS 10.12.3, perilaku komputer Mac yang dijual setelah 2011 diubah menjadi tidak mengeksekusi OROM secara default pada saat Mac di-boot, kecuali jika kombinasi tombol ditekan. Kombinasi kunci ini melindungi dari OROM berbahaya yang diperkenalkan secara tidak sengaja ke rangkaian boot macOS. Perilaku default dari Utilitas Kata Sandi Firmware juga diubah sehingga ketika pengguna mengatur kata sandi firmware, OROM tidak dapat dieksekusi bahkan jika kombinasi tombol ditekan. Ini melindungi dari penyerang yang memiliki akses langsung secara fisik untuk memperkenalkan OROM berbahaya dengan sengaja. Untuk pengguna yang masih harus menjalankan OROM dan telah mengatur kata sandi firmware, pilihan non-default dapat dikonfigurasi menggunakan alat baris perintah firmwarepasswd
di macOS.
Keamanan sandbox OROM
Di macOS 10.15, firmware UEFI diperbarui agar berisi mekanisme untuk sandbox OROM dan untuk membatalkan hak dari OROM. Firmware UEFI biasanya mengeksekusi semua kode, termasuk OROM, pada level hak CPU maksimum, yang disebut ring 0, dan memiliki satu ruang memori virtual bersama untuk semua kode dan data. Ring 0 merupakan tingkat hak tempat kernel macOS dijalankan, sementara level hak yang lebih bawah, ring 3, adalah tempat app dijalankan. Sandbox OROM membatalkan hak OROM dengan menggunakan pemisahan memori virtual seperti yang dilakukan oleh kernel, lalu membuat OROM dijalankan di ring 3.
Sandbox secara drastis membatasi lebih jauh antarmuka yang dapat dipanggil OROM (seperti filter panggilan sistem di kernel) dan jenis perangkat yang dapat diregister OROM (seperti persetujuan app.) Keuntungan desain ini adalah bahwa OROM berbahaya tidak lagi dapat menulis secara langsung di mana pun dalam memori ring 0. Sebagai gantinya, OROM dibatasi ke antarmuka sandbox yang sangat sempit dan didefinisi dengan baik. Antarmuka terbatas ini secara drastis mengurangi permukaan serangan dan memaksa penyerang untuk pertama-tama keluar dari sandbox dan meningkatkan hak.