Документация

Документация/Безопасность и данные

Обзор безопасности

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

Агент работает на вашем компьютере с правами вашей учётной записи: читает файлы, запускает команды, обращается к базам и кластерам. Поэтому стоит знать, где проходят его границы и кто их держит. В DevMachine их держат приложение и операционная система. Модель в этом не участвует, и текстом в чате или в файле агента из границ не вывести. Ниже — принципы и карта настроек.

Как открыть настройки безопасности

  1. Откройте настройки: шестерёнка в шапке окна или ⌘ ,. На Windows и Linux в раскладке по умолчанию — Ctrl Alt S.
  2. В списке слева, в группе «Безопасность», выберите «Безопасность агента».
  3. Наверху раздела пять вкладок: «Действия», «Где работает», «Подключения», «Исключения», «Организация».

Настройки хранятся на этом компьютере и запечатаны системной связкой ключей. На сервер они не уходят.

Принципы

  1. Опасное — только с вашего разрешения. Каждое действие агента стоит на одной из четырёх ступеней: «Запрещено», «Спрашивать всегда», «Спрашивать в Авто», «Без вопросов». С какой ступени агент спрашивает, решает режим чата: его выбирают переключателем под полем ввода (см. Режимы агента). Если действие требует разрешения, агент останавливается и показывает над полем ввода карточку разрешения (см. Разрешения и вопросы).
  2. Ключи закрыты по умолчанию. Ключи и пароли в домашней папке, менеджеры паролей и история оболочки закрыты в любом режиме. Если на вкладке «Действия» перевести их на «Без вопросов», агент получит к ним доступ, и каждое обращение попадёт в журнал. Файлы .env агент открывает только с вашего разрешения, а модель видит в них имена переменных без значений.
  3. Границы держат приложение и система. Уровень доступа к базе или кластеру приложение проверяет при каждом обращении. Песочница команд — средство операционной системы: она не даёт команде агента писать вне разрешённых папок и ходить в сеть мимо списка (см. Ограничения агента). Сам агент в этих проверках не участвует.
  4. По умолчанию — свободно, строже — одним выбором. Сразу после установки агент работает как другие агенты для кода: без песочницы, с доступом ко всему диску и к интернету. Для чужого кода включите набор «Строго».
  5. Всё записывается. В журнал действий попадают все вызовы инструментов, отказы и ваши ответы. Незаметно исправить журнал нельзя. Журнал открывают через «Настройки → Журнал действий» (см. Аварийная остановка и журнал).
  6. Остановить можно сразу. ⇧ ⌘ Esc останавливает агента и всё, что он запустил.
  7. Организация только сужает права. Что закрепила организация, сотрудник не ослабит.

Карта настроек

ГдеЧто тамПодробно
«Безопасность агента → Действия»Ступени действий, «Режим новых чатов», проверка командыОграничения агента
«Безопасность агента → Где работает»Наборы «Свободно», «Осторожно», «Строго»: песочница, папки, сеть, скрытие ключейОграничения агента
«Безопасность агента → Подключения»Уровни доступа к базам, кластерам, брокерам сообщений и браузеру, маскирование данныхДоступ к базам и кластерам
«Безопасность агента → Исключения»Запомненные ответы, ваши правила, файл правил проекта, импорт и экспортОграничения агента
«Безопасность агента → Организация»Что закрепила организация; кнопка аварийной остановкиОрганизации
«Журнал действий»Всё, что агент сделал или пытался сделать, и что вы ему разрешилиАварийная остановка и журнал
«Доступ с телефона»Телефон видит сессии этого компьютера. Выключено по умолчаниюДоступ с телефона
«Внешние агенты»Другие агентные системы ставят задачи агенту. Выключено по умолчаниюВнешние агенты

Что видно в окне приложения

  • Режим чата — переключатель под полем ввода: «Авто», «Полный», «План» или «Без ограничений» (см. Режимы агента).
  • Карточки разрешений над полем ввода (см. Разрешения и вопросы).
  • Красная полоса «Агент работает без ограничений в этом чате» с кнопкой «Выключить», если чат в режиме «Без ограничений».
  • Щит в шапке окна показывает, как ограничен агент. Перечёркнутый щит — «Агент без ограничений»: не включено ни одно ограничение, как в наборе «Свободно», который стоит по умолчанию. Щит с галочкой — файлы и сеть ограничены, например набором «Осторожно» или «Строго». Жёлтый щит с восклицательным знаком — ограничения есть, но нет песочницы, и команды идут без неё. Так бывает на Linux без bubblewrap и на Windows, где песочницу не настроили (см. Ограничения агента). Подсказка щита называет, что ограничено, например «Файлы: проект · сеть: allowlist». Нажмите на щит, и откроется «Безопасность агента».
  • Уведомление «Агент обратился к … — заблокировано» с причиной. В нём бывают кнопки «Открыть «Безопасность агента»», «Открыть .env этого проекта» или «Разрешить чтение».
  • Плашка «Агент остановлен» в шапке — после аварийной остановки.

С чего начать

  • Свой проект, вы рядом. Ничего менять не нужно: хватит набора «Свободно» и режима «Авто».
  • Чужой репозиторий или код, которому вы не доверяете. Включите набор «Строго» во вкладке «Где работает»: только папка проекта, сеть по списку, команды идут в песочнице и без неё не запускаются.
  • Агент работает с продом. Проверьте уровни доступа и метки окружений во вкладке «Подключения»: у рабочих кластеров должна стоять метка prod. Метку выбирают в блоке «Кластеры Kubernetes», рядом с именем кластера (см. Доступ к базам, кластерам и очередям). Не держите боевые пароли в файлах проекта.
  • Хотите меньше вопросов. Переведите чат в режим «Полный» или разрешите нужные команды своими правилами во вкладке «Исключения».
  • Команда или компания. Общие правила для всех задаёт организация (см. Организации).

Ограничения

  • Без песочницы команды проверяются по словам. Путь, который команда собирает во время работы, такая проверка не ловит — для этого нужна песочница (набор «Осторожно» или «Строго»).
  • Уровни подключений не закрывают доступ, который есть у агента в обход приложения: пароль в файле проекта, свой скрипт с драйвером базы.
  • Маскирование находит ключи известных форматов. Текст, который вы сами пишете в чат, уходит модели как есть (см. Данные и приватность).
  • Когда проект открыт на сервере по SSH, на самом сервере действуют только основные ограничения.

Что дальше

Обновлено · Нашли неточность? Напишите на support@devmachine.ai или в Telegram.