Saya telah mendengarnya diklaim (oleh seorang peneliti yang bekerja pada teknik microkernel bersaing ) bahwa sangat sedikit yang diketahui tentang bagaimana mengevaluasi keamanan sistem yang dapat diperluas melalui kode yang dikelola.
Masalahnya adalah bahwa jenis bug yang dapat menyebabkan lubang keamanan sangat berbeda dari yang digunakan peneliti keamanan. Dalam microkernel tradisional, semua driver dan sub-bagian kernel lainnya diisolasi satu sama lain dengan menjalankannya di ruang alamat yang berbeda. Dalam sebuah microkernel di mana isolasi diimplementasikan melalui pengecekan jenis kode yang dikelola Anda menghindari overhead yang sangat besar dari ruang alamat switching setiap kali Anda perlu menggunakan sub-layanan, tetapi tradeoff adalah bahwa sekarang mengevaluasi mekanisme isolasi lebih sulit.
Setiap bagian tertentu dari kernel (katakanlah driver perangkat) yang ditulis dalam bahasa yang dikelola aman jika dan hanya jika pemeriksa tipe mengatakan driver itu aman dan pemeriksa tipe tidak memiliki bug. Jadi pemeriksa tipe adalah bagian dari inti kernel. Dalam praktiknya tampaknya checker tipe jauh lebih besar dan lebih rumit daripada core microkernel tradisional. Itu berarti bahwa permukaan serangan berpotensi lebih besar.
Saya tidak tahu apakah teknik isolasi mikro-kernel tradisional atau teknik isolasi berbasis kode dikelola benar-benar lebih atau kurang dapat diandalkan. Ada masalah bootstrap di sini: sampai teknik isolasi kode terkelola banyak digunakan, kita tidak akan tahu seberapa sering mereka tidak aman. Tetapi tanpa mengetahui seberapa tidak amannya mereka, sulit untuk menempatkan mereka dalam situasi yang kritis terhadap keamanan.