Lista kontrolna bezpieczeństwa MCP: AI

Wraz z szybkim rozpowszechnianiem się narzędzi opartych na sztucznej inteligencji (AI), zapewnienie ich bezpieczeństwa staje się sprawą najwyższej wagi. Niniejsza lista kontrolna bezpieczeństwa ma na celu pomóc programistom w identyfikowaniu i łagodzeniu potencjalnych zagrożeń związanych z protokołem kontekstu modelu (Model Context Protocol – MCP), który stał się kluczowym elementem łączącym duże modele językowe (Large Language Models – LLM) z zewnętrznymi narzędziami i źródłami danych.

Wprowadzenie

Niniejsza lista kontrolna bezpieczeństwa została opracowana i jest utrzymywana przez @SlowMist_Team. Jej celem jest podniesienie poziomu bezpieczeństwa ekosystemów blockchain i sztucznej inteligencji. Dziękujemy FENZ.AI za cenny wkład w powstanie tej listy.

Przegląd

Od czasu opublikowania pod koniec 2024 roku, MCP został szeroko wdrożony w popularnych aplikacjach AI, takich jak Claude Desktop i Cursor. Jednak szybkie rozpowszechnienie się MCP przyniosło również nowe wyzwania związane z bezpieczeństwem. Obecna architektura MCP składa się z trzech części: Host (środowisko aplikacji AI działające lokalnie), Client (komponent odpowiedzialny za komunikację z Serverem i wywoływanie narzędzi) oraz Server (serwer odpowiadający wtyczkom MCP). Użytkownik wchodzi w interakcję z AI za pośrednictwem Hosta, Client analizuje żądanie użytkownika i przekazuje je do Servera MCP, który wykonuje wywołanie narzędzia lub dostęp do zasobów. W scenariuszach, w których działa wiele instancji i komponentów w skoordynowany sposób, architektura ta ujawnia szereg zagrożeń bezpieczeństwa, zwłaszcza w wrażliwych scenariuszach, takich jak transakcje kryptowalutowe lub adaptacja niestandardowych wtyczek LLM, gdzie ryzyko jest jeszcze większe i wymaga odpowiednich środków bezpieczeństwa.

Z tego powodu opracowanie i przestrzeganie kompleksowej listy kontrolnej bezpieczeństwa MCP jest sprawą absolutnie kluczową. Niniejsza lista obejmuje interfejs użytkownika, komponenty klienta, wtyczki serwera, mechanizmy współpracy wielu MCP oraz aspekty bezpieczeństwa specyficzne dla konkretnych obszarów (takich jak kryptowaluty). Jej celem jest pomoc programistom w systematycznym identyfikowaniu potencjalnych zagrożeń i ich terminowym zapobieganiu. Wdrożenie tych środków bezpieczeństwa może skutecznie poprawić ogólną stabilność i kontrolę nad systemami MCP, zapewniając, że wraz z szybkim rozwojem aplikacji AI, ich bezpieczeństwo jest również odpowiednio chronione.

Jak korzystać

Ta lista kontrolna opiera się na potencjalnych punktach ryzyka napotkanych podczas audytów projektów MCP. Ma na celu pomóc programistom w zapewnieniu bezpieczeństwa wdrożeń MCP. Używamy 3 poziomów priorytetu,aby wskazać ważność elementów:

  • 🟢️ Oznacza element zalecany, ale który można pominąć w określonych okolicznościach.
  • 🔶 Oznacza element wysoce zalecany, ale który można pominąć w wyjątkowych przypadkach. Pominięcie może mieć negatywny wpływ na bezpieczeństwo.
  • 🟥️ Oznacza element, którego nie można pominąć w żadnym wypadku. Usunięcie tych elementów może prowadzić do awarii systemu lub luk w zabezpieczeniach.

Bezpieczeństwo Serwera MCP (Wtyczki MCP)

Serwer MCP to usługa zewnętrzna, która udostępnia narzędzia, zasoby i funkcje do wywoływania przez AI. Zwykle zawiera zasoby, narzędzia i podpowiedzi. Poniżej znajdują się kwestie, które należy wziąć pod uwagę, aby zapewnić bezpieczeństwo serwera MCP:

Bezpieczeństwo API

  • Walidacja Wejścia: 🟥️ Rygorystycznie waliduj wszystkie dane wejściowe API, aby zapobiec atakom typu injection i nieprawidłowym parametrom. Obejmuje to walidację typów danych, długości i formatu oraz czyszczenie i kodowanie danych wejściowych.
  • Ograniczanie Szybkości API: 🔶 Wprowadź ograniczenia szybkości wywołań API, aby zapobiec nadużyciom i atakom. Może to zapobiec przeciążeniu serwera przez złośliwych użytkowników, którzy wysyłają ogromne ilości żądań.
  • Kodowanie Wyjścia: 🔶 Prawidłowo koduj dane wyjściowe API, aby zapobiec atakom Cross-Site Scripting (XSS). Obejmuje to kodowanie wyjść takich jak HTML, JavaScript i URL.

Uwierzytelnianie i Autoryzacja Serwera

  • Kontrola Dostępu: 🟥️ Wprowadź kontrolę dostępu opartą na rolach, ogranicz dostęp do zasobów i wdróż zasadę minimalnych uprawnień. Tylko autoryzowani użytkownicy powinni mieć dostęp do określonych zasobów.
  • Zarządzanie Poświadczeniami: 🟥️ Bezpiecznie zarządzaj i przechowuj poświadczenia usługi, unikaj twardego kodowania, korzystaj z usług zarządzania kluczami. Obejmuje to użycie szyfrowania do przechowywania poświadczeń i regularne ich rotowanie.
  • Uwierzytelnianie Usług Zewnętrznych: 🟥️ Używaj bezpiecznych metod uwierzytelniania w usługach stron trzecich. Obejmuje to użycie bezpiecznych protokołów, takich jak OAuth 2.0 lub SAML.
  • Minimalne Uprawnienia: 🔶 Procesy usług działają z minimalnymi niezbędnymi uprawnieniami, zmniejszając potencjalną powierzchnię ataku i ryzyko eskalacji uprawnień. Oznacza to, że usługa powinna mieć tylko uprawnienia niezbędne do wykonywania jej funkcji.
  • Rotacja Kluczy API: 🔶 Regularnie i automatycznie rotuj klucze API i poświadczenia usług, ograniczaj ważność kluczy. Może to zmniejszyć ryzyko wycieku kluczy.
  • Uwierzytelnianie Usługi: 🔶 Zapewnij mechanizm dla narzędzi do weryfikacji tożsamości usługi, aby ułatwić klientom weryfikację i bezpieczne korzystanie. Może to pomóc klientom w sprawdzeniu, czy komunikują się z zaufaną usługą.

Kontrola Trwałości w Tle

  • Zarządzanie Cyklem Życia: 🟥️ Wprowadź ścisłe zarządzanie cyklem życia wtyczek MCP, synchronizuj z klientem. Wtyczki powinny być poprawnie uruchamiane i zatrzymywane, gdy nie są już potrzebne.
  • Zamykanie i Czyszczenie: 🟥️ Wymuś czyszczenie wszystkich procesów w tle MCP, gdy klient jest zamykany. Może to zapobiec dalszemu działaniu złośliwych wtyczek po zamknięciu klienta.
  • Mechanizm Sprawdzania Stanu: 🔶 Regularnie sprawdzaj stan wtyczek MCP, identyfikuj nietypową trwałość. Może to pomóc w identyfikacji wtyczek, które nie działają poprawnie.
  • Monitorowanie Aktywności w Tle: 🔶 Monitoruj i rejestruj wszystkie aktywności w tle MCP. Może to pomóc w identyfikacji złośliwej aktywności.
  • Ograniczenia Aktywności: 🔶 Ogranicz typy operacji i czas trwania, które wtyczki MCP mogą wykonywać w tle. Może to zmniejszyć szkody spowodowane przez złośliwe wtyczki.

