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 | DS0017 | Источник и компонент данных | Команда: Выполнение команд | Описание | Для обнаружения загрузки и выгрузки модулей в системах Linux, а также манипулирования ими можно отслеживать следующие команды: В macOS отслеживайте выполнение команд |
---|
ID | DS0022 | Источник и компонент данных | Файл: Изменение файла | Описание | Отслеживайте изменения в файлах, с помощью которых злоумышленники могут изменить ядро так, чтобы оно автоматически выполняло программы при загрузке системы. |
---|
ID | DS0008 | Источник и компонент данных | Ядро: Загрузка модуля ядра | Описание | LKM-модули обычно загружаются в |
---|
ID | DS0009 | Источник и компонент данных | Процесс: Создание процесса | Описание | Отслеживайте недавно созданные процессы, с помощью которых злоумышленники могут изменить ядро так, чтобы оно автоматически выполняло программы при загрузке системы. |
---|
ID | DS0022 | Источник и компонент данных | Файл: Создание файла | Описание | Отслеживайте создание файлов, с помощью которых злоумышленники могут изменить ядро так, чтобы оно автоматически выполняло программы при загрузке системы. |
---|
Меры противодействия
ID | M1026 | Название | Управление привилегированными учетными записями | Описание | Ограничьте доступ к учетной записи root и используйте надлежащие средства разделения привилегий и ограничение возможностей эскалации привилегий, чтобы не позволять пользователям загружать модули и расширения ядра. |
---|
ID | M1018 | Название | Управление учетными записями | Описание | Используйте MDM, чтобы заблокировать возможность для пользователей устанавливать или разрешать установку расширений ядра, и проследите, чтобы все разрешенные расширения ядра соответствовали политикам, указанным в следующем документе: |
---|
ID | M1049 | Название | Антивирус или ПО для защиты от вредоносных программ | Описание | Общепринятые инструменты для обнаружения руткитов Linux включают: rkhunter, chrootkit, хотя руткиты могут быть разработаны таким образом, чтобы обходить некоторые инструменты обнаружения. |
---|
ID | M1038 | Название | Защита от выполнения | Описание | Средства контроля приложений и ограничения программного обеспечения, такие как SELinux, KSPP и grsecurity MODHARDEN, и настройка ядра Linux могут помочь в ограничении загрузки модулей ядра. |
---|