Назад к блогу

0-day в Muse: как ClickFix превращает привилегированного AI-ассистента Meta в инструмент атакующего

0-day в Muse: как ClickFix превращает привилегированного AI-ассистента Meta в инструмент атакующего

Исследователь раскрыл 0-day в Muse — привилегированном AI-ассистенте Meta для macOS, который ради выполнения задач получает доступ к микрофону, камере, файлам и аккаунтам пользователя. Оказалось, что любое локальное приложение или команда терминала могут подменить endpoint транскрипции и завладеть токеном аутентификации, а для атаки не нужен предварительно скомпрометированный хост. Разбираем механику эксплуатации и то, почему широчайшие привилегии таких агентов требуют принципиально иного уровня безопасности.

Muse — AI-ассистент Meta для macOS, который ради выполнения задач получает доступ к аккаунтам пользователя и к ресурсам системы, закрытым для обычных приложений: запись файлов на диск, микрофон, камера, отслеживание местоположения и календарей. Исследователи называют такой набор привилегий «extraordinarily privileged», потому что он отменяет защитные механизмы Apple, годами создававшиеся именно для того, чтобы установленные приложения и команды терминала не добирались до этих ресурсов. Обнаруженная 0-day позволяет любому локальному приложению или команде терминала получить токен аутентификации пользователя в аккаунте Muse — независимо от выданных macOS разрешений. Ниже разбираем механику: почему локальный код вообще может менять настройки агента, как подмена endpoint транскрипции отдаёт атакующему аккаунт и что из этого следует для проектирования привилегированных агентов.

Что именно даёт Muse и почему это отменяет защиту macOS

Muse получает доступ к аккаунтам пользователя и к широкому набору ресурсов macOS, ограниченных системой: запись файлов на диск, доступ к микрофону и камере, мониторинг местоположения и календарей. Apple годами развивала защитные механизмы, чтобы установленные приложения или команды, введённые в терминале, не получали доступ к этим ресурсам — компания явно считает их угрозой безопасности. Muse полностью отменяет эти меры по умолчанию.

Ключевая деталь — не сам факт широких прав, а то, кому они подконтрольны. Разработчики Meta спроектировали ассистента так, что любое локально установленное приложение или исполняемый код, независимо от имеющихся у него разрешений macOS, может менять длинный список недокументированных настроек. Среди этих настроек есть endpoint, куда отправляется транскрипция речи: обычно это сервер под управлением Meta, но процесс может указать другой адрес. Злоумышленник подменяет endpoint на свой сервер — и получает токен, дающий полный контроль над аккаунтом Muse.

Модель угроз: скомпрометированный хост не нужен

Атакующему не требуется предварительно скомпрометированное устройство. Для захвата аккаунта Muse достаточно простой вариации ClickFix — техники, которая, по формулировке источника, стала исключительно эффективной в обмане людей ради заражения их устройств.

Это ломает стандартный контраргумент разработчиков приложений, которые можно эксплуатировать после компрометации устройства: мол, раз устройство уже скомпрометировано, все ставки на безопасность сняты. Здесь такой довод не работает, потому что эксплуатация не требует предварительной компрометации.

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

Показательна проверка, которую провёл исследователь: он простой терминальной командой скрытно отправил запрос на endpoint Meta — тот же сервер Meta, которому Muse передаёт голосовые запросы и который доступен любому локальному коду, поскольку разработчики позволили любому локальному приложению или коду менять недокументированные настройки, включая этот endpoint. Сам запрос спрашивал, как такое вообще возможно со стороны непривилегированного атакующего, — и Muse ошибочно ответил, что это невозможно.

Почему планка требований выше, чем для обычного приложения

Muse требует «extraordinary access» к пользовательским данным и ресурсам, и это перекладывает дополнительную ответственность на разработчиков. Патрик Уордл, обнаруживший 0-day, формулирует это так: планка безопасности для таких приложений бесконечно выше — они не обязаны быть идеальными, но, глядя на Muse, складывается впечатление, что о безопасности там не думали, и это действительно тревожит.

Компромисс между удобством и безопасностью виден в двух проектных решениях. Первое — диктовка Muse выполняется в облаке, где Meta может её логировать, хотя macOS давно предоставляет простой способ обрабатывать диктовку и транскрипцию в процессах, остающихся на устройстве. Второе — любое локальное приложение или команда терминала может менять недокументированные настройки, включая endpoint транскрипции.

Итог: удобство облачной транскрипции и широкий доступ к настройкам оборачиваются риском, который, по мнению Уордла, не был продуман с самого начала. Разработчики, как минимум, должны думать о безопасности с самого старта — и, по его оценке, этого не делают.

ClickFix как вектор первичного доступа

