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

Руководство

К чему ИИ-агенты для программирования имеют доступ на вашем компьютере?

Claude Code, Codex и Cursor работают от имени вашего пользователя. Что им доступно на ноутбуке разработчика, как инструменты ограничивают это по умолчанию и где пробелы.

· 8 мин чтения · Команда vetkit

Робот стоит у открытого ящика стола, полного ключей и папок, на ноутбуке разработчика, а разработчик наблюдает из-за экрана.Робот стоит у открытого ящика стола, полного ключей и папок, на ноутбуке разработчика, а разработчик наблюдает из-за экрана.

Коротко

ИИ-агент для программирования, такой как Claude Code, OpenAI Codex или Cursor, работает на вашем компьютере под вашей учётной записью. Всё, что эта учётная запись может прочитать, запустить или достать по сети, в принципе доступно и агенту. Реально его останавливает сочетание запросов на подтверждение, опциональной или включённой по умолчанию песочницы и настроек, выбранных вами или вашим репозиторием.

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

Что находится в зоне досягаемости

На типичном ноутбуке разработчика процесс, запущенный от вашего имени, обычно может добраться до:

  • Учётных данных на диске. SSH-ключи в ~/.ssh, облачные учётные данные вроде ~/.aws/credentials, токены реестров в ~/.npmrc, сессии CLI для GitHub, облачных провайдеров и баз данных, а также файлы .env во всех проектах, которые у вас склонированы.
  • Других проектов. Исходный код, заметки и конфигурация за пределами репозитория, в котором был запущен агент.
  • Сети. Любой домен, доступный с вашего компьютера, включая paste-сервисы, файлообменники и произвольные вебхуки.
  • Инструментов с побочными эффектами. git push, пакетные менеджеры, облачные CLI, клиенты баз данных и kubectl, зачастую уже авторизованные.
  • Мест, которые сохраняются между сессиями. Профили оболочки, объекты автозапуска, git-хуки, а также собственные конфигурационные файлы и файлы инструкций агента, которые определяют, что будет разрешено следующей сессии.

Для всего этого не нужен злонамеренный агент. Обычные пути вполне приземлённые: команда, которая делает больше, чем предполагалось, установка зависимости, запускающая скрипт, или инструкции, спрятанные на веб-странице, в issue или README, которые агент читает и выполняет (prompt injection). Все три вендора предупреждают о prompt injection в собственной документации по безопасности.

Как это ограничивают Claude Code, Codex и Cursor

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

Ограничения по умолчанию у трёх ИИ-агентов для программирования
ИнструментПодтверждения по умолчаниюПесочница для командРежим «пропустить всё»
Claude CodeИнтерактивные сессии стартуют в auto mode, где действия проверяет классификатор, вместо того чтобы каждый раз спрашивать вас; ручной режим спрашивает перед правками и командамиПо умолчанию выключена. Если её включить (Seatbelt на macOS, bubblewrap на Linux), запись ограничивается проектом, а сеть идёт через allowlist, но чтение по-прежнему охватывает большую часть системы, если вы его не запретитеРежим bypassPermissions; документация советует использовать его только в контейнерах или виртуальных машинах
OpenAI CodexВ папках под системой контроля версий — workspace-write с подтверждением по запросу; в остальных местах — только чтениеВключена по умолчанию (Seatbelt на macOS, bubblewrap и seccomp на Linux); сеть по умолчанию выключена--dangerously-bypass-approvals-and-sandbox (алиас --yolo), помечен как не рекомендуемый
CursorЧувствительные действия требуют подтверждения; рекомендуемый режим запуска использует автоматического ревьюера, а правки файлов в рабочей области, кроме конфигурационных, не вызывают запросаИспользуется по возможности в режиме по умолчанию (Seatbelt на macOS, Landlock на Linux); при настройке доступа на чтение по умолчанию чтение за пределами рабочей области разрешеноРежим «Run Everything» — без песочницы и без ревьюера

Две детали обычно удивляют. Во-первых, песочницы в основном ограничивают запись и сеть, а не чтение: в песочнице Claude Code и при настройке Cursor по умолчанию команда всё ещё может читать файлы вроде ~/.ssh, если вы явно это не запретили. Во-вторых, самый безопасный на вид режим по умолчанию — не всегда тот, в котором вы на самом деле работаете: коллега, алиас в оболочке или CI-скрипт могут запускать агента с отключёнными подтверждениями.

Где ограничения заканчиваются

  • Одобренные команды выполняются с вашими полными правами. На странице безопасности Claude Code отмечается, что одобренная вами Bash-команда всё равно может писать везде, куда может писать ваша учётная запись. Одобряя npm install, вы одобряете каждый install-скрипт, который он подтянет.
  • Автоматические ревьюеры — тоже модели. Auto-режимы снижают усталость от запросов, но классификатор может ошибаться, и вендоры называют эти режимы best-effort.
  • Хуки — не граница безопасности. В документации Claude Code и Cursor указано, что по умолчанию при таймаутах или ошибках хуки пропускают действие (fail open), и Claude Code рекомендует для жёстких правил разрешения и запрета систему разрешений, а не хуки.
  • Репозитории приносят с собой конфигурацию. Настройки проекта, определения MCP-серверов, хуки и файлы инструкций приезжают вместе с git clone. Инструменты всё чаще ждут, пока вы отметите папку как доверенную, прежде чем их применять, но не все настройки защищены одинаково. В руководстве по разрешениям разобрано, что может изменить репозиторий.
  • Потом никто не смотрит. Запросы защищают момент подтверждения. Без записи о том, что сессия на самом деле сделала, чтение учётных данных с последующей загрузкой выглядит как любой другой насыщенный рабочий день.

Как сузить то, до чего может дотянуться агент

  1. Включите песочницу там, где она опциональна, и запретите чтение путей с учётными данными (Claude Code поддерживает filesystem.denyRead и блокировку чтения за пределами рабочего каталога; в Cursor есть настройка чтения только в рабочей области).
  2. Держите сетевой доступ закрытым по умолчанию и разрешайте только те домены, которые нужны для задачи.
  3. Используйте режимы «пропустить всё» только в одноразовом контейнере или виртуальной машине без смонтированных личных учётных данных, как рекомендуют сами вендоры.
  4. Используйте короткоживущие учётные данные с узкими правами на машинах разработчиков, чтобы утёкший токен стоил меньше.
  5. Ревьюйте конфигурацию агентов как код. Файлы настроек, MCP-серверы и файлы инструкций в pull request заслуживают того же внимания, что и новая зависимость.
  6. Ведите запись сессий, чтобы постфактум ответить на вопрос «что трогал агент?». В руководстве по мониторингу сравниваются варианты.

Где здесь vetkit

vetkit смотрит на это с двух сторон. Проверки категории AI code risks в аудите репозитория помечают закоммиченную конфигурацию агентов, которая расширяет доступ: отключённые подтверждения, настройки, заранее разрешающие произвольные shell- или сетевые команды, хуки, которые скачивают и запускают скрипты, незакреплённые или загружаемые удалённо MCP-серверы, учётные данные в конфигурации MCP и скрытый текст в файлах инструкций агентов.

Agent Watch — десктопное приложение для машин команды — записывает, что ИИ-агенты для программирования на самом деле делают во время сессии: чтение учётных данных, новые сетевые адреса назначения, деструктивные команды, запись за пределами проекта и изменения собственных настроек. Оно наблюдает и сообщает, но не блокирует действия, и выгружает алерты и сводки сессий, а не содержимое файлов или промпты. О доступности и модели приватности читайте в документации Agent Watch.

Источники

Утверждения о каждом инструменте мы взяли из его собственной документации . Окончательным источником считайте страницы самих вендоров:

Названия продуктов являются товарными знаками соответствующих владельцев. vetkit не связан с ними, не одобрен и не спонсируется ими. Заметили устаревшие сведения? Напишите на contact@vetkit.dev, и мы всё исправим.

Запросить ранний доступ

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

Мы используем эти данные только для ответа на ваш запрос. Политика конфиденциальности