1. Отпечаток базовой линии
При первом контакте шлюз вычисляет канонический хеш рекламируемого набора инструментов сервера и сохраняет его как одобренную базовую линию:- Хеш покрывает имя, описание и входную JSON-схему каждого инструмента — ровно ту поверхность, которую изменил бы rug pull (инструмент, приобретающий аргумент эксфильтрации, или описание, оружейно заточенное под prompt injection, переворачивает хеш).
- Он независим от порядка: сервер, переупорядочивающий свой список инструментов или переупорядочивающий ключи внутри схемы, не выглядит как изменение. Только реальное изменение определения сдвигает хеш.
2. Жизненный цикл статуса схемы
Каждый зарегистрированный сервер несётschema_status. Состояния и как они
влияют на то, обслуживаются ли инструменты сервера:
| Статус | Значение | Инструменты обслуживаются? |
|---|---|---|
| (незафиксирован) | Первое использование — базовая линия ещё не записана. | Позиция обнаружения: Да (доверие при первом использовании — текущая схема захватывается как базовая линия). Строгая позиция: Нет — см. pending ниже. |
verified | Живая схема совпадает с одобренной базовой линией. | Да |
changed | Обнаружен дрейф — живая схема отличается от базовой линии. | Нет — закрывается (fail closed) |
pending | Незафиксированный сервер при строгой (без доверия при первом использовании) позиции — ожидает одобрения. | Нет — закрывается (fail closed) |
quarantined | Администратор удержал сервер. | Нет — закрывается (fail closed) |
Три закрытых состояния —
changed, pending, quarantined — все
останавливают обслуживание инструментов сервера через шлюз. verified
всегда обслуживает; незафиксированный сервер обслуживает только при позиции
обнаружения (доверие при первом использовании) и удерживается как pending
при строгой позиции. Дрейф никогда не проходит молча.3. Что происходит при дрейфе
Когда перепроверка обнаруживает, что живая схема больше не совпадает с базовой линией:Статус переключается на changed
schema_status сервера становится changed, и записывается временная
метка дрейфа.Инструменты перестают обслуживаться
Шлюз закрывается: инструменты этого сервера удерживаются из единой
поверхности MCP, так что агент не может вызвать изменённые определения.
Консоль показывает это
Дрейф появляется для проверки, чтобы администратор мог сравнить новый
набор инструментов с одобренным.
4. Переодобрение дрейфовавшего сервера
Перефиксация базовой линии — это один вызов (или консольное действие):verified. (Карантин
сервера — это отдельное действие, на случай, когда вы решаете, что
изменение враждебно — approve_schema только перефиксирует базовую линию на
verified.) Действие записывается в журнал аудита.
5. Куда это вписывается
Обнаружение дрейфа схемы — это половина защиты от rug pull на уровне схемы; другая половина — оценка на каждый вызов на поверхностиmcp (каждый
tools/call проверяется по вашей политике при диспетче). Вместе они
покрывают и «определения изменились», и «именно этот вызов опасен».
Защита от rug pull
Полная картина rug pull — базовая линия схемы плюс оценка на каждый
вызов.
Обзор безопасности MCP
MCP-шлюз, навыки и учётные данные.
Отравление MCP-инструментов
Угроза, против которой защищается этот конечный автомат.
События аудита MCP
Мониторинг изменений схемы и решений шлюза.
