Перейти к содержимому
Guide

Теневой MCP: проблема предприятия, которую никто не предусмотрел в бюджете

| 8 min read

Сотрудники подключают неавторизованные серверы MCP к Claude и Cursor. Одно правило шлюза, один запрос инвентаризации и один шаблон политики, чтобы опередить его.

Dark network lines representing shadow traffic and MCP detection
Photo by Markus Spiske on Unsplash

Раньше под термином «теневой ИТ» подразумевался менеджер по маркетингу, оплачивающий расходы Dropbox. Shadow SaaS означал продуктовую команду подписавшись на Figma с помощью личной кредитной карты. Оба были изолированы: инструменты запускались в браузере вкладка, касалась данных, которые пользователь уже мог видеть, и не мог выйти за границу вкладки. Тень MCP нарушает это сдерживание. Сотрудник переключает сервер MCP сообщества на Cursor или Claude. Desktop, и теперь агент может читать ключи SSH, запускать команды оболочки и общаться с рабочей средой. базы данных через внешние учетные данные пользователя.

Cloudflare Gateway представила правила, поддерживающие MCP, в апреле 2026 года. Zscaler и Netskope последовали их примеру в течение короткого времени. неделя. Инструменты стали популярны, потому что команды корпоративной безопасности начали задавать вопросы. Этот пост охватывает четыре дела, которые нужно сделать в этом квартале: понять модель угроз, создать систему обнаружения, отправить сценарий инвентаризации, создание белого списка и публикация трехстраничной политики.

Почему Shadow MCP хуже Shadow SaaS

Несанкционированная вкладка SaaS в браузере работает в «песочнице». Он не может прочитать закрытый ключ SSH пользователя. Это не могу создать оболочку. Он не может открыть TCP-соединение с вашим производственным Postgres. браузера Политика одного и того же происхождения и песочница ОС обеспечивают сдерживание.

Сервер MCP работает вне браузера. Claude Desktop и Cursor порождают серверы stdio как дочерние процессы на компьютере пользователя с разрешениями пользователя. Сервер HTTP MCP подключается к любые учетные данные, которые вставляет пользователь. Затем агент вызывает инструменты с этого сервера как часть это обычный цикл. С точки зрения операционной системы вызов инструмента — это открытие пользователем файл или выполнение команды.

Конкретная разница: сервер MCP сообщества GitHub, извлеченный из случайного пакета npm и добавленный в ~/.cursor/mcp.json может извлечь что-либо в ~/.ssh/, каждый .env файл в вашем домашнем каталоге и все содержимое любого репозитория пользователя. выписался. Пользователь одобрил это один раз. Агент больше никогда не спрашивает. Браузерный мошенник инструмент не может сделать ничего из этого.

Добавьте еще одну морщинку: VPN пользователя. Если ноутбук находится в корпоративной VPN во время работы агента, сервер MCP наследует эту сетевую позицию. Внутренние службы, промежуточные базы данных и все конечные точки метаданных становятся доступными. Серверу не нужно было никого фишить. Оно просто ждало для подключения VPN.

Поиск Shadow MCP в вашей сети

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

На конечной точке следите за дочерними процессами, которые порождает Claude Desktop или Cursor. Оба клиента вызывать серверы stdio как подпроцессы с известными именами родительских процессов. Ваш EDR (CrowdStrike, SentinelOne, Defender for Endpoint) может оповещать о любом дереве процессов, корнем которого является Claude.app, Cursor.app, или claude-code. Фильтровать по те, которые вы одобрили; отмечайте все остальное.

На выходе фильтруйте HTTP-трафик. MCP через Streamable HTTP отправляет особый заголовок. (mcp-protocol-version) и особый тип контента (application/json-rpc-2). Cloudflare Gateway, Zscaler и Netskope совпадают оба. Вот правило Cloudflare Zero Trust, которое блокирует несанкционированный MCP, позволяя при этом одобренные хосты:

В DNS ваш преобразователь видит поиск хостов серверов MCP сообщества до любого соединения HTTPS. открывается. Добавьте утвержденный белый список в свой DNS-фильтр (Cisco Umbrella, NextDNS, Cloudflare). DNS шлюза) как единственные разрешенные пункты назначения MCP. Любой другой поиск, соответствующий известному Канал реестра MCP получает блокировку и билет.

