Аналіз практичних випадків прихованого отруєння та маніпуляцій у системі MCP
MCP (Model Context Protocol) система наразі ще на ранній стадії розвитку, загальне середовище є досить хаотичним, різні потенційні способи атак з'являються один за одним, існуючі протоколи та інструменти важко ефективно захистити. Щоб допомогти спільноті краще розуміти та підвищувати безпеку MCP, одна команда безпеки відкрила інструмент MasterMCP, сподіваючись, що через реальні навчання атакам допоможе розробникам вчасно виявляти проблеми безпеки в дизайні продукту, тим самим поступово зміцнюючи проект MCP.
Ця стаття проведе читача через практичні вправи, демонструючи поширені способи атак у системі MCP, такі як інформаційне отруєння, приховані шкідливі команди та інші реальні випадки. Усі демонстраційні скрипти також будуть відкриті, читач зможе повністю відтворити весь процес у безпечному середовищі, навіть на основі цих скриптів розробити свої власні плагіни для тестування атак.
Загальний огляд архітектури
демонстраційна атака на ціль MCP:Toolbox
Один відомий сайт плагінів MCP є одним із найпопулярніших місць збору MCP, який об'єднує велику кількість списків MCP та активних користувачів. Серед них офіційно представлений інструмент управління MCP Toolbox було обрано як ціль тестування, що в першу чергу базується на таких моментах:
Велику кількість користувачів, що є репрезентативною
Підтримка автоматичної установки інших плагінів для доповнення деяких функцій клієнта
Містить чутливі конфігурації (, такі як API Key ), що полегшує демонстрацію
демонстраційне використання шкідливого MCP: MasterMCP
MasterMCP є інструментом для моделювання шкідливих MCP, спеціально розробленим для безпекового тестування, який має плагінну архітектуру та містить такі ключові модулі:
Імітація локального веб-сервісу:
Для більш реалістичного відтворення сцен атаки MasterMCP вбудував модуль симуляції локального веб-сервісу. За допомогою фреймворку FastAPI швидко створюється простий HTTP-сервер, що імітує звичайне веб-середовище. Ці сторінки на вигляд нормальні, але насправді в коді сторінки або у відповідях API приховані ретельно сплановані шкідливі вантажі.
Локальна плагінна архітектура MCP
MasterMCP використовує плагінний підхід для розширення, що полегшує подальше швидке додавання нових методів атаки. Після запуску MasterMCP буде працювати в підпроцесі з вищезгаданою службою FastAPI.
демонстраційний клієнт
Cursor: один з найпопулярніших у світі IDE для програмування з підтримкою штучного інтелекту.
Claude Desktop:Anthropic(MCП протоколу кастомізації ) офіційний клієнт
демонстраційна велика модель
Клод 3.7
Виберіть версію Claude 3.7, оскільки вона вже має певні покращення в розпізнаванні чутливих операцій, а також представляє собою досить сильні операційні можливості в поточній екосистемі MCP.
Cross-MCP зловмисний виклик
атака отравлення вмісту веб-сторінки
Коментарний отруєння
За допомогою Cursor отримати доступ до локального тестового сайту, змоделювати вплив відвідування шкідливого сайту клієнтом великої моделі.
Виконати інструкцію:
Отримати вміст з
Результати показують, що Cursor не лише прочитав вміст веб-сторінки, а й передав локальні чутливі конфігураційні дані на тестовий сервер. У вихідному коді зловмисні підказки інтегровані у вигляді HTML-коментарів. Хоча коментарі відносно прямолінійні і легко розпізнаються, вони вже можуть спровокувати зловмисні дії.
Кодовані коментарі з отруєнням
Перейти на сторінку /encode, це звичайна веб-сторінка, але в ній шкідливі підказки закодовані, що робить їх отруєння більш прихованим, навіть переглядаючи вихідний код веб-сторінки, важко безпосередньо помітити.
Навіть якщо вихідний код не містить явних підказок, атака все ж успішно виконується.
атака забруднення через сторонній інтерфейс
Ця демонстрація головним чином нагадує, що незалежно від того, є MCP зловмисним чи незловмисним, при виклику стороннього API, якщо дані стороннього постачальника безпосередньо повертаються в контекст, це може мати серйозні наслідки.
Виконати запит:
Отримати 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 ми наочно побачили різні приховані загрози безпеці в системі Model Context Protocol (MCP). Від простих ін'єкцій підказок, між MCP викликами, до більш прихованих атак на етапі ініціалізації та приховання зловмисних команд, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в умовах, коли великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення введення може призвести до системних ризиків безпеки. А різноманітність засобів атаки ( кодування приховання, випадкове забруднення, перекриття функцій ) також означає, що традиційні підходи до захисту потребують повного оновлення.
Безпека ніколи не є справою одного разу. Сподіваюся, ця демонстрація зможе сповістити всіх: як розробники, так і користувачі повинні бути достатньо обережними щодо системи MCP, завжди звертаючи увагу на кожну взаємодію, кожен рядок коду, кожне значення повернення. Тільки ставлячи серйозне ставлення до кожної деталі, можна справді побудувати надійне і безпечне середовище MCP.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
17 лайків
Нагородити
17
3
Поділіться
Прокоментувати
0/400
MysteriousZhang
· 07-12 21:34
Цей баг справді дрібний! Ті, хто займається безпекою, справді дуже жорсткі.
Переглянути оригіналвідповісти на0
LiquidationKing
· 07-12 21:15
Ця вразливість справді хороша
Переглянути оригіналвідповісти на0
HashBard
· 07-12 21:07
ще один день, ще одна експлуатація... *п'є чай, спостерігаючи за тим, як mcp горить*
Аналіз ризиків безпеки системи MCP: демонстрація прихованого отруєння та маніпуляцій в реальному часі
Аналіз практичних випадків прихованого отруєння та маніпуляцій у системі MCP
MCP (Model Context Protocol) система наразі ще на ранній стадії розвитку, загальне середовище є досить хаотичним, різні потенційні способи атак з'являються один за одним, існуючі протоколи та інструменти важко ефективно захистити. Щоб допомогти спільноті краще розуміти та підвищувати безпеку MCP, одна команда безпеки відкрила інструмент MasterMCP, сподіваючись, що через реальні навчання атакам допоможе розробникам вчасно виявляти проблеми безпеки в дизайні продукту, тим самим поступово зміцнюючи проект MCP.
Ця стаття проведе читача через практичні вправи, демонструючи поширені способи атак у системі MCP, такі як інформаційне отруєння, приховані шкідливі команди та інші реальні випадки. Усі демонстраційні скрипти також будуть відкриті, читач зможе повністю відтворити весь процес у безпечному середовищі, навіть на основі цих скриптів розробити свої власні плагіни для тестування атак.
Загальний огляд архітектури
демонстраційна атака на ціль MCP:Toolbox
Один відомий сайт плагінів MCP є одним із найпопулярніших місць збору MCP, який об'єднує велику кількість списків MCP та активних користувачів. Серед них офіційно представлений інструмент управління MCP Toolbox було обрано як ціль тестування, що в першу чергу базується на таких моментах:
демонстраційне використання шкідливого MCP: MasterMCP
MasterMCP є інструментом для моделювання шкідливих MCP, спеціально розробленим для безпекового тестування, який має плагінну архітектуру та містить такі ключові модулі:
Для більш реалістичного відтворення сцен атаки MasterMCP вбудував модуль симуляції локального веб-сервісу. За допомогою фреймворку FastAPI швидко створюється простий HTTP-сервер, що імітує звичайне веб-середовище. Ці сторінки на вигляд нормальні, але насправді в коді сторінки або у відповідях API приховані ретельно сплановані шкідливі вантажі.
MasterMCP використовує плагінний підхід для розширення, що полегшує подальше швидке додавання нових методів атаки. Після запуску MasterMCP буде працювати в підпроцесі з вищезгаданою службою FastAPI.
демонстраційний клієнт
демонстраційна велика модель
Виберіть версію Claude 3.7, оскільки вона вже має певні покращення в розпізнаванні чутливих операцій, а також представляє собою досить сильні операційні можливості в поточній екосистемі MCP.
Cross-MCP зловмисний виклик
атака отравлення вмісту веб-сторінки
За допомогою Cursor отримати доступ до локального тестового сайту, змоделювати вплив відвідування шкідливого сайту клієнтом великої моделі.
Виконати інструкцію:
Отримати вміст з
Результати показують, що Cursor не лише прочитав вміст веб-сторінки, а й передав локальні чутливі конфігураційні дані на тестовий сервер. У вихідному коді зловмисні підказки інтегровані у вигляді HTML-коментарів. Хоча коментарі відносно прямолінійні і легко розпізнаються, вони вже можуть спровокувати зловмисні дії.
Перейти на сторінку /encode, це звичайна веб-сторінка, але в ній шкідливі підказки закодовані, що робить їх отруєння більш прихованим, навіть переглядаючи вихідний код веб-сторінки, важко безпосередньо помітити.
Навіть якщо вихідний код не містить явних підказок, атака все ж успішно виконується.
атака забруднення через сторонній інтерфейс
Ця демонстрація головним чином нагадує, що незалежно від того, є MCP зловмисним чи незловмисним, при виклику стороннього API, якщо дані стороннього постачальника безпосередньо повертаються в контекст, це може мати серйозні наслідки.
Виконати запит:
Отримати json з /api/data
Результат: шкідливі підказки були вшиті в повернуті JSON-дані та успішно активували шкідливе виконання.
Технології отруєння на етапі ініціалізації MCP
атака на перекриття зловмисних функцій
MasterMCP написав інструмент із такою ж назвою функції remove_server, як у Toolbox, і закодував приховані шкідливі підказки.
Виконати команду:
інструмент для видалення плагіна сервера
Claude Desktop не викликав оригінальний метод toolbox remove_server, а натомість активував метод з такою ж назвою, наданий MasterMCP.
Принцип полягає в тому, щоб підкреслити, що "попередні методи скасовані", першочергово спонукаючи велику модель викликати функції зловмисного перекриття.
Додати логіку зловмисної глобальної перевірки
MasterMCP написав інструмент banana, основна функція якого полягає в тому, щоб змусити всі інструменти виконувати цей інструмент для перевірки безпеки перед їх запуском у підказках.
Перед кожним виконанням функції система спершу викликає механізм перевірки banana. Це досягається шляхом неодноразового підкреслення в коді "повинен виконуватись перевірка banana" для реалізації глобальної логічної ін'єкції.
Просунуті техніки приховання зловмисних підказок
дружній до великих моделей спосіб кодування
Оскільки великі мовні моделі мають надзвичайну здатність до аналізу багатомовних форматів, це, навпаки, використовується для приховування шкідливої інформації, до поширених методів належать:
механізм повернення випадкового шкідливого навантаження
Коли запитуєте /random, кожного разу випадковим чином повертається сторінка з шкідливим навантаженням, значно ускладнюючи виявлення та трасування.
Підсумок
Через практичну демонстрацію MasterMCP ми наочно побачили різні приховані загрози безпеці в системі Model Context Protocol (MCP). Від простих ін'єкцій підказок, між MCP викликами, до більш прихованих атак на етапі ініціалізації та приховання зловмисних команд, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в умовах, коли великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення введення може призвести до системних ризиків безпеки. А різноманітність засобів атаки ( кодування приховання, випадкове забруднення, перекриття функцій ) також означає, що традиційні підходи до захисту потребують повного оновлення.
Безпека ніколи не є справою одного разу. Сподіваюся, ця демонстрація зможе сповістити всіх: як розробники, так і користувачі повинні бути достатньо обережними щодо системи MCP, завжди звертаючи увагу на кожну взаємодію, кожен рядок коду, кожне значення повернення. Тільки ставлячи серйозне ставлення до кожної деталі, можна справді побудувати надійне і безпечне середовище MCP.