Содержание
- Что такое ядро безопасности
- Ядро безопасности и обычное ядро ОС
- Основные функции ядра безопасности
- Принципы построения Security Kernel
- Связь с доверенной вычислительной базой
- Как ядро безопасности проверяет доступ
- Механизмы безопасности в Linux
- Механизмы безопасности в Windows NT
- Linux и Windows NT: сравнение
- Почему компрометация ядра особенно опасна
- Основные угрозы для ядра безопасности
- Методы защиты Security Kernel
- Security Kernel в приложениях и специализированных системах
- Преимущества и ограничения подхода
- Заключение
- Часто задаваемые вопросы
Что такое ядро безопасности
Ядро безопасности, или Security Kernel, — это набор аппаратных и программных компонентов, которые применяют ключевые правила защиты системы. Они получают запрос на доступ, учитывают контекст субъекта и определяют, можно ли выполнить операцию.
Субъектом может быть пользователь, процесс, служба или виртуальная машина. Объектом — файл, каталог, сокет, область памяти, устройство или системная функция.
Когда приложение пытается открыть файл, оно обращается к операционной системе. Система получает контекст процесса, проверяет права и только затем разрешает или блокирует чтение, запись либо выполнение.
Обычные приложения не должны обходить эти проверки, изменять код доверенных компонентов или подменять используемые ими данные.
На практике функции Security Kernel редко сосредоточены в одном программном модуле. Часть механизмов работает непосредственно в режиме ядра, а часть может находиться в доверенных системных службах, гипервизоре, прошивке или аппаратной среде.
К основным функциям, связанным с ядром безопасности и доверенной вычислительной базой, относятся:
идентификация и аутентификация субъектов;
контроль доступа к файлам, памяти и устройствам;
изоляция процессов и сред выполнения;
управление системными привилегиями;
регистрация событий безопасности.
В теоретической модели Security Kernel представляет собой реализацию эталонного монитора — механизма, через который проходят обращения субъектов к защищаемым объектам. Такой механизм должен обеспечивать полное посредничество, быть защищённым от изменений и оставаться достаточно компактным для проверки.
Централизованный контроль упрощает применение единой политики: приложениям не нужно самостоятельно решать, имеет ли пользователь доступ к ресурсу. Однако ошибка в доверенном компоненте может повлиять сразу на множество объектов. Поэтому Security Kernel стремятся делать минимальным, изолированным и пригодным для анализа.
Ядро безопасности и обычное ядро ОС
Ядро операционной системы управляет базовыми ресурсами компьютера. Оно распределяет процессорное время, контролирует память, взаимодействует с устройствами и предоставляет приложениям системные функции.
Ядро безопасности решает более узкую задачу: применяет правила защиты при использовании этих ресурсов.
Например, файловая подсистема обрабатывает запрос на открытие файла, а механизм безопасности определяет, может ли конкретный процесс читать или изменять этот файл. После проверки система выполняет разрешённую операцию или возвращает отказ.
Понятия пересекаются, поскольку многие проверки выполняются внутри ядра ОС. Однако считать их полными синонимами нельзя.
Linux — это ядро операционной системы. В нём реализованы базовые проверки прав, управление учётными данными процессов, изоляция и интерфейсы для дополнительных модулей безопасности. При этом Linux целиком нельзя считать Security Kernel в узком теоретическом смысле.
Windows NT — архитектура операционной системы, в которую входят различные механизмы защиты. Один из её ключевых компонентов — Security Reference Monitor. Он работает в режиме ядра и участвует в проверке запросов к защищаемым объектам.
Рис.1 Место ядра безопасности в архитектуре ОС
Основные функции ядра безопасности
Аутентификация
Аутентификация подтверждает заявленную идентичность пользователя, службы, устройства или другого субъекта. Для этого могут использоваться пароли, ключи, токены и цифровые сертификаты.
Многофакторная аутентификация сочетает независимые факторы проверки. Например, пароль можно дополнить аппаратным токеном. Компрометации одного фактора в таком случае недостаточно для прохождения всей процедуры входа.
Аутентификацию необходимо отличать от контроля доступа. Первая отвечает на вопрос «кто обращается», а второй определяет, какие действия разрешены этому субъекту.
Не все этапы аутентификации выполняются в режиме ядра. Часть логики может находиться в системных службах. Однако подтверждённая идентичность должна быть связана с защищённым контекстом, который затем используют механизмы авторизации.
Если злоумышленник сможет подменить контекст процесса, дальнейшие проверки потеряют смысл. Поэтому обычные приложения не должны произвольно изменять идентификаторы, группы, привилегии и другие параметры безопасности.
Контроль доступа
Контроль доступа сопоставляет запрос с действующей политикой. Система учитывает пользователя, группы, роли, метки, привилегии, свойства объекта и тип запрошенной операции.
В простой модели используются владелец ресурса и набор разрешений. Более сложные политики могут учитывать тип данных, уровень доверия, роль пользователя и состояние среды.
К основным моделям контроля доступа относятся:
дискреционный контроль — владелец объекта может управлять правами на него;
мандатный контроль — правила задаёт централизованная системная политика;
ролевой контроль — разрешения назначаются в соответствии с рабочими ролями;
атрибутный контроль — решение зависит от набора характеристик субъекта, объекта и среды.
Списки контроля доступа, или Access Control Lists, содержат правила для отдельных пользователей и групп. В них можно указывать разрешение или запрет конкретных операций.
Проверка не должна ограничиваться моментом входа в систему. Каждый значимый запрос необходимо оценивать с учётом актуального контекста и действующей политики.
Аудит событий безопасности
Аудит фиксирует действия, важные для защиты системы. К ним относятся входы, отказы в доступе, изменение прав, запуск привилегированных функций и изменение настроек безопасности.
Записи должны помогать восстановить цепочку событий. Обычно для этого указывают время, субъект, объект, запрошенную операцию и её результат. В зависимости от ситуации также полезны данные о процессе, устройстве или сетевом источнике запроса.
Одного сбора журналов недостаточно. Необходимо организовать их хранение, защиту и регулярный анализ. Иначе значимое событие может потеряться среди обычной активности.
Злоумышленник с высокими привилегиями может попытаться отключить аудит, удалить записи или изменить правила регистрации. Чтобы снизить этот риск, журналы передают на отдельную систему сбора и анализа.
Изоляция процессов
Изоляция не позволяет одному процессу свободно читать или изменять память другого. Каждый процесс получает собственное адресное пространство, а доступ к ядру и устройствам выполняется через системные интерфейсы.
Контейнеры и виртуальные машины создают дополнительные границы. Они могут разделять процессы, сети, файловые системы и вычислительные ресурсы. При этом контейнеры, как правило, используют общее ядро хоста.
Изоляция ограничивает последствия компрометации. Ошибка в одном приложении не должна автоматически предоставлять доступ ко всей системе. Для этого технические границы необходимо сочетать с принципом наименьших привилегий.
Управление привилегиями
Привилегия разрешает выполнять специальное системное действие: например, изменять системное время, загружать драйвер или управлять другими процессами.
Надёжная модель не выдаёт полный административный доступ без необходимости. Полномочия разделяются на отдельные права, а процесс получает только те из них, которые нужны для работы.
Повышение привилегий должно быть явным и контролируемым. Система проверяет пользователя, основание и контекст операции, а критически важные действия регистрирует в журнале.
Принципы построения Security Kernel
Минимальность
Чем меньше доверенных компонентов, тем проще анализировать их код, настройки и связи. Сокращение доверенной части также уменьшает число потенциальных ошибок и точек входа.
Минимальность не означает отказ от необходимых функций. Необязательную логику выносят за пределы привилегированной части, оставляя в Security Kernel только критические проверки.
В современных операционных системах добиться строгой минимальности сложно: они содержат большой объём кода, множество драйверов и сложные аппаратные интерфейсы. Поэтому минимизацию доверенной базы дополняют изоляцией и защитой памяти.
Полное посредничество
Каждая попытка доступа должна проходить проверку. Приложение не должно обращаться к объекту через незащищённый обходной путь.
Принцип относится к файлам, памяти, устройствам, системным вызовам и другим защищаемым ресурсам. Он также важен при кэшировании результатов проверки: система не должна использовать устаревшее разрешение после изменения прав или политики.
Защита от вмешательства
Обычные процессы не должны изменять код и данные ядра безопасности, а также контексты других процессов.
Для защиты применяются разделение режимов процессора, ограничения доступа к страницам памяти и контроль загружаемого кода. Дополнительную роль играет проверка цепочки загрузки.
Разделение пользовательского режима и режима ядра снижает риск случайного вмешательства, но не исключает уязвимости в привилегированном коде. Например, ошибка в драйвере может нарушить установленную границу.
Проверяемость
Security Kernel должен оставаться достаточно понятным для тестирования и анализа. Результаты применения политики не должны зависеть от неявных или неконтролируемых условий.
Проверяемость включает анализ кода, тестирование и контроль конфигурации. В критических системах для отдельных компонентов могут применяться формальные методы, позволяющие математически проверить заданные свойства.
Полная формальная проверка крупной операционной системы крайне сложна. Поэтому на практике сочетают тестирование, статический и динамический анализ, аудит конфигурации и мониторинг.
Принцип наименьших привилегий
Пользователь или процесс должен получать только те права, которые необходимы для выполнения задачи. По возможности разрешения также ограничивают по времени и контексту.
Например, веб-серверу не требуется доступ ко всем домашним каталогам пользователей. Службе резервного копирования может быть достаточно чтения данных без права изменять исходные файлы.
Минимальные привилегии сокращают потенциальный ущерб. Даже после компрометации приложение остаётся в пределах ограниченного набора прав.
Рис.2 Принципы Security Kernel
Связь с доверенной вычислительной базой
Trusted Computing Base, или TCB, — доверенная вычислительная база. В неё входят все механизмы, от корректной работы которых зависит применение политики безопасности.
TCB может включать:
ядро безопасности;
загрузчик и прошивку;
аппаратные механизмы защиты;
доверенные системные службы;
критические драйверы;
компоненты управления ключами.
Security Kernel обычно считают центральной частью TCB, однако доверенная база шире. Например, механизм безопасной загрузки может находиться вне ядра, но влиять на его целостность.
Чем больше TCB, тем сложнее проверить её корректность. Каждый дополнительный драйвер или доверенная служба создаёт новые связи и потенциальные точки отказа. Ошибка в одном из таких компонентов может нарушить всю модель защиты.
Поэтому архитекторы стремятся сокращать доверенную базу и переносить обычные функции в менее привилегированные процессы. Этот подход особенно заметен в микроядерных системах.
Термин «доверенная» не означает, что компонент автоматически безопасен. Он указывает на то, что безопасность системы зависит от его корректности. Поэтому доверие необходимо подтверждать проверкой кода, конфигурации и цепочки загрузки.
Как ядро безопасности проверяет доступ
Рассмотрим открытие файла пользователем:
Пользователь запускает приложение.
Система связывает процесс с учётной записью и её контекстом безопасности.
Приложение запрашивает доступ к файлу.
Ядро получает запрос и контекст процесса.
Механизм безопасности проверяет права и действующую политику.
Запрос разрешается или блокируется.
При необходимости результат регистрируется в журнале.
Процесс продолжает работу в пределах предоставленных прав.
Проверка может учитывать идентификатор пользователя, группы, роли, привилегии и метки безопасности. Также важны тип объекта и запрошенная операция.
Чтение и изменение файла требуют разных прав. Возможность просмотреть содержимое каталога не всегда означает наличие доступа к находящимся в нём файлам. Выполнение программы также может проверяться отдельно.
Мандатная политика добавляет ещё один уровень контроля. Она способна запретить действие, разрешённое обычными файловыми правами, причём пользователь не может самостоятельно отменить такой запрет.
В работающей системе проверки выполняются постоянно. Поэтому механизмы контроля должны сочетать производительность с невозможностью обхода установленных правил.
Механизмы безопасности в Linux
Пользовательское пространство и пространство ядра
Linux разделяет пользовательское пространство и пространство ядра. Обычные приложения работают с ограниченными правами и обращаются к системным ресурсам через системные вызовы.
Код ядра выполняется с более высокими привилегиями. Он управляет памятью, процессами, сетью и устройствами, поэтому ошибка на этом уровне может иметь системные последствия.
Разделение режимов создаёт основную границу безопасности, но не защищает от всех угроз. Уязвимость в системном вызове, модуле или драйвере может позволить приложению пересечь эту границу.
Пользователи, группы и права
Классическая модель Linux использует владельца, группу и набор прав. Для файлов и каталогов обычно задаются чтение, запись и выполнение.
Этот механизм прост, но его возможностей не всегда достаточно для сложной инфраструктуры. В таких случаях применяются расширенные ACL и мандатные политики.
Процесс хранит идентификаторы пользователя и групп, а также другие учётные данные. Ядро использует их при проверке доступа. Обычное приложение не может произвольно назначить себе чужой идентификатор или привилегированный контекст.
ACL и Linux capabilities
Access Control Lists, или ACL, расширяют классические файловые права. С их помощью можно назначать отдельные разрешения нескольким пользователям и группам.
Linux capabilities разделяют полномочия суперпользователя на отдельные части. Например, процесс может получить право выполнять определённые операции с сетью без полного административного доступа.
Capabilities поддерживают принцип наименьших привилегий, но требуют аккуратной настройки. Некоторые полномочия дают широкие возможности и при неправильном назначении могут облегчить обход защиты.
Linux Security Modules
Linux Security Modules, или LSM, — каркас для подключения дополнительных механизмов безопасности к точкам проверки внутри ядра.
К механизмам на основе LSM относятся SELinux, AppArmor и Smack. Они могут применять дополнительные, в том числе мандатные, ограничения поверх базовых прав Linux. Landlock позволяет процессам ограничивать доступ собственной среды выполнения.
SELinux преимущественно использует метки и правила взаимодействия между типами субъектов и объектов. AppArmor обычно связывает политики с профилями приложений и путями к ресурсам. Выбор механизма зависит от используемой системы и модели управления политиками.
LSM не заменяет базовые проверки Linux, а добавляет дополнительные условия. Запрос должен пройти как стандартный контроль прав, так и проверки активных модулей безопасности.
Namespaces, cgroups и seccomp
Пространства имён, или namespaces, разделяют представление системных ресурсов. Разные группы процессов могут видеть собственные идентификаторы, сети, точки монтирования и другие объекты.
Control groups, или cgroups, управляют потреблением ресурсов: процессорного времени, памяти и других системных возможностей. Cgroups не являются полноценным механизмом контроля доступа, но дополняют изоляцию.
Seccomp ограничивает набор системных вызовов, доступных процессу. Это уменьшает поверхность ядра, с которой может взаимодействовать скомпрометированное приложение.
Контейнерные среды объединяют несколько таких механизмов. Однако контейнер обычно использует ядро хоста и не равнозначен отдельной виртуальной машине. Уязвимость общего ядра может нарушить границы между контейнерами.
Аудит в Linux
Подсистема Linux Audit регистрирует события в соответствии с заданными правилами. Администратор может контролировать обращения к критическим файлам, изменение системных параметров и выполнение отдельных операций.
Системные журналы дополняют аудит сообщениями ядра и служб. Для расследования инцидентов данные целесообразно собирать и сопоставлять на отдельной платформе.
Слишком широкие правила создают шум и дополнительную нагрузку, а слишком узкие оставляют слепые зоны. Политика аудита должна учитывать реальные угрозы и критичность ресурсов.
Рис.3 Механизмы безопасности Linux
Механизмы безопасности в Windows NT
Архитектура безопасности Windows
Windows разделяет пользовательский режим и режим ядра. Большинство приложений работает в пользовательском режиме, а основные системные компоненты и многие драйверы — в режиме ядра.
Сбой обычного процесса обычно ограничивается его адресным пространством. Ошибка драйвера может повлиять на всю систему, поэтому контроль привилегированных компонентов имеет критическое значение.
Для авторизации Windows использует объекты безопасности, токены доступа и дескрипторы с правилами контроля. Проверки выполняются при обращении к защищаемым системным объектам.
Security Reference Monitor
Security Reference Monitor, или SRM, — один из центральных компонентов контроля доступа Windows. Он работает в режиме ядра и участвует в применении правил доступа к системным объектам.
При проверке учитываются токен процесса, дескриптор безопасности объекта и запрошенные права. Затем система сопоставляет сведения о субъекте с разрешающими и запрещающими правилами.
Через эти механизмы контролируется доступ к файлам, процессам, разделам реестра и другим защищаемым объектам. Конкретная процедура зависит от типа ресурса.
SRM можно рассматривать как практический пример компонента, выполняющего часть функций Security Kernel. При этом архитектура безопасности Windows не ограничивается одним модулем.
Access Token и Security Identifier
После входа пользователя Windows формирует Access Token — токен доступа, который содержит сведения, необходимые для авторизации.
В токене могут находиться:
идентификатор пользователя;
идентификаторы групп;
системные привилегии;
уровень целостности;
ограничения и дополнительные атрибуты.
Security Identifier, или SID, — уникальный идентификатор субъекта безопасности. При проверке прав Windows использует SID, а не отображаемое имя пользователя.
При создании дочернего процесса тот обычно получает токен, связанный с контекстом родительского процесса. Система также может использовать ограниченные токены с сокращённым набором групп и прав.
Токен представляет локальный контекст авторизации и участвует в оценке дескриптора безопасности объекта.
DACL и SACL
Discretionary Access Control List, или DACL, содержит правила разрешения и запрета доступа. Система сопоставляет их с SID из токена субъекта.
System Access Control List, или SACL, используется для аудита. Она определяет, какие попытки доступа необходимо регистрировать.
Таким образом, DACL отвечает за разрешение операции, а SACL — за необходимость создать запись о попытке доступа.
Обе структуры входят в дескриптор безопасности объекта. В нём также могут храниться сведения о владельце и основной группе.
Режимы и уровни целостности
Windows использует пользовательский режим и режим ядра. Приложение из пользовательского режима не должно напрямую обращаться к памяти ядра.
Mandatory Integrity Control добавляет уровни целостности. Процесс с более низким уровнем получает ограничения при работе с объектами более высокого уровня. Проверка учитывает метки токена и объекта.
Службы могут работать под отдельными учётными записями. Для дополнительного ограничения применяются урезанные токены, Job Objects и другие механизмы изоляции приложений.
В отдельных конфигурациях Windows также используются защитные функции на основе виртуализации. Они создают дополнительную границу для некоторых критических компонентов и данных.
Linux и Windows NT: сравнение
| Критерий | Linux | Windows NT |
| Базовая модель прав | Владелец, группа и режим доступа | Токены доступа и ACL |
| Расширенные списки прав | POSIX ACL | DACL |
| Дополнительный обязательный контроль | SELinux, AppArmor, Smack | Уровни целостности и системные политики |
| Разделение привилегий | Linux capabilities | Привилегии в Access Token |
| Проверка доступа | Базовые проверки ядра и LSM | Security Reference Monitor и связанные механизмы |
| Ограничение системных функций | Seccomp | Ограниченные токены, политики и изоляция приложений |
| Изоляция процессов | Namespaces, cgroups и seccomp | Процессы, Job Objects и уровни целостности |
| Аудит | Linux Audit и системные журналы | SACL и Windows Security Log |
| Расширение механизмов | Linux Security Modules | Компоненты архитектуры безопасности Windows |
Эти механизмы нельзя считать прямыми аналогами: Linux и Windows используют разные архитектурные подходы и модели политик.
Нельзя также назвать одну из систем безусловно более безопасной. Результат зависит от конфигурации, своевременности обновлений, состава привилегированных компонентов и качества контроля.
Linux сочетает классические права с capabilities и механизмами LSM. Windows связывает авторизацию с токенами субъектов и дескрипторами защищаемых объектов.
В обеих системах ошибочная конфигурация может ослабить встроенную защиту. Избыточные права, широкие исключения и отключённый аудит снижают эффективность механизмов безопасности независимо от архитектуры ОС.
Почему компрометация ядра особенно опасна
Ядро работает на одном из наиболее привилегированных уровней системы. Оно управляет памятью, процессами и устройствами, поэтому его компрометация может нарушить границы между уровнями защиты.
Получив выполнение кода в режиме ядра, злоумышленник потенциально способен:
получить системные привилегии;
читать память других процессов;
отключать защитные механизмы;
скрывать файлы, процессы и сетевые соединения;
изменять результаты системных вызовов;
удалять или подменять журналы;
внедрять код в другие процессы;
закрепляться в системе с помощью руткита.
Средства защиты, работающие в пользовательском режиме, зависят от информации, которую предоставляет ядро. Если эти данные подменены, антивирус или система мониторинга может не обнаружить вредоносную активность.
Например, вредоносный компонент уровня ядра способен исключить процесс из системного списка или вернуть приложению ложный результат при обращении к файлу.
Приоритетная защита ядра не отменяет защиту остальных уровней. Атака часто начинается с обычной учётной записи, уязвимого приложения или неправильно настроенной службы.
Основные угрозы для ядра безопасности
Уязвимости в коде
Код ядра обрабатывает сложные структуры и данные, поступающие из менее доверенных источников. Ошибки управления памятью могут привести к сбою, раскрытию данных или выполнению кода с высокими привилегиями.
К типовым классам относятся переполнение буфера, use-after-free, состояние гонки и ошибки проверки границ.
Возможность эксплуатации зависит от архитектуры и действующих механизмов защиты. Однако даже ошибка, которая не позволяет выполнить код, может нарушить доступность системы.
Уязвимые драйверы и модули
Драйверы и модули часто работают в режиме ядра, поэтому ошибки в них создают высокий риск.
Особенно опасны старые компоненты с известными уязвимостями. В некоторых атаках злоумышленники загружают легитимно подписанный, но уязвимый драйвер и используют его возможности для повышения привилегий или отключения защиты.
Каждый ненужный модуль увеличивает поверхность атаки. Это относится как к драйверам Windows, так и к модулям Linux.
Повышение привилегий
Атака повышения привилегий переводит процесс в более доверенный контекст. Причиной может быть ошибка в коде или неправильная конфигурация.
Например, привилегированная служба может запускать внешнюю программу по небезопасно заданному пути. Если злоумышленник сможет подменить исполняемый файл, его код получит права этой службы.
Руткиты уровня ядра
Руткит изменяет работу системных механизмов, чтобы скрыть вредоносную активность и сохранить доступ к системе.
Такой компонент может перехватывать системные функции и подменять сведения о процессах, файлах и соединениях.
Обнаружение затрудняется тем, что диагностические средства получают данные от уже скомпрометированного ядра. В некоторых случаях требуется внешняя проверка или загрузка из доверенной среды.
Ошибки политики
Не каждая компрометация начинается с программной уязвимости. Избыточные разрешения могут привести к сопоставимым последствиям.
Риск создают широкие исключения, неограниченные административные учётные записи, отключённый аудит и разрешение на загрузку непроверенного привилегированного кода.
Рис.4 Угрозы для ядра безопасности
Методы защиты Security Kernel
Первый уровень защиты — своевременное обновление операционной системы, драйверов, прошивок и средств виртуализации.
Управление обновлениями нельзя сводить только к автоматической установке пакетов. Необходимо учитывать совместимость, критичность систем и допустимые сроки устранения уязвимостей. Для критических недостатков требуется ускоренный цикл проверки и установки исправлений.
Безопасная загрузка помогает контролировать ранние этапы запуска и проверять доверие к загружаемым компонентам. Эффективность механизма зависит от настроек платформы и управления ключами.
Подпись модулей и драйверов снижает риск загрузки неизвестного или изменённого кода. Однако наличие подписи не гарантирует отсутствие уязвимостей: она подтверждает происхождение и целостность компонента, но не его безошибочность.
Базовый набор защитных мер включает:
ограничение административных прав;
удаление ненужных драйверов и модулей;
применение SELinux или AppArmor там, где это соответствует выбранной модели защиты;
настройку политик безопасности Windows;
использование seccomp для сервисов и контейнеров;
контроль целостности системных файлов;
защиту параметров загрузки;
централизованный сбор журналов;
регулярную проверку привилегий;
резервное копирование критической конфигурации.
Особое внимание следует уделять драйверам. Организации необходимо вести их перечень, контролировать происхождение и версии, а также удалять компоненты, которые больше не используются.
Средства защиты памяти усложняют эксплуатацию ошибок. К ним относятся рандомизация размещения, запрет выполнения данных и контроль целостности кода.
Ни одна мера не обеспечивает абсолютной защиты. Устойчивая архитектура строится из нескольких независимых слоёв, чтобы нарушение одного из них не приводило к немедленному доступу к ядру.
Security Kernel в приложениях и специализированных системах
Принцип ядра безопасности применим не только к операционным системам. Крупное приложение может использовать централизованный компонент авторизации.
Например, бизнес-система передаёт запросы единой службе политик. Она проверяет субъект, роль, ресурс и операцию, а остальные модули не принимают решения о доступе самостоятельно.
Такой подход снижает риск несогласованных правил в разных частях системы. Однако центральная служба становится критическим компонентом, который необходимо защищать и тестировать как часть доверенной базы.
В гипервизорах функции Security Kernel связаны с изоляцией виртуальных машин. Гипервизор контролирует доступ к памяти, процессору и виртуальным устройствам.
Микроядерные операционные системы стремятся оставлять в привилегированном ядре минимальный набор функций. Драйверы и службы по возможности выполняются как отдельные процессы, чтобы сбой одного компонента не затрагивал всё ядро.
На мобильных платформах защита строится вокруг изоляции приложений, контроля загружаемого кода и аппаратных доверенных компонентов.
Во встроенных и промышленных системах особенно важны предсказуемость и доступность. Обновление таких устройств часто ограничено особенностями эксплуатации, поэтому архитектура защиты должна учитывать длительный срок службы.
В критической инфраструктуре требуется строгий контроль изменений. Организация должна знать, какие компоненты работают с повышенными привилегиями, и проверять обновления до их внедрения.
Преимущества и ограничения подхода
Основное преимущество Security Kernel — единообразное применение политики. Приложениям не приходится самостоятельно реализовывать базовый контроль доступа.
Минимальная доверенная часть упрощает анализ и уменьшает число компонентов, способных нарушить общую модель.
Централизованный аудит помогает расследовать инциденты, поскольку события регистрируются с сопоставимым контекстом.
Изоляция снижает последствия ошибок: компрометация одного процесса не должна автоматически приводить к компрометации остальных.
Однако у подхода есть ограничения. Ошибка в центральном механизме может затронуть всю систему. Чем больше полномочий у компонента, тем выше потенциальный ущерб при его компрометации.
Сложная политика также создаёт риски. Администратор может предоставить лишний доступ или добавить слишком широкое исключение. Технически корректный механизм в таком случае применит ошибочно заданное правило.
Проверки доступа потребляют вычислительные ресурсы. Обычно их влияние приемлемо, но чрезмерно сложные политики и избыточное журналирование могут увеличить нагрузку.
Security Kernel не защищает от всех угроз. Он не устраняет слабые пароли, ошибки бизнес-логики и уязвимости приложений, а также не заменяет процессы управления обновлениями и конфигурацией.
Заключение
Ядро безопасности — это доверенный механизм, который участвует в применении правил защиты. Оно проверяет доступ, управляет привилегиями и поддерживает изоляцию.
Security Kernel не следует отождествлять со всем ядром операционной системы. В современных Linux- и Windows-системах функции безопасности распределены между несколькими компонентами.
Linux использует базовые права, ACL, capabilities, LSM, seccomp и пространства имён. Windows опирается на токены доступа, дескрипторы безопасности, ACL и Security Reference Monitor.
Компрометация привилегированного кода может позволить обходить проверки и скрывать действия. Поэтому встроенные механизмы необходимо дополнять обновлениями, строгими политиками, контролем драйверов, аудитом и проверкой целостности.
Проведите аудит механизмов защиты операционных систем: проверьте административные привилегии, состав драйверов, политики доступа и настройки журналирования. Такой анализ поможет выявить избыточные разрешения, опасные исключения и неиспользуемые привилегированные компоненты.
Часто задаваемые вопросы
Что называют ядром безопасности?
Это набор доверенных аппаратных и программных компонентов, которые применяют ключевые правила защиты, проверяют доступ и участвуют в управлении привилегиями.
Чем Security Kernel отличается от ядра ОС?
Ядро ОС управляет памятью, процессами и устройствами. Security Kernel отвечает за применение политики безопасности. На практике часть его механизмов работает внутри ядра операционной системы.
Что такое Trusted Computing Base?
Trusted Computing Base — доверенная вычислительная база. В неё входят все компоненты, от корректности которых зависит выполнение политики безопасности.
Какие механизмы безопасности используются в Linux?
Linux применяет файловые права, ACL и capabilities. Дополнительные ограничения обеспечивают SELinux, AppArmor, Smack, Landlock и seccomp. Для изоляции также используются namespaces и cgroups.
Как контроль доступа реализован в Windows NT?
Windows использует токены доступа и дескрипторы безопасности. При проверке система сопоставляет SID, группы и привилегии из токена с правилами защищаемого объекта. В этом процессе участвует Security Reference Monitor.


