Bezpieczeństwo Wdrożenia i Uruchomienia

  • Izolowane Środowisko: 🟥️ Usługa działa w izolowanym środowisku (kontener, VM, sandbox), aby zapobiec ucieczce, zapobiec atakom poziomym. Może to zapobiec wpływowi złośliwych usług na inne usługi lub systemy.
  • Bezpieczeństwo Kontenera: 🟥️ Używaj wzmocnionej konfiguracji bezpieczeństwa kontenera i uruchamiaj jako użytkownik inny niż root, wdrażaj niezmienną infrastrukturę, ochronę w czasie działania. Może to poprawić bezpieczeństwo kontenerów.
  • Bezpieczny Rozruch: 🔶 Sprawdź integralność procesu uruchamiania usługi, wdróż łańcuch bezpiecznego rozruchu i kontrolę integralności. Może to zapobiec wstrzyknięciu złośliwych usług podczas uruchamiania.
  • Bezpieczeństwo Zmiennych Środowiskowych: 🔶 Wrażliwe zmienne środowiskowe są chronione, nie ujawniane w logach. Może to zapobiec uzyskaniu dostępu do wrażliwych informacji przez złośliwych użytkowników.
  • Ograniczenia Zasobów: 🔶 Wprowadź ograniczenia użycia zasobów, aby zapobiec dużej liczbie cyklicznych powtarzających się wywołań, gdy model językowy napotka błąd. Może to zapobiec wyczerpaniu zasobów systemowych przez złośliwe usługi.

Integralność Kodu i Danych

  • Mechanizm Weryfikacji Integralności: 🟥️ Użyj mechanizmów takich jak podpisy cyfrowe, sumy kontrolne hash, aby upewnić się, że kod nie został naruszony. Może to zapobiec modyfikacji kodu przez złośliwych użytkowników.
  • Zdalna Weryfikacja: 🔶 Obsługuj mechanizm zdalnej weryfikacji integralności kodu. Umożliwia to zdalnym użytkownikom sprawdzenie, czy kod nie został naruszony.
  • Zaciemnianie i Wzmocnienie Kodu: 🟢️ Zastosuj techniki zaciemniania i wzmacniania kodu, aby zwiększyć trudność inżynierii odwrotnej. Może to utrudnić złośliwym użytkownikom zrozumienie i modyfikowanie kodu.

Bezpieczeństwo Łańcucha Dostaw

  • Zarządzanie Zależnościami: 🟥️ Bezpiecznie zarządzaj zależnościami stron trzecich. Obejmuje to śledzenie zależności, upewnianie się, że są aktualne, i skanowanie ich pod kątem luk w zabezpieczeniach.
  • Integralność Pakietów: 🟥️ Sprawdź integralność i autentyczność pakietów. Może to zapobiec wstrzyknięciu złośliwych pakietów przez złośliwych użytkowników.
  • Weryfikacja Źródła: 🔶 Sprawdź źródło całego kodu i zależności. Może to pomóc w zapewnieniu, że kod pochodzi z zaufanego źródła.
  • Bezpieczeństwo Kompilacji: 🔶 Upewnij się, że proces kompilacji jest bezpieczny. Obejmuje to użycie bezpiecznych narzędzi kompilacji i upewnienie się, że środowisko kompilacji jest bezpieczne.

Monitorowanie i Rejestrowanie

  • Wykrywanie Anomali: 🟥️ Wykrywaj i zgłaszaj nietypowe wzorce aktywności. Może to pomóc w identyfikacji złośliwej aktywności.
  • Szczegółowe Rejestrowanie: 🟥️ Rejestruj wszystkie działania usług i zdarzenia bezpieczeństwa. Może to pomóc w badaniu zdarzeń bezpieczeństwa.
  • Alerty o Zdarzeniach Bezpieczeństwa: 🟥️ Skonfiguruj alerty w czasie rzeczywistym dla kluczowych zdarzeń bezpieczeństwa. Może to pomóc w terminowym reagowaniu na zdarzenia bezpieczeństwa.
  • Scentralizowane Zarządzanie Logami: 🔶 Scentralizuj zbieranie i analizę logów. Może to zapewnić bardziej kompleksowy widok zdarzeń bezpieczeństwa.
  • Integralność Logów: 🔶 Upewnij się, że logi są integralne i zapobiegaj manipulacjom. Może to zapobiec usuwaniu lub modyfikowaniu logów przez złośliwych użytkowników.
  • Możliwość Audytu: 🔶 Obsługuj szczegółowy audyt i badanie zdarzeń. Może to pomóc w ustaleniu przyczyny zdarzeń bezpieczeństwa.