ClickFix относится к технике User Execution (T1204). Противник может рассчитывать на определённые действия пользователя для получения выполнения, а пользователя — подвергнуть социальной инженерии, чтобы тот выполнил вредоносный код, например открыл вредоносный документ или ссылку.

Техника связана с принуждением пользователя вручную скопировать, вставить и выполнить вредоносный код. К действиям, к которым противники склоняют пользователей, относятся также запуск вредоносного JavaScript в браузере, скачивание и выполнение вредоносного ПО и включение инструментов удалённого доступа.

В отчёте CISA описан другой класс вторжений: иранские киберсубъекты получают первоначальный доступ через эксплуатацию удалённых внешних сервисов на интернет-доступных активах, используя CVE-2024-24919, CVE-2024-3400, CVE-2019-19781, CVE-2023-3519 и CVE-2022-1388, а для поиска уязвимых устройств применяют Shodan. После эксплуатации они создают веб-оболочки, учётные записи (среди наблюдавшихся имён — «sqladmin$», «adfsservice», «IIS_Admin», «iis-admin», «John McCain») и запрашивают исключения из политик безопасности.

Механика эксплуатации: от клика до захвата агента

Атака начинается с того, что контент из внешнего источника попадает в контекст агента. При косвенной инъекции промпта модель получает данные, которые при интерпретации меняют её поведение нежелательным или неожиданным образом. При прямой инъекции промпта изменение идёт от самого пользователя. В сценарии с Muse реализуется косвенный вариант: вредоносный промпт внедряет не пользователь, а внешний посредник в потоке данных.

Цепочка выглядит так. Сервер атакующего размещается прокси между пользователем Muse и endpoint Meta. Пользователь вводит голосовой запрос — и именно этот момент запускает всё остальное: сервер добавляет промпт, вызывающий вредоносную команду, например отправку архива всех сообщений WhatsApp атакующему. Диктовка Muse выполняется в облаке, где Meta может её логировать, а токен аутентификации уходит на тот endpoint, который в этот момент прописан в настройках. Поскольку любой локальный код может подменить этот endpoint на сервер атакующего, атакующий получает постоянный контроль над аккаунтом Muse.

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

Какие условия должны совпасть

Чтобы эксплуатация сработала, должны сойтись несколько условий.

Первое — тип ввода. Нужен голосовой запрос пользователя: только после его ввода сервер атакующего добавляет промпт с вредоносной командой. Без этого действия пользователя выполнение не наступает — противник полагается на конкретные действия пользователя для получения выполнения.

Второе — отсутствие подтверждения. Атаки позволяют писать вредоносные файлы на диск и делать снимки в большинстве случаев без какого-либо уведомления даже для бдительного пользователя. Высокорисковые операции не требуют одобрения человеком.

Третье — конфигурация самого агента. Любое приложение или команда терминала вправе править недокументированные настройки, включая endpoint, куда отправляется транскрипция. Подменив endpoint на свой, атакующий встаёт между пользователем и Meta и получает токен аутентификации, который уходит на его сервер вместе с запросом, — это и даёт полный контроль над аккаунтом Muse. Если бы разработчики выбрали локальную обработку диктовки и транскрипции на устройстве, атака была бы невозможна. Второе ошибочное решение — позволить любому приложению управлять всеми недокументированными настройками.

Почему это работает: доверие к контенту и инъекция промптов

OWASP LLM01:2025 различает два типа инъекций. Прямая происходит, когда ввод пользователя напрямую меняет поведение модели нежелательным или неожиданным образом. Косвенная — когда LLM принимает ввод из внешних источников, таких как сайты или файлы, и данные в этом внешнем контенте при интерпретации моделью меняют её поведение. Сценарий с Muse соответствует косвенной инъекции: вредоносный промпт внедряется не пользователем, а внешним посредником в поток данных. ClickFix при этом не описывается как отдельный тип инъекции и не связывается ни с прямой, ни с косвенной.

Работа arXiv 2302.12173 описывает более общий механизм: косвенная инъекция промпта позволяет удалённо, без прямого интерфейса, эксплуатировать LLM-интегрированные приложения, стратегически внедряя промпты в данные, которые с высокой вероятностью будут извлечены.

Какие меры защиты не были реализованы

К Muse применимы следующие меры OWASP LLM01: ограничение поведения модели, валидация форматов вывода, фильтрация входа и выхода, принцип наименьших привилегий, человеческое одобрение высокорисковых действий, изоляция и обозначение внешнего контента, adversarial-тестирование.

Не реализованы как минимум две. Принцип наименьших привилегий: ассистент получает широкие права ОС и аккаунтов, а любой локальный процесс может менять endpoint транскрипции. Человеческое одобрение для опасных операций: атаки позволяют писать вредоносные файлы и делать снимки без уведомления пользователя, тогда как для привилегированных операций следует применять human-in-the-loop.

