25 листопада 2024 року компанія Anthropic представила протокол модельного контексту (MCP) як «Відкритий стандарт, який дозволяє розробникам створювати безпечні двосторонні з’єднання між своїми джерелами даних та інструментами на основі ШІ». На практиці MCP дозволяє помічнику штучного інтелекту викликати локальні програми, які називаються серверами MCP, які читають файли, запитують бази даних або виходять в Інтернет від його імені. Це справді корисно, а також є новим типом поверхні атаки: модель вирішує, який інструмент викликати на основі прочитаного тексту, і вона не завжди може відрізнити ваші інструкції від чужих.
Як насправді працює сервер MCP
Специфікація MCP визначає два транспорти. Через stdio «клієнт запускає сервер MCP як підпроцес», і вони спілкуються через стандартний вхід і вихід. Через Streamable HTTP (який замінив оригінальний транспорт HTTP+SSE зі специфікації від листопада 2024 року) сервер працює як власний локальний процес, і клієнт надсилає йому HTTP-запити, за бажанням отримуючи назад потік подій, надісланих сервером (Специфікація MCP, транспорти). У будь-якому випадку локальний сервер MCP зазвичай працює з тими самими файлами та мережевими дозволами, що й особа, яка його запустила, оскільки нічого в протоколі не вимагає іншого.
Сама специфікація безпосередньо вказує на ризик варіанту HTTP: вона вимагає від серверів перевірки заголовка Origin, рекомендує прив’язувати до 127.0.0.1, а не до 0.0.0.0 під час локальної роботи, і вимагає автентифікації під час кожного з’єднання, попереджаючи, що без цього «зловмисники можуть використовувати перезв’язування DNS для взаємодії з локальними серверами MCP з віддалених веб-сайтів».
Механізм: розгублений депутат
Класична назва цього режиму збою — заплутаний депутат проблема: «комп’ютерна програма, яку інша програма (з меншими привілеями чи правами) обманом змусила зловживати своїми повноваженнями». Агент штучного інтелекту з доступом до інструменту MCP — це заступник із реальними повноваженнями — читати ваші файли, надсилати мережеві запити — діючи за інструкціями, які можуть надходити з вмісту, який його попросили лише узагальнити чи проаналізувати. Якщо цей вміст містить власні інструкції, агент може виконувати їх замість ваших або на додаток до них. Це те, що 10 найкращих класів ризиків OWASP для програм LLM Applications називають швидким впровадженням і надмірною свободою дій: OWASP: 10 найкращих програм LLM; OWASP LLM01:2025, Оперативна ін’єкція.
Продемонстрований приклад: сервер GitHub MCP
Це не теоретично. 26 травня 2025 року Про це повідомляє Invariant Labs перевірка концепції проти офіційного сервера GitHub MCP, який на той час мав приблизно 14 000 зірок GitHub. Їх налаштування: агенту з доступом до публічного та приватного репозиторію було запропоновано переглянути відкриті проблеми на публічному. Створена проблема в публічному репо містила приховані інструкції; агент, прочитавши це як частину свого звичайного завдання, слідував за ними, і під час демонстрації продовжив показувати деталі приватного сховища, включаючи інформацію, яку дослідники описують як особисту, для контрольованого зловмисником потоку проблем. Invariant Labs чітко заявили, що це було продемонстроване підтвердження концепції на тестових репозиторіях, а не атака, яка спостерігається в дикій природі, і що «це не недолік самого коду сервера GitHub MCP, а скоріше фундаментальна архітектурна проблема, яку потрібно вирішити на рівні системи агента». Модель, використана в демонстрації, була Claude 4 Opus.
Смертельна трифекта
16 червня 2025 року Саймон Віллісон назвав модель таких випадків «смертельна трифекта»: агент, який має (1) доступ до особистих даних, (2) доступ до ненадійного вмісту та (3) спосіб зв’язуватися ззовні. «Якщо ваш агент поєднує ці три функції, зловмисник може легко змусити його отримати доступ до ваших особистих даних і надіслати їх цьому зловмиснику». Він називає MCP конкретно як учасника: «Проблема з протоколом модельного контексту — MCP — полягає в тому, що він спонукає користувачів змішувати та поєднувати інструменти з різних джерел, які можуть робити різні речі», що дозволяє легко завершити роботу з усіма трьома властивостями в одному сеансі, не вирішуючи це зробити.
Чому це важко зрозуміти інструментам кінцевої точки
З точки зору операційної системи, у випадку GitHub MCP не сталося нічого незвичайного: підписана надійна програма прочитала деякий текст і зробила мережевий запит через локальний допоміжний процес, на який вона була налаштована. Немає жодного шкідливого двійкового файлу, який слід позначити, і жодного використання помилки безпеки пам’яті. Запит, який має значення — той, що передає дані — має таку саму форму, як будь-який інший виклик інструменту, який агент виконує правильно сто разів на день.
Що насправді знижує ризик
- Надайте кожному MCP-серверу найвужчі інструменти та обсяг файлів, які йому потрібні, а не широку файлову систему чи доступ до оболонки, щоб украдений виклик інструменту мав менше користі.
- Розглядайте будь-який вміст, який агент читає з-поза вашого контролю (проблеми, веб-сторінки, завантажені файли), як ненадійний вхід, так само, як і до введення користувачами в будь-якій іншій системі.
- Дотримуйтеся вказівок на транспортному рівні, які надає сама специфікація MCP: прив’яжіть локальні сервери до localhost, вимагайте автентифікації, перевірте заголовок Origin.
- Спостерігайте або контролюйте єдиний крок, спільний для кожної версії цієї атаки: вихідне з’єднання, яке передасть дані зловмиснику. Цей крок відбувається після того, як модель вже обдурили, тому це найнадійніше місце, щоб його зловити.
Яке місце тут посідають FireAI та HisnLabs
The step an injected agent cannot skip is the outbound connection that carries your data out, which is exactly what a per-app firewall like FireAI is built to see and stop, whether the process asking to connect is a familiar app or an MCP server it has never seen before.
FireAI — це власний продукт HisnLabs: ШІ-фаєрвол, який працює безпосередньо на вашому Mac. Він показує простою мовою кожне з’єднання, яке встановлюють ваші застосунки, і дає вам вирішувати, що покидає ваш Mac, — його ШІ працює локально, тож ваш трафік ніколи не надсилається ні нам, ні будь-кому іншому. Команда дослідників безпеки HisnLabs — саме вона підтримує точність цих рішень: каталогізує, які домени є звичайною телеметрією, а які — справжнім сервісом, відстежує країну та мережу за з’єднанням і навчає локальну модель (функцію Autopilot) на реальних шаблонах трафіку — і нічого з цього не покидає ваш Mac.
Ви можете почитати про технічні рішення, що лежать в його основі, або спробувати FireAI протягом 17 днів на сторінці FireAI від HisnLabs.
