Безопасность и правила использования
4.1 Модель безопасности простыми словами
Архитектура Mercury спроектирована с учётом изоляции и управляемости при выполнении команд ИИ-агентов на macOS:
[ Подключаемая ИИ-платформа ] (Проверено: ChatGPT, Claude. Работает с клиентами MCP; пример конфигурации доступен для Gemini.)
│ (Подключение MCP к 127.0.0.1 / туннель пользователя)
▼
[ Mercury Device Commander ] (Локальное приложение macOS и демон MCP)
│
├─► 1. Валидация токена клиента (файлы токенов 0600)
├─► 2. Проверка возможностей клиента (owner-full, scoped, read-only)
├─► 3. Локальный журнал операций (JSON Lines без содержимого запросов)
▼
[ Локальный Mac ] (Файлы, запуск процессов argv, AppleScript, захват экрана) - Локальное выполнение: Mercury работает как нативный процесс macOS на 127.0.0.1. Внешний туннель до ИИ-клиента при необходимости настраивает сам пользователь. Доступ к файлам, запуск команд, AppleScript и снимки экрана выполняются на вашем Mac; права каждого клиента задаёт профиль.
- Профили возможностей: Профили клиентов задают уровни возможностей (owner-full, scoped с перечнем разрешённых вызовов или read-only). Профиль read-only блокирует запись файлов, выполнение команд и вызовы AppleScript.
- Отдельные отзываемые токены клиентов: Каждому ИИ-клиенту можно выдать отдельный отзываемый токен (по умолчанию используется общий ключ запуска, который в v1 не отзывается). Отзыв действует со следующего запроса.
- Локальный журнал операций (JSON Lines): В локальный журнал записываются клиент, инструмент, разрешено или отказано, результат и время. Содержимое запросов не сохраняется.
Не песочница
Mercury v1 это привилегированный инструмент владельца машины. Он не изолирует команды или файлы в отдельной папке. Безопасность строится на идентификации, полномочиях, аренде ресурсов, аудите и изоляции, а не на белом списке команд. Профиль клиента по умолчанию: owner-full.
Известные ограничения
- В v1 нет подтверждений человеком перед действиями.
- Профили scoped ограничивают возможности по именам, а не по путям или командам.
- Общий ключ запуска не может быть отозван в v1.
- Чтение файлов блокирует только файлы с именами .env*, поэтому ИИ с доступом к файлам может читать другие локальные файлы, включая собственные файлы токенов Mercury.
- Журнал операций это локальный файл, который пользователь машины может отредактировать, он не содержит цепочки хэшей и не хранит содержимое запросов.
- Блокировка экрана (снимки экрана, открытие приложений, AppleScript) координирует только вызовы, проходящие через Mercury: второй клиент ждет до 3 секунд и затем получает отказ; первый клиент удерживает блокировку 10 секунд после своего последнего вызова; блокировка хранится в памяти и сбрасывается при перезапуске демона.
- Аренда устройства Android выдается на один вызов и не является эксклюзивной: два клиента все еще могут выполнять действия на одном телефоне.
- Поддержка iOS и iPadOS ограничена только обнаружением устройств; Mercury не управляет интерфейсом iOS. Действия на Android требуют установленного adb и разрешенной отладки по USB.
- Повторное действие, результат которого неизвестен, возвращается со статусом UNCERTAIN и не повторяется; Mercury не выполняет откат, и это не гарантирует однократное выполнение.
- Долговременные сессии, сохраняющиеся после перезапуска, являются проектной целью; они не заявляются как проверенные.
- Локальный демон слушает только 127.0.0.1; для доступа к нему из веб-ИИ требуется туннель, который вы настраиваете самостоятельно.
- Разрешения macOS (например, «Запись экрана») по-прежнему действуют.
- Mercury не проверяет побочные эффекты в реальном мире после выполнения.
4.2 Чего продукт НЕ делает
Для прозрачности и исключения недопонимания, Mercury:
- НЕ передаёт телеметрию на серверы Merlin&Partners: демон слушает локальный адрес 127.0.0.1, а сетевой туннель к удалённому клиенту ИИ настраивает сам пользователь;
- НЕ обходит встроенные механизмы защиты macOS (SIP, разрешения TCC, доступ к связке ключей Keychain);
- НЕ предоставляет постоянный скрытый root-доступ без явного административного повышения привилегий в macOS;
- НЕ обучает собственные модели ИИ на вашем коде, документах или терминальных сессиях;
- НЕ является скрытым бэкдором: входящее управление требует наличия действительного токена доступа и активной сессии.
4.3 Правила допустимого использования (AUP)
Пользователи обязаны соблюдать следующие правила. Запрещено:
- Использовать ПО для атак, сканирования уязвимостей или несанкционированного доступа к чужим системам;
- Применять Mercury в критически опасных средах, где программный сбой может привести к ущербу для жизни, здоровья или экологии;
- Создавать вредоносную нагрузку на локальные службы или мешать нормальной работе настроенных подключений;
- Использовать автоматизацию через Mercury для сбора паролей, закрытых ключей или несанкционированных рассылок.
4.4 Сообщение об уязвимостях и Safe Harbor
Мы приветствуем ответственное раскрытие информации об уязвимостях от исследователей безопасности.
Правила отправки отчётов:
- Направляйте отчёты на адрес:
office@merlin-partners.com - Отчёт должен содержать:
- Подробное описание уязвимости;
- Шаги воспроизведения или PoC;
- Версию ПО и конфигурацию macOS;
- Контактные данные для связи.
Наши обязательства:
- Первичный ответ на отчёт об уязвимости в течение 48 часов;
- Проведение анализа и информирование о ходе устранения;
- Координированное раскрытие (просьба сохранять конфиденциальность 30-60 дней до публикации патча).
Safe Harbor (Защита добросовестных исследователей):
При добросовестном соблюдении правил (отсутствие DoS, сохранение конфиденциальности чужих данных, отказ от деструктивных действий) Merlin&Partners гарантирует неприменение правовых мер против исследователей.