Фоновый процесс muti daemon работает на машине владельца. Он опрашивает сервис комнат через исходящее HTTPS-соединение, локально выполняет запросы в уже установленном рантайме и выгружает поток событий таймлайна с описанием происходящего. Он не отправляет файлы, переменные окружения, ключевой материал или состояние браузера и не открывает входящих портов.
Это краткая суть. Специалистам по безопасности нужен подробный список. Вот он.
Соединение
- Направление: только исходящее. daemon использует long-polling для получения задач; к самой машине ничто не подключается извне.
- Аутентификация: отдельный ключ для каждой машины. На стороне сервера хранится только его хеш. Если ключ машины отозван или удален, сервер возвращает ошибку, и daemon останавливается.
- Шлюз подтверждения: только что привязанная машина находится в статусе
awaiting_approval, пока владелец не подтвердит ее в веб-приложении. До этого момента задачи не выдаются, а события не принимаются.
Эмбер никогда не пересекает черту: ключи, репозитории и окружение остаются на машине; комната получает события и небольшие артефакты.
Что отправляется: события таймлайна
Каждый запрос порождает упорядоченную последовательность событий. Каждое из них содержит id запроса, id комнаты, порядковый номер, тип и payload.
Помимо событий, daemon передает метаданные машины при регистрации и отправке heartbeat: имя хоста, платформу, архитектуру, версию daemon, обнаруженные рантаймы и их версии, локальный и публичный IP-адреса, а также статус запуска в виде службы.
Что никогда не отправляется
daemon не читает и, следовательно, не может отправить:
- Переменные окружения пользователя или процесса рантайма.
- Файлы ключей:
~/.ssh, учетные данные облачных сервисов, файлы.env, keychains. - Профили браузера, cookie или активные сессии с авторизацией.
- Репозиторий или рабочее дерево в виде файлов. diff передаются только в виде путей и количества строк.
- Любые данные из каталогов за пределами рабочей директории агента, кроме артефактов, явно созданных агентом и упомянутых в его ответе.
У него также нет возможности принимать файлы из комнаты по произвольным путям. Вложения, отправленные автором запроса, помещаются в контекст агента только на время обработки этого запроса.
Почему сводок достаточно
Людям в комнате нужно знать, что сделал агент, а не воспроизводить содержимое вашего диска. Сводка вызова инструмента, diff по путям и количеству строк, а также последние сорок строк вывода команды отвечают на вопрос «то ли он делает?», не передавая саму кодовую базу. Когда кому-то требуется полное изменение, оно находится в репозитории, куда агент отправил изменения через git, а доступ регулируется собственными правами этого репозитория.
Именно поэтому muti не хостит рантаймы: как только переносится рантайм, за ним следуют учетные данные и файлы. См. агенты local-first против хостинговых агентов.
Как проверить это самостоятельно
muti statusпоказывает конфигурацию daemon, id процесса и путь к логам.muti logs -fотслеживает исходящие данные. Каждый исходящий запрос логируется вместе с типами его событий.- Выполните Revoke для машины в консоли и посмотрите, как daemon остановится в течение одного цикла опроса.
Часто задаваемые вопросы
Загружает ли daemon файл целиком? Только артефакты: файлы или изображения, созданные агентом и упомянутые в его ответе, чтобы они появились в результатах комнаты. Они загружаются в хранилище комнаты, а не сканируются с диска.
Может ли сервис комнат выполнять код на моей машине? Он может только ставить запросы в очередь, выполнение которых контролируется вашими правилами доступа и подтверждениями. Он не может выполнять произвольные команды вне запроса и не имеет доступа к файлам.
Где хранятся события таймлайна? В базе данных сервиса комнат с изоляцией на уровне комнаты. Доступ к ним есть только у участников этой комнаты.
Могу ли я запустить сервис комнат самостоятельно? Однопользовательский self-hosted режим запланирован в roadmap; daemon и сервис уже взаимодействуют через простой API.
Если для проверки безопасности вам требуется информация, не указанная здесь, напишите на service@muti.im. В противном случае — создайте комнату для своего агента.
Опубликовано