T1546.006: Добавление LC_LOAD_DYLIB

Злоумышленники могут закрепиться в системе путем запуска вредоносного содержимого, активируемого выполнением зараженных бинарных файлов. Бинарные файлы Mach-O имеют ряд заголовков, которые используются для выполнения определенных операций при загрузке бинарного файла. Заголовок LC_LOAD_DYLIB в бинарном файле Mach-O указывает системам macOS и OS X, какие динамические библиотеки (dylibs) следует загружать во время выполнения. Их можно добавлять по мере необходимости в скомпилированный бинарный файл, внося в остальные поля и зависимости соответствующие изменения. Существуют инструменты для внесения таких изменений.

Злоумышленники могут изменить заголовки бинарного файла Mach-O, чтобы при каждом его запуске загружались и выполнялись вредоносные динамические библиотеки. Практически любые изменения сделают цифровую подпись в бинарном файле недействительной, однако эта проблема может быть решена простым удалением команды LC_CODE_SIGNATURE из бинарного файла, чтобы подпись не проверялась во время его загрузки.

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

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

Monitor DLL/PE file events, specifically creation of these binary files as well as the loading of DLLs into processes. Look for DLLs that are not recognized or not normally loaded into a process.

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

Monitor processes for those that may be used to modify binary headers.

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

Monitor executed commands and arguments that may establish persistence by executing malicious content triggered by the execution of tainted binaries.

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

Monitor file systems for changes to application binaries and invalid checksums/signatures.

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

Changes to binaries that do not line up with application updates or patches are also extremely suspicious.

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

IDM1047НазваниеАудитОписание

Binaries can also be baselined for what dynamic libraries they require, and if an app requires a new dynamic library that wasn't included as part of an update, it should be investigated.

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

Allow applications via known hashes.

IDM1045НазваниеПодпись исполняемого кодаОписание

Enforce that all binaries be signed by the correct Apple Developer IDs.