Izolacja Środowiska Wywołania

  • Izolacja Między MCP: 🟥️ Zapewnij izolację operacji między wieloma usługami MCP. Może to zapobiec wpływowi złośliwych usług MCP na inne usługi MCP.
  • Kontrola Dostępu do Zasobów: 🟥️ Przypisz wyraźne granice uprawnień dostępu do zasobów dla każdej usługi MCP. Może to ograniczyć zasoby, do których może uzyskać dostęp złośliwa usługa MCP.
  • Oddzielenie Uprawnień Narzędzi: 🔶 Narzędzia w różnych dziedzinach używają różnych zestawów uprawnień. Może to zmniejszyć szkody spowodowane przez złośliwe narzędzia.

Kompatybilność Platformy i Bezpieczeństwo

  • Izolacja Zasobów Systemowych: 🟥️ Wdróż odpowiednie strategie izolacji zasobów w oparciu o cechy różnych systemów operacyjnych. Może to zapobiec wpływowi złośliwych usług na inne usługi lub systemy.
  • Testy Kompatybilności Międzyplatformowej: 🔶 Przetestuj spójność zachowań związanych z bezpieczeństwem usług MCP w różnych systemach operacyjnych i klientach. Może to zapewnić, że usługa jest bezpieczna na wszystkich platformach.
  • Ocena Ryzyka Specyficzna dla Platformy: 🔶 Oceń unikalne zagrożenia bezpieczeństwa i środki łagodzące specyficzne dla platformy. Może to pomóc w identyfikacji i łagodzeniu zagrożeń bezpieczeństwa specyficznych dla platformy.
  • Obsługa Różnic Klientów: 🔶 Upewnij się, że kontrole bezpieczeństwa mogą dostosować się do różnic w implementacjach różnych klientów. Może to zapewnić, że usługa jest bezpieczna dla wszystkich klientów.

Bezpieczeństwo i Prywatność Danych

  • Minimalizacja Danych: 🟥️ Zbieraj i przetwarzaj tylko niezbędne dane. Może to zmniejszyć ryzyko wycieku danych.
  • Szyfrowanie Danych: 🟥️ Wrażliwe dane są szyfrowane podczas przechowywania i przesyłania. Może to zapobiec uzyskaniu dostępu do wrażliwych informacji przez złośliwych użytkowników.
  • Izolacja Danych: 🟥️ Dane różnych użytkowników są skutecznie izolowane. Może to zapobiec uzyskaniu dostępu do danych innych użytkowników przez złośliwych użytkowników.
  • Kontrola Dostępu do Danych: 🟥️ Wprowadź ścisłą kontrolę dostępu do danych. Może to ograniczyć dostęp do danych.
  • Identyfikacja Wrażliwych Danych: 🟥️ Automatycznie identyfikuj i specjalnie przetwarzaj wrażliwe dane. Może to pomóc w zapobieganiu wyciekom wrażliwych danych.

Bezpieczeństwo Zasobów

  • Kontrola Dostępu do Zasobów: 🟥️ Wprowadź szczegółową kontrolę dostępu do zasobów. Może to ograniczyć dostęp do określonych zasobów.
  • Ograniczenia Zasobów: 🔶 Ogranicz rozmiar i liczbę pojedynczych zasobów. Może to zapobiec wyczerpaniu zasobów systemowych przez złośliwych użytkowników.
  • Bezpieczeństwo Szablonów Zasobów: 🔶 Upewnij się, że parametry szablonu zasobów są walidowane i czyszczone. Może to zapobiec wstrzyknięciu złośliwego kodu przez złośliwych użytkowników.
  • Oznaczanie Wrażliwych Zasobów: 🔶 Oznaczaj i specjalnie przetwarzaj wrażliwe zasoby. Może to pomóc w zapobieganiu wyciekom wrażliwych zasobów.

