Я чув, що стверджував ( дослідник, що працює над конкуруючим методом мікроядерних язиків ), що дуже мало відомо про те, як оцінити безпеку систем, розширюваних за допомогою керованого коду.
Проблема полягає в тому, що види помилок, які можуть спричинити загрозу в безпеці, сильно відрізняються, ніж звикли дослідники з безпеки. У традиційному мікроядрі всі драйвери та інші підрозділи ядра ізольовані між собою, запускаючи їх у різні адресні простори. У мікроядрі, де реалізація ізоляції здійснюється за допомогою перевірки типу керованого коду, ви уникаєте величезних накладних витрат комутації адресних просторів кожного разу, коли вам потрібно використовувати підслужбу, але компроміс полягає в тому, що зараз оцінити механізм ізоляції складніше.
Будь-яка окрема частина ядра (скажімо, драйвер пристрою), написана керованою мовою, є безпечною лише тоді, якщо перевіряючий тип повідомляє, що драйвер в безпеці, а в перевіряльнику типу немає помилок. Отже, перевірка типу є частиною ядра ядра. На практиці здається, що типи шашок значно більші і складніші, ніж традиційні ядра мікроядер. Це означає, що поверхня атаки потенційно більша.
Я не знаю, чи справді традиційні методи виділення мікроядер або методи виділення на основі керованого коду справді більш-менш надійні. Тут є проблема завантаження: доки широко не застосовуються методи виділення керованого коду, ми не будемо знати, наскільки часто вони небезпечні. Але не знаючи, наскільки вони небезпечні, важко розгорнути їх у критичних для безпеки ситуаціях.