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

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

Загрози безпеці та демонстрація атак у системі MCP

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

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

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

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

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

Toolbox є популярним інструментом управління MCP з великою базою користувачів. Вибір Toolbox як цільового об’єкта тестування базується на наступних основних моментах:

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

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

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

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

    Швидко створіть простий HTTP сервер за допомогою фреймворку FastAPI, щоб змоделювати поширене веб-середовище. Ці сторінки на перший погляд виглядають нормально, але насправді в коді сторінки або відповіді інтерфейсу приховані ретельно спроектовані шкідливі вантажі.

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

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

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

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

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

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

  • Клод 3.7

Перехресний MCP Зловмисний Виклик

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

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

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

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

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

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

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

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

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

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

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

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

Ця демонстрація в основному нагадує, що незалежно від того, чи є MCP зловмисним або незловмисним, при виклику стороннього API, якщо безпосередньо повернути сторонні дані в контекст, це може мати серйозні наслідки. Зловмисні підказки можуть бути впроваджені в повернуті 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 ми наочно побачили різноманітні приховані загрози безпеці в системі MCP. Від простих атак за допомогою впровадження підказок, між-MCP викликів, до більш прихованих атак на етапі ініціалізації та приховування шкідливих інструкцій, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.

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

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

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

BANANA-6.6%
CROSS4.23%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 3
  • Поділіться
Прокоментувати
0/400
WinterWarmthCatvip
· 3год тому
Досить небезпечно, будьте обережні.
Переглянути оригіналвідповісти на0
MelonFieldvip
· 3год тому
За вразливістю стоїть небезпека
Переглянути оригіналвідповісти на0
MEVHunterNoLossvip
· 3год тому
є потенційною точкою ризику
Переглянути оригіналвідповісти на0
  • Закріпити