Muse — AI-ассистент Meta для macOS, который ради выполнения задач получает доступ к аккаунтам пользователя и к ресурсам системы, закрытым для обычных приложений: запись файлов на диск, микрофон, камера, отслеживание местоположения и календарей. Исследователи называют такой набор привилегий «extraordinarily privileged», потому что он отменяет защитные механизмы Apple, годами создававшиеся именно для того, чтобы установленные приложения и команды терминала не добирались до этих ресурсов. Обнаруженная 0-day позволяет любому локальному приложению или команде терминала получить токен аутентификацииУчётные данные, которыми пользователь подтверждает свой вход в аккаунт Muse. пользователя в аккаунте 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») и запрашивают исключения из политик безопасности.
Механика эксплуатации: от клика до захвата агента
Атака начинается с того, что контент из внешнего источника попадает в контекст агента. При косвенной инъекции промптаLLM принимает ввод из внешних источников — сайтов или файлов — и данные в этом контенте при интерпретации моделью меняют её поведение модель получает данные, которые при интерпретации меняют её поведение нежелательным или неожиданным образом. При прямой инъекции промптаввод пользователя напрямую меняет поведение модели нежелательным или неожиданным образом изменение идёт от самого пользователя. В сценарии с 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, то есть эксплуатация не требует предварительной компрометации.