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

robot
Генерація анотацій у процесі

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

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

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

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

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

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

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

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

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

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

  1. Імітація локального веб-сервісу:

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

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

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

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

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

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

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

  • Клод 3.7

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

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

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

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

  1. Коментарний отруєння

За допомогою Cursor отримати доступ до локального тестового сайту, змоделювати вплив відвідування шкідливого сайту клієнтом великої моделі.

Виконати інструкцію:

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

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

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

  1. Кодовані коментарі з отруєнням

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Додати логіку зловмисної глобальної перевірки

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

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

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

Просунуті техніки приховання зловмисних підказок

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

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

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

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

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

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

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

Підсумок

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

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

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

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

Переглянути оригінал
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.
  • Нагородити
  • 3
  • Поділіться
Прокоментувати
0/400
MysteriousZhangvip
· 07-12 21:34
Цей баг справді дрібний! Ті, хто займається безпекою, справді дуже жорсткі.
Переглянути оригіналвідповісти на0
LiquidationKingvip
· 07-12 21:15
Ця вразливість справді хороша
Переглянути оригіналвідповісти на0
HashBardvip
· 07-12 21:07
ще один день, ще одна експлуатація... *п'є чай, спостерігаючи за тим, як mcp горить*
Переглянути оригіналвідповісти на0
  • Закріпити