Bezpieczeństwo Implementacji Narzędzi

  • Bezpieczne Praktyki Kodowania: 🟥️ Przestrzegaj bezpiecznych standardów i najlepszych praktyk kodowania. Może to zmniejszyć liczbę luk w zabezpieczeniach w kodzie.
  • Izolacja Narzędzi: 🟥️ Narzędzia są wykonywane w kontrolowanym środowisku, aby zapobiec wpływowi na poziomie systemu. Może to zapobiec wpływowi złośliwych narzędzi na inne usługi lub systemy.
  • Walidacja Wejścia: 🟥️ Rygorystycznie waliduj wszystkie dane wejściowe od klientów. Może to zapobiec wstrzyknięciu złośliwego kodu przez złośliwych użytkowników.
  • Kontrola Uprawnień Narzędzi: 🟥️ Każde narzędzie ma tylko minimalne uprawnienia wymagane do wykonania zadania. Może to zmniejszyć szkody spowodowane przez złośliwe narzędzia.
  • Walidacja Danych: 🟥️ Waliduj dane przetwarzane przez narzędzia, aby zapobiec wstrzyknięciu i manipulacji. Może to zapobiec wstrzyknięciu złośliwych danych przez złośliwych użytkowników.
  • Ograniczenia Zachowania Narzędzi: 🟥️ Ogranicz zakres i typ operacji, które narzędzie może wykonywać. Może to zmniejszyć szkody spowodowane przez złośliwe narzędzia.
  • Bezpieczeństwo Informacji Zwrotnych Interfejsu Strony Trzeciej: 🟥️ Sprawdź, czy informacje zwrotne interfejsu są zgodne z oczekiwaniami, i nie wstawiaj bezpośrednio informacji zwrotnych do kontekstu. Może to zapobiec wykorzystywaniu interfejsów stron trzecich przez złośliwe narzędzia.
  • Obsługa Błędów: 🔶 Bezpiecznie obsługuj błędy, nie ujawniaj wrażliwych informacji. Może to zapobiec wykorzystywaniu informacji o błędach przez złośliwych użytkowników.
  • Izolacja Przestrzeni Nazw: 🔶 Wprowadź ścisłą izolację przestrzeni nazw dla różnych narzędzi. Może to zapobiec konfliktom między narzędziami.

Bezpieczeństwo Klienta MCP / Hosta MCP

Host to środowisko, w którym działa aplikacja AI i klient MCP, będące punktem wejścia dla użytkownika końcowego do interakcji z systemem AI. Klient to komponent wewnątrz aplikacji AI, który jest odpowiedzialny za komunikację z usługą MCP, przetwarzanie kontekstu, wywoływanie narzędzi i prezentację wyników. Poniżej znajdują się kwestie, które należy wziąć pod uwagę, aby chronić klienta i hosta MCP:

Bezpieczeństwo Interakcji z Użytkownikiem

  • Bezpieczeństwo Interfejsu Użytkownika: 🟥️ Interfejs użytkownika wyraźnie wyświetla zakres uprawnień i potencjalny wpływ operacji AI, zapewniając intuicyjne wskaźniki bezpieczeństwa. Może to pomóc użytkownikom w zrozumieniu uprawnień, które przyznają AI.
  • Potwierdzenie Wrażliwych Operacji: 🟥️ Operacje wysokiego ryzyka (takie jak usuwanie plików, przelewy środków) wymagają wyraźnego potwierdzenia przez użytkownika. Może to zapobiec przypadkowemu wykonywaniu operacji wysokiego ryzyka przez użytkownika.
  • Przejrzystość Żądań Uprawnień: 🟥️ Żądania uprawnień wyraźnie określają cel i zakres, pomagając użytkownikom w podejmowaniu świadomych decyzji i unikaniu nadmiernej autoryzacji. Może to pomóc użytkownikom w zrozumieniu uprawnień, które przyznają AI.
  • Wizualizacja Operacji: 🔶 Wywoływanie narzędzi i dostęp do danych są widoczne i podlegają audytowi dla użytkownika, zapewniając szczegółowe logi operacji. Może to pomóc użytkownikom w zrozumieniu operacji wykonywanych przez AI.
  • Przejrzystość Informacji: 🔶 Narzędzie powinno umożliwiać użytkownikom domyślne wyświetlanie ukrytych etykiet, aby zapewnić, że kontekst widoczny dla użytkownika jest kompletny i spójny z rzeczywistym wygenerowanym i wywoływanym kontekstem, zapobiegając obecności złośliwej logiki w ukrytych etykietach.
  • Informacja Zwrotna o Stanie: 🔶 Użytkownik może wyraźnie zrozumieć aktualnie wykonywane operacje MCP.

Kontrola i Monitorowanie AI

  • Rejestr Operacji: 🟥️ Rejestruj wszystkie ważne operacje AI i ich wyniki. Może to pomóc w badaniu zdarzeń bezpieczeństwa.
  • Wykrywanie Anomali: 🔶 Wykrywaj nietypowe wzorce wywoływania narzędzi lub sekwencje żądań. Może to pomóc w identyfikacji złośliwej aktywności.
  • Ograniczenia Wywoływania Narzędzi: 🔶 Wprowadź ograniczenia częstotliwości i liczby wywołań narzędzi. Może to zapobiec nadużywaniu narzędzi przez złośliwych użytkowników.

