MaxPatrol SIEM

Выявляет инциденты ИБ, ведущие к нарушению киберустойчивости компании

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: Изменение файлов загрузки и файлов ядра ОС для автозапуска при загрузке ОС или входе в нее

Способы обнаружения

IDDS0008Источник и компонент данныхЯдро: Загрузка модуля ядраОписание

LKMs are typically loaded into /lib/modules and have had the extension .ko ("kernel object") since version 2.6 of the Linux kernel.

IDDS0009Источник и компонент данныхПроцесс: Создание процессаОписание

Monitor for newly created processes that may modify the kernel to automatically execute programs on system boot.

IDDS0017Источник и компонент данныхКоманда: Выполнение командОписание

Loading, unloading, and manipulating modules on Linux systems can be detected by monitoring for the following commands: modprobe, insmod, lsmod, rmmod, or modinfo Adversaries may run commands on the target system before loading a malicious module in order to ensure that it is properly compiled. Adversaries may also execute commands to identify the exact version of the running Linux kernel and/or download multiple versions of the same .ko (kernel object) files to use the one appropriate for the running system. Many LKMs require Linux headers (specific to the target kernel) in order to compile properly. These are typically obtained through the operating systems package manager and installed like a normal package.

On macOS, monitor for execution of kextload commands and user installed kernel extensions performing abnormal and/or potentially malicious activity (such as creating network connections). Monitor for new rows added in the kext_policy table. KextPolicy stores a list of user approved (non Apple) kernel extensions and a partial history of loaded kernel modules in a SQLite database, /var/db/SystemPolicyConfiguration/KextPolicy.

IDDS0022Источник и компонент данныхФайл: Изменение файлаОписание

Monitor for changes made to files that may modify the kernel to automatically execute programs on system boot.

IDDS0022Источник и компонент данныхФайл: Создание файлаОписание

Monitor for newly constructed files that may modify the kernel to automatically execute programs on system boot.

Меры противодействия

IDM1026НазваниеУправление привилегированными учетными записямиОписание

Limit access to the root account and prevent users from loading kernel modules and extensions through proper privilege separation and limiting Privilege Escalation opportunities.

IDM1018НазваниеУправление учетными записямиОписание

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 com.apple.syspolicy.kernel-extension-policy.

IDM1049НазваниеАнтивирус или ПО для защиты от вредоносных программОписание

Common tools for detecting Linux rootkits include: rkhunter , chrootkit , although rootkits may be designed to evade certain detection tools.

IDM1038НазваниеЗащита от выполненияОписание

Application control and software restriction tools, such as SELinux, KSPP, grsecurity MODHARDEN, and Linux kernel tuning can aid in restricting kernel module loading.