
Wprowadzenie do problemu / definicja
Rosnące wykorzystanie agentów AI w programowaniu i automatyzacji zadań zwiększa znaczenie bezpieczeństwa integracji z narzędziami zewnętrznymi. Szczególną rolę odgrywa tu Model Context Protocol (MCP), który pozwala modelom korzystać z zasobów i funkcji udostępnianych przez zewnętrzne serwery.
Najnowsze analizy pokazują jednak, że zaufanie do serwera MCP może stać się słabym punktem całego środowiska. Technika określana jako GhostSplice demonstruje, że złośliwy serwer może wpłynąć na zachowanie agenta AI w taki sposób, aby doprowadzić do ujawnienia poufnych danych bez użycia jednej, jawnie niebezpiecznej komendy.
W skrócie
GhostSplice polega na rozbiciu szkodliwej instrukcji na kilka pozornie nieszkodliwych fragmentów. Elementy te mogą zostać rozmieszczone w opisie narzędzia, odpowiedzi narzędzia oraz dodatkowych interakcjach w trakcie sesji, a agent AI scala je następnie w jeden kontekst decyzyjny.
W efekcie możliwe staje się skłonienie agenta do odczytu i ujawnienia danych takich jak klucze SSH, zmienne środowiskowe, pliki konfiguracyjne, kod źródłowy lub informacje klientów. Nie jest to jednak uniwersalne przejęcie dowolnego systemu — atak zakłada wcześniejsze podłączenie złośliwego serwera MCP oraz istnienie odpowiednich uprawnień po stronie agenta.
- atak wykorzystuje zaufanie do zewnętrznego serwera MCP,
- instrukcje są ukrywane w wielu elementach sesji,
- zagrożone są środowiska, w których agent ma dostęp do lokalnych zasobów,
- problem dotyczy całego łańcucha integracyjnego, a nie wyłącznie modelu językowego.
Kontekst / historia
Scenariusz ten wpisuje się w szerszy nurt badań nad prompt injection i nadużyciami w ekosystemie agentów AI. Dotychczas wiele mechanizmów ochronnych koncentrowało się na wykrywaniu pojedynczych, wyraźnie podejrzanych poleceń lub instrukcji o wysokim ryzyku.
GhostSplice pokazuje, że takie podejście może być niewystarczające. Jeśli złośliwa logika zostanie rozdzielona na kilka niezależnych komunikatów, każdy z nich osobno może wyglądać jak standardowa operacja administracyjna, kontrola integralności albo rutynowe zapytanie diagnostyczne.
Według opisu badań testy prowadzono w kontrolowanych, izolowanych środowiskach z wykorzystaniem sztucznych poświadczeń i bez wskazania produkcyjnego incydentu. Mimo to sama technika ma duże znaczenie praktyczne, ponieważ dobrze odzwierciedla sposób działania nowoczesnych agentów developerskich, które przetwarzają wiele kanałów wejściowych jednocześnie.
Analiza techniczna
Istota ataku polega na rozproszeniu intencji eksfiltracyjnej między różne elementy komunikacji. Serwer MCP może zaprezentować narzędzie wyglądające całkowicie neutralnie, na przykład moduł audytu lub sprawdzania spójności danych, z polami opisanymi w mało podejrzany sposób.
W kolejnym kroku agent otrzymuje dodatkowe informacje, które mapują te pola na konkretne zasoby lokalne, takie jak plik .ssh/id_rsa, zawartość .env, fragmenty repozytorium albo dokumenty projektowe. Każdy komunikat osobno wydaje się akceptowalny, ale ich połączenie w jednym kontekście roboczym prowadzi do wykonania pełnej sekwencji działań skutkującej ujawnieniem danych.
To właśnie tutaj zawodzą proste mechanizmy filtrujące. Oddzielenie opisu narzędzia od jego wyniku na poziomie protokołu nie daje gwarancji bezpieczeństwa, jeśli model nadal interpretuje oba elementy łącznie i traktuje je jako podstawę do podejmowania dalszych decyzji.
Z perspektywy bezpieczeństwa przypomina to skażenie przepływu danych. Informacje pochodzące z niezaufanego serwera nie są traktowane wyłącznie jako dane wejściowe, lecz zaczynają pełnić rolę instrukcji wpływających na kolejne wywołania narzędzi. Jeżeli klient umożliwia automatyczne przekazywanie takich wartości dalej, tworzy ścieżkę nadużycia uprawnień.
Znaczenie ma również architektura środowiska. Skuteczność ataku zależy od używanego klienta MCP, sposobu orkiestracji narzędzi, polityki zgód, filtrowania argumentów i lokalnych zabezpieczeń. Oceniając ryzyko, organizacje powinny więc analizować cały stos integracyjny, a nie wyłącznie sam model AI.
Konsekwencje / ryzyko
Najpoważniejszą konsekwencją jest cicha eksfiltracja danych wysokiej wartości. W praktyce może to oznaczać wyciek kluczy prywatnych, tokenów API, sekretów zapisanych w zmiennych środowiskowych, kodu własnościowego, dokumentacji technicznej czy danych klientów.
Taki incydent może stać się punktem wyjścia do dalszych naruszeń, w tym przejęcia infrastruktury, nadużyć w łańcuchu dostaw oprogramowania, dostępu do systemów wewnętrznych oraz problemów zgodności regulacyjnej. Szczególnie zagrożone są środowiska, w których agent AI dysponuje szerokim dostępem do repozytoriów, terminala, plików roboczych i usług przechowujących sekrety.
Dodatkowym wyzwaniem pozostaje detekcja. Ponieważ pojedyncze komunikaty mogą wyglądać całkowicie rutynowo, wykrycie incydentu bywa możliwe dopiero po prześledzeniu pełnego łańcucha wywołań narzędzi, źródeł danych wejściowych i nietypowych prób transferu informacji.
Rekomendacje
Podstawową zasadą bezpieczeństwa powinno być traktowanie wszystkich danych pochodzących z serwera MCP jako niezaufanych. Klient i warstwa orkiestracji muszą rozdzielać dane od instrukcji oraz blokować automatyczne przekazywanie niezweryfikowanych wartości pomiędzy narzędziami.
- ograniczać zaufanie do zewnętrznych i niestandardowych serwerów MCP,
- prowadzić formalne przeglądy integracji przed dopuszczeniem ich do środowisk produkcyjnych,
- wymuszać jawną zgodę użytkownika przy odczycie wrażliwych plików i wysyłaniu danych poza środowisko lokalne,
- stosować zasadę najmniejszych uprawnień dla agentów AI,
- filtrować i walidować argumenty przekazywane do narzędzi,
- wdrażać listy dozwolonych ścieżek, operacji i miejsc docelowych,
- blokować dostęp do sekretów wszędzie tam, gdzie nie jest on niezbędny,
- prowadzić pełne logowanie sekwencji wywołań wraz z pochodzeniem danych wejściowych.
W organizacjach istotne są również zabezpieczenia administracyjne. Warto kontrolować, które integracje mogą być aktywowane, ograniczać działanie agentów do odczytu tam, gdzie to możliwe, oraz wdrażać dodatkowe polityki zatwierdzania dla operacji mogących prowadzić do ujawnienia informacji wrażliwych.
Z punktu widzenia architektury bezpieczny klient MCP powinien zakładać, że serwer narzędziowy może próbować manipulować modelem. Ochrona musi więc koncentrować się na realnych skutkach wywołań narzędzi, a nie jedynie na deklarowanym przeznaczeniu integracji.
Podsumowanie
GhostSplice pokazuje, że bezpieczeństwo agentów AI zależy nie tylko od jakości samego modelu językowego, ale przede wszystkim od sposobu interpretacji danych, scalania kontekstu i zarządzania wywołaniami narzędzi. Złośliwy serwer MCP nie musi przesyłać jednej oczywiście groźnej instrukcji — wystarczy, że rozdzieli ją na kilka wiarygodnie wyglądających elementów.
Dla zespołów bezpieczeństwa, platform engineering i DevSecOps to wyraźny sygnał, że warstwa orkiestracji agentów AI wymaga takiej samej uwagi jak tradycyjne interfejsy API czy komponenty łańcucha dostaw. Wraz ze wzrostem wykorzystania agentów kodujących bezpieczeństwo MCP staje się jednym z kluczowych obszarów ochrony nowoczesnych środowisk developerskich.
Źródła
- The Hacker News — Malicious MCP Servers Can Split Instructions to Make AI Coding Agents Exfiltrate Secrets — https://thehackernews.com/2026/08/malicious-mcp-servers-can-split.html
- Model Context Protocol — Security Best Practices — https://modelcontextprotocol.io/specification/2025-06-18/basic/security_best_practices
- OpenAI Help Center — Apps in ChatGPT — https://help.openai.com/en/articles/11487775-connectors-and-mcp