Bezpieczeństwo Przechowywania Lokalnego

  • Bezpieczne Przechowywanie Poświadczeń: 🟥️ Używaj łańcucha kluczy systemu lub dedykowanego szyfrowanego magazynu do ochrony poświadczeń uwierzytelniających dla ważnych poświadczeń, aby zapobiec nieautoryzowanemu dostępowi. Może to zapobiec uzyskaniu dostępu do poświadczeń przez złośliwych użytkowników.
  • Izolacja Wrażliwych Danych: 🔶 Wdróż mechanizm izolacji danych, aby oddzielnie przechowywać i przetwarzać wrażliwe dane użytkownika od zwykłych danych. Może to zapobiec uzyskaniu dostępu do wrażliwych danych przez złośliwych użytkowników.

Bezpieczeństwo Aplikacji

  • Integralność Aplikacji: 🟥️ Sprawdź integralność aplikacji i wtyczek MCP, aby zapobiec manipulacjom. Może to zapobiec modyfikacji aplikacji przez złośliwych użytkowników.
  • Weryfikacja Aktualizacji: 🔶 Aktualizacje aplikacji Host są weryfikowane za pomocą podpisu cyfrowego. Może to zapewnić, że aktualizacje pochodzą z zaufanego źródła.
  • Sandbox Aplikacji: 🟢️ Staraj się uruchamiać aplikacje w środowisku sandbox, ograniczając dostęp do systemu. Może to zmniejszyć szkody spowodowane przez złośliwe aplikacje.

Uwierzytelnianie i Autoryzacja Klienta

  • Wymuś Uwierzytelnianie: 🟥️ Wymuś uwierzytelnianie przed komunikacją z jakąkolwiek ważną usługą MCP, zapobiegaj anonimowemu dostępowi. Może to zapobiec uzyskaniu dostępu do usług przez nieautoryzowanych użytkowników.
  • Implementacja OAuth: 🔶 Poprawnie zaimplementuj procedurę OAuth 2.1 lub nowszą, przestrzegając najlepszych praktyk i standardów bezpieczeństwa. Może to zapewnić, że uwierzytelnianie jest bezpieczne.
  • Parametr Stanu: 🔶 Zaimplementuj parametr stanu dla niektórych klientów sieci Web, aby zapobiec atakom CSRF, używaj unikalnej losowej wartości dla każdego żądania. Może to zapobiec atakom Cross-Site Request Forgery (CSRF).

Zarządzanie Narzędziami i Serwerami MCP

  • Weryfikacja Narzędzi MCP: 🟥️ Sprawdź autentyczność i integralność zarejestrowanych narzędzi. Może to zapobiec rejestracji złośliwych narzędzi.
  • Bezpieczne Aktualizacje: 🟥️ Klient MCP regularnie sprawdza i stosuje aktualizacje bezpieczeństwa, weryfikuje, czy zaktualizowane narzędzie zawiera złośliwy opis. Może to zapewnić, że narzędzia są aktualne i nie zawierają złośliwego kodu.
  • Sprawdzanie Nazw Funkcji: 🟥️ Sprawdź konflikty nazw i potencjalne złośliwe nadpisywanie przed zarejestrowaniem narzędzia. Może to zapobiec nadpisaniu istniejących narzędzi przez złośliwe narzędzia.
  • Wykrywanie Złośliwych MCP: 🟥️ Monitoruj i identyfikuj wzorce zachowań potencjalnie złośliwych MCP. Może to pomóc w identyfikacji złośliwych MCP.
  • Kontrola Nazewnictwa Narzędzi MCP: 🔶 Zastosuj przestrzeń nazw lub unikalny identyfikator, aby zapobiec konfliktom nazw. Może to zapobiec konfliktom między narzędziami.
  • Katalog Usług: 🔶 Utrzymuj autoryzowany katalog zaufanych usług i narzędzi MCP. Może to pomóc użytkownikom w znalezieniu zaufanych usług.
  • Rozwiązywanie Konfliktów: 🔶 Istnieją jasne zasady rozwiązywania konfliktów nazw narzędzi.
  • Izolacja Domen: 🔶 Narzędzia z różnych domen są od siebie izolowane, aby zapobiec wzajemnemu wpływowi.
  • Mechanizm Priorytetu: 🔶 Ustanów jasne zasady priorytetu funkcji, aby uniknąć złośliwego nadpisywania.
  • Kontrola Wersji: 🔶 Wprowadź kontrolę wersji dla funkcji i narzędzi, wykrywaj zmiany.
  • Mechanizm Rejestracji i Wyrejestrowania Narzędzi: 🔶 Wyjaśnij proces rejestracji i wyrejestrowania narzędzi, aby zapobiec zagrożeniom bezpieczeństwa związanym z pozostawionymi narzędziami.
  • Mechanizm Wykrywania Konfliktów: 🔶 Wykrywaj i rozwiązuj konflikty funkcji i zasobów w środowisku z wieloma MCP.
  • Klasyfikacja Narzędzi: 🟢️ Klasyfikuj narzędzia według wrażliwości i poziomu ryzyka.

