MCP (Model Context Protocol) система в настоящее время находится на ранней стадии развития, общая среда относительно хаотична, различные потенциальные способы атак появляются один за другим, а существующие протоколы и инструменты трудно эффективно защитить. Для того чтобы помочь сообществу лучше понять и повысить безопасность MCP, одна из команд безопасности открыла инструмент MasterMCP, надеясь с помощью практических атак помочь разработчикам своевременно обнаруживать уязвимости в дизайне продуктов, тем самым постепенно укрепляя проект MCP.
В данной статье через практическую операцию будут продемонстрированы несколько распространенных способов атак в системе MCP, включая информационное отравление, скрытые вредоносные команды и другие реальные примеры. Все сценарии, используемые в демонстрации, также будут открыты, разработчики смогут полностью воспроизвести весь процесс в безопасной среде и даже разработать свои собственные плагины для тестирования атак на основе этих сценариев.
Обзор общей архитектуры
Демонстрационная атака на цель MCP:Toolbox
Toolbox является популярным инструментом управления MCP, обладающим большой пользовательской базой. Выбор Toolbox в качестве объекта тестирования основан на следующих моментах:
Большая база пользователей, представляет собой репрезентативную выборку
Поддержка автоматической установки других плагинов, дополнение некоторых функций клиента
Включает конфигурацию, такую как API Key и другие чувствительные данные, что удобно для демонстрации
Демонстрационное использование вредоносного MC: MasterMC
MasterMCP - это инструмент для моделирования вредоносных MCP, разработанный специально для тестирования безопасности, использующий модульную архитектуру и содержащий следующие ключевые модули:
Моделирование местных веб-сервисов:
Быстро создайте простой HTTP-сервер с помощью фреймворка FastAPI, имитируя обычную веб-среду. Эти страницы выглядят нормально на поверхности, но на самом деле в исходном коде страницы или возвращаемых интерфейсах скрыты тщательно разработанные вредоносные нагрузки.
Локальная плагинная архитектура MC
Использование плагинного подхода для расширения, что упрощает последующее быстрое добавление новых методов атаки. После запуска MasterMCP будет запускать службу FastAPI предыдущего модуля в дочернем процессе.
демонстрационный клиент
Cursor: Один из популярных IDE для программирования с поддержкой AI в мире.
Claude Desktop:Официальный клиент Anthropic
демонстрационная версия большой модели
Клод 3.7
Кросс-MC Злонамеренный Вызов
Демонстрация включает в себя два содержания: информационное отравление и злонамеренные вызовы Cross-MCP.
атака с заражением веб-контента
Комментарийный вредоносный код
Cursor обращается к локальному тестовому сайту, это страница, которая кажется безобидной "Delicious Cake World". После выполнения команды Cursor не только считывает содержимое веб-страницы, но и передает локальные чувствительные конфигурационные данные на тестовый сервер. В исходном коде вредоносные подсказки внедрены в виде HTML-комментариев.
Кодирование комментариев для отравления
Посещение страницы /encode, эта страница выглядит так же, как и в предыдущем примере, но вредоносные подсказки закодированы, что делает инъекцию более скрытой. Даже если просмотреть исходный код веб-страницы, трудно сразу заметить, но атака по-прежнему успешно выполняется.
MCP инструменты возвращают информацию о заражении
Согласно инструкции по подсказкам MasterMCP, после ввода имитационной команды клиент вызвал Toolbox через MCP и успешно добавил новый сервер MCP. Изучив код плагина, можно обнаружить, что в возвращаемых данных уже встроен закодированный вредоносный полезный груз, и пользователь практически не может заметить аномалию.
Атака с загрязнением стороннего интерфейса
Этот демонстрационный пример в основном напоминает, что как злонамеренные, так и не злонамеренные MCP, при вызове стороннего API, если напрямую возвращать сторонние данные в контекст, это может привести к серьезным последствиям. Злонамеренные подсказки могут быть внедрены в возвращаемые JSON-данные и успешно инициировать злонамеренное выполнение.
Технология отравления на этапе инициализации MCP
Демонстрация содержит два содержательных элемента: инъекцию начальных подсказок и конфликт имен.
Злая функция перезаписи атаки
MasterMCP написал функцию remove_server с тем же именем, что и Toolbox, и закодировал скрытые вредоносные подсказки. После выполнения команды Claude Desktop не вызвал изначальный метод toolbox remove_server, а вместо этого активировал метод с тем же именем, предоставленный MasterMCP. Принцип заключается в том, чтобы подчеркнуть, что "существующий метод устарел", и в первую очередь склонить большую модель к вызову вредоносной замены функции.
Добавить логическую проверку на наличие вредоносного кода по всему коду
MasterMCP разработал инструмент banana, основная функция которого заключается в том, что перед запуском любых инструментов в подсказках обязательно должен выполняться этот инструмент для проведения проверки безопасности. Каждый раз перед выполнением функции система сначала вызывает механизм проверки banana. Это достигается путем многократного подчеркивания в коде "необходимо запустить проверку banana", что является глобальной логической инъекцией.
Продвинутые техники скрытия вредоносных подсказок
Дружественный к большим моделям кодировочный способ
Из-за того, что большие языковые модели обладают высокой способностью к解析 многоязычного формата, это используется для скрытия злонамеренной информации. Обычно используются следующие методы:
В англоязычной среде: использовать кодировку Hex Byte
В китайской среде: используйте кодировку NCR или кодировку JavaScript
Механизм возврата случайных вредоносных полезных нагрузок
При запросе /random каждый раз будет случайным образом возвращаться страница с вредоносной нагрузкой, что значительно усложняет обнаружение и отслеживание.
Резюме
Через практическую демонстрацию MasterMCP мы наглядно увидели различные скрытые угрозы безопасности в системе MCP. От простых инъекций подсказок и меж-MCP вызовов до более скрытых атак на стадии инициализации и скрытых вредоносных команд, каждый этап напоминает нам: экосистема MCP, хотя и мощная, но также уязвима.
Небольшое загрязнение ввода может вызвать системные риски безопасности. А разнообразие методов атак, таких как скрытие кодировки (, случайное загрязнение, перекрытие функций ), также означает, что традиционные подходы к защите необходимо полностью обновить.
Безопасность никогда не достигается сразу. Разработчики и пользователи должны проявлять достаточную бдительность к системе MCP, постоянно обращая внимание на каждое взаимодействие, каждую строку кода, каждое возвращаемое значение. Только подходя с тщательностью к каждой детали, можно действительно построить прочную и безопасную среду MCP.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
Демонстрация практических атак и угроз безопасности экосистемы MCP: от отравления информации до скрытых вредоносных команд
Безопасность и демонстрация атак в системе MCP
MCP (Model Context Protocol) система в настоящее время находится на ранней стадии развития, общая среда относительно хаотична, различные потенциальные способы атак появляются один за другим, а существующие протоколы и инструменты трудно эффективно защитить. Для того чтобы помочь сообществу лучше понять и повысить безопасность MCP, одна из команд безопасности открыла инструмент MasterMCP, надеясь с помощью практических атак помочь разработчикам своевременно обнаруживать уязвимости в дизайне продуктов, тем самым постепенно укрепляя проект MCP.
В данной статье через практическую операцию будут продемонстрированы несколько распространенных способов атак в системе MCP, включая информационное отравление, скрытые вредоносные команды и другие реальные примеры. Все сценарии, используемые в демонстрации, также будут открыты, разработчики смогут полностью воспроизвести весь процесс в безопасной среде и даже разработать свои собственные плагины для тестирования атак на основе этих сценариев.
Обзор общей архитектуры
Демонстрационная атака на цель MCP:Toolbox
Toolbox является популярным инструментом управления MCP, обладающим большой пользовательской базой. Выбор Toolbox в качестве объекта тестирования основан на следующих моментах:
Демонстрационное использование вредоносного MC: MasterMC
MasterMCP - это инструмент для моделирования вредоносных MCP, разработанный специально для тестирования безопасности, использующий модульную архитектуру и содержащий следующие ключевые модули:
Моделирование местных веб-сервисов:
Быстро создайте простой HTTP-сервер с помощью фреймворка FastAPI, имитируя обычную веб-среду. Эти страницы выглядят нормально на поверхности, но на самом деле в исходном коде страницы или возвращаемых интерфейсах скрыты тщательно разработанные вредоносные нагрузки.
Локальная плагинная архитектура MC
Использование плагинного подхода для расширения, что упрощает последующее быстрое добавление новых методов атаки. После запуска MasterMCP будет запускать службу FastAPI предыдущего модуля в дочернем процессе.
демонстрационный клиент
демонстрационная версия большой модели
Кросс-MC Злонамеренный Вызов
Демонстрация включает в себя два содержания: информационное отравление и злонамеренные вызовы Cross-MCP.
атака с заражением веб-контента
Cursor обращается к локальному тестовому сайту, это страница, которая кажется безобидной "Delicious Cake World". После выполнения команды Cursor не только считывает содержимое веб-страницы, но и передает локальные чувствительные конфигурационные данные на тестовый сервер. В исходном коде вредоносные подсказки внедрены в виде HTML-комментариев.
Посещение страницы /encode, эта страница выглядит так же, как и в предыдущем примере, но вредоносные подсказки закодированы, что делает инъекцию более скрытой. Даже если просмотреть исходный код веб-страницы, трудно сразу заметить, но атака по-прежнему успешно выполняется.
MCP инструменты возвращают информацию о заражении
Согласно инструкции по подсказкам MasterMCP, после ввода имитационной команды клиент вызвал Toolbox через MCP и успешно добавил новый сервер MCP. Изучив код плагина, можно обнаружить, что в возвращаемых данных уже встроен закодированный вредоносный полезный груз, и пользователь практически не может заметить аномалию.
Атака с загрязнением стороннего интерфейса
Этот демонстрационный пример в основном напоминает, что как злонамеренные, так и не злонамеренные MCP, при вызове стороннего API, если напрямую возвращать сторонние данные в контекст, это может привести к серьезным последствиям. Злонамеренные подсказки могут быть внедрены в возвращаемые JSON-данные и успешно инициировать злонамеренное выполнение.
Технология отравления на этапе инициализации MCP
Демонстрация содержит два содержательных элемента: инъекцию начальных подсказок и конфликт имен.
Злая функция перезаписи атаки
MasterMCP написал функцию remove_server с тем же именем, что и Toolbox, и закодировал скрытые вредоносные подсказки. После выполнения команды Claude Desktop не вызвал изначальный метод toolbox remove_server, а вместо этого активировал метод с тем же именем, предоставленный MasterMCP. Принцип заключается в том, чтобы подчеркнуть, что "существующий метод устарел", и в первую очередь склонить большую модель к вызову вредоносной замены функции.
Добавить логическую проверку на наличие вредоносного кода по всему коду
MasterMCP разработал инструмент banana, основная функция которого заключается в том, что перед запуском любых инструментов в подсказках обязательно должен выполняться этот инструмент для проведения проверки безопасности. Каждый раз перед выполнением функции система сначала вызывает механизм проверки banana. Это достигается путем многократного подчеркивания в коде "необходимо запустить проверку banana", что является глобальной логической инъекцией.
Продвинутые техники скрытия вредоносных подсказок
Дружественный к большим моделям кодировочный способ
Из-за того, что большие языковые модели обладают высокой способностью к解析 многоязычного формата, это используется для скрытия злонамеренной информации. Обычно используются следующие методы:
Механизм возврата случайных вредоносных полезных нагрузок
При запросе /random каждый раз будет случайным образом возвращаться страница с вредоносной нагрузкой, что значительно усложняет обнаружение и отслеживание.
Резюме
Через практическую демонстрацию MasterMCP мы наглядно увидели различные скрытые угрозы безопасности в системе MCP. От простых инъекций подсказок и меж-MCP вызовов до более скрытых атак на стадии инициализации и скрытых вредоносных команд, каждый этап напоминает нам: экосистема MCP, хотя и мощная, но также уязвима.
Небольшое загрязнение ввода может вызвать системные риски безопасности. А разнообразие методов атак, таких как скрытие кодировки (, случайное загрязнение, перекрытие функций ), также означает, что традиционные подходы к защите необходимо полностью обновить.
Безопасность никогда не достигается сразу. Разработчики и пользователи должны проявлять достаточную бдительность к системе MCP, постоянно обращая внимание на каждое взаимодействие, каждую строку кода, каждое возвращаемое значение. Только подходя с тщательностью к каждой детали, можно действительно построить прочную и безопасную среду MCP.