
Безпека серверів MCP: запобіжники мають відповідати масштабу шкоди
Щоденний ризик для команди, яка керує сервером MCP, це не зловмисний сервер, а асистент, що впевнено помиляється і викликає ваші інструменти. Ключове питання: хто зазнає шкоди, коли виклик виявиться помилкою, і відповідь сама проєктує запобіжники.
Більшість публікацій про безпеку Model Context Protocol зосереджені на зловмисному сервері. Для команди, яка сама керує сервером MCP, щоденна проблема інша: асистент, що не є злим, просто впевнено помиляється і ось-ось викличе інструмент, який ви йому відкрили. Корисне питання не «чи безпечний сервер», а «коли цей виклик виявиться помилкою, хто зазнає шкоди».
Три двері, три підходи
Перші двері читають і пишуть на власній машині користувача. Hiberden, настільна програма для архівації LTO-стрічок, постачається з сервером MCP на тридцять інструментів, частина руйнівні. Хто під ударом? Асистентом керує людина, якій належить машина, і через застосунок вона видалила б ту саму копію двома кліками.
Запобіжники охороняють рішення, а не можливості. Сервер працює локально через stdio, без порту прослуховування, а облікові дані лежать у keyring операційної системи. Дозволи це налаштування застосунку, яке асистент не може видати собі сам, типово ввімкнено лише читання, а руйнівні операції сховані за окремим перемикачем.
Другі двері лише читають і працюють як спільний сервіс. Easy2257 зберігає записи 18 U.S.C. 2257 для продюсерів у регульованій галузі, і його сервер MCP надає шістнадцять інструментів, жоден з яких не може створити, змінити, підписати, видалити чи оплатити. Помилковий запис змінив би юридичний запис про третю особу, яка не погоджувалася, тож записи прибрали.
Лише читання теж не гарантує безпеки: інструмент, що повертає дату народження, це витік, який чекає на аудиторію. У формі відповіді немає нічого вартого крадіжки: ні імен, ні дат народження, ні ідентифікаторів, ні зображень, лише стан відповідності, як коди записів і кількості. Облікові дані обмежені одним акаунтом, а пошук поза ним сповільнюється.
Модель загроз, яку зазвичай пропускають
Усе це припускає, що асистент не має злого наміру. Він постійно неправильно читає наміри: бачить «приберімо старе», вирішує, що це архів 2019 року, і тягнеться до інструмента видалення, бо ви його дали. Він повторює невдалі завдання і сприймає текст у результаті інструмента як інструкцію. Результат інструмента це недовірений ввід, як поле форми.
Звідси три звички. Називайте інструменти тим, що вони роблять: delete_copy викликають свідомо, а cleanup навмання. Робіть руйнівні операції вузькими й конкретними, бо інструмент, який видаляє все за фільтром, це зброя з тригером природною мовою. І зробіть повтори безкоштовними: ідемпотентність це контроль безпеки.
Один підхід не пасує всім
Узгодьте захист із масштабом можливої шкоди. Двері, які можуть діяти, автентифікують людей і підписують надіслане, а ті, що лише читають, не несуть нічого вартого крадіжки. Один підхід для всього це помилка: сервер лише для читання з надто щедрою відповіддю небезпечніший за сервер, що вміє писати, з окремим перемикачем.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.