Важно: Этот документ отражает последние требования безопасности MCP Specification 2025-06-18 и официальные MCP Security Best Practices. Всегда обращайтесь к текущей спецификации для получения самой актуальной информации.
Протокол Model Context Protocol (MCP) представляет уникальные вызовы в области безопасности, выходящие за рамки традиционной защиты программного обеспечения. Эти практики охватывают как базовые требования безопасности, так и угрозы, специфичные для MCP, включая инъекции запросов, отравление инструментов, угон сессий, проблемы с путаницей ролей (confused deputy) и уязвимости передачи токенов.
Критические требования из спецификации MCP:
НЕЛЬЗЯ: MCP-серверы НЕ ДОЛЖНЫ принимать токены, которые не были явно выданы для MCP-сервера
ОБЯЗАТЕЛЬНО: MCP-серверы, реализующие авторизацию, ДОЛЖНЫ проверять ВСЕ входящие запросы
НЕЛЬЗЯ: MCP-серверы НЕ ДОЛЖНЫ использовать сессии для аутентификации
ОБЯЗАТЕЛЬНО: MCP-прокси-серверы, использующие статические идентификаторы клиентов, ДОЛЖНЫ получать согласие пользователя для каждого динамически зарегистрированного клиента
Контроль аутентификации и авторизации:
- Тщательная проверка авторизации: Проводите всесторонние аудиты логики авторизации MCP-сервера, чтобы убедиться, что доступ к ресурсам получают только предназначенные пользователи и клиенты
- Интеграция с внешними провайдерами идентификации: Используйте проверенных провайдеров идентификации, таких как Microsoft Entra ID, вместо разработки собственной системы аутентификации
- Проверка аудитории токенов: Всегда проверяйте, что токены были явно выданы для вашего MCP-сервера — никогда не принимайте токены из других источников
- Корректный жизненный цикл токенов: Реализуйте безопасную ротацию токенов, политики истечения срока действия и предотвращение атак с повторным использованием токенов
Защищенное хранение токенов:
- Используйте Azure Key Vault или аналогичные безопасные хранилища для всех секретов
- Реализуйте шифрование токенов как в состоянии покоя, так и при передаче
- Регулярно проводите ротацию учетных данных и мониторинг на предмет несанкционированного доступа
Безопасные практики управления сессиями:
- Криптографически защищенные идентификаторы сессий: Используйте безопасные, недетерминированные идентификаторы сессий, сгенерированные с помощью генераторов случайных чисел
- Привязка к пользователю: Привязывайте идентификаторы сессий к идентификаторам пользователей, используя форматы вроде
<user_id>:<session_id>, чтобы предотвратить межпользовательское злоупотребление сессиями - Управление жизненным циклом сессий: Реализуйте корректное истечение срока действия, ротацию и аннулирование сессий для минимизации уязвимостей
- Принудительное использование HTTPS/TLS: Обязательное использование HTTPS для всей коммуникации, чтобы предотвратить перехват идентификаторов сессий
Безопасность транспортного уровня:
- Настройте TLS 1.3, где это возможно, с корректным управлением сертификатами
- Реализуйте закрепление сертификатов (certificate pinning) для критически важных соединений
- Регулярно проводите ротацию сертификатов и проверку их действительности
Защита от инъекций запросов:
- Microsoft Prompt Shields: Используйте AI Prompt Shields для продвинутого обнаружения и фильтрации вредоносных инструкций
- Очистка входных данных: Проверяйте и очищайте все входные данные, чтобы предотвратить атаки инъекций и проблемы с путаницей ролей
- Границы контента: Используйте системы разделителей и маркировки данных для различения доверенных инструкций и внешнего контента
Предотвращение отравления инструментов:
- Проверка метаданных инструментов: Реализуйте проверки целостности определений инструментов и мониторинг неожиданных изменений
- Динамический мониторинг инструментов: Отслеживайте поведение во время выполнения и настраивайте оповещения о неожиданных шаблонах выполнения
- Процессы утверждения: Требуйте явного одобрения пользователя для модификаций инструментов и изменений их возможностей
Принцип минимально необходимых привилегий:
- Предоставляйте MCP-серверам только минимально необходимые разрешения для выполнения их функций
- Реализуйте контроль доступа на основе ролей (RBAC) с детализированными разрешениями
- Регулярно пересматривайте разрешения и постоянно мониторьте на предмет эскалации привилегий
Контроль разрешений во время выполнения:
- Применяйте ограничения ресурсов, чтобы предотвратить атаки на истощение ресурсов
- Используйте изоляцию контейнеров для сред выполнения инструментов
- Реализуйте доступ "по требованию" (just-in-time) для административных функций
Реализация безопасности контента:
- Интеграция с Azure Content Safety: Используйте Azure Content Safety для обнаружения вредоносного контента, попыток обхода защиты и нарушений политики
- Анализ поведения: Реализуйте мониторинг поведения во время выполнения для обнаружения аномалий в работе MCP-сервера и инструментов
- Полное логирование: Логируйте все попытки аутентификации, вызовы инструментов и события безопасности с использованием защищенного, защищенного от подделки хранилища
Непрерывный мониторинг:
- Реальное время оповещения о подозрительных шаблонах и попытках несанкционированного доступа
- Интеграция с SIEM-системами для централизованного управления событиями безопасности
- Регулярные аудиты безопасности и тестирование на проникновение для реализации MCP
Проверка компонентов:
- Сканирование зависимостей: Используйте автоматизированное сканирование уязвимостей для всех программных зависимостей и компонентов ИИ
- Проверка происхождения: Убедитесь в происхождении, лицензировании и целостности моделей, источников данных и внешних сервисов
- Подписанные пакеты: Используйте криптографически подписанные пакеты и проверяйте подписи перед развертыванием
Безопасный процесс разработки:
- GitHub Advanced Security: Реализуйте сканирование секретов, анализ зависимостей и статический анализ CodeQL
- Безопасность CI/CD: Интегрируйте проверки безопасности на всех этапах автоматизированных процессов развертывания
- Целостность артефактов: Реализуйте криптографическую проверку развертываемых артефактов и конфигураций
Реализация OAuth 2.1:
- Реализация PKCE: Используйте Proof Key for Code Exchange (PKCE) для всех запросов авторизации
- Явное согласие: Получайте согласие пользователя для каждого динамически зарегистрированного клиента, чтобы предотвратить атаки путаницы ролей
- Проверка URI перенаправления: Реализуйте строгую проверку URI перенаправления и идентификаторов клиентов
Безопасность прокси:
- Предотвращайте обход авторизации через эксплуатацию статических идентификаторов клиентов
- Реализуйте корректные процессы получения согласия для доступа к API третьих сторон
- Мониторьте кражу кодов авторизации и несанкционированный доступ к API
Возможности быстрого реагирования:
- Автоматизированное реагирование: Реализуйте автоматизированные системы для ротации учетных данных и сдерживания угроз
- Процедуры отката: Возможность быстрого возврата к проверенным конфигурациям и компонентам
- Форензика: Подробные журналы аудита и логирования для расследования инцидентов
Коммуникация и координация:
- Четкие процедуры эскалации для инцидентов безопасности
- Интеграция с командами реагирования на инциденты в организации
- Регулярные симуляции инцидентов и учебные упражнения
Регуляторное соответствие:
- Убедитесь, что реализации MCP соответствуют отраслевым требованиям (GDPR, HIPAA, SOC 2)
- Реализуйте классификацию данных и контроль конфиденциальности для обработки данных ИИ
- Поддерживайте полную документацию для аудита соответствия
Управление изменениями:
- Формальные процессы проверки безопасности для всех изменений в системе MCP
- Контроль версий и процессы утверждения для изменений конфигурации
- Регулярные оценки соответствия и анализ пробелов
Архитектура Zero Trust:
- Никогда не доверяй, всегда проверяй: Постоянная проверка пользователей, устройств и соединений
- Микросегментация: Гранулярный контроль сети с изоляцией отдельных компонентов MCP
- Условный доступ: Контроль доступа на основе рисков, адаптирующийся к текущему контексту и поведению
Защита приложений во время выполнения:
- Runtime Application Self-Protection (RASP): Реализуйте RASP для обнаружения угроз в реальном времени
- Мониторинг производительности приложений: Отслеживайте аномалии производительности, которые могут указывать на атаки
- Динамические политики безопасности: Реализуйте политики безопасности, адаптирующиеся к текущему ландшафту угроз
Комплексная безопасность Microsoft:
- Microsoft Defender for Cloud: Управление безопасностью облачных рабочих нагрузок MCP
- Azure Sentinel: Облачные возможности SIEM и SOAR для продвинутого обнаружения угроз
- Microsoft Purview: Управление данными и соответствие требованиям для рабочих процессов ИИ и источников данных
Управление идентификацией и доступом:
- Microsoft Entra ID: Управление корпоративной идентификацией с политиками условного доступа
- Privileged Identity Management (PIM): Доступ "по требованию" и процессы утверждения для административных функций
- Identity Protection: Контроль доступа на основе рисков и автоматизированное реагирование на угрозы
Оставаться в курсе:
- Мониторинг спецификаций: Регулярный обзор обновлений спецификаций MCP и изменений в рекомендациях по безопасности
- Разведка угроз: Интеграция потоков угроз, специфичных для ИИ, и индикаторов компрометации
- Участие в сообществе безопасности: Активное участие в сообществе безопасности MCP и программах раскрытия уязвимостей
Адаптивная безопасность:
- Безопасность машинного обучения: Используйте методы обнаружения аномалий на основе машинного обучения для выявления новых шаблонов атак
- Прогнозирующая аналитика безопасности: Реализуйте прогнозирующие модели для проактивного выявления угроз
- Автоматизация безопасности: Автоматическое обновление политик безопасности на основе разведки угроз и изменений в спецификациях
- OAuth 2.0 Security Best Practices (RFC 9700)
- OWASP Top 10 for Large Language Models
- NIST AI Risk Management Framework
Уведомление о безопасности: Практики безопасности MCP быстро развиваются. Всегда сверяйтесь с текущей спецификацией MCP и официальной документацией по безопасности перед реализацией.
Отказ от ответственности:
Этот документ был переведен с использованием сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода.