Дослідження безпеки системи MCP та практика моделювання атак
MCP (Модель Контекст Протокол) система наразі перебуває на ранній стадії розвитку, загальна обстановка досить хаотична, різні потенційні способи атак з'являються один за одним, існуючі протоколи та інструменти важко ефективно захистити. Для підвищення усвідомленості спільноти щодо безпеки MCP, з'явився відкритий інструмент під назвою MasterMCP, який має на меті допомогти виявити недоліки в дизайні продукту через практичні тренування з атак, тим самим поступово зміцнюючи проект MCP.
Ця стаття ознайомить читачів з практичними прикладами, продемонструвавши поширені способи атак у системі MCP, такі як отруєння інформацією, приховані зловмисні команди та інші реальні випадки. Всі демонстраційні скрипти також будуть відкриті, щоб усі могли відтворити весь процес у безпечному середовищі, а також розробити власні плагіни для тестування атак.
Огляд загальної архітектури
демонстрація атаки на ціль MCP:Toolbox
Toolbox є офіційним інструментом управління MCP, випущеним відомим сайтом плагінів MCP. Вибір його як цільового об'єкта для тестування базується на таких основних моментах:
Велика база користувачів, є представницькою
Підтримка автоматичної установки інших плагінів, доповнення деяких функцій клієнта
Містить чутливу конфігурацію (, таку як API Key ), що полегшує демонстрацію.
демонстраційне використання шкідливого MC:MasterMC
MasterMCP - це інструмент для моделювання шкідливих MCP, розроблений спеціально для безпекового тестування, що використовує модульну архітектуру та містить такі ключові модулі:
Місцеві веб-сайти послуг моделювання:
Для реального відтворення атакувального сценарію MasterMCP вбудував модуль для моделювання локальних веб-сайтів. За допомогою фреймворку FastAPI швидко створюється простий HTTP-сервер, що імітує звичайне веб-середовище. Ці сторінки на перший погляд виглядають нормально, але насправді в коді сторінки або у відповідях API приховані ретельно розроблені шкідливі навантаження.
Локальна плагінна архітектура MCP
MasterMCP використовує плагінний підхід для розширення, що полегшує швидке додавання нових методів атаки в майбутньому. Після запуску MasterMCP буде виконувати вищезгадану службу FastAPI в дочірньому процесі.
демонстраційний клієнт
Cursor: один з найбільш популярних в світі IDE для програмування з підтримкою AI
Claude Desktop: офіційний клієнт великої моделі
демонстраційна велика модель
Клод 3.7
Вибір цієї версії зумовлений покращеннями в ідентифікації чутливих операцій, а також вона представляє собою сильні можливості операцій у поточній екосистемі MCP.
Cross-MCP зловмисний виклик
атака на вміст веб-сторінки
Коментарний отруєння
Доступ до локального тестового сайту через Cursor, імітуючи вплив доступу клієнта великої моделі до шкідливого сайту.
Виконати команду:
Отримати вміст
Результати показують, що Cursor не тільки зчитує вміст веб-сторінки, але й передає чутливі локальні конфігураційні дані на тестовий сервер. У вихідному коді зловмисні підказки вбудовані у вигляді HTML-коментарів.
Кодовані коментарі для отруєння
Перейдіть на сторінку /encode, це веб-сторінка, що здається схожою на попередній приклад, але в ній шкідливі підказки закодовані, що робить отруєння більш прихованим, навіть при перегляді вихідного коду веб-сторінки важко безпосередньо помітити.
Навіть якщо вихідний код не містить явних підказок, атака все ще успішно виконується.
MCP інструмент повернення інформації отруєння
Введіть команду моделювання:
отримати багато яблук
Після активації команди клієнт через MCP викликав Toolbox і успішно додав новий сервер MCP. Переглянувши код плагіна, можна виявити, що у повернуті дані вже вбудоване закодоване шкідливе навантаження, яке користувач майже не може помітити.
атака забруднення через сторонній інтерфейс
Виконати запит:
Отримати json з /api/data
Результат: зловмисні підказки були вставлені до повернутого JSON-даних і успішно викликали зловмисне виконання.
Технології отруєння на етапі ініціалізації MCP
атака на покриття зловмисними функціями
MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані зловмисні підказки.
Виконати команду:
інструменти видалити отримати плагін сервер
Claude Desktop не викликав оригінальний метод toolbox remove_server, а активував метод з такою ж назвою, наданий MasterMCP.
Принцип полягає в тому, щоб підкреслити "попередній метод скасовано", перш за все, спонукати велику модель викликати функції зловмисного перекриття.
Додати шкідливу глобальну логіку перевірки
MasterMCP написав інструмент banana, основна функція якого полягає в тому, щоб змусити всі інструменти виконувати цей інструмент для перевірки безпеки перед їхнім запуском у підказках.
Перед кожним виконанням функції система спочатку викликає механізм перевірки banana. Це досягається шляхом багаторазового підкреслення у коді "обов'язково виконати перевірку banana" як частини глобальної логіки вставки.
Розширені техніки приховування шкідливих підказок
Дружній до великих моделей спосіб кодування
Оскільки великі мовні моделі мають дуже сильну здатність до аналізу мультимовних форматів, це, навпаки, використовується для приховування шкідливої інформації, до поширених методів належать:
В англомовному середовищі: використовуйте кодування Hex Byte
У середовищі китайської мови: використовуйте кодування NCR або кодування JavaScript
механізм випадкового повернення зловмисного навантаження
При запиті /random кожного разу випадковим чином повертається сторінка з шкідливим навантаженням, що значно ускладнює виявлення та трасування.
Підсумок
Через практичну демонстрацію MasterMCP ми наочно побачили різні приховані загрози безпеці в системі MCP. Від простого введення підказок, міжMCP викликів до більш прихованих атак на етапі ініціалізації та прихованих шкідливих команд, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в умовах, коли великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення введення може призвести до системних рівневих ризиків безпеки. А різноманітність засобів атаки, таких як ( кодування приховання, випадкове забруднення, функціональне перекриття ) також означає, що традиційні підходи до захисту потребують всебічного оновлення.
Безпека ніколи не досягається за один раз. Сподіваюся, що ця демонстрація зможе попередити всіх: як розробники, так і користувачі повинні бути достатньо уважними до системи MCP, завжди стежити за кожною взаємодією, кожним рядком коду, кожним значенням, що повертається. Тільки ставлячи серйозно до кожної деталі, можна справді побудувати міцне та безпечне середовище MCP.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
7 лайків
Нагородити
7
3
Поділіться
Прокоментувати
0/400
MemeKingNFT
· 20год тому
У часи, коли риби та дракони змішані, найбільше виявляється шлях безпеки ланцюга...
MasterMCP розкриває вразливості безпеки екосистеми MCP: практична демонстрація атакуючих методів
Дослідження безпеки системи MCP та практика моделювання атак
MCP (Модель Контекст Протокол) система наразі перебуває на ранній стадії розвитку, загальна обстановка досить хаотична, різні потенційні способи атак з'являються один за одним, існуючі протоколи та інструменти важко ефективно захистити. Для підвищення усвідомленості спільноти щодо безпеки MCP, з'явився відкритий інструмент під назвою MasterMCP, який має на меті допомогти виявити недоліки в дизайні продукту через практичні тренування з атак, тим самим поступово зміцнюючи проект MCP.
Ця стаття ознайомить читачів з практичними прикладами, продемонструвавши поширені способи атак у системі MCP, такі як отруєння інформацією, приховані зловмисні команди та інші реальні випадки. Всі демонстраційні скрипти також будуть відкриті, щоб усі могли відтворити весь процес у безпечному середовищі, а також розробити власні плагіни для тестування атак.
Огляд загальної архітектури
демонстрація атаки на ціль MCP:Toolbox
Toolbox є офіційним інструментом управління MCP, випущеним відомим сайтом плагінів MCP. Вибір його як цільового об'єкта для тестування базується на таких основних моментах:
демонстраційне використання шкідливого MC:MasterMC
MasterMCP - це інструмент для моделювання шкідливих MCP, розроблений спеціально для безпекового тестування, що використовує модульну архітектуру та містить такі ключові модулі:
Для реального відтворення атакувального сценарію MasterMCP вбудував модуль для моделювання локальних веб-сайтів. За допомогою фреймворку FastAPI швидко створюється простий HTTP-сервер, що імітує звичайне веб-середовище. Ці сторінки на перший погляд виглядають нормально, але насправді в коді сторінки або у відповідях API приховані ретельно розроблені шкідливі навантаження.
MasterMCP використовує плагінний підхід для розширення, що полегшує швидке додавання нових методів атаки в майбутньому. Після запуску MasterMCP буде виконувати вищезгадану службу FastAPI в дочірньому процесі.
демонстраційний клієнт
демонстраційна велика модель
Вибір цієї версії зумовлений покращеннями в ідентифікації чутливих операцій, а також вона представляє собою сильні можливості операцій у поточній екосистемі MCP.
Cross-MCP зловмисний виклик
атака на вміст веб-сторінки
Доступ до локального тестового сайту через Cursor, імітуючи вплив доступу клієнта великої моделі до шкідливого сайту.
Виконати команду:
Отримати вміст
Результати показують, що Cursor не тільки зчитує вміст веб-сторінки, але й передає чутливі локальні конфігураційні дані на тестовий сервер. У вихідному коді зловмисні підказки вбудовані у вигляді HTML-коментарів.
Перейдіть на сторінку /encode, це веб-сторінка, що здається схожою на попередній приклад, але в ній шкідливі підказки закодовані, що робить отруєння більш прихованим, навіть при перегляді вихідного коду веб-сторінки важко безпосередньо помітити.
Навіть якщо вихідний код не містить явних підказок, атака все ще успішно виконується.
MCP інструмент повернення інформації отруєння
Введіть команду моделювання:
отримати багато яблук
Після активації команди клієнт через MCP викликав Toolbox і успішно додав новий сервер MCP. Переглянувши код плагіна, можна виявити, що у повернуті дані вже вбудоване закодоване шкідливе навантаження, яке користувач майже не може помітити.
атака забруднення через сторонній інтерфейс
Виконати запит:
Отримати json з /api/data
Результат: зловмисні підказки були вставлені до повернутого JSON-даних і успішно викликали зловмисне виконання.
Технології отруєння на етапі ініціалізації MCP
атака на покриття зловмисними функціями
MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані зловмисні підказки.
Виконати команду:
інструменти видалити отримати плагін сервер
Claude Desktop не викликав оригінальний метод toolbox remove_server, а активував метод з такою ж назвою, наданий MasterMCP.
Принцип полягає в тому, щоб підкреслити "попередній метод скасовано", перш за все, спонукати велику модель викликати функції зловмисного перекриття.
Додати шкідливу глобальну логіку перевірки
MasterMCP написав інструмент banana, основна функція якого полягає в тому, щоб змусити всі інструменти виконувати цей інструмент для перевірки безпеки перед їхнім запуском у підказках.
Перед кожним виконанням функції система спочатку викликає механізм перевірки banana. Це досягається шляхом багаторазового підкреслення у коді "обов'язково виконати перевірку banana" як частини глобальної логіки вставки.
Розширені техніки приховування шкідливих підказок
Дружній до великих моделей спосіб кодування
Оскільки великі мовні моделі мають дуже сильну здатність до аналізу мультимовних форматів, це, навпаки, використовується для приховування шкідливої інформації, до поширених методів належать:
механізм випадкового повернення зловмисного навантаження
При запиті /random кожного разу випадковим чином повертається сторінка з шкідливим навантаженням, що значно ускладнює виявлення та трасування.
Підсумок
Через практичну демонстрацію MasterMCP ми наочно побачили різні приховані загрози безпеці в системі MCP. Від простого введення підказок, міжMCP викликів до більш прихованих атак на етапі ініціалізації та прихованих шкідливих команд, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в умовах, коли великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення введення може призвести до системних рівневих ризиків безпеки. А різноманітність засобів атаки, таких як ( кодування приховання, випадкове забруднення, функціональне перекриття ) також означає, що традиційні підходи до захисту потребують всебічного оновлення.
Безпека ніколи не досягається за один раз. Сподіваюся, що ця демонстрація зможе попередити всіх: як розробники, так і користувачі повинні бути достатньо уважними до системи MCP, завжди стежити за кожною взаємодією, кожним рядком коду, кожним значенням, що повертається. Тільки ставлячи серйозно до кожної деталі, можна справді побудувати міцне та безпечне середовище MCP.