quiel

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

Профили доверия, стоп-паттерны и журнал команд — чем агент ограничен и как это проверить.

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

Профиль доверия

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

Есть три системных профиля:

ПрофильДля чего
ПолныйАгент выполняет команды сам. Для песочниц и личных проектов.
С оглядкойОбычные команды сам, опасные — через подтверждение. Разумный выбор по умолчанию.
Всё с подтвержденияКаждая команда требует разрешения. Для первого знакомства и для чужих машин.

Свои профили создаются на их основе: списком разрешённого, списком запрещённого и списком того, что требует подтверждения.

Стоп-паттерны

Отдельно от профилей есть правила, которые останавливают команду по её виду. Они существуют ровно потому, что «опасная команда» редко выглядит очевидно.

Что учтено специально, а не в общем виде:

  • удаление в корнеrm -rf / и его варианты с подстановками;
  • обход через sudosudo rm -rf / не становится безопаснее от того, что начинается с другого слова;
  • обход через sshssh host 'rm -rf /' выполняется не здесь, но выполняется;
  • обход через docker exec — команда внутри контейнера остаётся командой;
  • работа с дисками, правка системных настроек, выключение машины.

Разбор идёт по смыслу команды, а не по подстроке: команда с безобидным началом и опасным продолжением не проходит.

Правила закрыты по умолчанию

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

Проверка правил до того, как они понадобятся

В редакторе профиля есть поле, куда можно вписать команду и посмотреть, что с ней будет: разрешена, запрещена или потребует подтверждения.

Пользуйтесь им, когда пишете свой профиль. Проверять правила на настоящей задаче — плохой способ узнать, что в них опечатка.

Защищённые пути

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

Журнал команд

Каждая команда агента записывается: что выполнено, в какой задаче, каким агентом, чем закончилось.

Журнал виден на экране «Команды» проекта и во вкладке внутри задачи. Есть фильтры, живой хвост и выгрузка в CSV.

Две особенности, которые стоит знать:

  • Секреты маскируются. Токены и ключи в командах заменяются на метку — журнал не становится местом утечки.
  • Записи нельзя изменить или удалить. Это не обещание в интерфейсе, а ограничение на уровне прав базы данных: у приложения физически нет права править или удалять строки журнала. Даже ошибка в коде платформы не перепишет историю.

Что остаётся на вашей стороне

Честно о границах:

  • Агент работает под правами того, кто его запустил. Если у человека есть доступ к боевому серверу, он есть и у агента на его машине. Платформа ограничивает команды, а не переписывает права операционной системы.
  • Профиль защищает от ошибки, а не от злого умысла. Человек, запустивший агента, может выполнить те же команды руками — журнал это увидит, но не остановит.
  • Ключи живут у вас. Платформа не хранит ваши SSH-ключи и токены доступа к серверам.

На этой странице