Ядро операционной системы обеспечивает защиту целостности своих информационных структур несколькими способами: 1
- Запрещает переключение контекста на время выполнения процесса в режиме ядра. 1 Это решает проблему «взаимного исключения» — обеспечивает то, что критические секции программы выполняются в каждый момент времени в рамках самое большее одного процесса. 1
- Препятствует воздействию одного процесса на другой с целью изменения состояния последнего. 1
- Повышает приоритет прерывания процессора на время выполнения критических секций программ, запрещая таким образом прерывания, которые в противном случае могут вызвать нарушение целостности. 1
Также для дополнительной защиты целостности ядра операционной системы могут использоваться механизмы, например, Kernel Lockdown: 2
- Контроль доступа к памяти ядра. 2 Система блокирует любые попытки прямого доступа к физической памяти, что предотвращает возможность внедрения вредоносного кода путём прямой записи в память ядра. 2
- Верификация модулей ядра. 2 Каждый загружаемый модуль должен быть подписан действительной криптографической подписью, которая проверяется специальным механизмом верификации. 2
- Контроль над системными вызовами и интерфейсами ядра. 2 Блокируются операции, которые могут привести к компрометации системы, такие как модификация таблицы системных вызовов, изменение параметров загрузки ядра и прямой доступ к портам ввода-вывода. 2