Блог о безопасности FireAI

Автор FireAI Security & Research Team · Опубликовано

Продвинутое обнаружение угроз на macOS: что на самом деле делает каждый уровень

Продвинутое обнаружение угроз на macOS: что на самом деле делает каждый уровень

Каждый продукт, который называет себя «продвинутым обнаружением угроз» для Mac, построен на небольшом числе механизмов, и большинство из них задокументированы Apple. Понимая, на какой механизм опирается та или иная функция, вы понимаете, что она действительно способна увидеть, а к чему слепа. В этой статье мы разбираем эти уровни по одному: что такое сигнатура, что проверяет нотаризация, что фреймворк Endpoint Security от Apple открывает защитному ПО, что на практике означает поведенческий анализ и о чём может и не может судить модель, наблюдающая за сетевыми подключениями.

Если коротко: ни один уровень не видит всего. Файловый сканер никогда не видит подключение. Сетевой монитор никогда не видит файл. Продукты, которые честно говорят об этой границе, полезнее продуктов, которые её размывают.

Уровень первый: сигнатуры (XProtect)

Самая старая техника обнаружения — сигнатура: шаблон, совпадающий с известным образцом зловредного ПО. На Mac эту работу выполняет XProtect. Руководство Apple по безопасности платформ на странице Защита от вредоносного ПО описывает XProtect как сигнатурный механизм и указывает, что он срабатывает в три момента: при первом запуске приложения, при изменении приложения на диске и при обновлении сигнатур XProtect.

Apple откровенно говорит о пределах этого подхода. На той же странице отмечается, что правила XProtect «более общие, чем хеш конкретного файла, поэтому он может находить варианты, которых Apple ещё не видела», и описывается механизм устранения, который удаляет заражения постфактум. Чего сигнатура не может по самой своей природе — так это совпасть с тем, для чего ещё никто не написал правило. Именно этот пробел призваны сузить все остальные уровни.

Уровень второй: нотаризация и Gatekeeper

Второй уровень срабатывает до того, как приложение откроется в первый раз. Страница Apple Gatekeeper и защита во время выполнения объясняет, что Gatekeeper проверяет, что загруженное приложение выпущено идентифицированным разработчиком, нотаризовано Apple и не было изменено, и что он запрашивает подтверждение пользователя перед открытием загруженного ПО. Сама нотаризация — это проверка, которую Apple выполняет для ПО, подписанного сертификатом Developer ID, перед его распространением; руководство Apple добавляет, что позже она может выпустить отзывающий тикет для ПО, признанного зловредным, даже если раньше оно было одобрено.

Этот уровень — проверка на входе. Он отвечает на вопрос: «Знаем ли мы, кто это собрал, и нашла ли Apple в этом что-то явно неправильное?» Он не следит за приложением после того, как оно оказалось внутри. Приложение, которое прошло проверку на входе и затем ведёт себя плохо, или приложение, поведение которого изменилось после обновления, с этого момента находится вне поля зрения Gatekeeper.

Уровень третий: фреймворк Endpoint Security

Сторонние продукты обнаружения для Mac — категория, которую обычно называют EDR (обнаружение и реагирование на конечных точках), — в основном построены на одном API Apple: фреймворке Endpoint Security. Apple представила его в macOS 10.15, чтобы защитное ПО могло получать поток системных событий из пользовательского пространства (запуск процесса, открытие или запись файла, создание задачи) вместо загрузки расширения ядра, от которых Apple постепенно отказывается.

Это уровень, который видит деревья процессов: какой процесс породил какой, с какими аргументами, к каким файлам обращаясь. Здесь же обычно и живёт «поведенческий анализ». Поведенческое обнаружение означает сравнение того, что делает процесс, с известными техниками злоумышленников, а не с известным файлом. Публичный справочник этих техник — матрица MITRE ATT&CK для macOS, которая каталогизирует тактики от первоначального доступа и закрепления до управления и контроля и эксфильтрации, и каждая из них разбита на конкретные наблюдаемые техники.

У поведенческого анализа есть реальная цена: приложение, которое легитимно создаёт агенты запуска, читает связку ключей или порождает команды оболочки, по одному лишь потоку событий выглядит очень похоже на приложение, делающее то же самое со злым умыслом. Каждый поставщик EDR настраивает этот компромисс по-своему, и никто из них не публикует достаточно деталей, чтобы посторонний мог их сравнить. С уверенностью можно сказать одно: этот уровень требует либо платного продукта, либо немалой экспертизы. Для частных пользователей некоммерческий фонд Objective-See публикует бесплатные инструменты с открытым исходным кодом, построенные на тех же фреймворках Apple, например TaskExplorer для изучения запущенных процессов и KnockKnock для просмотра того, что настроено на автоматический запуск.

Уровень четвёртый: память и содержимое файлов

Ещё ниже уровня Endpoint Security находятся два вида анализа: глубокая проверка содержимого файла (статический анализ — именно этим занимается антивирусный сканер) и проверка памяти запущенного процесса. Это единственные способы узнать, что программа на самом деле содержит, и это область антивирусов и криминалистических инструментов. Стоит сказать прямо, потому что маркетинговые тексты часто намекают на обратное: файрвол, включая FireAI, ничего из этого не делает. FireAI не сканирует файлы, не читает память процессов и не является антивирусом.

Уровень пятый: сеть

Последний уровень — тот, до которого остальные не дотягиваются. Почти всё, что злоумышленник хочет сделать после того, как его код оказался на Mac, связано с сетью: загрузить вторую стадию, отчитаться перед управляющим сервером, отправить украденные данные наружу. В матрице ATT&CK у этих шагов есть собственные столбцы — управление и контроль и эксфильтрация — именно потому, что это отдельная, наблюдаемая фаза.

Сетевой уровень видит иной набор фактов, чем уровни выше. Для каждого нового исходящего подключения он знает, какой подписанный бинарный файл его открыл, хост, IP и порт назначения, протокол, зашифровано ли подключение, а также время. Этого достаточно, чтобы проверяющий — человек или модель — сделал несколько полезных выводов:

  • Репутация назначения: находится ли хост или IP в публичном списке блокировки, таком как abuse.ch, Spamhaus, Phishing Army или OpenPhish, или это выходной узел Tor? Фиды угроз — это поиск по списку, а не догадка, и их можно применять локально, никуда не отправляя трафик.
  • Впервые увиденный бинарный файл: это первый раз, когда данная кодовая подпись открывает подключение на этом Mac? Только что установленный неподписанный инструмент, который сразу подключается к незнакомому IP, — это иной риск, чем Safari, подключающийся к CDN.
  • Странности портов и протоколов: текстовый редактор, общающийся по порту 4444, приложение, использующее «сырые» IP-адреса вместо имён хостов, или подключение к стране, с которой у приложения нет никаких дел.
  • Учётные данные по незашифрованному HTTP: если подключение не зашифровано, его содержимое читаемо на Mac до отправки, и номер карты, пароль или ключ API, передаваемые открытым текстом, можно остановить в этот самый момент.

Именно это делает проверка Private AI в FireAI. Небольшая локальная модель (необязательная загрузка объёмом 1,5 ГБ) смотрит на каждое подключение от неизвестного приложения, используя ровно те факты, что перечислены выше, и либо блокирует его, либо помечает, либо пропускает — с понятным объяснением, которое вы можете прочитать и отменить. Решение принимается на Mac; трафик никогда не отправляется на анализ ни в HisnLabs, ни кому-либо ещё.

Ограничения столь же конкретны. Сетевой проверяющий не видит содержимого файлов, поэтому не может сказать, что загрузка враждебна, до её запуска. Он не видит память, поэтому не может обнаружить внедрённую полезную нагрузку внутри доверенного процесса, а если враждебный код прячется за подписанным разрешённым приложением, его трафик наследует разрешения этого приложения. Он не может расшифровать TLS, поэтому для зашифрованного подключения он оценивает назначение и шаблон, а не содержимое. А репутационный фид знает только о тех адресах, о которых кто-то уже сообщил.

Складываем уровни вместе

Если читать это как стек, картина получается связной. Нотаризация и Gatekeeper решают, попадёт ли код внутрь. XProtect удаляет то, что уже известно как зловредное. Инструменты на базе Endpoint Security следят за тем, что делают процессы. Антивирусы и криминалистика читают содержимое файлов и память. Сетевой уровень следит за тем, что уходит наружу. Каждый отвечает на вопрос, на который не могут ответить остальные, и полезная проверка любого заявления о «продвинутом обнаружении» проста: какой из этих уровней это и что этот уровень видит?

Это также объясняет, почему уровни не конкурируют между собой. Продукт EDR и файрвол с правилами для каждого приложения могут работать на одном Mac и никогда не смотреть на один и тот же факт: один читает дерево процессов, другой — таблицу подключений. Компания, которая уже платит за обнаружение на конечных точках, мало что получит от второго монитора процессов, но может получить очень много от возможности сказать — для каждого приложения и для каждого назначения, — что разрешено выпускать наружу. Домашний пользователь без всякого EDR получает от одного лишь сетевого уровня тот единственный сигнал, который уровни Apple никогда не показывают.

Для большинства владельцев Mac практичная комбинация — это встроенные уровни Apple, поддерживаемые в актуальном состоянии, плюс видимость той единственной фазы, которую Apple вам не показывает: какие приложения куда подключаются. Это более скромное обещание, чем «останавливает любую угрозу», и именно его действительно можно выполнить.

Какое место здесь занимают FireAI и HisnLabs

FireAI is the network layer of that stack and nothing more: it does not scan files or read memory, but it is the one place every app’s outbound connection has to pass through, reviewed on your Mac by a model that explains what it saw.

FireAI — это собственный продукт HisnLabs: ИИ-файрвол, работающий прямо на вашем Mac. Он показывает простым языком каждое соединение, которое устанавливают ваши приложения, и позволяет вам решать, что покидает ваш Mac, — его ИИ работает локально, поэтому ваш трафик никогда не отправляется ни нам, ни кому-либо ещё. Команда исследователей безопасности HisnLabs — это те, кто поддерживает точность этих решений: они каталогизируют, какие домены являются обычной телеметрией, а какие — реальным сервисом, отслеживают страну и сеть, стоящие за соединением, и обучают локальную модель (функцию Autopilot) на реальных шаблонах трафика — и ничего из этого не покидает ваш Mac.

Вы можете прочитать о технических решениях, лежащих в его основе, или попробовать FireAI в течение 17 дней на странице FireAI от HisnLabs.

Источники