Документация/Безопасность и данные
Обзор безопасности
На чём держится безопасность агента в DevMachine, где её настроить и с чего начать, если проект чужой или агент работает с продом.
Агент работает на вашем компьютере с правами вашей учётной записи: читает файлы, запускает команды, обращается к базам и кластерам. Поэтому стоит знать, где проходят его границы и кто их держит. В DevMachine их держат приложение и операционная система. Модель в этом не участвует, и текстом в чате или в файле агента из границ не вывести. Ниже — принципы и карта настроек.
Как открыть настройки безопасности
- Откройте настройки: шестерёнка в шапке окна или ⌘ ,. На Windows и Linux в раскладке по умолчанию — Ctrl Alt S.
- В списке слева, в группе «Безопасность», выберите «Безопасность агента».
- Наверху раздела пять вкладок: «Действия», «Где работает», «Подключения», «Исключения», «Организация».
Настройки хранятся на этом компьютере и запечатаны системной связкой ключей. На сервер они не уходят.
Принципы
- Опасное — только с вашего разрешения. Каждое действие агента стоит на одной из четырёх ступеней: «Запрещено», «Спрашивать всегда», «Спрашивать в Авто», «Без вопросов». С какой ступени агент спрашивает, решает режим чата: его выбирают переключателем под полем ввода (см. Режимы агента). Если действие требует разрешения, агент останавливается и показывает над полем ввода карточку разрешения (см. Разрешения и вопросы).
- Ключи закрыты по умолчанию. Ключи и пароли в домашней папке, менеджеры паролей и история оболочки закрыты в
любом режиме. Если на вкладке «Действия» перевести их на «Без вопросов», агент получит к ним доступ, и каждое
обращение попадёт в журнал. Файлы
.envагент открывает только с вашего разрешения, а модель видит в них имена переменных без значений. - Границы держат приложение и система. Уровень доступа к базе или кластеру приложение проверяет при каждом обращении. Песочница команд — средство операционной системы: она не даёт команде агента писать вне разрешённых папок и ходить в сеть мимо списка (см. Ограничения агента). Сам агент в этих проверках не участвует.
- По умолчанию — свободно, строже — одним выбором. Сразу после установки агент работает как другие агенты для кода: без песочницы, с доступом ко всему диску и к интернету. Для чужого кода включите набор «Строго».
- Всё записывается. В журнал действий попадают все вызовы инструментов, отказы и ваши ответы. Незаметно исправить журнал нельзя. Журнал открывают через «Настройки → Журнал действий» (см. Аварийная остановка и журнал).
- Остановить можно сразу. ⇧ ⌘ Esc останавливает агента и всё, что он запустил.
- Организация только сужает права. Что закрепила организация, сотрудник не ослабит.
Карта настроек
| Где | Что там | Подробно |
|---|---|---|
| «Безопасность агента → Действия» | Ступени действий, «Режим новых чатов», проверка команды | Ограничения агента |
| «Безопасность агента → Где работает» | Наборы «Свободно», «Осторожно», «Строго»: песочница, папки, сеть, скрытие ключей | Ограничения агента |
| «Безопасность агента → Подключения» | Уровни доступа к базам, кластерам, брокерам сообщений и браузеру, маскирование данных | Доступ к базам и кластерам |
| «Безопасность агента → Исключения» | Запомненные ответы, ваши правила, файл правил проекта, импорт и экспорт | Ограничения агента |
| «Безопасность агента → Организация» | Что закрепила организация; кнопка аварийной остановки | Организации |
| «Журнал действий» | Всё, что агент сделал или пытался сделать, и что вы ему разрешили | Аварийная остановка и журнал |
| «Доступ с телефона» | Телефон видит сессии этого компьютера. Выключено по умолчанию | Доступ с телефона |
| «Внешние агенты» | Другие агентные системы ставят задачи агенту. Выключено по умолчанию | Внешние агенты |
Что видно в окне приложения
- Режим чата — переключатель под полем ввода: «Авто», «Полный», «План» или «Без ограничений» (см. Режимы агента).
- Карточки разрешений над полем ввода (см. Разрешения и вопросы).
- Красная полоса «Агент работает без ограничений в этом чате» с кнопкой «Выключить», если чат в режиме «Без ограничений».
- Щит в шапке окна показывает, как ограничен агент. Перечёркнутый щит — «Агент без ограничений»: не включено ни одно ограничение, как в наборе «Свободно», который стоит по умолчанию. Щит с галочкой — файлы и сеть ограничены, например набором «Осторожно» или «Строго». Жёлтый щит с восклицательным знаком — ограничения есть, но нет песочницы, и команды идут без неё. Так бывает на Linux без bubblewrap и на Windows, где песочницу не настроили (см. Ограничения агента). Подсказка щита называет, что ограничено, например «Файлы: проект · сеть: allowlist». Нажмите на щит, и откроется «Безопасность агента».
- Уведомление «Агент обратился к … — заблокировано» с причиной. В нём бывают кнопки «Открыть «Безопасность агента»», «Открыть .env этого проекта» или «Разрешить чтение».
- Плашка «Агент остановлен» в шапке — после аварийной остановки.
С чего начать
- Свой проект, вы рядом. Ничего менять не нужно: хватит набора «Свободно» и режима «Авто».
- Чужой репозиторий или код, которому вы не доверяете. Включите набор «Строго» во вкладке «Где работает»: только папка проекта, сеть по списку, команды идут в песочнице и без неё не запускаются.
- Агент работает с продом. Проверьте уровни доступа и метки окружений во вкладке «Подключения»: у рабочих
кластеров должна стоять метка
prod. Метку выбирают в блоке «Кластеры Kubernetes», рядом с именем кластера (см. Доступ к базам, кластерам и очередям). Не держите боевые пароли в файлах проекта. - Хотите меньше вопросов. Переведите чат в режим «Полный» или разрешите нужные команды своими правилами во вкладке «Исключения».
- Команда или компания. Общие правила для всех задаёт организация (см. Организации).
Ограничения
- Без песочницы команды проверяются по словам. Путь, который команда собирает во время работы, такая проверка не ловит — для этого нужна песочница (набор «Осторожно» или «Строго»).
- Уровни подключений не закрывают доступ, который есть у агента в обход приложения: пароль в файле проекта, свой скрипт с драйвером базы.
- Маскирование находит ключи известных форматов. Текст, который вы сами пишете в чат, уходит модели как есть (см. Данные и приватность).
- Когда проект открыт на сервере по SSH, на самом сервере действуют только основные ограничения.
Что дальше
- Ограничения агента — ступени, песочница, сеть, файлы и исключения.
- Доступ к базам, кластерам и очередям — уровни доступа и метки окружений.
- Аварийная остановка и журнал — как остановить агента и где видно всё, что он делал.
- Данные и приватность — что уходит с компьютера.
Обновлено · Нашли неточность? Напишите на support@devmachine.ai или в Telegram.