Bezpieczeństwo Promptów

  • Obrona przed Wstrzykiwaniem Promptów: 🟥️ Wdróż wielowarstwowe środki obrony, aby zapobiec atakom typu wstrzykiwanie promptów, w tym ręczną weryfikację kluczowych wykonań.
  • Wykrywanie Złośliwych Poleceń: 🟥️ Ustanów mechanizm wykrywania i blokowania potencjalnych złośliwych poleceń użytkownika, aby zapobiec manipulowaniu systemem, takim jak wykrywanie i blokowanie wstępnie załadowanych złośliwych poleceń podczas lokalnej inicjalizacji oraz złośliwych narzędzi z serwerów MCP stron trzecich zawierających ukryte szkodliwe polecenia.
  • Ochrona Promptów Systemowych: 🟥️ Prompty systemowe i dane wejściowe użytkownika są wyraźnie oddzielone, aby zapobiec manipulacjom.
  • Filtrowanie Wrażliwych Danych: 🟥️ Filtruj wrażliwe dane osobowe z promptów i kontekstu.
  • Izolacja Kontekstu: 🔶 Zapewnij, aby zawartość kontekstu z różnych źródeł była od siebie izolowana, zapobiegając zanieczyszczeniu kontekstu i wyciekom informacji.
  • Szablony Promptów: 🔶 Używaj bezpiecznych szablonów promptów, aby zmniejszyć ryzyko wstrzykiwania.
  • Weryfikacja Opisów Narzędzi: 🔶 Sprawdź potencjalne złośliwe instrukcje w opisach narzędzi.
  • Weryfikacja Spójności Promptów: 🔶 Upewnij się, że ten sam prompt generuje przewidywalne i spójne wyniki w różnych środowiskach.
  • Zarządzanie Historią Kontekstu: 🔶 Wyjaśnij mechanizm bezpiecznego czyszczenia historii kontekstu, aby zapobiec ryzyku wycieku informacji spowodowanego skumulowanymi starymi danymi.

Logi i Audyt

  • Rejestrowanie Klienta: 🟥️ Rejestruj wszystkie interakcje z usługami MCP, wywołania narzędzi i działania autoryzacyjne.
  • Rejestrowanie Zdarzeń Bezpieczeństwa: 🟥️ Rejestruj wszystkie zdarzenia związane z bezpieczeństwem, w tym nieudane autoryzacje.
  • Alerty o Anomaliach: 🔶 Wykrywaj i alarmuj o nietypowych wzorcach aktywności.

Weryfikacja Serwera i Bezpieczeństwo Komunikacji

  • Uwierzytelnianie Serwera: 🟥️ Sprawdź tożsamość serwera MCP, aby zapobiec połączeniu ze złośliwym serwerem, wdróż przypinanie certyfikatów.
  • Weryfikacja Certyfikatów: 🟥️ Rygorystycznie weryfikuj certyfikaty TLS dla zdalnych serwerów, aby zapobiec atakom typu man-in-the-middle, sprawdź integralność łańcucha certyfikatów.
  • Szyfrowanie Komunikacji: 🟥️ Cała komunikacja klient-serwer jest szyfrowana przy użyciu TLS 1.2+, wyłącz słabe zestawy szyfrowania.
  • Konfiguracja Bezpiecznego Protokołu: 🔶 Skonfiguruj bezpieczne parametry TLS, regularnie audytuj i aktualizuj algorytmy szyfrowania i protokoły.

