MCP (Model Context Protocol) система наразі ще перебуває на ранній стадії розвитку, загальна обстановка є досить хаотичною, різні потенційні способи атак виникають один за одним, існуючі протоколи та інструменти важко ефективно захистити. Для підвищення безпеки MCP, SlowMist відкрила MasterMCP інструмент, через практичні атаки допомагає виявити безпекові вразливості в дизайні продукту, таким чином зміцнюючи MCP проект.
Ця стаття продемонструє поширені способи атак у системі MCP, такі як інформаційне отруєння, приховані шкідливі команди та інші реальні випадки. Усі демонстраційні скрипти також будуть відкриті на GitHub, щоб всі могли відтворити весь процес у безпечному середовищі, навіть розробити свої власні плагіни для тестування атак.
Загальний огляд архітектури
Демонстрація атаки на ціль MCP:Toolbox
smithery.ai є одним із популярних веб-сайтів плагінів MCP, що зібрав велику кількість списків MCP та активних користувачів. Серед них @smithery/toolbox - це офіційно випущений інструмент управління MCP.
Вибір Toolbox як цільового об'єкта тестування головним чином базується на:
Велика база користувачів, яка є репрезентативною
Підтримка автоматичної установки інших плагінів, доповнення деяких функцій клієнта
Містить чутливу конфігурацію (, таку як API Key ), для зручності демонстрації
демонстраційне використання шкідливого MCP: MasterMCP
MasterMCP - це інструмент моделювання шкідливого MCP, спеціально розроблений компанією SlowMist для безпеки тестування, з плагінною архітектурою, що містить такі ключові модулі:
Місцеві служби веб-сайтів імітація:
MasterMCP вбудований модуль симуляції локального веб-сервісу, швидко створює простий HTTP-сервер за допомогою фреймворку FastAPI, імітуючи звичайне веб-середовище. Ці сторінки виглядають нормально, але насправді в вихідному коді або повернень інтерфейсу приховані ретельно розроблені шкідливі вантажі.
Локальна плагінна архітектура MCP
MasterMCP використовує плагінну архітектуру для розширення, що полегшує швидке додавання нових методів атаки. Після запуску MasterMCP буде виконувати FastAPI сервіс попереднього модуля в дочірньому процесі.
демонстраційний клієнт
Cursor: один з найпопулярніших у світі IDE для програмування з підтримкою штучного інтелекту
Claude Desktop: офіційний клієнт Anthropic
демонстраційна модель
Клод 3.7
Виберіть версію Claude 3.7, оскільки вона вже має покращення в розпізнаванні чутливих операцій, одночасно представляючи сильні операційні можливості в поточній екосистемі MCP.
Зловмисний виклик Cross-MCP
Ця демонстрація містить два елементи: отруєння та зловмисний виклик Cross-MCP.
атака отравлення веб-контенту
Коментуюче отруєння
Курсор отримує доступ до місцевого тестового сайту, це, здавалося б, нешкідлива сторінка "Смачний Світ Тортів".
Виконати команду:
Отримати вміст
Результати показують, що Cursor не лише зчитував вміст веб-сторінки, але й передавав локальні чутливі конфігураційні дані на тестовий сервер. У вихідному коді шкідливі підказки впроваджено у вигляді HTML-коментарів.
Кодовані коментарі отруєння
Відвідайте сторінку /encode, це веб-сторінка, яка виглядає однаково, але шкідливі підказки кодуються, що робить отруєння exp більш прихованим, навіть при перегляді виходу веб-сторінки важко прямо помітити.
Навіть якщо вихідний код не містить явних підказок, атака все ще успішно виконується.
атака на третій сторонній інтерфейс
Ця демонстрація головним чином нагадує, що незалежно від того, є MCP зловмисним чи без злого умислу, при виклику стороннього API, якщо безпосередньо повертати сторонні дані в контекст, це може призвести до серйозних наслідків.
Виконати запит:
Отримати json з /api/data
Результат: зловмисні підказки були впроваджені в повернуті дані JSON і успішно викликали зловмисне виконання.
Техніка отруєння на етапі ініціалізації MCP
Ця демонстрація містить два змісти: початкове впорскування підказок та конфлікт імен.
зловмисна атака на функції
MasterMCP написав інструмент remove_server з таким же ім'ям функції, як у Toolbox, і закодував приховані шкідливі підказки.
Виконати команду:
інструменти видалити плагін отримання сервер
Claude Desktop не викликав оригінальний метод toolbox remove_server, а замість цього активував метод з тією ж назвою, наданий MasterMCP.
Принцип полягає в підкресленні "попередні методи скасовані", першочергово спонукаючи великі моделі викликати функції зловмисного перекриття.
Додати логіку глобальної перевірки на шкідливість
MasterMCP написав інструмент banana, основна функція якого полягає в тому, що в підказках всі інструменти повинні бути виконані перед їх використанням для безпеки.
Перед виконанням кожної функції система спочатку викликає механізм перевірки banana. Це реалізується через глобальне впровадження логіки, яке підкреслює в коді "повинен виконуватись перевірка banana".
Розширені техніки приховування шкідливих підказок
дружній до великих моделей спосіб кодування
Оскільки великі мовні моделі мають надзвичайно сильну здатність до аналізу багатомовних форматів, це навпаки використовується для приховування шкідливої інформації, до поширених методів належать:
Китайське середовище: використовуйте кодування NCR або кодування JavaScript
механізм повернення випадкових шкідливих вантажів
Коли запитується /random, кожного разу випадковим чином повертається сторінка з шкідливим навантаженням, що значно ускладнює виявлення та відстеження.
Підсумок
За допомогою практичної демонстрації MasterMCP ми наочно побачили різні приховані загрози безпеці в системі MCP. Від простих ін'єкцій підказок, крос-MCP викликів до більш прихованих атак на етапі ініціалізації та приховання шкідливих команд, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо великі моделі все частіше взаємодіють із зовнішніми плагінами та API, і навіть невелике забруднення вводу може викликати системні ризики безпеки. Різноманітність методів атаки, таких як ( кодування приховання, випадкове забруднення, перекриття функцій ) означає, що традиційні підходи до захисту потребують повної модернізації.
Сподіваюся, що ця демонстрація зможе стати для всіх сигналом тривоги: і розробники, і користувачі повинні бути насторожі щодо системи MCP, уважно стежити за кожною взаємодією, кожним рядком коду, кожним значенням, яке повертається. Лише приділяючи увагу деталям, можна створити надійне та безпечне середовище MCP.
SlowMist продовжить вдосконалення скрипту MasterMCP, відкриваючи більше цільових тестових випадків, щоб допомогти в глибокому розумінні, практиці та зміцненні захисту в безпечному середовищі. Відповідний контент вже синхронізовано з GitHub, зацікавлені читачі можуть переглянути.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
10 лайків
Нагородити
10
6
Поділіться
Прокоментувати
0/400
screenshot_gains
· 6год тому
gm знову з'явилася нова вразливість
Переглянути оригіналвідповісти на0
AirdropSweaterFan
· 6год тому
Обережно, обман для дурнів!
Переглянути оригіналвідповісти на0
ContractCollector
· 6год тому
MC надіслано
Переглянути оригіналвідповісти на0
ForkItAll
· 6год тому
Чорний вже вийшов, що ще можна сказати?
Переглянути оригіналвідповісти на0
MissedAirdropBro
· 6год тому
Катафалки набагато стабільніші за нього
Переглянути оригіналвідповісти на0
MEVSandwichVictim
· 6год тому
Знову обдурили, так? Обдурювати людей, як лохів, нічого не зрівняється з обдуренням нас, невдах~
MasterMCP виявляє загрози безпеці MCP. Практична демонстрація різних методів атак.
Безпекові ризики та демонстрація атак системи MCP
MCP (Model Context Protocol) система наразі ще перебуває на ранній стадії розвитку, загальна обстановка є досить хаотичною, різні потенційні способи атак виникають один за одним, існуючі протоколи та інструменти важко ефективно захистити. Для підвищення безпеки MCP, SlowMist відкрила MasterMCP інструмент, через практичні атаки допомагає виявити безпекові вразливості в дизайні продукту, таким чином зміцнюючи MCP проект.
Ця стаття продемонструє поширені способи атак у системі MCP, такі як інформаційне отруєння, приховані шкідливі команди та інші реальні випадки. Усі демонстраційні скрипти також будуть відкриті на GitHub, щоб всі могли відтворити весь процес у безпечному середовищі, навіть розробити свої власні плагіни для тестування атак.
Загальний огляд архітектури
Демонстрація атаки на ціль MCP:Toolbox
smithery.ai є одним із популярних веб-сайтів плагінів MCP, що зібрав велику кількість списків MCP та активних користувачів. Серед них @smithery/toolbox - це офіційно випущений інструмент управління MCP.
Вибір Toolbox як цільового об'єкта тестування головним чином базується на:
демонстраційне використання шкідливого MCP: MasterMCP
MasterMCP - це інструмент моделювання шкідливого MCP, спеціально розроблений компанією SlowMist для безпеки тестування, з плагінною архітектурою, що містить такі ключові модулі:
MasterMCP вбудований модуль симуляції локального веб-сервісу, швидко створює простий HTTP-сервер за допомогою фреймворку FastAPI, імітуючи звичайне веб-середовище. Ці сторінки виглядають нормально, але насправді в вихідному коді або повернень інтерфейсу приховані ретельно розроблені шкідливі вантажі.
MasterMCP використовує плагінну архітектуру для розширення, що полегшує швидке додавання нових методів атаки. Після запуску MasterMCP буде виконувати FastAPI сервіс попереднього модуля в дочірньому процесі.
демонстраційний клієнт
демонстраційна модель
Виберіть версію Claude 3.7, оскільки вона вже має покращення в розпізнаванні чутливих операцій, одночасно представляючи сильні операційні можливості в поточній екосистемі MCP.
Зловмисний виклик Cross-MCP
Ця демонстрація містить два елементи: отруєння та зловмисний виклик Cross-MCP.
атака отравлення веб-контенту
Курсор отримує доступ до місцевого тестового сайту, це, здавалося б, нешкідлива сторінка "Смачний Світ Тортів".
Виконати команду: Отримати вміст
Результати показують, що Cursor не лише зчитував вміст веб-сторінки, але й передавав локальні чутливі конфігураційні дані на тестовий сервер. У вихідному коді шкідливі підказки впроваджено у вигляді HTML-коментарів.
Відвідайте сторінку /encode, це веб-сторінка, яка виглядає однаково, але шкідливі підказки кодуються, що робить отруєння exp більш прихованим, навіть при перегляді виходу веб-сторінки важко прямо помітити.
Навіть якщо вихідний код не містить явних підказок, атака все ще успішно виконується.
атака на третій сторонній інтерфейс
Ця демонстрація головним чином нагадує, що незалежно від того, є MCP зловмисним чи без злого умислу, при виклику стороннього API, якщо безпосередньо повертати сторонні дані в контекст, це може призвести до серйозних наслідків.
Виконати запит: Отримати 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.
SlowMist продовжить вдосконалення скрипту MasterMCP, відкриваючи більше цільових тестових випадків, щоб допомогти в глибокому розумінні, практиці та зміцненні захисту в безпечному середовищі. Відповідний контент вже синхронізовано з GitHub, зацікавлені читачі можуть переглянути.