Практична демонстрація безпекових ризиків системи MCP: від отруєння до прихованого маніпулювання

Приховане отруєння та маніпуляції в системі MCP: практична демонстрація

MCP (Модель Контекстного Протоколу)система наразі перебуває на ранній стадії розвитку, загальне середовище є досить хаотичним, різні потенційні способи атак з'являються один за одним, існуючі протоколи та інструменти важко ефективно захистити. Щоб допомогти спільноті краще зрозуміти та підвищити безпеку MCP, SlowMist спеціально відкрив MasterMCP інструмент, сподіваючись, що через практичні атаки-вправи допоможуть виявити недоліки безпеки в дизайні продукту, щоб поступово зміцнити проект MCP.

Ця стаття проведе всіх через практичну демонстрацію поширених атак у системі MCP, таких як інформаційне отруєння, приховані зловмисні команди та інші реальні випадки. Всі демонстраційні скрипти також будуть відкриті, тож кожен зможе повністю відтворити весь процес у безпечному середовищі, а також розробити власні плагіни для тестування атак на основі цих скриптів.

Практичний старт: Секретне отруєння та маніпуляції в системі MCP

Загальний огляд архітектури

демонстраційна атака на ціль MCP:Toolbox

smithery.ai є одним з найпопулярніших веб-сайтів для плагінів MCP, що об'єднує велику кількість списків MCP та активних користувачів. Серед них @smithery/toolbox є офіційним інструментом управління MCP від smithery.ai.

Вибір Toolbox як ціль тестування ґрунтується на наступних пунктах:

  • Велика база користувачів, що є репрезентативною
  • Підтримка автоматичної установки інших плагінів, доповнення деяких функцій клієнта (, таких як Claude Desktop )
  • Містить чутливу конфігурацію (, таку як API Key ), що полегшує демонстрацію

Практичний старт: приховане отруєння та маніпуляції в системі MCP

демонстраційне використання шкідливого MCP: MasterMCP

MasterMCP - це інструмент для моделювання шкідливих MCP, розроблений компанією Slow Fog спеціально для безпекового тестування, який має модульну архітектуру і включає такі ключові модулі:

  1. Місцеве веб-сайти послуги моделювання:

Щоб більш достовірно відтворити сценарії атак, MasterMCP вбудовано модуль симуляції локального веб-сервісу. Він швидко створює простий HTTP-сервер за допомогою фреймворку FastAPI, симулюючи звичні веб-середовища. Ці сторінки на перший погляд виглядають нормально, наприклад, демонструють інформацію про кондитерську або повертають стандартні дані JSON, але насправді в вихідному коді сторінки або в поверненні інтерфейсу приховані ретельно спроектовані шкідливі вантажі.

  1. Локальна плагінна архітектура MCP

MasterMCP використовує плагінний підхід для розширення, що полегшує подальше швидке додавання нових методів атаки. Після запуску MasterMCP буде виконувати FastAPI сервіс попереднього модуля в дочірньому процесі. ( тут вже існує загроза безпеці - локальні плагіни можуть безперешкодно запускати дочірні процеси, які не передбачені MCP ).

Практичний старт: приховане отруєння та маніпуляції в системі MCP

демонстраційний клієнт

  • Cursor: один з найпопулярніших у світі IDE для програмування з підтримкою AI
  • Claude Desktop:Anthropic(MCП протокол налаштований ) офіційний клієнт

демонстраційна модель

  • Клод 3.7

Виберіть версію Claude 3.7, оскільки вона вже має певні покращення в розпізнаванні чутливих операцій, а також представляє собою потужні можливості операцій в поточній екосистемі MCP.

Cross-MCP Зловмисний Виклик

Ця демонстрація містить два вмісти: отруєння та зловмисні виклики Cross-MCP.

атака отравлення вмісту веб-сторінки

  1. Коментуюче отруєння

Курсор доступу до локального тестового сайту.

Це, здавалося б, безпечна сторінка "Delicious Cake World", ми через цей експеримент демонструємо вплив доступу клієнта великої моделі до шкідливого веб-сайту.

Виконати команду:

Отримати вміст з

Результати показують, що Cursor не лише зчитує вміст веб-сторінки, але й передає локальні чутливі конфігураційні дані на тестовий сервер. У вихідному коді шкідливі підказки вбудовані у вигляді HTML-коментарів.

Хоча коментування є досить прямолінійним і легко впізнається, воно вже може спричинити зловмисні дії.

Практичний старт: Схема MCP - приховане отруєння та маніпуляції

  1. Кодуючі коментарі для отруєння

Відвідайте сторінку /encode, це веб-сторінка, яка виглядає так само, як у попередньому прикладі, але зловмисні підказки закодовані, що робить експлуатацію більш прихованою, навіть при перегляді виходу веб-сторінки важко безпосередньо помітити.

Навіть якщо вихідний код не містить явних підказок, атака все ще успішно виконується.

Практичний запуск: Схема MCP у прихованому отруєнні та маніпуляціях

MCP інструмент повернення інформації отруєння

