
Keamanan volume sistem yang ditandatangani
Di macOS 10.15, Apple memperkenalkan volume sistem hanya baca, volume terdedikasi dan terisolasi untuk konten sistem. macOS 11 atau lebih baru menambahkan perlindungan kriptografi kuat ke konten sistem dengan volume sistem yang ditandatangani (SSV). SSV menyediakan mekanisme kernel yang memverifikasi integritas konten sistem pada runtime dan menolak data apa pun—kode dan non-kode—tanpa tanda tangan kriptografi yang valid dari Apple. Dimulai di iOS 15 dan iPadOS 15, volume sistem di iPhone atau iPad juga mendapatkan perlindungan kriptografi pada volume sistem yang ditandatangani.
Tidak hanya membantu mencegah perusakan perangkat lunak Apple apa pun yang merupakan bagian dari sistem operasi, SSV juga membuat pembaruan perangkat lunak macOS menjadi lebih andal dan aman. Selain itu, karena SSV menggunakan snapshot Apple File System (APFS), jika pembaruan tidak dapat dilakukan, versi sistem lama dapat dipulihkan tanpa penginstalan ulang.
Sejak diperkenalkan, APFS telah menyediakan integritas metadata sistem file menggunakan ceksum non-kriptografi di perangkat penyimpanan internal. SSV memperkuat mekanisme integritas dengan menambahkan hash kriptografis, sehingga memperluas mekanisme untuk mencakup semua bita data file. Data dari perangkat penyimpanan internal (termasuk metadata sistem file) di-hash secara kriptografi di jalur baca, dan hash lalu dibandingkan dengan nilai yang diharapkan di metadata sistem file. Saat terjadi ketidaksesuaian, sistem menganggap data telah dirusak dan tidak akan mengembalikannya ke perangkat lunak yang meminta.
Setiap hash SHA256 SSV disimpan di hierarki metadata sistem file utama, yang di-hash sendiri. Selain itu, karena setiap node hierarki secara rekursif memverifikasi integritas hash turunannya—mirip dengan hierarki hash biner (Merkle)—maka nilai hash node dasar, disebut segel, mencakup semua bita data di SSV, yang berarti tanda tangan kriptografis meliputi seluruh volume sistem.
Selama penginstalan dan pembaruan macOS, segel dikomputasi ulang dari sistem file di perangkat dan pengukuran tersebut diverifikasi dengan pengukuran yang ditandatangani oleh Apple. Di Mac dengan Apple silicon, bootloader memverifikasi segel sebelum mentransfer kontrol ke kernel. Di Mac berbasis Intel dengan Keping Keamanan T2 Apple, bootloader meneruskan pengukuran dan tanda tangan ke kernel, yang nantinya memverifikasi segel secara langsung sebelum memasang sistem file root. Di kedua kasus, jika verifikasi gagal, proses mulai akan dihentikan, dan pengguna akan diminta untuk menginstal ulang macOS. Prosedur ini diulang pada setiap boot kecuali pengguna telah memilih untuk memasuki mode keamanan yang lebih rendah dan telah memilih secara terpisah untuk menonaktifkan volume sistem yang ditandatangani.
Selama pembaruan perangkat lunak iOS dan iPadOS, volume sistem disiapkan dan dikomputasi ulang dengan cara yang sama. Bootloader iOS dan iPadOS memverifikasi bahwa segel aman dan cocok dengan nilai yang ditandatangani oleh Apple sebelum mengizinkan perangkat untuk memulai kernel. Ketidakcocokan saat boot akan meminta pengguna untuk memperbarui perangkat lunak sistem di perangkat. Pengguna tidak diizinkan untuk menonaktifkan perlindungan volume sistem yang ditandatangani di iOS dan iPadOS.
SSV dan penandatanganan kode
Penandatanganan kode masih ada dan diberlakukan oleh kernel. Volume sistem yang ditandatangani menyediakan perlindungan saat bita mana pun dibaca dari perangkat penyimpanan internal. Sebaliknya, penandatanganan kode menyediakan perlindungan saat objek Mach dipetakan secara memori sebagai dapat dieksekusi. SSV dan penandatanganan kode melindungi kode yang dapat dieksekusi di semua jalur baca dan eksekusi.
SSV dan FileVault
Di macOS 11 atau lebih baru, perlindungan saat penyimpanan yang sama untuk konten sistem disediakan oleh SSV, oleh karena itu volume sistem tidak perlu dienkripsi lagi. Modifikasi apa pun yang dibuat ke sistem file saat penyimpanan terdeteksi oleh sistem file saat dibaca. Jika pengguna telah menyalakan FileVault, konten pengguna di volume data masih dienkripsi dengan rahasia yang disediakan oleh pengguna.
Jika pengguna memilih untuk menonaktifkan SSV, sistem yang disimpan menjadi rentan terhadap perusakan, dan perusakan ini dapat memungkinkan penyerang untuk mengekstrak data pengguna yang dienkripsi saat berikutnya sistem dimulai. Oleh karena itu, sistem tidak akan mengizinkan pengguna untuk menonaktifkan SSV jika FileVault dinyalakan. Perlindungan saat penyimpanan harus diaktifkan atau dinonaktifkan untuk kedua volume dalam cara yang konsisten.
Di macOS 10.15 atau lebih lama, FileVault melindungi perangkat lunak sistem operasi saat penyimpanan dengan mengenkripsi pengguna dan konten sistem dengan kunci yang dilindungi oleh rahasia yang disediakan oleh pengguna. Hal ini melindungi dari penyerang dengan akses secara fisik ke perangkat agar tidak mengakses atau secara efektif memodifikasi sistem file yang berisi perangkat lunak sistem.
SSV dan Mac dengan Keping Keamanan T2 Apple
Di Mac dengan keping Keamanan T2 Apple, hanya macOS yang dilindungi oleh SSV. Perangkat lunak yang dijalankan di keping T2 dan memverifikasi macOS dilindungi oleh boot aman.