Микроядро часто называют более безопасным почти автоматически: меньше кода в ядре, меньше системных вызовов, драйверы вынесены в user space, поверхность атаки сокращается. Звучит убедительно – но в реальной инженерии операционных систем все сложнее и интереснее.
В новой статье на Хабре Анна Мелехова, старший архитектор ПО в «Лаборатории Касперского», разбирает, где заканчивается привычный тезис «микроядро безопаснее» и начинается настоящая архитектурная работа. Потому что безопасность здесь возникает не сама по себе из меньшего числа строк кода, а из того, как устроены границы доверия, изоляция компонентов, IPC-взаимодействие, политики доступа и контроль чувствительных операций.
На примере микроядерной KasperskyOS в статье показано, почему некоторые механизмы защиты могут работать эффективнее именно в такой архитектуре. Например, как можно строже контролировать исполняемые страницы памяти, централизовать проверки данных, приходящих из user space, и надежнее применять политики безопасности на системных и межпроцессных вызовах.
Отдельно разбираются методики харденинга W^X, KASLR, kCFI, а также функции copy_from_user и LSM hooks – как практические примеры того, где архитектура начинает напрямую влиять на безопасность. Важный вывод статьи – не стоит сводить все к спору «монолит или микроядро». Гораздо полезнее смотреть, какие архитектурные свойства дают реальный выигрыш в безопасности, и привносить эти свойства туда, где они могут сработать..
Читайте на Хабре полную статью: «Безопасность микроядра: где заканчивается трюизм и начинается инженерия»
Микроядро часто называют более безопасным почти автоматически: меньше кода в ядре, меньше системных вызовов, драйверы вынесены в user space, поверхность атаки сокращается. Звучит убедительно – но в реальной инженерии операционных систем все сложнее и интереснее.
В новой статье на Хабре Анна Мелехова, старший архитектор ПО в «Лаборатории Касперского», разбирает, где заканчивается привычный тезис «микроядро безопаснее» и начинается настоящая архитектурная работа. Потому что безопасность здесь возникает не сама по себе из меньшего числа строк кода, а из того, как устроены границы доверия, изоляция компонентов, IPC-взаимодействие, политики доступа и контроль чувствительных операций.
На примере микроядерной KasperskyOS в статье показано, почему некоторые механизмы защиты могут работать эффективнее именно в такой архитектуре. Например, как можно строже контролировать исполняемые страницы памяти, централизовать проверки данных, приходящих из user space, и надежнее применять политики безопасности на системных и межпроцессных вызовах.
Отдельно разбираются методики харденинга W^X, KASLR, kCFI, а также функции copy_from_user и LSM hooks – как практические примеры того, где архитектура начинает напрямую влиять на безопасность. Важный вывод статьи – не стоит сводить все к спору «монолит или микроядро». Гораздо полезнее смотреть, какие архитектурные свойства дают реальный выигрыш в безопасности, и привносить эти свойства туда, где они могут сработать..
Читайте на Хабре полную статью: «Безопасность микроядра: где заканчивается трюизм и начинается инженерия»
Подпишитесь на наши сообщества и получите ссылку на дистрибутив в чате