Потенційні ризики безпеки та демонстрація атак у системі MCP
Поточний MCP (Model Context Protocol) екосистема все ще перебуває на ранній стадії розвитку, загальне середовище є досить хаотичним, різні потенційні методи атак виникають один за іншим, існуючі протоколи та інструменти важко ефективно захистити. Щоб допомогти спільноті підвищити усвідомлення безпеки MCP, з'явився інструмент з відкритим кодом під назвою MasterMCP, мета якого - допомогти розробникам своєчасно виявляти безпекові ризики в дизайні продукту через практичні навчання з атак, тим самим постійно зміцнюючи безпеку проекту MCP.
Ця стаття познайомить читачів з практичними демонстраціями поширених атак у екосистемі MCP, включаючи отруєння інформації, приховані шкідливі команди та інші реальні випадки. Усі демонстраційні скрипти були відкриті, щоб кожен міг відтворити весь процес у безпечному середовищі, навіть на основі цього розробити свої власні плагіни для тестування атак.
Огляд загальної архітектури
Демонстраційна атака на ціль MCP: Toolbox
Toolbox є популярним інструментом управління MCP, який має велику кількість користувачів. Вибір його в якості цільового тесту ґрунтується на наступних міркуваннях:
Велика кількість користувачів, яка є репрезентативною
Підтримка автоматичної установки інших плагінів, що може доповнити деякі функції клієнта
Містить чутливу конфігурацію (, таку як API Key ), для зручності демонстрації
демонстраційне використання шкідливого MCP: MasterMCP
MasterMCP - це інструмент для моделювання шкідливих MCP, спеціально розроблений для безпекового тестування, що використовує модульну архітектуру і включає такі ключові модулі:
Моделювання локальних веб-сервісів:
Цей модуль швидко розгортає простий HTTP-сервер за допомогою фреймворку FastAPI, імітуючи звичайне веб-середовище. Ці сторінки виглядають нормально, але насправді в їхньому вихідному коді або в поверненні API приховані ретельно спроектовані шкідливі вантажі.
Локальна плагінна архітектура MCP
MasterMCP використовує плагінний підхід для розширення, що полегшує швидке додавання нових методів атаки в подальшому. Після запуску MasterMCP запустить вищезазначену службу FastAPI в дочірньому процесі.
демонстраційний клієнт
Cursor: один з найпопулярніших у світі IDE для програмування з підтримкою AI
Claude Desktop: офіційний клієнт Anthropic
демонстраційна модель великого формату
Клод 3.7
Вибір цієї версії зумовлений тим, що вона вже має певні покращення в ідентифікації чутливих операцій, одночасно представляючи собою потужні можливості для виконання операцій в нинішній екосистемі MCP.
Cross-MCP зловмисний виклик
атака з отруєння вмісту веб-сторінки
Коментоване отруєння
За допомогою Cursor доступ до локального тестового сайту, це, здається, безпечна сторінка "Delicious Cake World". Виконавши команду для отримання вмісту веб-сторінки, Cursor не лише зчитав вміст веб-сторінки, але й передав локальні конфіденційні дані конфігурації на тестовий сервер. У вихідному коді шкідливі підказки впроваджені у вигляді HTML-коментарів.
Кодовані коментарі отруєння
Відвідайте сторінку /encode, це веб-сторінка, яка виглядає ідентично, але шкідливі підказки закодовані, що робить отруєння менш помітним. Навіть якщо вихідний код не містить відкритих підказок, атака все ще успішно виконується.
MCP інструмент повертає інформацію про отруєння
Згідно з підказкою MasterMCP, після введення симуляційної команди "get a lot of apples", клієнт здійснив міжмережевий виклик Toolbox і успішно додав новий сервер MCP. Переглянувши код плагіна, можна побачити, що в повернених даних вже вбудовані оброблені кодуванням шкідливі вантажі, і користувач майже не може виявити аномалії.
атака забруднення через сторонній інтерфейс
Після виконання запиту на отримання JSON-даних, шкідливі підказки були вставлені в повернуті JSON-дані і успішно викликали шкідливе виконання. Це нагадує нам, що незалежно від того, чи є MCP шкідливим або не шкідливим, при виклику стороннього API, якщо безпосередньо повертати сторонні дані в контекст, це може мати серйозні наслідки.
Техніка отруєння на етапі ініціалізації MCP
атака на покриття зловмисних функцій
MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані шкідливі підказки. Після виконання команди Claude Desktop не викликав оригінальний метод toolbox remove_server, а натомість спрацював метод з такою ж назвою, наданий MasterMCP. Це було зроблено шляхом підкреслення "оригінальний метод відмовлений", щоб першочергово спонукати велику модель викликати шкідливу функцію з перекриттям.
Додати логіку глобальної перевірки на наявність загроз
MasterMCP написав інструмент banana, основна функція якого полягає в тому, щоб примусити виконання всіх інструментів проходити через цей інструмент для перевірки безпеки перед їх виконанням. Перед кожним виконанням функції система спочатку викликає механізм перевірки banana. Це досягається через повторне підкреслення в коді "необхідно виконати перевірку banana", що є глобальною логікою впровадження.
Розширені техніки приховування шкідливих підказок
кодування, дружнє до великих моделей
Оскільки великі мовні моделі мають надзвичайно сильну здатність до аналізу багатомовних форматів, це, навпаки, використовується для приховування шкідливої інформації, поширені методи включають:
Англійське середовище: використання кодування Hex Byte
Українське середовище: використовувати кодування NCR або JavaScript кодування
механізм повернення випадкового шкідливого навантаження
При запиті /random кожного разу випадковим чином повертається сторінка з шкідливим вантажем, що значно ускладнює виявлення та відстеження.
 кодування приховування, випадкове забруднення, перезапис функцій ( також означає, що традиційні підходи до захисту потребують повного оновлення.
Безпека ніколи не досягається за один раз. Сподіваюся, ця демонстрація зможе сповістити всіх: як розробники, так і користувачі повинні залишатися достатньо настороженими стосовно системи MCP, завжди уважно слідкуючи за кожною взаємодією, кожним рядком коду, кожним значенням, що повертається. Лише ставлячи до кожної деталі строгий підхід, можна справді побудувати надійне та безпечне середовище MCP.
Наступним кроком ми також будемо продовжувати вдосконалювати скрипт MasterMCP, відкривати більше цільових тестових випадків, щоб допомогти всім глибше зрозуміти, практикувати і зміцнювати захист у безпечному середовищі.
![Практичний старт: приховане отруєння та маніпуляції в системі MCP])https://img-cdn.gateio.im/webp-social/moments-bf6d8976b54bebbec34699753f4dbb70.webp(
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Аналіз екологічних ризиків MCP: демонстрація між MCP атак та прихованого отруєння
Потенційні ризики безпеки та демонстрація атак у системі MCP
Поточний MCP (Model Context Protocol) екосистема все ще перебуває на ранній стадії розвитку, загальне середовище є досить хаотичним, різні потенційні методи атак виникають один за іншим, існуючі протоколи та інструменти важко ефективно захистити. Щоб допомогти спільноті підвищити усвідомлення безпеки MCP, з'явився інструмент з відкритим кодом під назвою MasterMCP, мета якого - допомогти розробникам своєчасно виявляти безпекові ризики в дизайні продукту через практичні навчання з атак, тим самим постійно зміцнюючи безпеку проекту MCP.
Ця стаття познайомить читачів з практичними демонстраціями поширених атак у екосистемі MCP, включаючи отруєння інформації, приховані шкідливі команди та інші реальні випадки. Усі демонстраційні скрипти були відкриті, щоб кожен міг відтворити весь процес у безпечному середовищі, навіть на основі цього розробити свої власні плагіни для тестування атак.
Огляд загальної архітектури
Демонстраційна атака на ціль MCP: Toolbox
Toolbox є популярним інструментом управління MCP, який має велику кількість користувачів. Вибір його в якості цільового тесту ґрунтується на наступних міркуваннях:
демонстраційне використання шкідливого MCP: MasterMCP
MasterMCP - це інструмент для моделювання шкідливих MCP, спеціально розроблений для безпекового тестування, що використовує модульну архітектуру і включає такі ключові модулі:
Цей модуль швидко розгортає простий HTTP-сервер за допомогою фреймворку FastAPI, імітуючи звичайне веб-середовище. Ці сторінки виглядають нормально, але насправді в їхньому вихідному коді або в поверненні API приховані ретельно спроектовані шкідливі вантажі.
MasterMCP використовує плагінний підхід для розширення, що полегшує швидке додавання нових методів атаки в подальшому. Після запуску MasterMCP запустить вищезазначену службу FastAPI в дочірньому процесі.
демонстраційний клієнт
демонстраційна модель великого формату
Вибір цієї версії зумовлений тим, що вона вже має певні покращення в ідентифікації чутливих операцій, одночасно представляючи собою потужні можливості для виконання операцій в нинішній екосистемі MCP.
Cross-MCP зловмисний виклик
атака з отруєння вмісту веб-сторінки
За допомогою Cursor доступ до локального тестового сайту, це, здається, безпечна сторінка "Delicious Cake World". Виконавши команду для отримання вмісту веб-сторінки, Cursor не лише зчитав вміст веб-сторінки, але й передав локальні конфіденційні дані конфігурації на тестовий сервер. У вихідному коді шкідливі підказки впроваджені у вигляді HTML-коментарів.
Відвідайте сторінку /encode, це веб-сторінка, яка виглядає ідентично, але шкідливі підказки закодовані, що робить отруєння менш помітним. Навіть якщо вихідний код не містить відкритих підказок, атака все ще успішно виконується.
MCP інструмент повертає інформацію про отруєння
Згідно з підказкою MasterMCP, після введення симуляційної команди "get a lot of apples", клієнт здійснив міжмережевий виклик Toolbox і успішно додав новий сервер MCP. Переглянувши код плагіна, можна побачити, що в повернених даних вже вбудовані оброблені кодуванням шкідливі вантажі, і користувач майже не може виявити аномалії.
атака забруднення через сторонній інтерфейс
Після виконання запиту на отримання JSON-даних, шкідливі підказки були вставлені в повернуті JSON-дані і успішно викликали шкідливе виконання. Це нагадує нам, що незалежно від того, чи є MCP шкідливим або не шкідливим, при виклику стороннього API, якщо безпосередньо повертати сторонні дані в контекст, це може мати серйозні наслідки.
Техніка отруєння на етапі ініціалізації MCP
атака на покриття зловмисних функцій
MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані шкідливі підказки. Після виконання команди Claude Desktop не викликав оригінальний метод toolbox remove_server, а натомість спрацював метод з такою ж назвою, наданий MasterMCP. Це було зроблено шляхом підкреслення "оригінальний метод відмовлений", щоб першочергово спонукати велику модель викликати шкідливу функцію з перекриттям.
Додати логіку глобальної перевірки на наявність загроз
MasterMCP написав інструмент banana, основна функція якого полягає в тому, щоб примусити виконання всіх інструментів проходити через цей інструмент для перевірки безпеки перед їх виконанням. Перед кожним виконанням функції система спочатку викликає механізм перевірки banana. Це досягається через повторне підкреслення в коді "необхідно виконати перевірку banana", що є глобальною логікою впровадження.
Розширені техніки приховування шкідливих підказок
кодування, дружнє до великих моделей
Оскільки великі мовні моделі мають надзвичайно сильну здатність до аналізу багатомовних форматів, це, навпаки, використовується для приховування шкідливої інформації, поширені методи включають:
механізм повернення випадкового шкідливого навантаження
При запиті /random кожного разу випадковим чином повертається сторінка з шкідливим вантажем, що значно ускладнює виявлення та відстеження.
 кодування приховування, випадкове забруднення, перезапис функцій ( також означає, що традиційні підходи до захисту потребують повного оновлення.
Безпека ніколи не досягається за один раз. Сподіваюся, ця демонстрація зможе сповістити всіх: як розробники, так і користувачі повинні залишатися достатньо настороженими стосовно системи MCP, завжди уважно слідкуючи за кожною взаємодією, кожним рядком коду, кожним значенням, що повертається. Лише ставлячи до кожної деталі строгий підхід, можна справді побудувати надійне та безпечне середовище MCP.
Наступним кроком ми також будемо продовжувати вдосконалювати скрипт MasterMCP, відкривати більше цільових тестових випадків, щоб допомогти всім глибше зрозуміти, практикувати і зміцнювати захист у безпечному середовищі.
![Практичний старт: приховане отруєння та маніпуляції в системі MCP])https://img-cdn.gateio.im/webp-social/moments-bf6d8976b54bebbec34699753f4dbb70.webp(