T1547.006: Модули и расширения ядра
Злоумышленники могут изменить ядро так, чтобы оно автоматически выполняло программы при загрузке системы. Загружаемые модули ядра (LKM) — это фрагменты кода, которые могут загружаться в ядро и выгружаться из него по требованию. Они расширяют функциональность ядра без необходимости перезагрузки системы. Например, к таким модулям относятся драйверы устройств, позволяющие ядру получить доступ к оборудованию, подключенному к системе.
При злонамеренном использовании LKM могут представлять собой разновидность руткита, работающую в режиме ядра с наивысшими привилегиями операционной системы (Ring 0). Руткиты на базе LKM могут в числе прочего скрывать собственное присутствие в системе, выборочно скрывать файлы, процессы и сетевую активность, манипулировать журналами, обеспечивать работу аутентифицированных бэкдоров и предоставлять root-доступ непривилегированным пользователям
Расширения ядра, также называемые кекстами (kext), используются в macOS для включения дополнительной функциональности в систему, подобно LKM в Linux. Поскольку за обеспечение безопасности отвечает ядро, а расширения ядра работают как часть ядра, на кексты не распространяются политики безопасности macOS. Кексты загружаются и выгружаются с помощью команд kextload
и kextunload
. Кексты должны быть подписаны идентификатором разработчика, которому Apple предоставила привилегии на подписывание расширений ядра. Разработчики без этих привилегий все равно могут подписывать кексты, но они не будут загружаться, если не отключить SIP. Если функция SIP включена, перед добавлением кекста в AuxKC будет проверяться его подпись.
Начиная с macOS Catalina 10.15, расширения ядра были упразднены в пользу расширений системы. Однако кексты все еще разрешены к использованию, поскольку расширений системы для интерфейсов программирования ядра нет.
Злоумышленники могут использовать LKM и кексты для закрепления в системе и (или) повышения привилегий. Помимо атак, где применялась эта техника, существуют проекты с открытым исходным кодом, реализующие данную функциональность.
Какие продукты Positive Technologies покрывают технику
Экспертиза MaxPatrol SIEM
unix_mitre_attck_persistence: PT-CR-439: Unix_Boot_Modify: Изменение файлов загрузки и файлов ядра ОС для автозапуска при загрузке ОС или входе в нее
Способы обнаружения
ID | DS0008 | Источник и компонент данных | Ядро: Загрузка модуля ядра | Описание | LKMs are typically loaded into |
---|
ID | DS0009 | Источник и компонент данных | Процесс: Создание процесса | Описание | Monitor for newly created processes that may modify the kernel to automatically execute programs on system boot. |
---|
ID | DS0017 | Источник и компонент данных | Команда: Выполнение команд | Описание | Loading, unloading, and manipulating modules on Linux systems can be detected by monitoring for the following commands: On macOS, monitor for execution of |
---|
ID | DS0022 | Источник и компонент данных | Файл: Изменение файла | Описание | Monitor for changes made to files that may modify the kernel to automatically execute programs on system boot. |
---|
ID | DS0022 | Источник и компонент данных | Файл: Создание файла | Описание | Monitor for newly constructed files that may modify the kernel to automatically execute programs on system boot. |
---|
Меры противодействия
ID | M1026 | Название | Управление привилегированными учетными записями | Описание | Limit access to the root account and prevent users from loading kernel modules and extensions through proper privilege separation and limiting Privilege Escalation opportunities. |
---|
ID | M1018 | Название | Управление учетными записями | Описание | Use MDM to disable user's ability to install or approve kernel extensions, and ensure all approved kernel extensions are in alignment with policies specified in |
---|
ID | M1049 | Название | Антивирус или ПО для защиты от вредоносных программ | Описание | Common tools for detecting Linux rootkits include: rkhunter , chrootkit , although rootkits may be designed to evade certain detection tools. |
---|
ID | M1038 | Название | Защита от выполнения | Описание | Application control and software restriction tools, such as SELinux, KSPP, grsecurity MODHARDEN, and Linux kernel tuning can aid in restricting kernel module loading. |
---|