Скрытая отрава и манипуляция в системе MCP: практическая демонстрация
MCP (Model Context Protocol) система все еще находится на ранней стадии развития, общая среда довольно хаотична, различные потенциальные способы атак возникают один за другим, существующие протоколы и инструменты трудно эффективно защищать. Чтобы помочь сообществу лучше понять и повысить безопасность MCP, был создан инструмент с открытым исходным кодом под названием MasterMCP. Этот инструмент призван через практические атаки помочь разработчикам своевременно выявлять уязвимости в дизайне продукта, тем самым постепенно укрепляя проект MCP.
В данной статье автор проведет читателя через практические примеры, демонстрируя распространенные виды атак в рамках системы MCP, такие как отравление информации, скрытые вредоносные команды и другие реальные случаи. Все скрипты, используемые в демонстрациях, также будут выпущены с открытым исходным кодом, и читатели смогут полностью воспроизвести весь процесс в безопасной среде, а также разработать свои собственные плагины для тестирования атак на основе этих скриптов.
Обзор общей архитектуры
Демонстрационная атака на цель MC: Toolbox
Некоторый сайт плагинов является одним из самых популярных сайтов плагинов MC, собравшим множество списков MC и активных пользователей. Среди них официально выпущенный инструмент управления MC Toolbox был выбран в качестве тестового объекта, основываясь на следующих пунктах:
База пользователей огромна и репрезентативна
Поддержка автоматической установки других плагинов, дополнение некоторых функций клиента
Содержит конфиденциальные настройки (, такие как API Key ), для удобства демонстрации
демонстрационное использование вредоносного MC: MasterMCP
MasterMCP — это инструмент для моделирования вредоносных MCP, специально разработанный для тестирования безопасности, с архитектурой плагинов, включающий в себя следующие ключевые модули:
Моделирование локальных веб-сервисов:
Чтобы более реалистично воспроизвести сценарий атаки, MasterMC встроил модуль имитации локального веб-сервиса. Он быстро создает простой HTTP-сервер с помощью фреймворка FastAPI, имитируя обычную веб-среду. Эти страницы на первый взгляд выглядят нормально, но на самом деле в исходном коде страниц или в ответах интерфейса скрыты тщательно разработанные вредоносные нагрузки.
Таким образом, мы можем в безопасной и контролируемой локальной среде полностью продемонстрировать методы атак, такие как подмена информации и скрытие команд, что поможет читателю более наглядно понять: даже обычная на вид веб-страница может стать источником угрозы, вызывающей выполнение аномальных операций большими моделями.
Локальная плагинизированная архитектура MC
MasterMCP использует модульный подход для расширения, что позволяет быстро добавлять новые способы атак. После запуска MasterMCP будет запускать службу FastAPI модуля в дочернем процессе. ( Внимательные читатели заметят, что здесь уже существует угроза безопасности - локальные плагины могут произвольно запускать дочерние процессы, не предусмотренные MCP ).
Демонстрационный клиент
Cursor:Одна из самых популярных в мире IDE для программирования с поддержкой ИИ
Claude Desktop:официальный клиент одной крупной компании по разработке моделей
демонстрационная модель
Клод 3.7
Выбор версии Claude 3.7, так как она уже имеет определенные улучшения в распознавании чувствительных операций и представляет собой достаточно сильную операционную способность в текущей экосистеме MCP.
Cross-MCP Злонамеренный вызов
Демонстрация включает в себя два содержания: отравление и злонамеренные вызовы Cross-MCP.
атака на веб-контент с использованием отравления
Комментарийный отравление
Курсор обращается к локальному тестовому сайту. Это страница, которая кажется безвредной о "Delicious Cake World". В этом эксперименте мы симулируем влияние доступа клиента большого модели к вредоносному сайту.
Выполнить команду:
Получить содержимое
Результаты показывают, что Cursor не только считывает содержимое веб-страницы, но и передает данные локальной конфиденциальной настройки на тестовый сервер. В исходном коде злонамеренные подсказки внедрены в виде HTML-комментариев.
Хотя способ комментирования довольно прямолинеен и легко распознаваем, он уже может вызвать вредоносные действия.
Кодированные комментарии
Посетите страницу /encode, это веб-страница, которая выглядит так же, как и приведенный выше пример, но в ней вредоносные подсказки закодированы, что делает инъекции более скрытными, и даже при просмотре исходного кода веб-страницы трудно заметить это напрямую.
Даже если исходный код не содержит явных подсказок, атака все равно успешно выполняется, конкретный принцип будет подробно объяснен в следующих главах.
MCP инструменты возвращают информацию о подделке
Здесь мы вводим симуляционную команду ( в соответствии с подсказкой MasterMCP. Эта команда не имеет реального значения и предназначена для активации вредоносного MCP для демонстрации последующих действий вредоносного MCP ):
получить много яблок
Можно увидеть, что после выполнения команды клиент вызвал Toolbox через MCP и успешно добавил новый сервер MCP.
Посмотрев код плагина, можно обнаружить, что в возвращаемых данных уже встроен закодированный вредоносный полезный груз, который пользователи почти не могут заметить.
Атака с загрязнением стороннего интерфейса
Этот демонстрационный материал предназначен для того, чтобы напомнить всем, что независимо от того, является ли MCP злонамеренным или незлонамеренным, при вызове API третьих сторон, если данные третьих сторон напрямую возвращаются в контекст, это может иметь серьезные последствия.
Выполнение запроса:
Получить json с /api/data
Результат: вредоносные подсказки были внедрены в возвращенные данные JSON и успешно вызвали вредоносное выполнение.
Технология отравления на этапе инициализации MCP
Демонстрация включает в себя два содержания: первоначальную инъекцию подсказок и конфликт имен.
атака на перекрытие вредоносной функции
Здесь MasterMCP написал инструмент с тем же именем функции remove_server, что и Toolbox, и закодировал скрытые вредоносные подсказки.
Выполнить команду:
инструмент для удаления плагина сервера
Клод Десктоп не вызвал изначальный метод toolbox remove_server, а вместо этого вызвал метод с таким же именем, предоставленный MasterMCP.
Принцип заключается в том, чтобы подчеркнуть, что "старый метод был отменен", и в первую очередь побудить большую модель вызывать функции с злонамеренным перекрытием.
Добавить злонамеренную глобальную проверку логики
Здесь MasterMCP разработал инструмент под названием banana, основной функцией которого является обязательное выполнение данного инструмента для проверки безопасности перед запуском всех других инструментов в подсказках.
Перед каждым вызовом функции система сначала вызывает механизм проверки banana.
Это глобальная логическая инъекция, реализованная путем неоднократного подчеркивания в коде "необходимо выполнить проверку банана".
Продвинутые техники скрытия злонамеренных подсказок
Дружественный к большим моделям способ кодирования
Из-за того, что большая языковая модель ( LLM ) обладает очень сильной способностью к анализу многоязычных форматов, это, наоборот, используется для скрытия вредоносной информации. Обычно используемые методы включают:
В английской среде: использовать кодирование Hex Byte
В китайской среде: используйте кодировку NCR или кодировку JavaScript
Механизм возврата случайных вредоносных нагрузок
Как упоминается в главе 2, загрязнение сторонними интерфейсами, при запросе /random, каждый раз случайным образом возвращает страницу с вредоносной нагрузкой, что значительно усложняет обнаружение и отслеживание.
Резюме
На практике, продемонстрированной в MasterMCP, мы наглядно увидели различные скрытые угрозы безопасности в системе Model Context Protocol (MCP). От простых инъекций подсказок и меж-MCP вызовов до более скрытых атак на этапе инициализации и сокрытия злонамеренных команд, каждый этап напоминает нам: хотя экосистема MCP мощна, она также уязвима.
В наши дни, когда крупные модели все чаще взаимодействуют с внешними плагинами и API, даже небольшое загрязнение ввода может привести к системным рискам безопасности. А разнообразие методов атаки, таких как ( кодирование скрытия, случайное загрязнение, наложение функций ), также означает, что традиционные методы защиты нуждаются в полном обновлении.
Безопасность никогда не достигается сразу.
Надеюсь, что эта демонстрация сможет прозвучать для всех как тревожный сигнал: как разработчики, так и пользователи должны сохранять достаточную бдительность по отношению к системе MCP, постоянно обращая внимание на каждое взаимодействие, каждую строку кода, каждое возвращаемое значение. Только если внимательно относиться к каждой детали, можно действительно построить прочную и безопасную среду MCP.
На следующем этапе мы также будем продолжать совершенствовать скрипт MasterMCP, открывать больше целевых тестовых случаев, чтобы помочь всем глубже понять, отработать и укрепить защиту в безопасной среде.
Посмотреть Оригинал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 Лайков
Награда
8
5
Поделиться
комментарий
0/400
HalfIsEmpty
· 07-08 19:28
Слишком агрессивно. Это же учит людей мошенничеству.
Посмотреть ОригиналОтветить0
SchrodingerWallet
· 07-06 08:35
Скоро будет катастрофа Основной сети
Посмотреть ОригиналОтветить0
ApeDegen
· 07-06 08:26
Рекомендуется, чтобы этот проект напрямую падение до нуля.
Посмотреть ОригиналОтветить0
MEVEye
· 07-06 08:12
mcp действительно стал тренировочной площадкой, а雀氏 просто абсурд.
Практика безопасности MCP: полное демонстрация от отравления до скрытых атак
Скрытая отрава и манипуляция в системе MCP: практическая демонстрация
MCP (Model Context Protocol) система все еще находится на ранней стадии развития, общая среда довольно хаотична, различные потенциальные способы атак возникают один за другим, существующие протоколы и инструменты трудно эффективно защищать. Чтобы помочь сообществу лучше понять и повысить безопасность MCP, был создан инструмент с открытым исходным кодом под названием MasterMCP. Этот инструмент призван через практические атаки помочь разработчикам своевременно выявлять уязвимости в дизайне продукта, тем самым постепенно укрепляя проект MCP.
В данной статье автор проведет читателя через практические примеры, демонстрируя распространенные виды атак в рамках системы MCP, такие как отравление информации, скрытые вредоносные команды и другие реальные случаи. Все скрипты, используемые в демонстрациях, также будут выпущены с открытым исходным кодом, и читатели смогут полностью воспроизвести весь процесс в безопасной среде, а также разработать свои собственные плагины для тестирования атак на основе этих скриптов.
Обзор общей архитектуры
Демонстрационная атака на цель MC: Toolbox
Некоторый сайт плагинов является одним из самых популярных сайтов плагинов MC, собравшим множество списков MC и активных пользователей. Среди них официально выпущенный инструмент управления MC Toolbox был выбран в качестве тестового объекта, основываясь на следующих пунктах:
демонстрационное использование вредоносного MC: MasterMCP
MasterMCP — это инструмент для моделирования вредоносных MCP, специально разработанный для тестирования безопасности, с архитектурой плагинов, включающий в себя следующие ключевые модули:
Чтобы более реалистично воспроизвести сценарий атаки, MasterMC встроил модуль имитации локального веб-сервиса. Он быстро создает простой HTTP-сервер с помощью фреймворка FastAPI, имитируя обычную веб-среду. Эти страницы на первый взгляд выглядят нормально, но на самом деле в исходном коде страниц или в ответах интерфейса скрыты тщательно разработанные вредоносные нагрузки.
Таким образом, мы можем в безопасной и контролируемой локальной среде полностью продемонстрировать методы атак, такие как подмена информации и скрытие команд, что поможет читателю более наглядно понять: даже обычная на вид веб-страница может стать источником угрозы, вызывающей выполнение аномальных операций большими моделями.
MasterMCP использует модульный подход для расширения, что позволяет быстро добавлять новые способы атак. После запуска MasterMCP будет запускать службу FastAPI модуля в дочернем процессе. ( Внимательные читатели заметят, что здесь уже существует угроза безопасности - локальные плагины могут произвольно запускать дочерние процессы, не предусмотренные MCP ).
Демонстрационный клиент
демонстрационная модель
Выбор версии Claude 3.7, так как она уже имеет определенные улучшения в распознавании чувствительных операций и представляет собой достаточно сильную операционную способность в текущей экосистеме MCP.
Cross-MCP Злонамеренный вызов
Демонстрация включает в себя два содержания: отравление и злонамеренные вызовы Cross-MCP.
атака на веб-контент с использованием отравления
Курсор обращается к локальному тестовому сайту. Это страница, которая кажется безвредной о "Delicious Cake World". В этом эксперименте мы симулируем влияние доступа клиента большого модели к вредоносному сайту.
Выполнить команду:
Получить содержимое
Результаты показывают, что Cursor не только считывает содержимое веб-страницы, но и передает данные локальной конфиденциальной настройки на тестовый сервер. В исходном коде злонамеренные подсказки внедрены в виде HTML-комментариев.
Хотя способ комментирования довольно прямолинеен и легко распознаваем, он уже может вызвать вредоносные действия.
Посетите страницу /encode, это веб-страница, которая выглядит так же, как и приведенный выше пример, но в ней вредоносные подсказки закодированы, что делает инъекции более скрытными, и даже при просмотре исходного кода веб-страницы трудно заметить это напрямую.
Даже если исходный код не содержит явных подсказок, атака все равно успешно выполняется, конкретный принцип будет подробно объяснен в следующих главах.
MCP инструменты возвращают информацию о подделке
Здесь мы вводим симуляционную команду ( в соответствии с подсказкой MasterMCP. Эта команда не имеет реального значения и предназначена для активации вредоносного MCP для демонстрации последующих действий вредоносного MCP ):
получить много яблок
Можно увидеть, что после выполнения команды клиент вызвал Toolbox через MCP и успешно добавил новый сервер MCP.
Посмотрев код плагина, можно обнаружить, что в возвращаемых данных уже встроен закодированный вредоносный полезный груз, который пользователи почти не могут заметить.
Атака с загрязнением стороннего интерфейса
Этот демонстрационный материал предназначен для того, чтобы напомнить всем, что независимо от того, является ли MCP злонамеренным или незлонамеренным, при вызове API третьих сторон, если данные третьих сторон напрямую возвращаются в контекст, это может иметь серьезные последствия.
Выполнение запроса:
Получить json с /api/data
Результат: вредоносные подсказки были внедрены в возвращенные данные JSON и успешно вызвали вредоносное выполнение.
Технология отравления на этапе инициализации MCP
Демонстрация включает в себя два содержания: первоначальную инъекцию подсказок и конфликт имен.
атака на перекрытие вредоносной функции
Здесь MasterMCP написал инструмент с тем же именем функции remove_server, что и Toolbox, и закодировал скрытые вредоносные подсказки.
Выполнить команду:
инструмент для удаления плагина сервера
Клод Десктоп не вызвал изначальный метод toolbox remove_server, а вместо этого вызвал метод с таким же именем, предоставленный MasterMCP.
Принцип заключается в том, чтобы подчеркнуть, что "старый метод был отменен", и в первую очередь побудить большую модель вызывать функции с злонамеренным перекрытием.
Добавить злонамеренную глобальную проверку логики
Здесь MasterMCP разработал инструмент под названием banana, основной функцией которого является обязательное выполнение данного инструмента для проверки безопасности перед запуском всех других инструментов в подсказках.
Перед каждым вызовом функции система сначала вызывает механизм проверки banana.
Это глобальная логическая инъекция, реализованная путем неоднократного подчеркивания в коде "необходимо выполнить проверку банана".
Продвинутые техники скрытия злонамеренных подсказок
Дружественный к большим моделям способ кодирования
Из-за того, что большая языковая модель ( LLM ) обладает очень сильной способностью к анализу многоязычных форматов, это, наоборот, используется для скрытия вредоносной информации. Обычно используемые методы включают:
Механизм возврата случайных вредоносных нагрузок
Как упоминается в главе 2, загрязнение сторонними интерфейсами, при запросе /random, каждый раз случайным образом возвращает страницу с вредоносной нагрузкой, что значительно усложняет обнаружение и отслеживание.
Резюме
На практике, продемонстрированной в MasterMCP, мы наглядно увидели различные скрытые угрозы безопасности в системе Model Context Protocol (MCP). От простых инъекций подсказок и меж-MCP вызовов до более скрытых атак на этапе инициализации и сокрытия злонамеренных команд, каждый этап напоминает нам: хотя экосистема MCP мощна, она также уязвима.
В наши дни, когда крупные модели все чаще взаимодействуют с внешними плагинами и API, даже небольшое загрязнение ввода может привести к системным рискам безопасности. А разнообразие методов атаки, таких как ( кодирование скрытия, случайное загрязнение, наложение функций ), также означает, что традиционные методы защиты нуждаются в полном обновлении.
Безопасность никогда не достигается сразу.
Надеюсь, что эта демонстрация сможет прозвучать для всех как тревожный сигнал: как разработчики, так и пользователи должны сохранять достаточную бдительность по отношению к системе MCP, постоянно обращая внимание на каждое взаимодействие, каждую строку кода, каждое возвращаемое значение. Только если внимательно относиться к каждой детали, можно действительно построить прочную и безопасную среду MCP.
На следующем этапе мы также будем продолжать совершенствовать скрипт MasterMCP, открывать больше целевых тестовых случаев, чтобы помочь всем глубже понять, отработать и укрепить защиту в безопасной среде.