Zero-day — это уязвимость, которую эксплуатируют до того, как у производителя появилось исправление; название пошло от того, что у защитников было ноль дней на ответ. Это самая тревожная категория угроз, потому что обычный совет «обновляйте программы» пока не работает: обновляться ещё не на что. В этой статье мы смотрим, как такие уязвимости на самом деле выглядели на платформах Apple, опираясь на собственные обновления безопасности Apple, Google Project Zero и Citizen Lab, а затем — на то единственное, что неизвестному эксплойту всё равно приходится делать после успеха.
Один момент нужно проговорить сразу, потому что маркетинг вокруг этой темы часто вводит в заблуждение: ни один файрвол не останавливает эксплойт. Ни FireAI, ни какой-либо другой. Файрвол не видит, как искажённое изображение разбирается внутри iMessage или как ошибка ядра срабатывает с веб-страницы. Что файрвол может — так это наблюдать за тем, что происходит дальше, и это оказывается важнее, чем кажется на первый взгляд.
Что на самом деле показывает история
Apple документирует каждое исправление безопасности на странице обновлений безопасности Apple, и когда уязвимость уже использовалась против реальных людей, она сообщает об этом стандартной фразой: «Apple известно о сообщении, что эта проблема могла активно эксплуатироваться». Чтение этой страницы за несколько лет даёт более трезвую картину, чем любой заголовок. Google Project Zero ведёт дополняющий публичный реестр — свой трекер 0-day «In the Wild», где перечислены эксплойты, обнаруженные в реальных атаках до появления патча. Project Zero аккуратно оговаривает, что трекер содержит только обнаруженные случаи, которые по определению являются неудачами атакующих, поэтому по нему нельзя судить о реальном объёме эксплуатации или сравнивать платформы.
Три документированных случая показывают, как выглядит эта проблема.
FORCEDENTRY, 2021
В марте 2021 года Citizen Lab при Университете Торонто проанализировала телефон саудовского активиста и извлекла эксплойт, который назвала FORCEDENTRY. Это была атака без единого клика: специально сформированный файл, доставленный через iMessage, не требовал от жертвы никаких действий и устанавливал шпионское ПО Pegasus от NSO Group. Citizen Lab нашла свидетельства того, что он использовался как минимум с февраля 2021 года. Apple закрыла уязвимость, CVE-2021-30860 в парсере изображений CoreGraphics, 13 сентября 2021 года в iOS 14.8, macOS Big Sur 11.6 и обновлении безопасности для Catalina; собственные примечания к выпуску Big Sur 11.6 подтверждают, что уязвимость «могла активно эксплуатироваться».
Позже Google Project Zero опубликовала технический анализ, который объясняет, почему подобное так трудно поймать. Ошибка была в коде сжатия изображений JBIG2, используемом внутри PDF. Эксплойт NSO использовал собственные логические операторы формата, чтобы из более чем 70 000 команд сегментов изображения построить небольшой работающий компьютер внутри декодера изображений, и выполнил на нём остальную часть атаки. Снаружи ничто в этом не похоже на программу. Это изображение, открытое легитимным подписанным системным процессом.
Гонконгский «водопой», 2021
В конце августа 2021 года группа анализа угроз Google обнаружила кампанию типа «водопой», нацеленную на посетителей сайтов гонконгского СМИ и продемократической группы. Против Mac она связывала уязвимость WebKit, уже исправленную в январе, с ошибкой повышения привилегий в ядре, CVE-2021-30869, которая на macOS Catalina всё ещё оставалась незакрытой; Apple исправила её 23 сентября 2021 года. Полезная нагрузка — бэкдор, который Google назвала MACMA, — могла снимать отпечаток машины, захватывать экран, записывать звук, перехватывать нажатия клавиш, загружать и скачивать файлы и выполнять команды терминала.
Этот пример показателен, потому что эксплойт и полезная нагрузка — разные вещи. Эксплойт был невидим: веб-страница. Полезная нагрузка была обычной внедрённой программой, которой, чтобы принести операторам хоть какую-то пользу, требовалось установить канал управления и контроля и вывести данные с Mac. Отчёт Google описывает именно эту инфраструктуру.
BLASTPASS, 2023
В сентябре 2023 года Citizen Lab сообщила о BLASTPASS — ещё одной цепочке iMessage без единого клика, доставляющей Pegasus, на этот раз через вложения PassKit с зловредными изображениями. Apple присвоила идентификаторы CVE-2023-41064 и CVE-2023-41061 и выпустила исправления для iPhone, iPad, Mac и Apple Watch. Примечательно, что и инженеры безопасности Apple, и Citizen Lab заявили, что, по их мнению, режим блокировки (Lockdown Mode) заблокировал именно эту цепочку, — это самое сильное публичное свидетельство того, что против этого класса угроз работает сокращение поверхности атаки, а не обнаружение атаки.
Почему сам эксплойт так трудно обнаружить
Поставьте три случая рядом, и закономерность станет очевидной. Эксплойт приходит как данные (изображение, PDF, веб-страница), а не как приложение. Его обрабатывает легитимный код, подписанный Apple. Нет файла, с которым мог бы совпасть XProtect, нет неподписанного бинарного файла, который мог бы отклонить Gatekeeper, и зачастую нет нового процесса, который мог бы пометить инструмент безопасности конечных точек, потому что враждебный код выполняется внутри процесса, которому уже доверяют. Обнаружение, когда оно случается, обычно криминалистическое: Citizen Lab нашла FORCEDENTRY, изучая артефакты на устройстве постфактум, а не потому, что сканер поймал его вживую.
Вот почему совет Apple для людей, считающих, что они могут быть целью, — не «установите детектор», а режим блокировки, который на macOS Ventura и новее блокирует большинство типов вложений в сообщениях, отключает сложные веб-технологии, отклоняет вызовы FaceTime от незнакомых абонентов и не даёт устанавливать профили конфигурации. Он работает, убирая пути в коде, которые нужны эксплойту, ценой удобства, о которой Apple говорит прямо.
Почему сетевой шаг — другое дело
Эксплойт — это начало атаки, а не её цель. Pegasus существует, чтобы отправлять оператору сообщения, фотографии и звук с микрофона. Снимки экрана и нажатия клавиш, собранные MACMA, на диске жертвы ничего не стоили. В каждом документированном случае ценность реализовывалась через трафик, покидающий машину, и в матрице MITRE ATT&CK для macOS у этой фазы есть два собственных столбца — управление и контроль и эксфильтрация, — потому что это отдельный, наблюдаемый шаг, который атакующие не могут пропустить.
У этого шага есть свойства, которых не было у эксплойта. Он исходит от идентифицируемого процесса с кодовой подписью (или, что показательно, без неё). Он идёт к назначению с IP, именем хоста и историей. Он часто использует необычный порт, «сырой» IP вместо имени или хостинг-провайдера, никак не связанного ни с одним приложением на Mac. Ничто из этого не требует знания использованной уязвимости. Требуется лишь видеть подключение и иметь возможность сказать «нет».
Именно для этой части и создан FireAI. Его правила для каждого приложения привязаны к кодовой подписи процесса, устанавливающего подключение, поэтому внедрённый бинарный файл, который не является одобренным вами приложением, получает запрос разрешения, а не свободный проход, — с объяснением локальной модели на понятном языке. Его фиды угроз (abuse.ch, Spamhaus, FireHOL, OpenPhish, Phishing Army и актуальный список выходных узлов Tor) применяются локально, поэтому известный адрес управления и контроля будет отклонён независимо от того, распознало ли что-то ещё на Mac полезную нагрузку. Режимы «Под атакой» и «Параноидальный» ужесточают настройки по умолчанию до полной блокировки неподписанных приложений и неизвестных назначений, а аварийный выключатель отрезает интернет, сохраняя локальную сеть, — это правильный первый шаг, когда вы подозреваете компрометацию и хотите сохранить улики.
Чего это не покрывает
Честность требует и второй половины списка. Если полезная нагрузка целиком работает внутри разрешённого приложения, например внутри браузера, которому вы уже дали разрешение, её трафик наследует разрешения этого приложения, и FireAI его не отличит. Зашифрованный трафик к назначению с чистой репутацией выглядит как любое другое подключение. Фид содержит только адреса, о которых кто-то уже сообщил; свежего сервера управления и контроля в нём ещё нет. И FireAI не обнаруживает, не удаляет и не анализирует эксплойт или имплант: он не сканирует файлы и память и не является антивирусом. На Mac, который, как вы считаете, был скомпрометирован злоумышленником государственного уровня, правильный путь — руководство Apple по уведомлениям об угрозах и специалист по криминалистике, а не настройка файрвола.
Поэтому практическая защита от неизвестных уязвимостей многослойна и лишена блеска: устанавливайте обновления Apple в день выхода, поскольку большая часть эксплуатации нацелена на уязвимости, для которых исправление уже есть; включите режим блокировки, если ваша работа делает вас вероятной целью; держите поверхность атаки небольшой; и контролируйте, каким приложениям на вашем Mac вообще разрешено общаться с интернетом, — чтобы, когда нечто неизвестное всё же проникнет внутрь, шаг, который оно не может пропустить, оказался тем шагом, за которым вы следите.
Какое место здесь занимают FireAI и HisnLabs
FireAI cannot stop an exploit and does not claim to; what it does is sit on the one step every documented case above could not skip, the connection out, and ask, for each unknown process, whether that connection should be allowed at all.
FireAI — это собственный продукт HisnLabs: ИИ-файрвол, работающий прямо на вашем Mac. Он показывает простым языком каждое соединение, которое устанавливают ваши приложения, и позволяет вам решать, что покидает ваш Mac, — его ИИ работает локально, поэтому ваш трафик никогда не отправляется ни нам, ни кому-либо ещё. Команда исследователей безопасности HisnLabs — это те, кто поддерживает точность этих решений: они каталогизируют, какие домены являются обычной телеметрией, а какие — реальным сервисом, отслеживают страну и сеть, стоящие за соединением, и обучают локальную модель (функцию Autopilot) на реальных шаблонах трафика — и ничего из этого не покидает ваш Mac.
Вы можете прочитать о технических решениях, лежащих в его основе, или попробовать FireAI в течение 17 дней на странице FireAI от HisnLabs.
