Приховане отруєння та маніпуляції в системі MCP: демонстрація в реальному часі
Наразі MCP ( Model Context Protocol ) система все ще перебуває на ранній стадії розвитку, загальне середовище є досить хаотичним, різні потенційні способи атак з'являються один за одним, існуючі протоколи та інструменти важко ефективно захистити. Для допомоги громаді краще зрозуміти та підвищити безпеку MCP, нещодавно був відкритий інструмент MasterMCP, що має на меті через практичні атакуючі навчання допомогти виявити безпекові вразливості в дизайні продукту та поступово зміцнити проект MCP.
Ця стаття проведе читачів через практичні вправи, демонструючи поширені методи атаки в системі MCP, такі як інформаційне отруєння, приховані шкідливі команди та інші реальні приклади. Усі демонстраційні скрипти також будуть відкриті, читачі зможуть повністю відтворити весь процес в безпечному середовищі, навіть на основі цих скриптів розробити свої власні плагіни для тестування атак.
Огляд загальної архітектури
Демонстраційна атака на ціль MCP: Toolbox
smithery.ai є одним з найпопулярніших веб-сайтів для плагінів MCP, що об'єднує велику кількість списків MCP та активних користувачів. Серед них @smithery/toolbox є офіційним інструментом управління MCP, випущеним цим веб-сайтом.
Виберіть Toolbox як ціль тестування, в основному на основі наступних пунктів:
Велика база користувачів, має репрезентативність
Підтримка автоматичної установки інших плагінів, доповнення деяких функцій клієнта
Містить чутливі налаштування (, такі як API Key ), що полегшує демонстрацію.
демонстраційне використання шкідливого MC: MasterMC
MasterMCP - це інструмент симуляції шкідливого MCP, спеціально розроблений для тестування безпеки, з модульною архітектурою, що містить такі ключові модулі:
Імітація локальних веб-сайтів:
Щоб більш достовірно відтворити сценарій атаки, MasterMCP вбудував модуль симуляції локальних веб-сайтів. Він швидко створює простий HTTP-сервер за допомогою фреймворку FastAPI, імітуючи звичайне веб-середовище. Ці сторінки на вигляд виглядають нормально, але насправді в їхньому вихідному коді або відповідях API приховані ретельно спроектовані шкідливі навантаження.
Таким чином, ми можемо в безпечному, контрольованому локальному середовищі повністю продемонструвати методи атак, такі як отруєння інформації, приховування команд тощо, що допомагає більш наочно зрозуміти: навіть звичайна веб-сторінка може стати джерелом ризику, яке викликає аномальні дії великої моделі.
Локальна плагінна архітектура MCP
MasterMCP використовує плагінний підхід для розширення, що дозволяє швидко додавати нові методи атаки. Після запуску MasterMCP буде запускати FastAPI сервіс попереднього модуля в дочірньому процесі. ( Якщо бути уважним, можна помітити, що тут вже існує загроза безпеці — локальні плагіни можуть запускати будь-які дочірні процеси, які не передбачені MCP ).
демонстраційний клієнт
Cursor: один з найпопулярніших в світі IDE для програмування з підтримкою AI
Claude Desktop:Anthropic(MCП протокол налаштування ) офіційний клієнт
демонстраційна модель
Клод 3.7
Виберіть версію Claude 3.7, оскільки вона має певні покращення в розпізнаванні чутливих операцій, а також представляє собою досить сильні операційні можливості в поточній екосистемі MCP.
Перехресний MCP Зловмисне Використання
атака на веб-контент за допомогою отруєння
Коментоване отруєння
Курсор доступу до локального тестового сайту.
Це, здавалося б, безпечна сторінка про "Delicious Cake World", яка через цей експеримент демонструє вплив, що може бути спричинений доступом клієнта великої моделі до шкідливого веб-сайту.
Виконати команду:
Отримати вміст
Результати показали, що Cursor не лише зчитав вміст веб-сторінки, але й передав локальні чутливі конфігураційні дані на тестовий сервер. У вихідному коді зловмисні ключові слова вбудовані у вигляді HTML-коментарів.
Хоча спосіб коментування є досить пряму, його легко розпізнати, але він вже може спровокувати шкідливі дії.
Отруєння коментарями коду
Перейдіть на сторінку /encode, це веб-сторінка, яка виглядає так само, як у наведеному вище прикладі, але в ній шкідливі підказки закодовані, що робить атаку менш помітною, навіть при перегляді вихідного коду веб-сторінки важко безпосередньо виявити.
Навіть якщо вихідний код не містить явних підказок, атака все ще успішно виконується, конкретний принцип буде детально пояснено в наступних розділах.
MCP інструмент повертає інформацію отруєння
Згідно з підказкою MasterMCP, введіть симуляційну команду (. Ця команда не має реального значення, її мета - активувати шкідливий MCP для демонстрації подальших дій ):
отримати багато яблук
Можна побачити, що після активації команди клієнт успішно викликав Toolbox через MCP і додав новий сервер MCP.
Переглянувши код плагіна, можна виявити, що у повернуті дані вже вбудовано закодоване шкідливе навантаження, яке користувач практично не може помітити.
атака забруднення сторонніх інтерфейсів
Ця демонстрація в основному нагадує, що незалежно від того, чи є MCP навмисним чи ненавмисним, при виклику API третьої сторони, якщо безпосередньо повернути дані третьої сторони в контекст, це може призвести до серйозних наслідків.
Виконати запит:
Отримати json з /api/data
Результат: зловмисні підказки були інтегровані в повернуті дані JSON і успішно викликали зловмисне виконання.
Технології отруєння на етапі ініціалізації MCP
атака на перекриття зловмисних функцій
MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані шкідливі підказки.
Виконати команду:
інструмент видалити отримати плагін сервер
Claude Desktop не викликав оригінальний метод toolbox remove_server, а замість цього активував метод з тією ж назвою, наданий MasterMCP.
Принцип полягає в акцентуванні на тому, що "попередній метод скасовано", з пріоритетом на спонукання великої моделі викликати функції зловмисного перекриття.
Додати логіку глобальної перевірки на наявність шкідливого ПЗ
MasterMCP написав інструмент banana, основна функція якого полягає в тому, щоб у підказках примусити всі інструменти перед виконанням запускати цей інструмент для перевірки безпеки.
Перед кожним виконанням функції система спочатку викликає механізм перевірки banana.
Це глобальна логічна ін'єкція, яка реалізується шляхом постійного підкреслення в коді "необхідно виконати перевірку на банан".
Розширені прийоми приховування шкідливих підказок
Дружній до великих моделей формат кодування
Оскільки великі мовні моделі мають дуже сильну здатність до аналізу багатомовних форматів, це, навпаки, використовується для приховання шкідливої інформації, до звичайних методів належать:
В англомовному середовищі: використовуйте Hex Byte кодування
У китайському середовищі: використовувати кодування NCR або кодування JavaScript
механізм повернення випадкового шкідливого навантаження
Коли запитуєте /random, кожного разу випадковим чином повертається сторінка з шкідливим навантаженням, що суттєво ускладнює виявлення та трасування.
Підсумок
Через практичну демонстрацію MasterMCP ми наочно побачили різні приховані загрози безпеці в системі Model Context Protocol (MCP). Від простих ін'єкцій підказок, міжMCP викликів, до більш прихованих атак на етапі ініціалізації та приховування шкідливих інструкцій, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в умовах, коли великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення введення може викликати системні ризики безпеки. А різноманіття методів атаки, таких як ( кодування приховання, випадкове забруднення, покриття функцій ) також означає, що традиційні підходи до захисту потребують повного оновлення.
Безпека ніколи не досягається одразу.
Сподіваюся, ця демонстрація стане для всіх сигналом тривоги: як розробники, так і користувачі повинні зберігати достатню пильність щодо системи MCP, постійно стежити за кожною взаємодією, кожним рядком коду, кожним значенням, що повертається. Лише ставлячи до кожної деталі серйозне ставлення, можна справді створити міцне та безпечне середовище MCP.
Наступним кроком ми також продовжимо вдосконалювати скрипт MasterMCP, відкриваючи більше спеціалізованих тестових випадків, щоб допомогти всім глибше зрозуміти, тренуватися та зміцнювати захист у безпечному середовищі.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
12 лайків
Нагородити
12
5
Поділіться
Прокоментувати
0/400
ponzi_poet
· 08-05 16:02
Обсяг коду недостатній
Переглянути оригіналвідповісти на0
LayerZeroEnjoyer
· 08-05 15:45
Серйозні загрози безпеці.
Переглянути оригіналвідповісти на0
OffchainWinner
· 08-05 15:42
Відкритий вихідний код не боїться критики?
Переглянути оригіналвідповісти на0
OneBlockAtATime
· 08-05 15:38
Ця вразливість надто небезпечна.
Переглянути оригіналвідповісти на0
Rekt_Recovery
· 08-05 15:35
Атака з отруєнням повинна використовуватися обережно.
Практика безпеки MCP: приховані техніки від атак ін'єкцій до глобального контролю
Приховане отруєння та маніпуляції в системі MCP: демонстрація в реальному часі
Наразі MCP ( Model Context Protocol ) система все ще перебуває на ранній стадії розвитку, загальне середовище є досить хаотичним, різні потенційні способи атак з'являються один за одним, існуючі протоколи та інструменти важко ефективно захистити. Для допомоги громаді краще зрозуміти та підвищити безпеку MCP, нещодавно був відкритий інструмент MasterMCP, що має на меті через практичні атакуючі навчання допомогти виявити безпекові вразливості в дизайні продукту та поступово зміцнити проект MCP.
Ця стаття проведе читачів через практичні вправи, демонструючи поширені методи атаки в системі MCP, такі як інформаційне отруєння, приховані шкідливі команди та інші реальні приклади. Усі демонстраційні скрипти також будуть відкриті, читачі зможуть повністю відтворити весь процес в безпечному середовищі, навіть на основі цих скриптів розробити свої власні плагіни для тестування атак.
Огляд загальної архітектури
Демонстраційна атака на ціль MCP: Toolbox
smithery.ai є одним з найпопулярніших веб-сайтів для плагінів MCP, що об'єднує велику кількість списків MCP та активних користувачів. Серед них @smithery/toolbox є офіційним інструментом управління MCP, випущеним цим веб-сайтом.
Виберіть Toolbox як ціль тестування, в основному на основі наступних пунктів:
демонстраційне використання шкідливого MC: MasterMC
MasterMCP - це інструмент симуляції шкідливого MCP, спеціально розроблений для тестування безпеки, з модульною архітектурою, що містить такі ключові модулі:
Щоб більш достовірно відтворити сценарій атаки, MasterMCP вбудував модуль симуляції локальних веб-сайтів. Він швидко створює простий HTTP-сервер за допомогою фреймворку FastAPI, імітуючи звичайне веб-середовище. Ці сторінки на вигляд виглядають нормально, але насправді в їхньому вихідному коді або відповідях API приховані ретельно спроектовані шкідливі навантаження.
Таким чином, ми можемо в безпечному, контрольованому локальному середовищі повністю продемонструвати методи атак, такі як отруєння інформації, приховування команд тощо, що допомагає більш наочно зрозуміти: навіть звичайна веб-сторінка може стати джерелом ризику, яке викликає аномальні дії великої моделі.
MasterMCP використовує плагінний підхід для розширення, що дозволяє швидко додавати нові методи атаки. Після запуску MasterMCP буде запускати FastAPI сервіс попереднього модуля в дочірньому процесі. ( Якщо бути уважним, можна помітити, що тут вже існує загроза безпеці — локальні плагіни можуть запускати будь-які дочірні процеси, які не передбачені MCP ).
демонстраційний клієнт
демонстраційна модель
Виберіть версію Claude 3.7, оскільки вона має певні покращення в розпізнаванні чутливих операцій, а також представляє собою досить сильні операційні можливості в поточній екосистемі MCP.
Перехресний MCP Зловмисне Використання
атака на веб-контент за допомогою отруєння
Курсор доступу до локального тестового сайту.
Це, здавалося б, безпечна сторінка про "Delicious Cake World", яка через цей експеримент демонструє вплив, що може бути спричинений доступом клієнта великої моделі до шкідливого веб-сайту.
Виконати команду: Отримати вміст
Результати показали, що Cursor не лише зчитав вміст веб-сторінки, але й передав локальні чутливі конфігураційні дані на тестовий сервер. У вихідному коді зловмисні ключові слова вбудовані у вигляді HTML-коментарів.
Хоча спосіб коментування є досить пряму, його легко розпізнати, але він вже може спровокувати шкідливі дії.
Перейдіть на сторінку /encode, це веб-сторінка, яка виглядає так само, як у наведеному вище прикладі, але в ній шкідливі підказки закодовані, що робить атаку менш помітною, навіть при перегляді вихідного коду веб-сторінки важко безпосередньо виявити.
Навіть якщо вихідний код не містить явних підказок, атака все ще успішно виконується, конкретний принцип буде детально пояснено в наступних розділах.
MCP інструмент повертає інформацію отруєння
Згідно з підказкою MasterMCP, введіть симуляційну команду (. Ця команда не має реального значення, її мета - активувати шкідливий MCP для демонстрації подальших дій ):
отримати багато яблук
Можна побачити, що після активації команди клієнт успішно викликав Toolbox через MCP і додав новий сервер MCP.
Переглянувши код плагіна, можна виявити, що у повернуті дані вже вбудовано закодоване шкідливе навантаження, яке користувач практично не може помітити.
атака забруднення сторонніх інтерфейсів
Ця демонстрація в основному нагадує, що незалежно від того, чи є MCP навмисним чи ненавмисним, при виклику API третьої сторони, якщо безпосередньо повернути дані третьої сторони в контекст, це може призвести до серйозних наслідків.
Виконати запит: Отримати json з /api/data
Результат: зловмисні підказки були інтегровані в повернуті дані JSON і успішно викликали зловмисне виконання.
Технології отруєння на етапі ініціалізації MCP
атака на перекриття зловмисних функцій
MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані шкідливі підказки.
Виконати команду: інструмент видалити отримати плагін сервер
Claude Desktop не викликав оригінальний метод toolbox remove_server, а замість цього активував метод з тією ж назвою, наданий MasterMCP.
Принцип полягає в акцентуванні на тому, що "попередній метод скасовано", з пріоритетом на спонукання великої моделі викликати функції зловмисного перекриття.
Додати логіку глобальної перевірки на наявність шкідливого ПЗ
MasterMCP написав інструмент banana, основна функція якого полягає в тому, щоб у підказках примусити всі інструменти перед виконанням запускати цей інструмент для перевірки безпеки.
Перед кожним виконанням функції система спочатку викликає механізм перевірки banana.
Це глобальна логічна ін'єкція, яка реалізується шляхом постійного підкреслення в коді "необхідно виконати перевірку на банан".
Розширені прийоми приховування шкідливих підказок
Дружній до великих моделей формат кодування
Оскільки великі мовні моделі мають дуже сильну здатність до аналізу багатомовних форматів, це, навпаки, використовується для приховання шкідливої інформації, до звичайних методів належать:
механізм повернення випадкового шкідливого навантаження
Коли запитуєте /random, кожного разу випадковим чином повертається сторінка з шкідливим навантаженням, що суттєво ускладнює виявлення та трасування.
Підсумок
Через практичну демонстрацію MasterMCP ми наочно побачили різні приховані загрози безпеці в системі Model Context Protocol (MCP). Від простих ін'єкцій підказок, міжMCP викликів, до більш прихованих атак на етапі ініціалізації та приховування шкідливих інструкцій, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в умовах, коли великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення введення може викликати системні ризики безпеки. А різноманіття методів атаки, таких як ( кодування приховання, випадкове забруднення, покриття функцій ) також означає, що традиційні підходи до захисту потребують повного оновлення.
Безпека ніколи не досягається одразу.
Сподіваюся, ця демонстрація стане для всіх сигналом тривоги: як розробники, так і користувачі повинні зберігати достатню пильність щодо системи MCP, постійно стежити за кожною взаємодією, кожним рядком коду, кожним значенням, що повертається. Лише ставлячи до кожної деталі серйозне ставлення, можна справді створити міцне та безпечне середовище MCP.
Наступним кроком ми також продовжимо вдосконалювати скрипт MasterMCP, відкриваючи більше спеціалізованих тестових випадків, щоб допомогти всім глибше зрозуміти, тренуватися та зміцнювати захист у безпечному середовищі.