Przechowywanie i Zarządzanie Tokenami Uprawnień

  • Ograniczenia Zakresu Uprawnień: 🟥️ Ściśle ogranicz zakres uprawnień tokena, wdróż zasadę minimalnych uprawnień.

Automatyczna Kontrola Zatwierdzania

  • Ograniczenia Automatycznego Zatwierdzania: 🟥️ Ściśle kontroluj zakres narzędzi i operacji, które mogą być automatycznie zatwierdzane.
  • Zarządzanie Białą Listą: 🔶 Zdefiniuj jasno mechanizm białej listy dla narzędzi, które mogą być automatycznie zatwierdzane.
  • Dynamiczna Ocena Ryzyka: 🔶 Dynamicznie dostosowuj zasady automatycznego zatwierdzania w zależności od kontekstu.
  • Audyt Procesu Zatwierdzania: 🔶 Rejestruj i audytuj wszystkie decyzje o automatycznym zatwierdzaniu.

Bezpieczeństwo Próbkowania

  • Kontrola Zawartości Kontekstu: 🟥️ Ściśle kontroluj zakres kontekstu zawartego w żądaniach próbkowania.
  • Filtrowanie Wrażliwych Danych: 🟥️ Filtruj wrażliwe dane z żądań i odpowiedzi próbkowania.
  • Weryfikacja Żądania Próbkowania: 🔶 Zweryfikuj wszystkie parametry i zawartość żądania próbkowania.
  • Kontrola Użytkownika: 🔶 Zapewnij, aby użytkownicy mieli jasną kontrolę nad żądaniami i wynikami próbkowania.
  • Bezpieczeństwo Preferencji Modelu: 🔶 Bezpiecznie przetwarzaj informacje o preferencjach modelu, zapobiegaj nadużyciom.
  • Weryfikacja Wyników: 🔶 Sprawdź, czy wyniki próbkowania są zgodne ze standardami bezpieczeństwa.

Adaptacja i Bezpieczeństwo Wywoływania MCP na Różnych LLM

Różne backendy LLM mogą mieć różne priorytety wywoływania i logikę wykonywania dla MCP, dlatego należy zwrócić uwagę na bezpieczeństwo kombinacji LLM i MCP.

Bezpieczne Wykonywanie LLM

  • Priorytetowe Wykonywanie Funkcji: 🟥️ Zapewnij, aby LLM mogło priorytetowo wykonywać funkcje poprawnych wtyczek.
  • Ochrona przed Złośliwymi Promptami: 🟥️ LLM powinno być w stanie rozpoznawać i chronić się przed zachowaniami wymaganymi przez wstrzyknięte mnemotechniki w scenariuszach ze złośliwymi promptami.
  • Bezpieczne Wywoływanie: 🟥️ LLM powinno być w stanie poprawnie i bezpiecznie wywoływać powiązane funkcje MCP.
  • Ochrona Wrażliwych Informacji: 🟥️ Zapobiegaj wyciekom wrażliwych informacji.

Bezpieczeństwo Wielomodalne

  • Filtrowanie Treści Wielomodalnej: 🟥️ Filtruj szkodliwe lub wrażliwe informacje z treści wielomodalnych (takie jak złośliwe prompty na zdjęciach).

Bezpieczeństwo w Scenariuszach z Wieloma MCP

Przy jednoczesnym włączeniu wielu serwerów MCP, z powodu braku oficjalnego audytu, użytkownicy mogą zainstalować złośliwe MCP, co stanowi zagrożenie dla ogólnego bezpieczeństwa.

  • Bezpieczeństwo Środowiska z Wieloma MCP: 🟥️ Zapewnij ogólne bezpieczeństwo środowiska z wieloma MCP, regularnie skanuj i sprawdzaj zainstalowane MCP.
  • Ochrona przed Przejęciem Priorytetu Funkcji: 🟥️ Sprawdź możliwe złośliwe presety promptów, zapobiegaj złośliwemu przejęciu priorytetu funkcji.
  • Kontrola Wywołań Funkcji Między MCP: 🟥️ Bezpiecznie kontroluj wywołania funkcji między MCP, zapobiegaj zwracaniu złośliwych promptów przez złośliwe MCP, aby wywołać inne MCP do