Tutoriale

Jak bezpiecznie podłączyć serwer MCP do asystenta AI

Serwer MCP może dać agentowi dostęp do plików, baz danych i narzędzi. Zobacz, jak ograniczyć uprawnienia, sekrety i ryzyko prompt injection.

Autor: 4 min czytania
Chroniona brama łącząca asystenta AI z bazą danych, plikami i kodem

Model Context Protocol, czyli MCP, ujednolica sposób, w jaki aplikacje AI łączą się z narzędziami i źródłami danych. Dzięki niemu asystent może odczytać dokument, przeszukać bazę, pobrać dane z API albo wykonać operację w zewnętrznym systemie.

Ta wygoda zmienia jednak model zagrożeń. Zwykły chatbot generuje tekst. Agent z MCP może otrzymać dostęp do realnych zasobów, dlatego każdy serwer należy traktować jak integrację z uprawnieniami, a nie jak niewinną wtyczkę.

Najpierw ustal, do czego serwer ma służyć

Zapisz jednozdaniowy cel integracji, na przykład: „serwer może wyłącznie odczytywać zgłoszenia z projektu X”. Jeżeli nie potrafisz precyzyjnie opisać celu, zakres prawdopodobnie jest za szeroki.

Zasada najmniejszych uprawnień oznacza, że serwer powinien otrzymać tylko te możliwości, które są konieczne:

  • odczyt zamiast zapisu,
  • jeden katalog zamiast całego dysku,
  • jedna baza lub schemat zamiast konta administratora,
  • ograniczony token API zamiast głównego klucza,
  • osobne dane dostępowe dla każdej integracji.

Traktuj serwer jak obcy kod

Przed instalacją sprawdź:

  1. kto utrzymuje projekt,
  2. czy kod źródłowy jest dostępny,
  3. jakie polecenia są wykonywane podczas instalacji,
  4. jakie zmienne środowiskowe są wymagane,
  5. do jakich hostów serwer się łączy,
  6. czy projekt ma aktywne aktualizacje i zgłoszenia bezpieczeństwa.

Nazwa w katalogu integracji nie jest audytem bezpieczeństwa. Jeżeli serwer ma dostęp do kodu, poczty lub danych klientów, przejrzenie jego działania jest warte czasu.

Nie umieszczaj sekretów w konfiguracji współdzielonej

Klucze API i hasła przechowuj w menedżerze sekretów albo zmiennych środowiskowych wyłączonych z repozytorium. Nie wpisuj ich do pliku, który może trafić do Git.

Dobry sekret:

  • ma minimalny zakres,
  • można go szybko unieważnić,
  • ma osobny właścicielski kontekst,
  • jest rotowany,
  • nie jest używany przez kilka niezależnych aplikacji.

Po przypadkowym ujawnieniu nie wystarczy usunąć klucza z ostatniego commita. Trzeba go unieważnić, ponieważ może pozostać w historii.

Local MCP i remote MCP to inne ryzyko

Serwer lokalny często działa jako proces uruchamiany przez klienta AI. Może odziedziczyć dostęp użytkownika do plików i programów. Ogranicz katalog roboczy, korzystaj z konta o mniejszych uprawnieniach i unikaj poleceń budowanych bezpośrednio z tekstu modelu.

Serwer zdalny wymaga poprawnej autoryzacji. Oficjalna specyfikacja autoryzacji MCP opiera się na standardowych mechanizmach OAuth. Token powinien być przeznaczony dla konkretnego serwera, a nie przekazywany dalej do innych usług.

Prompt injection nie znika dzięki MCP

Złośliwa instrukcja może znajdować się w stronie internetowej, dokumencie, komentarzu w kodzie albo wyniku wyszukiwania. Model może uznać ją za polecenie i spróbować użyć narzędzia w sposób niezgodny z intencją użytkownika.

Dlatego:

  • dane z narzędzi traktuj jako niezaufane,
  • oddzielaj treść od instrukcji systemowych,
  • wymagaj potwierdzenia operacji zmieniających dane,
  • ogranicz liczbę narzędzi dostępnych w jednej sesji,
  • nie pozwalaj modelowi samodzielnie rozszerzać uprawnień,
  • waliduj argumenty po stronie serwera.

Sam prompt „nie wykonuj niebezpiecznych poleceń” nie jest wystarczającą kontrolą.

Dodaj granicę między odczytem a działaniem

Operacje można podzielić na trzy poziomy:

PoziomPrzykładZalecana kontrola
Odczytpobranie dokumentuograniczenie zakresu i logowanie
Zmiana odwracalnautworzenie wersji roboczejpodgląd oraz potwierdzenie
Zmiana ryzykownausunięcie danych, publikacja, płatnośćosobna autoryzacja i twarde reguły serwera

Najbezpieczniej, gdy model przygotowuje propozycję, a użytkownik zatwierdza wykonanie. Automatyzację bez potwierdzenia dodawaj dopiero po zebraniu logów i testów.

Loguj decyzje, nie sekrety

Rejestruj nazwę narzędzia, czas, użytkownika, typ operacji i rezultat. Nie zapisuj pełnych tokenów, haseł ani całych dokumentów, jeśli nie jest to konieczne.

Log powinien pozwolić odpowiedzieć na pytania: kto uruchomił narzędzie, jakie zasoby zostały dotknięte i czy operacja się powiodła. Bez tego trudno analizować incydent.

Checklista przed podłączeniem

  • Cel serwera jest jasno opisany.
  • Uprawnienia są minimalne i możliwe do cofnięcia.
  • Sekrety nie znajdują się w repozytorium.
  • Operacje zapisu wymagają potwierdzenia.
  • Argumenty narzędzi są walidowane po stronie serwera.
  • Treści zewnętrzne są traktowane jako niezaufane.
  • Dostęp i błędy są logowane bez ujawniania sekretów.
  • Istnieje sposób natychmiastowego odłączenia integracji.
  • Serwer został przetestowany na koncie i danych testowych.

Najważniejsza zasada

MCP nie jest z natury bezpieczny ani niebezpieczny. Jest warstwą integracji. O bezpieczeństwie decydują uprawnienia, jakość serwera, sposób autoryzacji i to, czy model może wykonać nieodwracalną operację bez kontroli człowieka.

Zacznij od odczytu, małego zakresu i danych testowych. Dopiero gdy widzisz rzeczywiste zachowanie systemu, dodawaj kolejne narzędzia i automatyzacje.

Udostępnij: