Перейти к основному содержимому

Безопасность

Что этот продукт делает с вашей машиной и вашими данными — изложено так, чтобы вы могли решать, а не предполагать.

Что покидает вашу машину

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

Если эта точка работает на вашей собственной машине, её не покидает ничего.

Два исключения, оба тихо не срабатывают без сети и ни одно из них не несёт ничего из набранного вами:

  • настольное приложение спрашивает свою точку обновлений, есть ли версия новее
  • панель Models при открытии подтягивает с Hugging Face список популярных моделей

Что агент может сделать с вашей машиной

Две настройки, делающие разную работу.

Песочница решает, что он может. При workspace-write — значении по умолчанию — он может писать куда угодно внутри своего рабочего каталога и никуда больше. Чтение не ограничивается ни в одном режиме.

Подтверждения решают, о чём он обязан спросить заранее — от каждой незнакомой команды до вообще ничего.

Сочетание, с которым стоит быть осторожнее, — danger-full-access вместе с never: агент, выполняющий произвольные команды, ничего не показывая и ни о чём не спрашивая. Есть каталоги, где это правильно. Ваша домашняя папка — не из них.

Подробности — в Песочнице и подтверждениях.

Где фоновому запуску позволено начаться

Запуск, чей каталог не является ни рабочим пространством, ни отделом, ни местом, разрешённым вами поимённо, придерживается, а не запускается.

Это существует потому, что запланированная задача, созданная до появления отделов, несла в себе домашний каталог и отработала сорок два раза: каждый запуск дотягивался до .ssh и Documents, и никого не спрашивали.

Настройка подтверждений в never отключает и это — вместе со всем остальным, что и означает та настройка.

Ключи

Ключи API хранятся вне config.toml, потому что этот файл отдают другим и вставляют в issue. Они записываются туда же, где лежат остальные ваши секреты, и после сохранения больше не показываются.

Ключи коннекторов устроены так же: вы называете переменные окружения, нужные серверу, а значения хранятся отдельно от конфигурации этого сервера.

Шлюз

Настольное приложение и веб-интерфейс разговаривают с локальным шлюзом. Он:

  • привязывается к loopback, если явно не сказано иное, поэтому не оказывается выставленным в сеть по случайности
  • требует токен при каждом подключении — он создаётся для каждого запуска и печатается один раз, чтобы ни другой локальный пользователь, ни веб-страница в вашем браузере не смогли им управлять

Клиент этого шлюза может заставить агента выполнять команды на машине, где шлюз запущен. В этом весь смысл, и потому токен и существует.

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

Спаренные телефоны

Спаривание выдаёт устройству токен, позволяющий управлять агентом на этой машине. Адрес показывается один раз. Спаривайте только собственные устройства и отзывайте всё, чего не узнаёте.

Сборки не подписаны

Никакого сертификата Apple или Microsoft, поэтому операционная система не может понять, кто их собрал, и так и говорит. Это предупреждение верно, и читать его следует как верное.

Если вам не хочется верить нам на слово ни в чём из этого — исходники здесь, и это одна команда cargo build.

Сообщить о чём-то

Не открывайте публичный issue из-за уязвимости. Воспользуйтесь формой закрытого уведомления на GitHub: она доходит до сопровождающих, ничего не публикуя.

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

Не прикладывайте свои ключи и журналы, в которых они есть.