Защита развертывания сервера MCP Azure

Azure MCP Server подключает ИИ-агентов к службам Azure, выполняет инструменты от вашего имени и предоставляет доступ к вашим ресурсам Azure с помощью токенов, которые авторизуют каждый вызов. Поскольку сервер Azure MCP находится между вашими агентами и вашими облачными ресурсами, необходимо защитить сам сервер Azure MCP, токены доступа, а также входные и выходные данные инструментов, которые проходят через ваших агентов.

В этой статье приводятся рекомендации по обеспечению безопасности развертывания Azure MCP Server.

Проверка подлинности и авторизация

Azure MCP Server использует Microsoft Entra ID через библиотеку Azure Identity для аутентификации вызывающих клиентов. Для спецификации авторизации MCP требуется OAuth 2.1, поэтому следует рассматривать Azure MCP-сервер как сервер ресурсов OAuth 2.1. Клиенты должны использовать PKCE (ключ проверки подлинности для кода Exchange) при выполнении потоков кода авторизации. Применяйте следующие практики:

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

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

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

  • Следуйте RBAC, основанному на принципе наименьших привилегий. Предоставляйте каждой вызывающей стороне только те роли Azure RBAC, которые необходимы для выполнения её задачи. Сервер Azure MCP отражает права доступа в подписке Azure — пользователи с широким доступом к подписке могут использовать широкий набор инструментов. Максимально ограничьте область действия назначений ролей. Включите только инструменты, необходимые каждому вызывающему объекту, так как каждое доступное средство добавляется к вашей области атаки.

  • Отдавайте предпочтение идентификаторам рабочих нагрузок. В сценариях с ИИ-агентами используйте управляемые удостоверения или идентификаторы рабочей нагрузки вместо долговременных секретов или общих учетных данных. Если статические учетные данные неизбежны — например, ключи API для сторонних служб, которые не поддерживают идентификацию рабочей нагрузки, — храните их в Azure Key Vault и ссылайтесь на них в конфигурации развертывания. Никогда не храните учетные данные в исходном коде или в текстовых файлах конфигурации и регулярно меняйте их.

  • Избегайте паттерна «запутанный заместитель». Ограничьте собственную идентичность Azure и разрешения сервера Azure MCP минимально необходимыми для его работы. Не позволяйте серверу выступать в качестве заместителя, который предоставляет свои широкие привилегии вызывающей стороне с низким уровнем привилегий: отделяйте удостоверение выполнения сервера от авторизации вызывающего абонента и применяйте проверки разрешений для вызывающего абонента, а не полагаться исключительно на собственные учетные данные сервера.

Защита удалённого сервера Azure MCP

При развертывании Azure MCP Server в качестве удалённого собственного сервера рассмотрите возможность использования Azure API Management (APIM) перед ним в качестве шлюза для централизованного применения политик:

  • Разместите сервер Azure MCP за шлюзом принудительного контроля. APIM может проверять маркеры Entra ID перед получением запросов к серверу MCP Azure, что устраняет необходимость проверки маркеров в коде приложения.

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

  • Централизуйте контроль доступа в единой точке контроля. Шлюз обеспечивает единую точку контроля доступа и наблюдаемости для нескольких нижестоящих инструментов MCP.

Защитите конечную точку, к которому подключаются клиенты MCP Server Azure. Подменённый или поддельный URL-адрес может получать запросы на выполнение инструментов и раскрывать учётные данные или данные ресурсов Azure. Чтобы уменьшить этот риск, выполните приведенные действия.

  • Подключитесь только к доверенным конечным точкам Azure сервера MCP. Используйте только конечные точки, которые вы подготовили или которые ваша команда предоставляет через APIM. Не выводите URL-адрес сервера Azure MCP из предоставленных пользователем данных или неаутентифицированных ответов службы обнаружения.

  • Проверьте сертификат TLS сервера MCP Azure. Убедитесь, что конечная точка соответствует ожидаемому хосту. При использовании APIM направляйте клиентов через шлюз, чтобы внутренняя конечная точка не могла быть незаметно перенаправлена.

  • Сбой закрытия при ошибках сертификата. Считайте непроверенный или нераспознанный сертификат сервера Azure MCP Server ошибкой подключения, а не предупреждением, которое можно обойти.

Сведения о вариантах самостоятельного размещения см. в разделе "Развертывание локального Azure MCP Server".

Усиление безопасности локального развертывания

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

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

  • Ограничение локального доступа. Запустите локальный Azure MCP-сервер с доверенной рабочей станции или контейнера и не предоставляйте локальную конечную точку ненадежным сетям или другим пользователям на компьютере.

  • Сохраняйте текущий локальный сервер. Используйте текущие пакеты Azure MCP Server и исправленные зависимости, особенно перед тестированием на непроизводственные Azure ресурсы.

  • Локальное выполнение в песочнице. Запустите локальный сервер Azure MCP в контейнере или песочнице с ограничённым доступом к файловой системе и сети и своевременно устанавливайте обновления безопасности для инструментальной цепочки, чтобы снизить последствия внедрения команд и обхода каталогов, когда инструменты запускают дочерние процессы.

Не используйте локальный Azure MCP-сервер для обработки рабочих данных или рабочих учетных данных.

Отравление инструментов и инъекция промпта

Описания инструментов MCP и ответы инструментов являются входными данными для контекста вашего агента. Если метаданные инструмента или выходные данные инструмента являются вредоносными, это может повлиять на агент, имеющий доступ к инструментам Azure MCP Server и связанным с ними разрешениям Azure.

Чтобы снизить этот риск для развертываний сервера MCP Azure, выполните указанные ниже действия.

  • Предпочитайте официальный Microsoft поддерживаемый сервер Azure MCP. Используйте первый Azure MCP-сервер для служб Azure вместо непроверенного сервера, предоставляющего аналогичные средства Azure. Обрабатывать изменения схемы инструментов в виде изменений зависимостей, требующих проверки.

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

  • Определения инструментов управления изменениями. Проверяйте и закрепляйте проверенные схемы и описания инструментов, а также требуйте повторного утверждения, прежде чем обновлённые метаданные инструментов вступят в силу, чтобы сервер не мог незаметно изменить поведение после утверждения («rug pull» в цепочке поставок).

  • Используйте Azure элементы управления безопасностью, где они соответствуют архитектуре. Оцените элементы управления в элементах управления безопасностью Microsoft, чтобы анализировать контекст агента, выявлять потоки конфиденциальных данных и отслеживать нагрузки Azure AI. Проверьте каждый путь интеграции перед его использованием в рабочей среде.

Доверие стороннего сервера MCP

Во многих средах разработчика одновременно выполняются несколько серверов MCP. Для работы с Azure предпочитайте официальный Azure MCP Server, поддерживаемый Microsoft, а не альтернативы от сообщества для сервисов Azure.

Если вы добавите сторонний сервер MCP наряду с Azure MCP Server:

  • Проверьте издатель и путь обновления. Используйте серверы от проверенных издателей с публично доступными контактами по вопросам безопасности. Просмотрите журналы изменений и обновления пакетов, прежде чем разрешить стороннему серверу доступ в среду агента, которая также может обращаться к инструментам Azure MCP Server.

  • Сохраняйте отдельные контексты учетных данных. Не позволяйте непроверенному серверу получать доступ к учетным данным, файловой системе или сетевым ресурсам, используемым Azure MCP Server. Запуск ненадежных серверов с минимальными привилегиями в изолированной среде.

  • Просматривайте инструменты в рамках всего контекста агента. Вредоносный сервер может использовать описания своих инструментов, чтобы повлиять на поведение агента по отношению к другим доверенным серверам в том же контексте, в том числе Azure MCP Server. Аудит описаний инструментов для каждого настраиваемого сервера, а не только средств Azure.

Управление и мониторинг

Отслеживайте, какие экземпляры сервера Azure MCP запущены в вашей среде, и контролируйте их активность:

  • Инвентаризация утвержденных серверов. Поддерживайте актуальный эталонный список зарегистрированных конечных точек Azure MCP Server, например с помощью Azure API Center, чтобы выявлять незарегистрированные «теневые» серверы, находящиеся вне рамок управления.

  • Отслеживайте действия и сохраняйте доказательства. Сопоставляйте действия Azure MCP Server в Microsoft Sentinel и сохраняйте журналы аудита Microsoft Purview, чтобы можно было исследовать подозрительные вызовы инструментов.

Microsoft средства управления безопасностью

Используйте следующие службы безопасности Microsoft, чтобы добавить эшелонированную защиту для рабочих нагрузок Azure MCP Server. Применимость каждого элемента управления к конкретному развертыванию зависит от архитектуры. Оцените каждый элемент управления в контексте собственной среды:

  • Проверьте контекст агента с помощью Prompt Shields. Используйте Prompt Shields в Безопасность содержимого ИИ Azure для анализа содержимого, поступающего в контекст вашего агента, включая описания инструментов и их выходные данные, а также для обнаружения возможных попыток инъекции промптов. Если вы используете динамически загружаемые метаданные инструмента, рассмотрите возможность интеграции Prompt Shields в конвейер агента. Дополнительные сведения см. в разделе Prompt Shields.

  • Обнаруживайте потоки конфиденциальных данных с помощью Purview DLP. Если рабочая нагрузка явно интегрирована с Microsoft Purview, используйте политики защиты от потери данных Purview для обнаружения и флага конфиденциальных данных в потоках данных, связанных с агентами. Поддержка произвольных параметров вызова инструмента не обеспечивается автоматически — она зависит от архитектуры развертывания и от того, какие соединители Purview использует ваша рабочая нагрузка. Оцените, поддерживает ли ваш конкретный сценарий интеграции необходимые средства контроля, прежде чем полагаться на технологию DLP для нагрузок агента. Дополнительные сведения см. в документации по Microsoft Purview.

  • Мониторинг рабочих нагрузок ИИ с помощью Defender для облака. Используйте Microsoft Defender для облака и его функцию защиты ИИ от угроз для обнаружения угроз во время выполнения в рабочих нагрузках ИИ, включая оповещения о подозрительной активности при вызовах API в Azure OpenAI и службе Azure AI Model Inference. Это покрытие не распространяется автоматически на произвольные выходные данные инструментов MCP — оно применяется к уровню службы Azure AI в вашей архитектуре. Дополнительные сведения см. в разделе "Защита от угроз ИИ".

Note

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