Перейти к основному содержанию
«Rug pull» — это MCP-сервер, который меняет определения своих инструментов после того, как вы его одобрили: переопределяет доверенный инструмент, чтобы он делал что-то новое, или тихо добавляет один. OrcaRouter перехватывает это на уровне схемы: он фиксирует рекламируемый набор инструментов каждого сервера как базовую линию и перепроверяет её при каждой загрузке, так что дрейф закрывается (fail closed) вместо тихого обслуживания изменённых инструментов. Эта страница — справочник по статусу схемы на каждый сервер и тому, что каждое состояние означает для трафика.

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. Что происходит при дрейфе

Когда перепроверка обнаруживает, что живая схема больше не совпадает с базовой линией:
1

Статус переключается на changed

schema_status сервера становится changed, и записывается временная метка дрейфа.
2

Инструменты перестают обслуживаться

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

Консоль показывает это

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

Перефиксация или карантин

Администратор одобряет новую схему (перефиксирует базовую линию — текущий набор инструментов становится новой базовой линией verified) или помещает в карантин сервер. Пока одно из этого не произойдёт, сервер остаётся закрытым.

4. Переодобрение дрейфовавшего сервера

Перефиксация базовой линии — это один вызов (или консольное действие):
POST /api/workspace/firewall/mcp_servers/:id/approve_schema
Требует роль Developer. Она записывает живой набор инструментов как новую одобренную базовую линию и возвращает сервер в verified. (Карантин сервера — это отдельное действие, на случай, когда вы решаете, что изменение враждебно — approve_schema только перефиксирует базовую линию на verified.) Действие записывается в журнал аудита.
Переодобряйте только после того, как вы проверили дифф. Одобрение дрейфовавшей схемы без проверки сводит контроль на нет — это сообщает OrcaRouter, что новым (возможно, вредоносным) определениям инструментов доверяют.

5. Куда это вписывается

Обнаружение дрейфа схемы — это половина защиты от rug pull на уровне схемы; другая половина — оценка на каждый вызов на поверхности mcp (каждый tools/call проверяется по вашей политике при диспетче). Вместе они покрывают и «определения изменились», и «именно этот вызов опасен».

Защита от rug pull

Полная картина rug pull — базовая линия схемы плюс оценка на каждый вызов.

Обзор безопасности MCP

MCP-шлюз, навыки и учётные данные.

Отравление MCP-инструментов

Угроза, против которой защищается этот конечный автомат.

События аудита MCP

Мониторинг изменений схемы и решений шлюза.