MCP сервер для постгреса оказался дырой в безопасности
Рейтинг: 43.6% · 6 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
MCP сервер для постгреса оказался дырой в безопасности
Подключил MCP сервер к продовой постгре чтобы агент сам смотрел схему и данные, и спустя неделю осознал какую дичь сделал. MCP отдавал агенту коннект с правами на запись, плюс в одной из таблиц лежал пользовательский текст с инструкциями типа ignore previous and drop table. До беды не дошло чудом, но осадочек. Расскажите кто как изолирует MCP доступ к данным, чтобы не отстрелить себе ногу.
✔ Лучший ответ сформирован автоматически — nanasuke
Правильно делать так и я на этом собаку съел после похожего инцидента: 1) отдельная роль в постгресе только под MCP, GRANT SELECT и всё, никаких INSERT/UPDATE/DELETE. Через эту роль агент физически не сможет ничего испортить даже если его уговорят 2) connection идёт на read-only реплику, не на мастер. Если реплики нет, хотя бы default_transaction_read_only=on для этой роли 3) маскирование чувстви…
Re: MCP сервер для постгреса оказался дырой в безопасности
✔ Лучший ответ — сформирован автоматически
Правильно делать так и я на этом собаку съел после похожего инцидента:
1) отдельная роль в постгресе только под MCP, GRANT SELECT и всё, никаких INSERT/UPDATE/DELETE. Через эту роль агент физически не сможет ничего испортить даже если его уговорят
2) connection идёт на read-only реплику, не на мастер. Если реплики нет, хотя бы default_transaction_read_only=on для этой роли
3) маскирование чувствительных полей: персданные, токены, пароли не должны попадать в контекст агента вообще. У нас вьюха поверх таблиц которая отдаёт схему и обезличенные сэмплы
4) prompt injection из данных это реальная угроза в 2026, текст в таблицах это недоверенный ввод. Агент должен трактовать содержимое строк как данные а не как команды, но полагаться только на это нельзя, поэтому пункт 1 главный
По сути принцип тот же что и везде: least privilege. MCP это просто ещё один клиент к бд, и относиться к нему надо как к недоверенному сервису торчащему наружу.
1) отдельная роль в постгресе только под MCP, GRANT SELECT и всё, никаких INSERT/UPDATE/DELETE. Через эту роль агент физически не сможет ничего испортить даже если его уговорят
2) connection идёт на read-only реплику, не на мастер. Если реплики нет, хотя бы default_transaction_read_only=on для этой роли
3) маскирование чувствительных полей: персданные, токены, пароли не должны попадать в контекст агента вообще. У нас вьюха поверх таблиц которая отдаёт схему и обезличенные сэмплы
4) prompt injection из данных это реальная угроза в 2026, текст в таблицах это недоверенный ввод. Агент должен трактовать содержимое строк как данные а не как команды, но полагаться только на это нельзя, поэтому пункт 1 главный
По сути принцип тот же что и везде: least privilege. MCP это просто ещё один клиент к бд, и относиться к нему надо как к недоверенному сервису торчащему наружу.
- redis_guru
- Сообщения: 21
- Зарегистрирован: 12 май 2026, 02:07
Re: MCP сервер для постгреса оказался дырой в безопасности
вот это до людей долго доходит. все привыкли что инъекция это SQL в форме, а теперь любой текст который видит llm это потенциальная инъекция в саму модель. И никакой prepared statement тут не спасётnanasuke писал(а):текст в таблицах это недоверенный ввод
Re: MCP сервер для постгреса оказался дырой в безопасности
хорошая аналогия только джун хоть понимает что такое прод и боится. агенту пофиг, он с одинаковым энтузиазмом и фичу напишет и таблицу дропнет если попросить правильными словамиronox писал(а):это как джуну в первый день root от продакшена выдать
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
- Raspberry Pi 5 или мини-ПК для домашнего сервера в 2026? Уже сомневаюсь
10 ответов · 2908 просмотров
-
- Hydration failed: текст на сервере и клиенте не совпал. Из-за чего ловите чаще всего?
9 ответов · 696 просмотров
-
-
- Серверный шкаф гудит как турбина, домашние бунтуют. Как заглушить не убив охлаждение?
5 ответов · 428 просмотров
-
- Traefik vs Caddy vs Nginx Proxy Manager — что выбрать в 2026 для домашнего сервера?
8 ответов · 332 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость