Безопасность и конфиденциальность
Что где работает, что покидает ваш компьютер, как хранятся ключи и какие защитные механизмы окружают агента.
Cusp в первую очередь работает локально. Среда выполнения агента запущена на вашем компьютере, и код с историей сессий остаются на нём, если вы не пользуетесь облачными функциями. Запросы к модели уходят выбранному вами провайдеру: напрямую со своими ключами или через управляемый шлюз Cusp, если вы пользуетесь моделями Cusp. Для Cusp нужен аккаунт, поэтому приложение также обращается к серверам Cusp, чтобы выполнить вход.
Что где работает
| Компонент | Где работает | С чем взаимодействует |
|---|---|---|
| Десктопное приложение, CLI | Ваш компьютер | Локальный демон через loopback |
| Демон (daemon, среда выполнения агента) | Ваш компьютер | Провайдеры моделей, которые вы настроили, а также всё, к чему обращаются инструменты агента (веб-страницы, MCP-серверы, реестры пакетов) |
| Команда (локальный режим) | Ваш компьютер, внутри демона | Те же провайдеры и инструменты, что и в ваших сессиях |
| Веб-приложение, облачная синхронизация, облачные команды | Облако Cusp | Скоро. Только после входа в аккаунт |
Ваш код и история сессий остаются на вашем компьютере, если вы не пользуетесь облачными функциями, например синхронизацией или артефактами. Что именно попадает на серверы Cusp, описано в Политике конфиденциальности.
Что покидает ваш компьютер
- Запросы к модели. Чтобы выполнить работу, агент отправляет модели ваши запросы, загруженные инструкции, а также содержимое прочитанных файлов и вывод команд. Всё это идёт напрямую от демона к выбранному провайдеру и подчиняется его политике обработки данных. Выбирайте провайдера, чьи условия хранения данных и обучения на них подходят для вашего кода. Локальная модель через Ollama или LM Studio оставляет всё на вашем компьютере.
- Трафик инструментов.
WebFetchиWebSearchобращаются к соответствующим сайтам и поисковому сервису. MCP-серверы получают то, что им отправляет агент. Команды оболочки делают то, что делают; ограничить их можно песочницей. - Проверка обновлений — когда вы выбираете Проверить обновления… в десктопном приложении.
Телеметрия
Отчёты о сбоях и метрики использования по умолчанию выключены. Cusp спрашивает один раз, а изменить выбор можно в Настройки → Конфиденциальность. DO_NOT_TRACK=1 или CUSP_TELEMETRY=off выключают и то и другое независимо от выбора. Из отчётов удаляются пути, секреты и код — сначала на вашем компьютере, затем ещё раз на сервере. Отчёты не связаны с вашим аккаунтом и хранятся не дольше 90 дней. Сторонней аналитики нет. Подробнее — в Политике конфиденциальности.
Ключи и секреты
- Десктопное приложение: ключи провайдеров хранятся в системном хранилище учётных данных (связка ключей (Keychain) в macOS, диспетчер учётных данных в Windows, Secret Service в Linux). В базе данных Cusp хранится только ссылка на ключ. Значения ключей никогда не пишутся в журналы и не попадают в сообщения об ошибках.
- CLI: ключи берутся из переменных окружения или, для ключей с ротацией, из команды
apiKeyHelperв настройках. - Команды оболочки выполняются с окружением, из которого удалены секреты, поэтому команда, запущенная агентом, не наследует ваши ключи провайдеров.
- Конфигурация MCP может ссылаться на секреты как
${VAR}. Подставленные значения никогда не показываются модели. - Облако (скоро): ключи, хранящиеся в облаке, шифруются конвертным шифрованием (envelope encryption) с управляемым ключом.
Локальный демон
- Привязывается только к
127.0.0.1. Чтобы слушать любой другой интерфейс, нужен явный флаг, предназначенный для облачных песочниц. - При каждом запуске использует случайный порт и новый bearer-токен. Каждый запрос должен содержать токен. Адрес и токен записываются в файл обнаружения, который можете прочитать только вы, — так CLI и расширения редакторов находят демон.
- Принимает запросы из браузера только с разрешённых источников (origins) — собственного источника десктопного приложения. Это проверяется и для HTTP, и для WebSocket-подключений.
- Десктопное приложение никогда не записывает токен на диск или в журналы.
- Хуки, MCP-серверы и команды оболочки не наследуют токен.
Полное описание границ доверия и механизмов защиты — в разделе Модель безопасности.
Защитные механизмы вокруг агента
| Уровень | Что делает |
|---|---|
| Разрешения | Каждый вызов инструмента перед выполнением проверяется по хукам, вашим правилам и режиму сессии. Запрещающие правила побеждают везде |
| Защищённые пути | Запись в .git, конфигурацию агента (.cusp, .claude, .codex, …), файлы запуска оболочки и конфигурации инструментов, исполняющих код, всегда требует участия человека — в любом режиме |
| Разбор команд оболочки | Составные команды, подстановки и обёртки разбираются, поэтому safe && dangerous не может проскочить по разрешающему правилу для safe |
| Песочница | Изоляция команд оболочки на уровне ОС, включена по умолчанию: запись только в рабочую область, без чтения учётных данных, без сети, если вы не разрешили конкретные домены |
| Классификатор режима auto | Видит только ваши сообщения и предлагаемое действие, но никогда не видит вывод инструментов, поэтому внедрённый текст не может уговорить его дать разрешение |
| Доверие к рабочей области | Недоверенный репозиторий не может добавить хуки, переменные окружения, MCP-серверы или разрешающие правила |
| Чтение перед правкой | Правки сверяются с состоянием файла на момент чтения, поэтому агент никогда не перезапишет изменения, которых не видел |
| Контрольные точки | Перед каждой правкой создаётся снимок файлов, так что можно сделать откат |
| Аудит | Каждое решение о разрешении записывается в журнал сессии с указанием, кто или что его приняло |
Любая проверка при сбое запрещает действие. Если песочницу нельзя применить, классификатор недоступен или хук не отвечает, результатом будет запрос подтверждения или отказ, но никогда не молчаливое разрешение.
Prompt injection
Текст, который читает агент (веб-страницы, issue, файлы из зависимостей), может содержать инструкции, адресованные агенту. Архитектура Cusp исходит из того, что так и будет:
- Содержимое от инструментов — это данные. Оно не действует от вашего имени.
- Сообщения от других агентов приходят как информация, а не как ваши инструкции, и не могут выдавать разрешения.
- Движок разрешений, защищённые пути и песочница действуют независимо от того, что модель уговорили попробовать.
Относитесь к недоверенному репозиторию так же, как к запуску его кода: прежде чем доверять рабочей области, просмотрите её папки .cusp/ и .claude/, хуки и MCP-серверы.
Защита десктопного приложения
- Загружает только встроенный интерфейс; никакого удалённого содержимого.
- Строгая политика безопасности содержимого (CSP) ограничивает интерфейс им самим и демоном на loopback-адресе.
- Все вызовы от интерфейса к нативной оболочке проходят через слой изоляции с явным списком разрешённого.
- В macOS приложение подписано и нотаризовано, в Windows — подписано. Подпись обновлений проверяется по ключу, встроенному в приложение.
Данные на диске
| Данные | Где хранятся |
|---|---|
| Сессии (журналы событий) | База данных SQLite в папке данных |
| Контрольные точки файлов | Блобы с адресацией по содержимому в папке данных |
| Worktree | worktrees/ в папке данных |
| Большие выводы инструментов | Артефакты в папке данных |
| Журнал аудита (решения о разрешениях, сетевые подключения) | audit/ в папке данных |
Папка данных — ~/.cusp для CLI и ~/Library/Application Support/run.cusp.desktop/daemon для десктопного приложения в macOS. Удалите её, чтобы стереть всю локальную историю сессий.
Как сообщить об уязвимости
Пожалуйста, сообщайте о проблемах безопасности конфиденциально на security@cusp.run, а не в публичном issue. В политике раскрытия уязвимостей описано, что входит в её рамки, в какие сроки мы отвечаем и какие гарантии даём добросовестным исследователям.
Десктопное приложение
Как десктопное приложение Cusp запускает демон, хранит ключи в системной связке ключей, обрабатывает диплинки cusp:// и встраивается в систему.
Модель безопасности
Границы доверия в Cusp и механизмы защиты на каждой из них — барьер разрешений, песочница ОС и список разрешённых сетевых адресов, секреты, локальный демон, десктопное приложение и облако.