З розвитком технологій штучного інтелекту, система Model Context Protocol (MCP), підвищуючи можливості великих моделей, також стикається з дедалі серйознішими викликами безпеки. Наразі система MCP все ще перебуває на ранній стадії розвитку, загальна ситуація є досить хаотичною, різноманітні потенційні засоби атак з'являються один за одним, а існуючі протоколи та інструменти проектуються так, що їх важко ефективно захистити. Щоб допомогти спільноті краще усвідомити та підвищити безпеку MCP, з'явився відкритий інструмент під назвою MasterMCP, який має на меті через практичні навчання атак допомогти розробникам вчасно виявляти приховані ризики безпеки в дизайні продукту, поступово зміцнюючи проект MCP.
Ця стаття проведе читачів через практичні дії, демонструючи поширені способи атак у системі MCP, такі як інформаційне отруєння, приховані шкідливі інструкції та інші реальні випадки. Всі демонстраційні сценарії також будуть відкриті на GitHub, щоб кожен міг у безпечному середовищі повністю відтворити весь процес, навіть на основі цих сценаріїв розробити власні плагіни для тестування атак.
Огляд загальної архітектури
демонстраційна атака на MCP:Toolbox
Офіційний інструмент управління MCP, що знаходиться на одному з відомих вебсайтів плагінів MCP, був обраний як тестовий об'єкт, головним чином на основі наступних міркувань:
Велика кількість користувачів, має репрезентативність
Підтримка автоматичної установки інших плагінів, доповнення деяких функцій клієнта
Містить чутливу конфігурацію (, таку як API Key ), що полегшує демонстрацію
демонстраційне використання зловмисного MC:MasterMC
MasterMCP є інструментом для моделювання шкідливих MCP, спеціально розробленим для тестування безпеки, який використовує плагінну архітектуру та містить такі ключові модулі:
Моделювання послуг місцевого сайту:
Щоб більш реально відтворити сцену атаки, MasterMCP має вбудований модуль симуляції локального веб-сервісу. Він швидко створює простий HTTP-сервер за допомогою фреймворку FastAPI, імітуючи звичайне веб-середовище. Ці сторінки на вигляд виглядають нормально, наприклад, демонструють інформацію про кондитерську або повертають стандартні дані JSON, але насправді в коді сторінки або у відповідях API приховані ретельно спроектовані шкідливі навантаження.
Таким чином, ми можемо в безпечному, контрольованому локальному середовищі повноцінно продемонструвати такі методи атаки, як інформаційне отруєння та приховування команд, що допоможе всім більш наочно зрозуміти: навіть звичайна на перший погляд веб-сторінка може стати джерелом ризику, яке викликає ненормальні дії великої моделі.
Локальна плагінна архітектура MCP
MasterMCP використовує плагінний підхід для розширення, що спрощує швидке додавання нових атакуючих методів. Після запуску MasterMCP буде виконувати FastAPI сервіс попереднього модуля в дочірньому процесі. Якщо ви уважні, ви помітите, що тут вже існує загроза безпеці - локальні плагіни можуть вільно запускати дочірні процеси, які не передбачені MCP.
( демонстраційний клієнт
Cursor: один з найпопулярніших у світі IDE для програмування з підтримкою AI
Claude Desktop: відомий AI компанія ) MC протокол замовник ### офіційний клієнт
( демонстраційна модель
Клод 3.7
Виберіть версію Claude 3.7, оскільки вона вже має певні покращення в розпізнаванні чутливих операцій і водночас представляє собою досить сильні операційні можливості в нинішній екосистемі MCP.
Зловмисний виклик Cross-MCP
) атака отравлення веб-контенту
Коментуючий отруєння
Завдяки доступу до локального тестового веб-сайту, моделюється вплив, який має клієнт великої моделі при доступі до шкідливого сайту. Результати показують, що клієнт не лише читав вміст веб-сторінки, а й передав локальні конфіденційні дані налаштувань на тестовий сервер. У вихідному коді шкідливі підказки вбудовані у вигляді HTML-коментарів. Хоча такий спосіб коментування є досить прямим і легко розпізнається, він вже може активувати шкідливі дії.
![Практичний старт: Приховане отруєння та маніпуляції в системі MCP]###https://img-cdn.gateio.im/webp-social/moments-2fe451755dc3588ffc2ddbd7427dcf9b.webp###
Кодовані коментарі з отруєнням
Відвідайте сторінку /encode, це веб-сторінка, яка виглядає так само, як і вищенаведений приклад, але зловмисні підказки закодовані, що робить експлуатацію ще більш прихованою, навіть якщо переглядати вихідний код веб-сторінки, важко помітити це безпосередньо. Навіть якщо вихідний код не містить відкритих підказок, атака все ще виконується успішно.
( Атака забруднення через сторонній інтерфейс
Ця демонстрація призначена для нагадування всім, що незалежно від того, є MCP зловмисним чи ні, при виклику стороннього API, якщо дані стороннього джерела безпосередньо повертаються в контекст, це може призвести до серйозних наслідків.
![Практичний старт: приховане отруєння та маніпуляції в системі MCP])https://img-cdn.gateio.im/webp-social/moments-3840e36661d61bbb0dcee6d5cf38d376.webp###
Технології отруєння на етапі ініціалізації MCP
( атака з накриттям шкідливих функцій
MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані шкідливі підказки. Підкреслюючи "старий метод скасовано", він намагається спонукати велику модель викликати шкідливо перекриту функцію.
![Практичний старт: Приховане отруєння та маніпуляція в системі MCP])https://img-cdn.gateio.im/webp-social/moments-33ec895deae947ebc284e846286ccf1c.webp###
( Додати зловмисну глобальну перевірку логіки
MasterMCP написав інструмент під назвою banana, основна функція якого полягає в тому, щоб змусити всі інструменти проходити перевірку безпеки, перш ніж їх виконання буде дозволено. Це досягається через глобальну логіку впровадження, яка неодноразово підкреслює в коді "обов'язково запустіть перевірку banana".
![Практичний старт: Приховане отруєння та маніпуляції в системі MCP])https://img-cdn.gateio.im/webp-social/moments-e16c8d753ef00ec06f0bf607dc188446.webp###
Оскільки великі мовні моделі )LLM### мають дуже сильну здатність до аналізу багатомовних форматів, це навпаки використовується для приховування шкідливої інформації, до звичайних методів належать:
В англійському середовищі: використовуйте кодування Hex Byte
У середовищі китайської мови: використовуйте кодування NCR або кодування JavaScript
( механізм повернення випадкового шкідливого навантаження
Коли запитується /random, кожного разу випадковим чином повертається сторінка з шкідливим навантаженням, що значно ускладнює виявлення та трасування.
![Практичний старт: приховане отруєння та маніпуляції в системі MCP])https://img-cdn.gateio.im/webp-social/moments-cd87a6781e74c267c89e99e398e7499c.webp###
Підсумок
За допомогою практичного демонстраційного показу MasterMCP ми наочно побачили різноманітні приховані загрози безпеці в системі Model Context Protocol (MCP). Від простого впровадження підказок, між-MCP викликів, до більш прихованих атак на етапі ініціалізації та прихованих шкідливих інструкцій, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в умовах, коли великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення входу може призвести до системних ризиків безпеки. А різноманітність методів атаки, таких як ( кодування приховання, випадкове забруднення, покриття функцій ) також означає, що традиційні методи захисту потребують всебічного оновлення.
Безпека ніколи не є результатом миттєвого успіху. Сподіваюся, що ця демонстрація зможе стати тривожним сигналом для всіх: як для розробників, так і для користувачів, слід зберігати достатню обережність щодо системи MCP, завжди звертаючи увагу на кожну взаємодію, кожен рядок коду, кожне значення, що повертається. Тільки ставлячися до кожної деталі з належною увагою, можна справді побудувати надійне та безпечне середовище MCP.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
17 лайків
Нагородити
17
6
Поділіться
Прокоментувати
0/400
GateUser-00be86fc
· 13год тому
Онлайн, почекай ще трохи, ще не досить стабільно.
Переглянути оригіналвідповісти на0
NullWhisperer
· 13год тому
mcp здається, як бомба уповільненої дії, чесно кажучи... ще один день, ще одна експлуатація, що чекає на свій час.
Переглянути оригіналвідповісти на0
StablecoinGuardian
· 13год тому
Знову чергове незрозуміле свято~
Переглянути оригіналвідповісти на0
NFTRegretful
· 13год тому
Копати ямки варто дивитися на експертів
Переглянути оригіналвідповісти на0
StableGenius
· 13год тому
передбачувано... говорив про вразливості безпеки mcp з другого кварталу
Повний аналіз безпекових ризиків MCP: від отруєння до прихованих атак у практичному виконанні
Виклики безпеки системи MCP та шляхи їх подолання
З розвитком технологій штучного інтелекту, система Model Context Protocol (MCP), підвищуючи можливості великих моделей, також стикається з дедалі серйознішими викликами безпеки. Наразі система MCP все ще перебуває на ранній стадії розвитку, загальна ситуація є досить хаотичною, різноманітні потенційні засоби атак з'являються один за одним, а існуючі протоколи та інструменти проектуються так, що їх важко ефективно захистити. Щоб допомогти спільноті краще усвідомити та підвищити безпеку MCP, з'явився відкритий інструмент під назвою MasterMCP, який має на меті через практичні навчання атак допомогти розробникам вчасно виявляти приховані ризики безпеки в дизайні продукту, поступово зміцнюючи проект MCP.
Ця стаття проведе читачів через практичні дії, демонструючи поширені способи атак у системі MCP, такі як інформаційне отруєння, приховані шкідливі інструкції та інші реальні випадки. Всі демонстраційні сценарії також будуть відкриті на GitHub, щоб кожен міг у безпечному середовищі повністю відтворити весь процес, навіть на основі цих сценаріїв розробити власні плагіни для тестування атак.
Огляд загальної архітектури
демонстраційна атака на MCP:Toolbox
Офіційний інструмент управління MCP, що знаходиться на одному з відомих вебсайтів плагінів MCP, був обраний як тестовий об'єкт, головним чином на основі наступних міркувань:
демонстраційне використання зловмисного MC:MasterMC
MasterMCP є інструментом для моделювання шкідливих MCP, спеціально розробленим для тестування безпеки, який використовує плагінну архітектуру та містить такі ключові модулі:
Щоб більш реально відтворити сцену атаки, MasterMCP має вбудований модуль симуляції локального веб-сервісу. Він швидко створює простий HTTP-сервер за допомогою фреймворку FastAPI, імітуючи звичайне веб-середовище. Ці сторінки на вигляд виглядають нормально, наприклад, демонструють інформацію про кондитерську або повертають стандартні дані JSON, але насправді в коді сторінки або у відповідях API приховані ретельно спроектовані шкідливі навантаження.
Таким чином, ми можемо в безпечному, контрольованому локальному середовищі повноцінно продемонструвати такі методи атаки, як інформаційне отруєння та приховування команд, що допоможе всім більш наочно зрозуміти: навіть звичайна на перший погляд веб-сторінка може стати джерелом ризику, яке викликає ненормальні дії великої моделі.
MasterMCP використовує плагінний підхід для розширення, що спрощує швидке додавання нових атакуючих методів. Після запуску MasterMCP буде виконувати FastAPI сервіс попереднього модуля в дочірньому процесі. Якщо ви уважні, ви помітите, що тут вже існує загроза безпеці - локальні плагіни можуть вільно запускати дочірні процеси, які не передбачені MCP.
( демонстраційний клієнт
( демонстраційна модель
Виберіть версію Claude 3.7, оскільки вона вже має певні покращення в розпізнаванні чутливих операцій і водночас представляє собою досить сильні операційні можливості в нинішній екосистемі MCP.
Зловмисний виклик Cross-MCP
) атака отравлення веб-контенту
Завдяки доступу до локального тестового веб-сайту, моделюється вплив, який має клієнт великої моделі при доступі до шкідливого сайту. Результати показують, що клієнт не лише читав вміст веб-сторінки, а й передав локальні конфіденційні дані налаштувань на тестовий сервер. У вихідному коді шкідливі підказки вбудовані у вигляді HTML-коментарів. Хоча такий спосіб коментування є досить прямим і легко розпізнається, він вже може активувати шкідливі дії.
![Практичний старт: Приховане отруєння та маніпуляції в системі MCP]###https://img-cdn.gateio.im/webp-social/moments-2fe451755dc3588ffc2ddbd7427dcf9b.webp###
Відвідайте сторінку /encode, це веб-сторінка, яка виглядає так само, як і вищенаведений приклад, але зловмисні підказки закодовані, що робить експлуатацію ще більш прихованою, навіть якщо переглядати вихідний код веб-сторінки, важко помітити це безпосередньо. Навіть якщо вихідний код не містить відкритих підказок, атака все ще виконується успішно.
( Атака забруднення через сторонній інтерфейс
Ця демонстрація призначена для нагадування всім, що незалежно від того, є MCP зловмисним чи ні, при виклику стороннього API, якщо дані стороннього джерела безпосередньо повертаються в контекст, це може призвести до серйозних наслідків.
![Практичний старт: приховане отруєння та маніпуляції в системі MCP])https://img-cdn.gateio.im/webp-social/moments-3840e36661d61bbb0dcee6d5cf38d376.webp###
Технології отруєння на етапі ініціалізації MCP
( атака з накриттям шкідливих функцій
MasterMCP написав інструмент з такою ж назвою функції remove_server, як у Toolbox, і закодував приховані шкідливі підказки. Підкреслюючи "старий метод скасовано", він намагається спонукати велику модель викликати шкідливо перекриту функцію.
![Практичний старт: Приховане отруєння та маніпуляція в системі MCP])https://img-cdn.gateio.im/webp-social/moments-33ec895deae947ebc284e846286ccf1c.webp###
( Додати зловмисну глобальну перевірку логіки
MasterMCP написав інструмент під назвою banana, основна функція якого полягає в тому, щоб змусити всі інструменти проходити перевірку безпеки, перш ніж їх виконання буде дозволено. Це досягається через глобальну логіку впровадження, яка неодноразово підкреслює в коді "обов'язково запустіть перевірку banana".
![Практичний старт: Приховане отруєння та маніпуляції в системі MCP])https://img-cdn.gateio.im/webp-social/moments-e16c8d753ef00ec06f0bf607dc188446.webp###
Просунуті прийоми приховування зловмисних підказок
( дружній до великих моделей спосіб кодування
Оскільки великі мовні моделі )LLM### мають дуже сильну здатність до аналізу багатомовних форматів, це навпаки використовується для приховування шкідливої інформації, до звичайних методів належать:
( механізм повернення випадкового шкідливого навантаження
Коли запитується /random, кожного разу випадковим чином повертається сторінка з шкідливим навантаженням, що значно ускладнює виявлення та трасування.
![Практичний старт: приховане отруєння та маніпуляції в системі MCP])https://img-cdn.gateio.im/webp-social/moments-cd87a6781e74c267c89e99e398e7499c.webp###
Підсумок
За допомогою практичного демонстраційного показу MasterMCP ми наочно побачили різноманітні приховані загрози безпеці в системі Model Context Protocol (MCP). Від простого впровадження підказок, між-MCP викликів, до більш прихованих атак на етапі ініціалізації та прихованих шкідливих інструкцій, кожен етап нагадує нам: хоча екосистема MCP потужна, вона також вразлива.
Особливо в умовах, коли великі моделі все частіше взаємодіють з зовнішніми плагінами та API, навіть невелике забруднення входу може призвести до системних ризиків безпеки. А різноманітність методів атаки, таких як ( кодування приховання, випадкове забруднення, покриття функцій ) також означає, що традиційні методи захисту потребують всебічного оновлення.
Безпека ніколи не є результатом миттєвого успіху. Сподіваюся, що ця демонстрація зможе стати тривожним сигналом для всіх: як для розробників, так і для користувачів, слід зберігати достатню обережність щодо системи MCP, завжди звертаючи увагу на кожну взаємодію, кожен рядок коду, кожне значення, що повертається. Тільки ставлячися до кожної деталі з належною увагою, можна справді побудувати надійне та безпечне середовище MCP.