Практика безпеки MCP: приховані техніки від атак ін'єкцій до глобального контролю

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

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

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

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

Огляд загальної архітектури

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

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

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

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

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

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

  1. Імітація локальних веб-сайтів:

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

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

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

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

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

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

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

  • Клод 3.7

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

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

Перехресний 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, і закодував приховані шкідливі підказки.

Виконати команду: інструмент видалити отримати плагін сервер

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

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

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

Додати логіку глобальної перевірки на наявність шкідливого ПЗ

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

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

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

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

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

Дружній до великих моделей формат кодування

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

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

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

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

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

Підсумок

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

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

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

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

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

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

BANANA-0.49%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Поділіться
Прокоментувати
0/400
ponzi_poetvip
· 08-05 16:02
Обсяг коду недостатній
Переглянути оригіналвідповісти на0
LayerZeroEnjoyervip
· 08-05 15:45
Серйозні загрози безпеці.
Переглянути оригіналвідповісти на0
OffchainWinnervip
· 08-05 15:42
Відкритий вихідний код не боїться критики?
Переглянути оригіналвідповісти на0
OneBlockAtATimevip
· 08-05 15:38
Ця вразливість надто небезпечна.
Переглянути оригіналвідповісти на0
Rekt_Recoveryvip
· 08-05 15:35
Атака з отруєнням повинна використовуватися обережно.
Переглянути оригіналвідповісти на0
  • Закріпити