Ядро операционной системы — центральная часть ОС, которая работает с наивысшими привилегиями и управляет памятью, процессами, драйверами оборудования и доступом ко всем ресурсам системы.
Как работает ядро
Современные процессоры разделяют код по уровням привилегий. Приложения работают в пользовательском режиме и не могут напрямую обращаться к оборудованию или памяти других программ — они запрашивают услуги ядра через системные вызовы. Ядро и его драйверы выполняются в режиме ядра (ring 0) с неограниченным доступом. Самые известные ядра — Linux, ядро Windows NT и XNU от Apple, используемое в macOS и iOS.
Почему ядро важно для безопасности
Тот, кто контролирует ядро, контролирует всю систему, включая работающие в ней средства защиты. Поэтому ядро — одна из главных целей атак:
- Повышение привилегий — ошибки в ядре позволяют локальному пользователю или вредоносу получить права root или SYSTEM. Примеры в Linux — Dirty COW (CVE-2016-5195) и Dirty Pipe (CVE-2022-0847). Такие уязвимости — стандартное звено в цепочках повышения привилегий и в эксплойтах мобильных шпионских программ.
- Руткиты — руткиты режима ядра скрывают файлы, процессы и сетевые соединения от самой операционной системы.
- Уязвимые драйверы — в атаках BYOVD (bring your own vulnerable driver) группировки вымогателей загружают легитимно подписанный, но уязвимый драйвер, чтобы отключить EDR.
Код ядра несёт и риски для стабильности: в июле 2024 года сбойное обновление сенсора CrowdStrike, работающего на уровне ядра, обрушило около 8,5 млн компьютеров с Windows по всему миру.
Как защищают ядро
- Механизмы противодействия эксплуатации: ASLR ядра, SMEP/SMAP и стековые канарейки.
- Обязательная подпись драйверов, Kernel Patch Protection от Microsoft и чёрный список уязвимых драйверов.
- Безопасность на основе виртуализации, при которой гипервизор защищает критичную память ядра (HVCI).
- Своевременная установка обновлений ОС, ведь исправления ядра часто получают статус важных или критических.