Згідно з підказкою MasterMCP, введіть симуляційний команду (, ця команда не має реального значення, призначена для активації зловмисного MCP для демонстрації його подальших дій ):

отримати багато яблук

Можна побачити, що після активації команди клієнт викликав Toolbox через MCP і успішно додав новий сервер MCP.

Переглянувши код плагіна, можна виявити, що в повернених даних вже вбудовано закодоване шкідливе навантаження, яке користувач практично не може помітити.

Практика: Приховане отруєння та маніпуляції в системі MCP

атака забруднення через сторонній інтерфейс

Ця демонстрація призначена для того, щоб нагадати, що незалежно від того, є MCP зловмисним чи ні, при виклику стороннього API, якщо сторонні дані безпосередньо повертаються в контекст, це може мати серйозні наслідки.

Виконати запит:

Отримати json з /api/data

Результат: Шкідливі підказки були впроваджені у повернуті дані JSON і успішно спровокували шкідливе виконання.

Практичний старт: Схема MCP та прихована отрута й маніпуляції

Техніка отруєння на етапі ініціалізації MCP

Ця демонстрація містить два пункти: початкове введення підказок та конфлікти назв.

атака з покриттям шкідливих функцій

Тут MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані зловмисні підказки.

Виконати команду:

інструмент для видалення плагіна fetch сервера

Claude Desktop не викликав оригінальний метод toolbox remove_server, а замість цього викликав метод з такою ж назвою, наданий MasterMCP.

Принцип полягає в підкресленні "попередні методи скасовані", з пріоритетом у спонукання великої моделі викликати функції зловмисного перекриття.

Практичний старт: Приховане отруєння та маніпуляції в системі MCP

Додати шкідливу глобальну перевірку логіки

Тут MasterMCP написав інструмент banana, основна функція якого полягає в тому, що перед запуском усіх інструментів у підказках обов'язково потрібно виконати цей інструмент для перевірки безпеки.

Перед виконанням кожної функції система спочатку викликає механізм перевірки banana.

Це глобальна логічна ін'єкція, яка реалізується шляхом повторного підкреслення в коді "необхідно виконати перевірку банана".

Практичний старт: приховане отруєння та маніпуляції в системі MCP

Розширені техніки приховування шкідливих підказок

дружній до великих моделей спосіб кодування

Оскільки великі мовні моделі (LLM) мають надзвичайно сильну здатність до аналізу багатомовних форматів, це, навпаки, використовується для приховування шкідливої інформації, поширені методи включають:

  • В англомовному середовищі: використовуйте Hex Byte кодування
  • У китайському середовищі: використовуйте кодування NCR або кодування JavaScript

Практичний старт: приховане отруєння та контроль у системі MCP

механізм повернення випадкового шкідливого навантаження

Як згадувалося в другому розділі, забруднення стороннього інтерфейсу, коли запит /random:

Кожного разу випадковим чином повертається сторінка з шкідливим вантажем, що значно ускладнює виявлення та трасування.

Практична вилазка: Схема MCP та приховане отруєння і контроль

Резюме

Через практичну демонстрацію MasterMCP ми наочно побачили різні приховані безпекові ризики в системі Model Context Protocol (MCP). Від простих ін'єкцій підказок, між MCP викликами, до більш прихованих атак на етапі ініціалізації та приховування шкідливих команд, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.

Особливо в сучасному світі, де великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення вводу може викликати системні ризики безпеки. А різноманітність методів атаки, таких як ( кодування приховування, випадкове забруднення, покриття функцій ) також означає, що традиційні підходи до захисту потребують всебічного оновлення.

Безпека ніколи не досягається за один раз.

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

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

Практичний старт: приховані отруєння та маніпуляції в системі MCP

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 7
  • Репост
  • Поділіться
Прокоментувати
0/400
EthSandwichHerovip
· 07-18 06:35
Цей старий трюк, навпаки, легше піддається атаці, вірно?
Переглянути оригіналвідповісти на0
gas_guzzlervip
· 07-16 22:51
MCP дивиться на небезпеку, швидко втікайте.
Переглянути оригіналвідповісти на0
faded_wojak.ethvip
· 07-15 19:06
Побачити, як ваша родина MCP грає з трюками
Переглянути оригіналвідповісти на0
PanicSellervip
· 07-15 19:06
невдахи ще не обдурювали людей, як лохів, а вже так відпустили?
Переглянути оригіналвідповісти на0
LiquiditySurfervip
· 07-15 19:01
Безпека Блокчейн також повинна підлаштуватися під найкращу точку для серфінгу в ланцюзі ~ нинішня хаотична ситуація просто не вистачає для охолодження, навіть мартіні з льодом.
Переглянути оригіналвідповісти на0
consensus_failurevip
· 07-15 18:54
Скажу чесно, такі вразливості не повинні бути постійно відкритими.
Переглянути оригіналвідповісти на0
AllInAlicevip
· 07-15 18:50
Ця робота занадто дика, трохи панікую.
Переглянути оригіналвідповісти на0
  • Закріпити