Приховане отруєння та маніпуляції в системі MCP: практична демонстрація
MCP (Модель Контекстного Протоколу)система наразі перебуває на ранній стадії розвитку, загальне середовище є досить хаотичним, різні потенційні способи атак з'являються один за одним, існуючі протоколи та інструменти важко ефективно захистити. Щоб допомогти спільноті краще зрозуміти та підвищити безпеку MCP, SlowMist спеціально відкрив MasterMCP інструмент, сподіваючись, що через практичні атаки-вправи допоможуть виявити недоліки безпеки в дизайні продукту, щоб поступово зміцнити проект MCP.
Ця стаття проведе всіх через практичну демонстрацію поширених атак у системі MCP, таких як інформаційне отруєння, приховані зловмисні команди та інші реальні випадки. Всі демонстраційні скрипти також будуть відкриті, тож кожен зможе повністю відтворити весь процес у безпечному середовищі, а також розробити власні плагіни для тестування атак на основі цих скриптів.
Загальний огляд архітектури
демонстраційна атака на ціль MCP:Toolbox
smithery.ai є одним з найпопулярніших веб-сайтів для плагінів MCP, що об'єднує велику кількість списків MCP та активних користувачів. Серед них @smithery/toolbox є офіційним інструментом управління MCP від smithery.ai.
Вибір Toolbox як ціль тестування ґрунтується на наступних пунктах:
Велика база користувачів, що є репрезентативною
Підтримка автоматичної установки інших плагінів, доповнення деяких функцій клієнта (, таких як Claude Desktop )
Містить чутливу конфігурацію (, таку як API Key ), що полегшує демонстрацію
демонстраційне використання шкідливого MCP: MasterMCP
MasterMCP - це інструмент для моделювання шкідливих MCP, розроблений компанією Slow Fog спеціально для безпекового тестування, який має модульну архітектуру і включає такі ключові модулі:
Місцеве веб-сайти послуги моделювання:
Щоб більш достовірно відтворити сценарії атак, MasterMCP вбудовано модуль симуляції локального веб-сервісу. Він швидко створює простий HTTP-сервер за допомогою фреймворку FastAPI, симулюючи звичні веб-середовища. Ці сторінки на перший погляд виглядають нормально, наприклад, демонструють інформацію про кондитерську або повертають стандартні дані JSON, але насправді в вихідному коді сторінки або в поверненні інтерфейсу приховані ретельно спроектовані шкідливі вантажі.
Локальна плагінна архітектура MCP
MasterMCP використовує плагінний підхід для розширення, що полегшує подальше швидке додавання нових методів атаки. Після запуску MasterMCP буде виконувати FastAPI сервіс попереднього модуля в дочірньому процесі. ( тут вже існує загроза безпеці - локальні плагіни можуть безперешкодно запускати дочірні процеси, які не передбачені MCP ).
демонстраційний клієнт
Cursor: один з найпопулярніших у світі IDE для програмування з підтримкою AI
Claude Desktop:Anthropic(MCП протокол налаштований ) офіційний клієнт
демонстраційна модель
Клод 3.7
Виберіть версію Claude 3.7, оскільки вона вже має певні покращення в розпізнаванні чутливих операцій, а також представляє собою потужні можливості операцій в поточній екосистемі MCP.
Cross-MCP Зловмисний Виклик
Ця демонстрація містить два вмісти: отруєння та зловмисні виклики Cross-MCP.
атака отравлення вмісту веб-сторінки
Коментуюче отруєння
Курсор доступу до локального тестового сайту.
Це, здавалося б, безпечна сторінка "Delicious Cake World", ми через цей експеримент демонструємо вплив доступу клієнта великої моделі до шкідливого веб-сайту.
Виконати команду:
Отримати вміст з
Результати показують, що Cursor не лише зчитує вміст веб-сторінки, але й передає локальні чутливі конфігураційні дані на тестовий сервер. У вихідному коді шкідливі підказки вбудовані у вигляді HTML-коментарів.
Хоча коментування є досить прямолінійним і легко впізнається, воно вже може спричинити зловмисні дії.
Кодуючі коментарі для отруєння
Відвідайте сторінку /encode, це веб-сторінка, яка виглядає так само, як у попередньому прикладі, але зловмисні підказки закодовані, що робить експлуатацію більш прихованою, навіть при перегляді виходу веб-сторінки важко безпосередньо помітити.
Навіть якщо вихідний код не містить явних підказок, атака все ще успішно виконується.
MCP інструмент повернення інформації отруєння
Згідно з підказкою MasterMCP, введіть симуляційний команду (, ця команда не має реального значення, призначена для активації зловмисного MCP для демонстрації його подальших дій ):
отримати багато яблук
Можна побачити, що після активації команди клієнт викликав Toolbox через MCP і успішно додав новий сервер MCP.
Переглянувши код плагіна, можна виявити, що в повернених даних вже вбудовано закодоване шкідливе навантаження, яке користувач практично не може помітити.
атака забруднення через сторонній інтерфейс
Ця демонстрація призначена для того, щоб нагадати, що незалежно від того, є MCP зловмисним чи ні, при виклику стороннього API, якщо сторонні дані безпосередньо повертаються в контекст, це може мати серйозні наслідки.
Виконати запит:
Отримати json з /api/data
Результат: Шкідливі підказки були впроваджені у повернуті дані JSON і успішно спровокували шкідливе виконання.
Техніка отруєння на етапі ініціалізації MCP
Ця демонстрація містить два пункти: початкове введення підказок та конфлікти назв.
атака з покриттям шкідливих функцій
Тут MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані зловмисні підказки.
Виконати команду:
інструмент для видалення плагіна fetch сервера
Claude Desktop не викликав оригінальний метод toolbox remove_server, а замість цього викликав метод з такою ж назвою, наданий MasterMCP.
Принцип полягає в підкресленні "попередні методи скасовані", з пріоритетом у спонукання великої моделі викликати функції зловмисного перекриття.
Додати шкідливу глобальну перевірку логіки
Тут MasterMCP написав інструмент banana, основна функція якого полягає в тому, що перед запуском усіх інструментів у підказках обов'язково потрібно виконати цей інструмент для перевірки безпеки.
Перед виконанням кожної функції система спочатку викликає механізм перевірки banana.
Це глобальна логічна ін'єкція, яка реалізується шляхом повторного підкреслення в коді "необхідно виконати перевірку банана".
Розширені техніки приховування шкідливих підказок
дружній до великих моделей спосіб кодування
Оскільки великі мовні моделі (LLM) мають надзвичайно сильну здатність до аналізу багатомовних форматів, це, навпаки, використовується для приховування шкідливої інформації, поширені методи включають:
В англомовному середовищі: використовуйте Hex Byte кодування
У китайському середовищі: використовуйте кодування NCR або кодування JavaScript
механізм повернення випадкового шкідливого навантаження
Як згадувалося в другому розділі, забруднення стороннього інтерфейсу, коли запит /random:
Кожного разу випадковим чином повертається сторінка з шкідливим вантажем, що значно ускладнює виявлення та трасування.
Резюме
Через практичну демонстрацію MasterMCP ми наочно побачили різні приховані безпекові ризики в системі Model Context Protocol (MCP). Від простих ін'єкцій підказок, між MCP викликами, до більш прихованих атак на етапі ініціалізації та приховування шкідливих команд, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в сучасному світі, де великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення вводу може викликати системні ризики безпеки. А різноманітність методів атаки, таких як ( кодування приховування, випадкове забруднення, покриття функцій ) також означає, що традиційні підходи до захисту потребують всебічного оновлення.
Безпека ніколи не досягається за один раз.
Сподіваюсь, що ця демонстрація зможе насторожити всіх: незалежно від того, чи є ви розробником, чи користувачем, слід бути достатньо обережними щодо системи MCP, завжди звертаючи увагу на кожну взаємодію, кожен рядок коду, кожне повернуте значення. Лише дотримуючись строгих стандартів у кожній деталі, можна справді побудувати стабільне і безпечне середовище MCP.
Наступним кроком ми також будемо продовжувати вдосконалювати скрипт MasterMCP, відкривати більше цільових тестових випадків, щоб допомогти всім поглиблено зрозуміти, практикувати та зміцнювати захист у безпечному середовищі.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
23 лайків
Нагородити
23
7
Репост
Поділіться
Прокоментувати
0/400
EthSandwichHero
· 07-18 06:35
Цей старий трюк, навпаки, легше піддається атаці, вірно?
Переглянути оригіналвідповісти на0
gas_guzzler
· 07-16 22:51
MCP дивиться на небезпеку, швидко втікайте.
Переглянути оригіналвідповісти на0
faded_wojak.eth
· 07-15 19:06
Побачити, як ваша родина MCP грає з трюками
Переглянути оригіналвідповісти на0
PanicSeller
· 07-15 19:06
невдахи ще не обдурювали людей, як лохів, а вже так відпустили?
Переглянути оригіналвідповісти на0
LiquiditySurfer
· 07-15 19:01
Безпека Блокчейн також повинна підлаштуватися під найкращу точку для серфінгу в ланцюзі ~ нинішня хаотична ситуація просто не вистачає для охолодження, навіть мартіні з льодом.
Переглянути оригіналвідповісти на0
consensus_failure
· 07-15 18:54
Скажу чесно, такі вразливості не повинні бути постійно відкритими.
Практична демонстрація безпекових ризиків системи MCP: від отруєння до прихованого маніпулювання
Приховане отруєння та маніпуляції в системі MCP: практична демонстрація
MCP (Модель Контекстного Протоколу)система наразі перебуває на ранній стадії розвитку, загальне середовище є досить хаотичним, різні потенційні способи атак з'являються один за одним, існуючі протоколи та інструменти важко ефективно захистити. Щоб допомогти спільноті краще зрозуміти та підвищити безпеку MCP, SlowMist спеціально відкрив MasterMCP інструмент, сподіваючись, що через практичні атаки-вправи допоможуть виявити недоліки безпеки в дизайні продукту, щоб поступово зміцнити проект MCP.
Ця стаття проведе всіх через практичну демонстрацію поширених атак у системі MCP, таких як інформаційне отруєння, приховані зловмисні команди та інші реальні випадки. Всі демонстраційні скрипти також будуть відкриті, тож кожен зможе повністю відтворити весь процес у безпечному середовищі, а також розробити власні плагіни для тестування атак на основі цих скриптів.
Загальний огляд архітектури
демонстраційна атака на ціль MCP:Toolbox
smithery.ai є одним з найпопулярніших веб-сайтів для плагінів MCP, що об'єднує велику кількість списків MCP та активних користувачів. Серед них @smithery/toolbox є офіційним інструментом управління MCP від smithery.ai.
Вибір Toolbox як ціль тестування ґрунтується на наступних пунктах:
демонстраційне використання шкідливого MCP: MasterMCP
MasterMCP - це інструмент для моделювання шкідливих MCP, розроблений компанією Slow Fog спеціально для безпекового тестування, який має модульну архітектуру і включає такі ключові модулі:
Щоб більш достовірно відтворити сценарії атак, MasterMCP вбудовано модуль симуляції локального веб-сервісу. Він швидко створює простий HTTP-сервер за допомогою фреймворку FastAPI, симулюючи звичні веб-середовища. Ці сторінки на перший погляд виглядають нормально, наприклад, демонструють інформацію про кондитерську або повертають стандартні дані JSON, але насправді в вихідному коді сторінки або в поверненні інтерфейсу приховані ретельно спроектовані шкідливі вантажі.
MasterMCP використовує плагінний підхід для розширення, що полегшує подальше швидке додавання нових методів атаки. Після запуску MasterMCP буде виконувати FastAPI сервіс попереднього модуля в дочірньому процесі. ( тут вже існує загроза безпеці - локальні плагіни можуть безперешкодно запускати дочірні процеси, які не передбачені MCP ).
демонстраційний клієнт
демонстраційна модель
Виберіть версію Claude 3.7, оскільки вона вже має певні покращення в розпізнаванні чутливих операцій, а також представляє собою потужні можливості операцій в поточній екосистемі MCP.
Cross-MCP Зловмисний Виклик
Ця демонстрація містить два вмісти: отруєння та зловмисні виклики Cross-MCP.
атака отравлення вмісту веб-сторінки
Курсор доступу до локального тестового сайту.
Це, здавалося б, безпечна сторінка "Delicious Cake World", ми через цей експеримент демонструємо вплив доступу клієнта великої моделі до шкідливого веб-сайту.
Виконати команду:
Отримати вміст з
Результати показують, що Cursor не лише зчитує вміст веб-сторінки, але й передає локальні чутливі конфігураційні дані на тестовий сервер. У вихідному коді шкідливі підказки вбудовані у вигляді HTML-коментарів.
Хоча коментування є досить прямолінійним і легко впізнається, воно вже може спричинити зловмисні дії.
Відвідайте сторінку /encode, це веб-сторінка, яка виглядає так само, як у попередньому прикладі, але зловмисні підказки закодовані, що робить експлуатацію більш прихованою, навіть при перегляді виходу веб-сторінки важко безпосередньо помітити.
Навіть якщо вихідний код не містить явних підказок, атака все ще успішно виконується.
MCP інструмент повернення інформації отруєння
Згідно з підказкою MasterMCP, введіть симуляційний команду (, ця команда не має реального значення, призначена для активації зловмисного MCP для демонстрації його подальших дій ):
отримати багато яблук
Можна побачити, що після активації команди клієнт викликав Toolbox через MCP і успішно додав новий сервер MCP.
Переглянувши код плагіна, можна виявити, що в повернених даних вже вбудовано закодоване шкідливе навантаження, яке користувач практично не може помітити.
атака забруднення через сторонній інтерфейс
Ця демонстрація призначена для того, щоб нагадати, що незалежно від того, є MCP зловмисним чи ні, при виклику стороннього API, якщо сторонні дані безпосередньо повертаються в контекст, це може мати серйозні наслідки.
Виконати запит:
Отримати json з /api/data
Результат: Шкідливі підказки були впроваджені у повернуті дані JSON і успішно спровокували шкідливе виконання.
Техніка отруєння на етапі ініціалізації MCP
Ця демонстрація містить два пункти: початкове введення підказок та конфлікти назв.
атака з покриттям шкідливих функцій
Тут MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані зловмисні підказки.
Виконати команду:
інструмент для видалення плагіна fetch сервера
Claude Desktop не викликав оригінальний метод toolbox remove_server, а замість цього викликав метод з такою ж назвою, наданий MasterMCP.
Принцип полягає в підкресленні "попередні методи скасовані", з пріоритетом у спонукання великої моделі викликати функції зловмисного перекриття.
Додати шкідливу глобальну перевірку логіки
Тут MasterMCP написав інструмент banana, основна функція якого полягає в тому, що перед запуском усіх інструментів у підказках обов'язково потрібно виконати цей інструмент для перевірки безпеки.
Перед виконанням кожної функції система спочатку викликає механізм перевірки banana.
Це глобальна логічна ін'єкція, яка реалізується шляхом повторного підкреслення в коді "необхідно виконати перевірку банана".
Розширені техніки приховування шкідливих підказок
дружній до великих моделей спосіб кодування
Оскільки великі мовні моделі (LLM) мають надзвичайно сильну здатність до аналізу багатомовних форматів, це, навпаки, використовується для приховування шкідливої інформації, поширені методи включають:
механізм повернення випадкового шкідливого навантаження
Як згадувалося в другому розділі, забруднення стороннього інтерфейсу, коли запит /random:
Кожного разу випадковим чином повертається сторінка з шкідливим вантажем, що значно ускладнює виявлення та трасування.
Резюме
Через практичну демонстрацію MasterMCP ми наочно побачили різні приховані безпекові ризики в системі Model Context Protocol (MCP). Від простих ін'єкцій підказок, між MCP викликами, до більш прихованих атак на етапі ініціалізації та приховування шкідливих команд, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в сучасному світі, де великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення вводу може викликати системні ризики безпеки. А різноманітність методів атаки, таких як ( кодування приховування, випадкове забруднення, покриття функцій ) також означає, що традиційні підходи до захисту потребують всебічного оновлення.
Безпека ніколи не досягається за один раз.
Сподіваюсь, що ця демонстрація зможе насторожити всіх: незалежно від того, чи є ви розробником, чи користувачем, слід бути достатньо обережними щодо системи MCP, завжди звертаючи увагу на кожну взаємодію, кожен рядок коду, кожне повернуте значення. Лише дотримуючись строгих стандартів у кожній деталі, можна справді побудувати стабільне і безпечне середовище MCP.
Наступним кроком ми також будемо продовжувати вдосконалювати скрипт MasterMCP, відкривати більше цільових тестових випадків, щоб допомогти всім поглиблено зрозуміти, практикувати та зміцнювати захист у безпечному середовищі.