Пока готовится релиз KCE версии 1.1 и летнее солнце греет пиво, поговорим о безопасности. Собрали несколько цифр и фактов о микроядерной архитектуре в целом и #KasperskyOS в частности.
В любом коде есть ошибки, по статистике, не меньше 1 на 2 kSLOC при самом благоприятном сценарии. Это означает, что в монолитном ядре Linux потенциально около 17 000 ошибок, в ядре Windows – 30 000. Больше уязвимостей = больше эксплойтов. Поэтому мы выбрали микроядерную архитектуру и написали проприетарное микроядро, в котором около 100 000 строк.
Монолитная ОС = много привилегированного кода. Чем больше доверенная кодовая база, тем больше шансов на успешную эксплуатацию уязвимостей. При этом, по статистике АСМ (Association for Computing Machinery), в микроядерной архитектуре 96% критических эксплойтов Linux перестанут быть критическими.
По тем же данным, 29% критических уязвимостей Linux вообще с микроядром несовместимы. На примере уязвимости CVE-2015-4001 в USB-драйвере OZWPAN. Драйвер отвечает за взаимодействие с внешним устройством через Wi-Fi. Уязвимость позволяет создать ошибку и внедрить некорректные данные. В Linux драйвер загружается в ядро, то есть эксплуатация бреши провоцирует аварийную остановку ядра. В микроядерной структуре драйвер вынесен на уровень пользователя и не имеет прямого доступа к памяти ядра ОС, то есть возможность эксплуатации исключена полностью.