Для серверов stdio, установленных на npm, ваш агент DLP конечной точки может отслеживать соответствие пакетов *-mcp-*, @modelcontextprotocol/*или любой пакет, объявляющий mcp запись в его package.json bin поле. Это улавливает install перед тем, как пользователь подключит сервер к Cursor.

Создайте инвентаризацию MCP за один день

Обнаружение сообщает вам, когда появляется новый сервер. Инвентарь покажет вам, что уже установлено. Отправьте сценарий, запустите его через MDM (Jamf, Intune, Kandji) и опубликуйте результаты в отчете. конечная точка. День работы, и вы знаете, на каких машинах какие серверы.

Скрипт считывает два файла конфигурации, которые использует каждый крупный клиент. Claude Desktop сохраняет свою конфигурацию в ~/Library/Application Support/Claude/claude_desktop_config.json на MacOS и %APPDATA%\Claude/claude_desktop_config.json в Windows. Курсор сохраняет свою конфигурацию на ~/.cursor/mcp.json. Оба файла представляют собой обычный JSON с mcpServers имена серверов сопоставления объектов с командами, аргументами, URL-адресами и переменными окружения.

Хэш имеет значение. Файлы конфигурации изменяются, когда пользователь добавляет сервер, меняет ключ или извлекает шаблон команды. Сохраните SHA-256 всего файла и предупреждайте о любых изменениях, которые вы не внесли. Имена переменных env (а не значения) также попадают в отчет; видя GITHUB_PERSONAL_ACCESS_TOKEN указанный под сервером сообщества, является отдельным сигналом.

Запускайте скрипт ежедневно. Поместите выходные данные в существующую инвентаризацию активов (Snipe-IT, ServiceNow, или таблицу Postgres). Создайте информационную панель, которая показывает: новые серверы на этой неделе, серверы более чем на N машин и серверов, хэш конфигурации которых изменился. Эти три представления охватывают большую часть того, что вы будете нужно спросить позже.

Список разрешенных серверов, которым вы доверяете

Инвентарь показывает, что установлено. В белом списке указано, что разрешено. По умолчанию запрещено, каждый Сервер проверен, срок действия каждого одобрения истекает. Версируйте файл в Git, чтобы история утверждений была проверяемый.

Три вещи делают этот белый список полезным. Во-первых, у каждой записи есть билет на проверку и срок действия; одобрения не живут вечно. Во-вторых, серверы stdio включают разрешенные аргументы, поэтому postgres-mcp двоичный файл одобрен с --readonly нельзя запустить повторно с доступ на запись без нового отзыва. В-третьих, области видимости являются именованными и явными; более поздний уровень управления может обеспечить их соблюдение.

Добавление нового сервера в белый список требует двух автоматических проверок перед проверкой человеком. Сначала проверьте состояние TLS хоста сервера. Сервер, обслуживающий MCP через HTTP с открытым текстом или с сертификатом, срок действия которого истекает через 10 дней, или с отсутствием HSTS, не является кандидатом:

Во-вторых, проверьте заголовки ответов. Вам нужен HSTS с длительным максимальным возрастом, разумным content-typeи mcp-protocol-version заголовок, который соответствует тому, что сервер говорит, что поддерживает в своем манифесте. Расхождение между заголовком и манифестом — это красный флаг:

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

Трехстраничная политика MCP, необходимая каждой компании

Политика не должна быть долгой. Ему необходимо ответить на пять вопросов: что одобрено, кто утверждает новые серверы, что может делать каждая роль, как вы ее контролируете и что происходит, когда что-то идет не так. Короткая таблица выполняет больше работы, чем 30-страничный документ, который никто не читает.

Область Политика Контроль
Одобренные серверы Только серверы из белого списка YAML могут работать на корпоративных устройствах или работать с корпоративными данными. Блокировка DNS + исходящего трафика, правило процесса EDR, файл белого списка, отправленный MDM, срок действия утверждения — шесть месяцев.
Процесс проверки Платформа безопасности проверяет все новые запросы к серверу. Data Platform подписывает любой сервер, имеющий доступ к базе данных. Юридические подписи на серверах, которые обрабатывают регулируемые данные. Просмотрите шаблон заявки, автоматизированную проверку TLS и заголовка, опубликованное соглашение об уровне обслуживания сроком на пять рабочих дней.
Ограничения области действия По умолчанию инженеры получают серверы данных, доступные только для чтения. Для доступа на запись требуется второй утверждающий. Производственные учетные данные запрещены; используйте промежуточный или ограниченный токен. Пакеты белых списков для каждой роли, передаваемые через MDM, ключи API с ограниченной областью действия и коротким сроком жизни, а также области применения шлюза аутентификации.
Мониторинг Каждый вызов инструмента через утвержденный сервер записывается в журнал аудита. Несанкционированные попытки сервера вызывают предупреждение в течение 15 минут. Прием аудита шлюза в Kafka и SIEM, ежедневная инвентаризация, оповещения о смещении хеша конфигурационного файла.
Реагирование на инцидент Скомпрометированный сервер MCP рассматривается как скомпрометированная интеграция API. Отозвать ключи сервера, поместить затронутые конечные точки в карантин, просмотреть журналы аудита на предмет окна уязвимости. Документированное расписание, ротация по вызову, ежеквартальная таблица, включающая сценарий MCP.
Исключения Временные исключения требуют одобрения CISO, срока действия 30 дней и письменного плана последующих действий. Шаблон заявки на исключение, записи в белом списке с автоматическим истечением срока действия, еженедельная проверка исключений.
Оффбординг Когда сотрудник уходит, его конфигурации MCP стираются вместе с другим корпоративным состоянием. Все ключи, которые они держали, меняются в течение 24 часов. Действие по очистке MDM, книга операций ротации ключей, журнал аудита последнего доступа для каждого ключа.

Ключевые выводы

  • Возможности MCP превосходят возможности SaaS. Сервер MCP сообщества читает SSH ключи, запускает команды оболочки и наследует вашу позицию VPN. Относитесь к этому как к привилегированному интеграция, а не вкладка браузера.
  • Для обнаружения необходимы три уровня. Правила обработки EDR, HTTP-фильтры шлюза включены mcp-protocol-version, а белый список DNS охватывает различные режимы сбоя.
  • Инвентаризация за один день. Скрипт Python из 60 строк считывает две конфигурации. файлы, которые использует каждый крупный клиент, хэширует их и отправляет в конечную точку отчетности. Запускайте его ежедневно через МДМ.
  • Белый список запрещен по умолчанию, короткий срок действия. На каждом сервере есть билет на проверку и срок годности шесть месяцев. Использовать /v1/ssl/check и /v1/headers/inspect как автоматические впускные ворота.
  • Таблица превосходит 30-страничную политику. Утвержденные серверы, процесс проверки, объем лимиты, мониторинг, реагирование на инциденты, исключения, отключение. Семь строк, одна страница, размещено в инженерной вики.

Собственный MCP-сервер Ботоя по адресу api.botoi.com/mcp это пример того, как выглядит сервер как только он будет готов для вашего списка разрешений: TLS 1.3, HSTS, ключи API с ограниченной областью действия, ограничения скорости для каждого ключа и 49 тщательно подобранные инструменты с аннотациями. Вы можете сами проверить позу с помощью двух завитков выше. перед добавлением или проверьте Страница настройки MCP и Документация по API полный список инструментов.

FAQ

Что считается сервером MCP для целей инвентаризации?
Учитываются как stdio, так и HTTP-серверы. Сервер stdio — это дочерний процесс Claude Desktop или Cursor, который создается из записи файла конфигурации; сеть не используется до тех пор, пока агент не запустит ее, но ее возможности остаются теми же. HTTP-сервер находится по URL-адресу, к которому клиент подключается через Streamable HTTP или SSE. Ваш инвентарь должен охватывать и то, и другое, что означает чтение файлов конфигурации на конечной точке и наблюдение за сигнатурами выходного трафика MCP.
Могу ли я полностью заблокировать MCP в корпоративных сетях, не нарушая работу утвержденных агентов?
Да. По умолчанию заблокируйте все на выходном шлюзе, а затем добавьте в список разрешенных имена хостов, на которых работают утвержденные вами серверы MCP. Утвержденные серверы stdio вообще не затрагивают сеть (они взаимодействуют со своими поддерживающими API через обычный HTTPS, которым вы уже управляете). Вы теряете эксперименты сообщества MCP на корпоративных устройствах, и в этом вся суть. Разработчики по-прежнему могут использовать персональные компьютеры вне VPN для исследования.
Чем теневой MCP отличается от риска быстрого внедрения?
Оперативное внедрение — это когда злоумышленник обманом заставляет модель делать то, чего не хотел ее оператор. Теневой MCP — это подключение самого оператора с непроверенной возможностью. Другой субъект угрозы, другой контроль. Защита от быстрого внедрения (подтверждение инструмента, песочница, фильтрация выходных данных) не поможет, если инструмент никогда не должен был там быть. Вам нужен инвентарь и белый список помимо защиты на уровне модели.
Требуется ли для блокировки обновление брандмауэра следующего поколения?
Нет. DNS-фильтрация плюс проверка исходящего трафика на уровне HTTP покрывают большую часть этого. Cloudflare Gateway, Zscaler и Netskope поставляют правила с поддержкой MCP по состоянию на апрель 2026 года. Для локальной версии вы можете фильтровать заголовок MCP-Protocol-Version или тип контента application/json-rpc-2 с помощью любого прокси-сервера L7. Squid, Envoy и HAProxy справляются с этой задачей. Самое сложное — это не фильтр; это ведение белого списка.
Какой контрольный журнал предоставляет мне MCP сразу после установки?
Почти нет. Протокол определяет вызовы и ответы инструментов, но не требует, чтобы сервер или клиент регистрировали их. Claude Desktop хранит некоторые локальные журналы; Курсор в меньшей степени. Серверы сообщества часто ничего не регистрируют. Если вам нужен журнал аудита, который выдерживает проверку инцидентов, вы сами его инструментируете на стороне сервера или устанавливаете шлюз впереди, который записывает структурированные журналы. Не полагайтесь на то, что клиент будет хранить доказательства.

Начните разработку с botoi

150+ API-эндпоинтов для поиска, обработки текста, генерации изображений и утилит для разработчиков. Бесплатный тариф, без банковской карты.