Zatruwanie narzędzi MCP: ukryte instrukcje w opisach narzędzi
Invariant Labs pokazało, że serwer MCP może ukryć instrukcje w opisach narzędzi odczytywanych przez model, i opisało ataki typu tool shadowing oraz rug pull.
Co się stało
1 kwietnia 2025 r. Invariant Labs opublikowało ostrzeżenie dotyczące zatruwania narzędzi w Model Context Protocol. Złośliwy serwer MCP umieszcza instrukcje w opisie narzędzia. Użytkownik rzadko widzi ten tekst, ale model odczytuje go jako część kontekstu i może na jego podstawie działać.
W tym samym ostrzeżeniu opisano dwa powiązane ataki. W ataku typu tool shadowing opis jednego serwera zmienia sposób, w jaki agent korzysta z narzędzi innego, zaufanego serwera. W ataku typu rug pull serwer zmienia opisy narzędzi po tym, jak użytkownik już go zatwierdził.
Dlaczego się udało
Klienci wczytują opisy narzędzi ze wszystkich połączonych serwerów do jednego kontekstu, a model nie potrafi odróżnić dokumentacji dostawcy od instrukcji atakującego. Jeśli klient zatwierdza serwer tylko raz i później go nie weryfikuje, kolejne zmiany pozostają niezauważone.
Co zrobić
- Przed połączeniem z serwerem MCP przeczytaj pełne opisy jego narzędzi, a nie tylko ich nazwy.
- Przypinaj wersje serwerów i obliczaj hashe opisów narzędzi; po zmianie hasha ponownie pytaj o zgodę lub wysyłaj alert.
- Łącz tylko serwery potrzebne do danego zadania, aby tekst z jednego serwera nie mógł wpływać na użycie narzędzi innego.
- Wymagaj zatwierdzenia wywołań narzędzi, które wysyłają dane lub modyfikują pliki.
Weryfikuj skills, pluginy i serwery MCPWymagaj akceptacji działań o istotnych konsekwencjach
Przejdź przez checklistę bezpieczeństwa →