Защитете своята MCP система: 11 често срещани риска и как да се предпазите от тях
Това ръководство обяснява сигурността на MCP, като разглежда 11 често срещани риска за MCP системите – от непряко инжектиране на промптове до компрометиране на локален сървър – и практическите стъпки, които помагат за защита от всеки от тях.

Рисковете при MCP най-общо се разделят на три категории: манипулиране на LLM, сигурност на данните и достъпа и уязвимости в инфраструктурата.
Тъй като MCP сървърите често предоставят достъп до широк набор от вътрешни системи, потенциалният риск за сигурността е висок. Вероятността обаче силно зависи от конфигурацията.
Има много стъпки, които отделните потребители и компаниите могат да предприемат, за да защитят системите си, а мерките за сигурност винаги трябва да са съразмерни на възможностите и данните, които свързаните MCP сървъри биха могли да изложат.
Какво представляват MCP и сигурността на MCP?
Model Context Protocol (MCP) е отворен стандарт, създаден от Anthropic, за свързване на приложения, базирани на LLM (или хостове), с външни системи.
Една MCP система има три основни компонента: хост, клиент и сървър. Хостът, който често е AI асистент, се свързва с външен MCP сървър чрез клиент. След това той може да изпраща заявки за изпълнение на външна функционалност (инструменти) или за извличане на данни (ресурси) или промптове, които да добави към контекстния прозорец на LLM.
Сигурността на MCP обхваща протоколите, които защитават връзките и компонентите в една MCP система. Има няколко ключови предизвикателства, характерни само за MCP, включително факта, че AI приложенията често имат агентни възможности, а в съобщенията могат да бъдат вградени злонамерени инструкции.
Проблеми създават и вече познати рискове, които не са специфични за MCP, като инжектирането на промптове, слабото удостоверяване и несигурните интеграции с трети страни. Както всяка компютърна система, MCP разчита за защитата си на комбинация от процедурни мерки, като използването само на доверени сървъри, и технически контроли, като API шлюзове.
Колко сериозни са заплахите за MCP?
MCP бързо се превърна в популярна технология за LLM и много организации и потребителски приложения я използват. Тъй като MCP сървърите са програми, написани с код, те имат уязвимости като всяко друго приложение.
Когато обаче организациите използват MCP в контролирани внедрявания, той като цяло е безопасен. Има огромна разлика между изграждането на система с доверени сървъри и проверени разрешения и свързването на автономен агент с десетина непроверени сървъра.
Заплаха №1: Непряко инжектиране на промптове
Нападателят може да постави инструкции, насочени към LLM, в документ, уеб страница или изход от инструмент, който MCP сървърът връща. Ако хостът добави този материал към контекстния прозорец, има вероятност LLM да го приеме за истински инструкции.
Нещо повече, на пръв поглед тези инструкции може да изглеждат уместни. Например извлечена заявка за поддръжка може да каже на LLM да експортира чувствителни клиентски записи, преди да генерира отговор.
Как да се защитите от непряко инжектиране на промптове
Инжектирането на промптове обикновено трябва да се обработва на ниво хост. Външното съдържание трябва да бъде обозначено като недоверено, а заявките за чувствителна информация трябва да изискват информирано одобрение от човек, участващ в процеса. Полезно може да бъде и тестване на сигурността, при което се подават злонамерени документи или данни, за да се види как реагират хостът и LLM.
Заплаха №2: Отравяне на инструменти и rug pull атаки
При атака с отравяне на инструменти в описанието или схемата на MCP инструмент се добавя злонамерен код. Това може да повлияе на LLM във фазата на откриване, когато MCP за първи път предоставя наличните инструменти.
Rug pull е особен вид отравяне на инструменти, при който се променят одобрени метаданни. Тази форма на отравяне на инструменти може да промени начина, по който моделът използва доверени инструменти, вместо директно да извиква злонамерен инструмент.
Как да се защитите от отравяне на инструменти и rug pull атаки
Хостът трябва да проверява пълната дефиниция на всеки инструмент, преди да го използва, и да я сравнява със списък с одобрени доверени инструменти, като така открива всякакви промени. Проверките на параметрите могат да помогнат за откриване на потенциално опасни възможности и за тяхното маркиране.
Заплаха №3: Прекомерни разрешения
Често потребителите дават на MCP сървърите и свързаните LLM (чрез хоста) повече разрешения, отколкото са необходими за дадена задача. Например разрешения за запис, когато биха били достатъчни такива само за четене, или пълен достъп до вътрешна файлова система (като Google Drive).
Това широко разрастване на разрешенията може да увеличи обхвата на щетите от други уязвимости, като злонамерени извиквания на инструменти. Често разрешенията се „натрупват“, докато потребителите предоставят привилегии в хода на ежедневната си работа с AI инструменти в корпоративна среда (натрупване на привилегии).
Как да се защитите от прекомерни разрешения
Най-прекият начин за защита от този проблем е ограничаването на разрешенията и обхватите на OAuth (четене, запис, пълен достъп и т.н.). Одобренията от потребителите, особено за чувствителни операции, са важна част от това, но разрешенията трябва да се контролират и на системно ниво (операционна система, MCP хост и сървър).
Заплаха №4: Слабо удостоверяване и оторизация
Удостоверяването потвърждава самоличността на потребителите или приложенията, които се свързват с MCP сървър. Оторизацията определя до кои инструменти и ресурси те имат достъп.
Лошо конфигурираните MCP сървъри може да приемат заявки или токени, без да удостоверяват правилно потребителите или да налагат ограничения на достъпа. Освен това откраднатите идентификационни данни могат да позволят на злонамерени лица да получат достъп, ако проверката е слаба.
Как да се защитите от слабо удостоверяване и оторизация
Удостоверяването чрез OAuth за отдалечени MCP сървъри, краткотрайните токени и контролът на достъпа въз основа на роли (RBAS) са мерки, които помагат за ограничаване на риска от слаба оторизация. Достъпът въз основа на роли е полезен, защото не позволява на потребителите да достъпват данни и инструменти извън своите разрешения, дори ако самият сървър има достъп до тях.
Заплаха №5: Изтичане на идентификационни данни и злоупотреба с тях
MCP сървърите рутинно използват идентификационни данни като API ключове и OAuth токени за достъп, за да се свързват с външни услуги. Ако те бъдат изложени или използвани неправомерно, нападателите могат да получат достъп до чувствителни данни и функционалност.
Един пример е препредаването на токени (token passthrough), при което MCP сървър препраща токен за достъп към друга услуга, без да провери дали той действително е предназначен за получаващата услуга. Това от своя страна може да доведе до изтичане, ако получаващата услуга няма достатъчна защита.
Как да се защитите от изтичане на идентификационни данни и злоупотреба с тях
Краткотрайните токени с тесен обхват и ротацията на идентификационните данни ефективно ограничават степента, до която изтекли данни могат да бъдат използвани от злонамерени лица. API ключовете и идентификационните данни винаги трябва да се съхраняват сигурно с помощта на мениджър на тайни.
Заплаха №6: Атаки тип „объркан заместник“
Атака тип „объркан заместник“ (confused deputy) възниква, когато нападател подмами доверено приложение да използва своите разрешения, за да извърши действие, което не е разрешено от легитимен потребител. В този случай MCP сървърът е заместникът.
Нападателят ще се възползва от уязвимост в MCP сървъра (като слаба проверка на OAuth), за да изпълни злонамерен процес, например извикване на инструмент или извличане на данни.
Как да се защитите от атаки тип „объркан заместник“
Проверката на оторизацията, при която за всяко извикване на инструмент се потвърждава, че принадлежи на конкретен потребител, помага да се ограничат атаките тип „объркан заместник“. Освен това чувствителните действия, като експортирането на данни, трябва да изискват изрична оторизация.
Заплаха №7: Злонамерени сървъри и компрометирани зависимости
MCP сървърите може да съдържат злонамерен код (по същество те са външни програми) или да разчитат на компрометирани зависимости, като библиотеки на трети страни. Това е проблем на веригата за доставки на софтуер, а не проблем, присъщ само на MCP.
Един прост начин това да се случи е, ако нападател разпространява интеграция, която изглежда легитимна. След като бъде настроена, тя може да краде и използва повторно идентификационни данни, да достъпва чувствителни данни и да изпълнява неоторизирани операции.
Как да се защитите от злонамерени сървъри и компрометирани зависимости
Инсталирайте MCP сървъри само от доверени и проверени източници. Ако е възможно, прегледайте кода им и винаги проверявайте всички външни зависимости. Уверете се, че сървърите редовно се актуализират и получават корекции.
Заплаха №8: Фалшифициране на заявки от страна на сървъра (SSRF)
Фалшифицирането на заявки от страна на сървъра (SSRF) е, когато нападател подмами MCP сървър да изпраща мрежови заявки към вътрешни адреси, до които потребителят не е възнамерявал да осъществява достъп.
Това може да се случи, когато MCP сървър предоставя инструмент, който извлича информация от URL адрес. Ако нападателят може да повлияе на параметъра URL, той може да го промени на желания от него мрежов адрес, като вътрешен API или облачна услуга. Това може да доведе до извличане на чувствителни данни и евентуално до тяхното излагане
Как да се защитите от фалшифициране на заявки от страна на сървъра (SSRF)
MCP сървърите винаги трябва да валидират URL адресите, да блокират достъпа до ограничени вътрешни мрежови адреси и да предотвратяват изходящия мрежов достъп. Пренасочванията също трябва да следват този протокол.
Заплаха №9: Отвличане на сесия
Отвличането на сесия означава, че нападател поема контрола над активна връзка между MCP клиент и сървър.
Например той може да открадне идентификатор на сесия от слабо защитено MCP приложение (напр. хост или сървър). Ако MCP сървърът приеме този идентификатор, нападателят потенциално може да извиква инструменти с легитимните разрешения на потребителя.
Как да се защитите от
Рискът от отвличане на сесия може да бъде намален чрез стриктна проверка на самоличността във всички приложения в една MCP система. Криптирането между MCP клиентите и отдалечените сървъри също е от съществено значение, за да се предотврати разкриването на идентификаторите на сесиите.
Заплаха №10: Атаки със смесване (mix-up)
При атака със смесване нападателят подмамва MCP клиент да изпрати код за оторизация към злонамерен сървър за оторизация, разположен между клиента и MCP сървъра. Сървърът за оторизация е приложение, което издава OAuth токени за достъп, след като провери дали исканият достъп е разрешен.
Ако MCP хост се свързва с множество услуги, всяка от които използва различен сървър за оторизация, нападателят потенциално може да контролира един от тях (например като регистрира злонамерена услуга) и да накара клиента да изпрати код за оторизация, издаден от легитимен сървър, към злонамерения сървър. Това смесване може да позволи на нападателя да се представи за оторизираното приложение и да получи достъп до защитени услуги.
Как да се защитите от атаки със смесване
MCP клиентите трябва да проверяват самоличността на сървъра за оторизация по време на целия OAuth процес. По-конкретно, те трябва да сравняват идентификатора на издателя на сървъра (iss) с очакваната самоличност и да отхвърлят несъответствията.
Заплаха №11: Компрометиране на локален MCP сървър
Много MCP сървъри работят на локалната машина на потребителя. Той може да инсталира сървъра от трета страна или да го създаде сам. Ако нападател успее да компрометира този локален MCP сървър, той потенциално може да получи достъп до големи части от локалната система.
Нападателят може да получи достъп по различни начини. Той може да разпространи злонамерен сървър, маскиран като легитимна интеграция, да промени конфигурацията на MCP хост така, че той да издаде злонамерена команда, или да получи достъп до MCP сървър, работещ в среда с недостатъчни контроли за сигурност, например чрез DNS rebinding, който подмамва браузъра да изпраща заявки към услуга на localhost.
Как да се защитите от компрометиране на локален MCP сървър
Изолирането в Sandbox и стриктните протоколи за съгласие са важни при използването на локални MCP сървъри. MCP сървърите трябва да се инсталират само от доверени доставчици, а разрешенията на операционната система трябва да ограничават до кои директории имат достъп.
Уязвимостите в MCP често са стари заплахи в нова дреха
Уязвимостите в MCP често произтичат от ново приложение на вече познати рискове и методи за атака. MCP въвежда нови начини, по които нападателите могат да се възползват от тези уязвимости чрез взаимодействията между LLM, MCP сървъри и външни услуги.
Разбира се, съществуват и заплахи, специфични за MCP. Струва си обаче да имате предвид, че стандартните протоколи за сигурност, като налагането на стриктна оторизация, използването на доверени доставчици и защитата срещу инжектиране на промптове, ще допринесат значително за защитата на всяка MCP имплементация.