Причина — в проектных решениях: диктовка выполняется в облаке, а не на устройстве, и любое приложение может управлять всеми недокументированными настройками. Разработчики, по мнению Уордла, не думали о безопасности с самого начала.

Что видит пользователь и что видит атакующий

Пользователь может не заметить ничего. Proof-of-concept атаки выполняли действия вроде записи вредоносных файлов на диск и снятия снимков — в большинстве случаев без какого-либо признака даже для внимательного пользователя.

Отдельный сюжет: при попытке использовать Muse для покупок на Amazon пользователи получали сообщение о том, что Muse — «unauthorized AI agent [that] violates Amazon's Conditions of Use».

В логах остаются следы диктовки: Meta выбрала вариант, при котором диктовка Muse происходит в облаке, где компания может её логировать. Для выявления следов компрометации рекомендуется проверять системы на уникальные идентификаторы и TTP, включая создание специфических имён пользователей, использование NGROK и Ligolo и развёртывание веб-шеллов в определённых каталогах, а также исходящие веб-запросы к files.catbox[.]moe и ***.ngrok[.]io.

Сопоставить с индикаторами компрометации из CISA AA24-241A можно IP-адреса и домены из Table 10 (например, 138.68.90[.]19, api.gupdate[.]net) и Table 11 (например, 18.134.0[.]66, login.forticloud[.]online), а также биткойн-адреса из раздела Actor Identifiers. Рекомендуется просматривать доступные логи на предмет IP-адресов из Table 10 в указанные временные рамки и проверять индикаторы из Table 11 для выявления исторической активности. Дополнительно стоит искать ежедневно создаваемую задачу Windows-службы со случайными восемью символами и одноимённую DLL в C:\Windows\system32\drivers\.

Пограничные случаи и устойчивость

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

После успешной эксплуатации доступ сохраняется: атакующий получает токен, дающий полный контроль над аккаунтом Muse, а при атаке через прокси-сервер — постоянный контроль, поскольку токен автоматически отправляется на вредоносный сервер. Через 12 часов после публикации Meta выпустила hotfix, устраняющий 0-day.

Компромиссы и уроки для дизайна привилегированных агентов

Muse требует от пользователей доступа к аккаунтам и широкому кругу ресурсов macOS — запись файлов, микрофон, камера, местоположение, календари — и тем самым снимает защитные меры Apple. Как компромисс обсуждается выбор облачной транскрипции вместо встроенной в macOS локальной обработки: локальный вариант сделал бы атаку невозможной. Второй момент — возможность любого приложения управлять всеми недокументированными настройками, включая endpoint транскрипции, что и позволяет получить токен с полным контролем над аккаунтом.

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

Позиция Meta состоит в том, что ассистент «built from the ground up for privacy and security», и компания опубликовала два поста о проектных решениях для безопасности и приватности. Практика из отчёта CISA показывает иной ландшафт: там злоумышленники используют похищенные учётные данные для входа в другие приложения и на контроллеры домена, административные учётные данные — для отключения антивируса и понижения политик PowerShell, а также пытаются добавить свои инструменты в allowlist через заявки на исключения безопасности. Персистентность в отчёте CISA обеспечивается ежедневной задачей Windows-службы со случайным именем из восьми символов и загрузкой одноимённой DLL из каталога драйверов. В Muse атака даёт постоянный контроль над аккаунтом из-за автоматической отправки токена на вредоносный сервер. Заявленная безопасность Muse расходится с практикой, где защита обходится через легитимные учётные данные, ослабление политик и добавление инструментов в исключения.

Что из этого следует на практике

Привилегированный AI-ассистент опаснее обычного приложения не из-за одной уязвимости, а из-за комбинации прав и архитектуры. Атакующему не нужно писать полноценный macOS-стилер: он манипулирует агентом и использует его привилегии для произвольных действий. Именно поэтому планка безопасности для таких приложений должна быть бесконечно выше.

Из механики следуют конкретные выводы. Любой локальный код, способный менять настройки агента, — это канал эскалации: если endpoint транскрипции подконтролен произвольному процессу, токен аутентификации утекает вместе с ним. Облачная обработка чувствительных данных расширяет поверхность атаки по сравнению с локальной альтернативой, доступной в macOS. Высокорисковые операции без подтверждения человеком позволяют агенту писать файлы и снимать камерой без ведома пользователя. И наконец, довод «устройство уже скомпрометировано, значит, все ставки сняты» здесь не работает: для захвата аккаунта Muse достаточно простой вариации ClickFix, то есть эксплуатация не требует предварительной компрометации.

Источники

Похожее