MaxPatrol EDR

Защищает конечные точки со всеми популярными ОС от сложных и целевых атак

T1553.001: Обход Gatekeeper

Злоумышленники могут изменить атрибуты файла и обойти технологию Gatekeeper, чтобы выполнить недоверенные программы без подтверждения со стороны пользователя. Gatekeeper является частью модели безопасности Apple и обеспечивает выполнение на хосте только доверенных приложений. Технология Gatekeeper создавалась на базе функции "карантин файлов" в ОС Snow Leopard (версия 10.6, 2009) и включает такие возможности, как проверка подписи исполняемого кода и соответствия политике безопасности, заверение и другие. Gatekeeper обрабатывает впервые запускаемые приложения иначе, чем запускаемые повторно.

В зависимости от используемой системы, во время загрузки файлов приложение, выполняющее загрузку, может установить для файла расширенный атрибут (xattr) com.apple.quarantine (флаг карантина). Службы запуска открывают приложение в приостановленном состоянии. Если приложение с флагом карантина запускается впервые, Gatekeeper выполняет следующие операции.

  1. Проверка расширенного атрибута — Gatekeeper проверяет, установлен ли флаг карантина, и запрашивает разрешение пользователя на запуск приложения.

  2. Проверка системных политик — Gatekeeper разрешает выполнение приложений, загруженных либо только из App Store, либо из App Store или от зарегистрированных разработчиков, в соответствии с системной политикой безопасности.

  3. Проверка подписи исполняемого кода — Gatekeeper проверяет наличие действительной подписи кода сертификатом на основе Apple Developer ID.

  4. Заверение — Gatekeeper обращается к серверам Apple через API api.apple-cloudkit.com, чтобы проверить билет заверения приложения и убедиться, что он не аннулирован. Пользователи могут игнорировать заверение, в результате чего политика безопасности будет изменена, а пользователь увидит уведомление о запуске "неавторизованного приложения".

Злоумышленники могут обойти один или несколько механизмов безопасности Gatekeeper, пользуясь логическими ошибками (см., например, технику Эксплуатация уязвимостей для предотвращения обнаружения), непроверенными типами файлов и внешними библиотеками. Например, до выхода macOS 13 Ventura проверка подписи исполняемого кода и заверение выполнялись только при первом запуске приложения, что позволяло злоумышленникам добавлять вредоносные исполняемые файлы к ранее открытым приложениям и обходить проверки Gatekeeper.

В файлах и приложениях, загруженных в систему с USB-накопителя, оптического диска, внешнего жесткого диска, из сетевой папки или с использованием команды curl, не всегда устанавливается флаг карантина. Кроме того, избежать установки флага карантина возможно с помощью техники теневой (drive-by) компрометации.

Какие продукты Positive Technologies покрывают технику

Описание методов обнаружения техники пока недоступно

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

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

Отслеживайте и анализируйте попытки изменения расширенных атрибутов файлов с помощью таких утилит, как xattr. Встроенные системные утилиты могут генерировать множество ложных срабатываний. Проводите сравнение с обычным поведением системы и по возможности сопоставляйте события модификации с другими признаками вредоносной активности.

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

Отслеживайте и анализируйте попытки изменения расширенных атрибутов файлов с помощью таких утилит, как xattr. Встроенные системные утилиты могут генерировать множество ложных срабатываний. Проводите сравнение с обычным поведением системы и по возможности сопоставляйте события модификации с другими признаками вредоносной активности.

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

Обращайте внимание на значение false для ключа LSFileQuarantineEnabled файла Info.plist приложения (его наличие требуется для любого приложения). Если для ключа LSFileQuarantineEnabled указано значение false, приложение не использует флаг карантина. Если приложение с неуказанным значением LSFileQuarantineEnabled запускается вне песочницы, флаг карантина по умолчанию не устанавливается.

QuarantineEvents — база данных SQLite со списком всех файлов, для которых назначен атрибут com.apple.quarantine. Она хранится в каталоге ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2. Для каждого события указаны универсальный уникальный идентификатор (UUID), временная метка, показатель Gatekeeper и указание на разрешение или запрет запуска .

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

Попытки удаления флага com.apple.quarantine пользователем, а не операционной системой считаются подозрительными, и их следует изучать более внимательно. Кроме того, рекомендуется отслеживать фреймворки обновлений программного обеспечения, которые удаляют данный флаг в ходе обновления.

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

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

В системных настройках можно запретить запуск приложений, загруженных не через Apple Store, и таким образом предотвратить некоторые из этих проблем.