Безопасность серверных агентов

Codex на VPS: архитектура и безопасность

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

01 / ОСНОВА

Что такое Codex на VPS

VPS - это виртуальный сервер у хостинг-провайдера. По смыслу это отдельная машина в дата-центре: у нее есть операционная система, диск, сеть, процессы и администраторский доступ.

Codex на VPS - это рабочий сервер, на котором запущен Codex и Telegram bridge. Пользователь пишет задачу в Telegram, bridge принимает сообщение, передает задачу Codex, получает результат и возвращает его пользователю.

VPS - где работает система\nCodex - исполнитель задач\nTelegram bridge - пользовательский вход\nДоверенные администраторы - люди с root/SSH-доступом\nПользователь - человек, который работает только через Telegram
02 / РОЛИ

Кому принадлежит контроль

Административный контроль остается у доверенных технических лиц. Пользователь работает только через Telegram и не управляет сервером напрямую.

роль

Собственник

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

роль

Доверенные администраторы

Имеют root/SSH-доступ, обновляют сервер, управляют ключами, смотрят логи и могут остановить сервис при инциденте.

роль

Пользователь

Работает только через Telegram bridge: отправляет задачи и файлы, получает ответы и подтверждает важные действия.

03 / TELEGRAM

Как работает Telegram bridge

Telegram bridge - это контролируемый вход в систему. Он принимает сообщения, проверяет пользователя и передает задачу в рабочий процесс Codex.

ШАГ 1

Пользователь пишет боту в Telegram.

ШАГ 2

Bridge получает сообщение через Telegram Bot API.

ШАГ 3

Bridge проверяет разрешенный chat_id.

ШАГ 4

Если chat_id не разрешен, задача не выполняется.

ШАГ 5

Файл, фото или голосовое сохраняются на VPS во входящую папку.

ШАГ 6

Codex получает задачу, нужный контекст и путь к файлу.

ШАГ 7

Результат возвращается пользователю в Telegram.

04 / ВХОДЫ

Какие входы есть у системы

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

Используются

Telegram Bot API

пользовательские сообщения и файлы

SSH

только для доверенных администраторов

OpenAI и другие API

исходящие запросы под конкретную задачу

MCP/API-коннекторы

только если они отдельно включены

05 / ДАННЫЕ

Как данные передаются в модели

Codex и OpenAI API получают только данные, которые нужны для выполнения конкретной задачи.

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

Модель не получает весь сервер целиком. Она не “видит VPS”. Она получает конкретный запрос и тот контекст, который передал рабочий процесс.

06 / MCP И API

Что делают коннекторы

MCP и API-коннекторы дают Codex доступ к конкретному сервису: таблице, базе, CRM, календарю, файловому хранилищу или внутреннему API.

Правилоконнектор включается администратором
Правилоправа задаются заранее
Правилоконнектор получает только нужный минимум доступа
Правилоконнектор не получает root-доступ к VPS
Правилоконнектор не должен исполнять произвольные команды
Правилозапись, удаление, публикация и изменение прав требуют confirm
07 / CONFIRM

Что пользователь подтверждает вручную

Confirm нужен там, где ошибка может стоить данных, денег, доступа или репутации.

Confirmудаление файлов или записей
Confirmпубликация материалов наружу
Confirmотправка сообщений третьим лицам
Confirmизменение прав доступа
Confirmплатежные или юридически значимые операции
Confirmподключение нового внешнего сервиса
Confirmпередача чувствительных данных в новый канал
08 / РИСКИ

Что реально может пойти не так

Риски лучше описывать конкретно: что означает сценарий и каким механизмом он ограничивается.

Украли SSH-ключ или root-доступ

Это самый серьезный сценарий: root-доступ дает контроль над сервером, файлами, логами, настройками и переменными окружения. Это риск любого VPS, а не особенность Codex.

root/SSH есть только у доверенных лиц
вход по паролю отключается или ограничивается
используются SSH-ключи
доступ не передается пользователям
при подозрении на утечку ключ отзывается, сервер проверяется, секреты перевыпускаются

Украли Telegram bot token

Bot token позволяет обращаться к Telegram Bot API от имени бота. Он не дает root-доступ к VPS, но может позволить читать или отправлять сообщения через бота в рамках возможностей Telegram API.

токен хранится только в .env или secret manager
токен не отправляется в модель
токен не публикуется в чатах, документах и репозиториях
при утечке токен перевыпускается через BotFather
доступ пользователя проверяется через allowlist chat_id

Украли OpenAI или другой API-ключ

Утечка API-ключа может привести к несанкционированным запросам и расходам. Такой ключ не должен давать доступ к VPS, Telegram-аккаунтам или файловой системе.

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

Взломали Telegram-аккаунт разрешенного пользователя

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

у пользователя включается двухфакторная защита Telegram
важные действия требуют confirm
опасные операции не выполняются молча
подозрительный chat_id можно удалить из allowlist
при инциденте бот временно отключается

Пользователь сам отправил чувствительный файл

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

заранее согласуется перечень допустимых данных
для чувствительных файлов используется обезличивание
временные файлы очищаются по регламенту
история и логи не должны хранить лишние данные
для строгих контуров ограничиваются типы файлов и внешние отправки

Коннектору выдали слишком широкие права

Если MCP/API-коннектор получил больше прав, чем нужно, агент может видеть или менять лишние данные во внешнем сервисе.

коннекторы подключаются только администратором
каждому коннектору выдаются минимальные права
запись, удаление, публикация и изменение прав требуют confirm
ненужные коннекторы отключаются
права регулярно пересматриваются

Модель ошиблась в выводах

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

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

Prompt injection повлиял на ответ

В документе или сообщении может быть скрытая инструкция для модели: игнорировать правила, запросить секреты или выполнить лишнее действие. Это может повлиять на ответ, но не должно давать root-доступ к VPS.

модель не получает .env, токены и root-доступ
внешние действия требуют confirm
коннекторы работают с ограниченными правами
удаление, публикация и изменение доступов не выполняются автоматически
подозрительный результат проверяется человеком

В логах или истории сохранились лишние данные

Сообщения, пути к файлам, ошибки и служебные события могут сохраняться в истории или логах. Если туда попало лишнее, это нужно уметь удалить.

логи не должны содержать секреты
история и временные файлы очищаются по регламенту
доступ к логам есть только у доверенных администраторов
для чувствительных проектов задается срок хранения
после завершения работ артефакты удаляются по договоренности
09 / ДЛЯ ИБ

Короткая формулировка для безопасников

Codex на VPS работает как доверенный backend. Пользовательский вход ограничен Telegram bridge. Пользователь не имеет SSH, root-доступа, shell, доступа к базе, .env, API-ключам и файловой системе.

Подключение пользователей контролируется через allowlist Telegram chat_id. Новый пользователь не может подключиться сам. Административный доступ остается у доверенных технических лиц.

Внешние API и MCP-коннекторы подключаются отдельно и получают ограниченные права. Они не являются публичным входом на сервер и не должны иметь право на произвольное исполнение команд.

Данные передаются в Codex/OpenAI только в рамках конкретной задачи: запрос, нужный контекст и файлы, с которыми пользователь просит работать. Критичные действия выполняются через confirm.

Посмотреть решения A+I для серверных ИИ-сотрудников