Testowanie capgate przeciwko DVMCP

Przetestowałem moje narzędzie, capgate, przeciwko dziesięciu uszkodzonym serwerom MCP w projekcie Damn Vulnerable MCP (DVMCP).

DVMCP to narzędzie edukacyjne. Każdy serwer demonstruje konkretny atak, taki jak prompt injection, kradzież tokenów czy command injection.

Cel był prosty. Napisałem uczciwy manifest dla każdego narzędzia. Następnie zadałem pytanie: czy granica tworzona przez capgate faktycznie powstrzymuje atak?

Wyniki pokazują dokładnie, co kompilator uprawnień (capability compiler) może, a czego nie może zrobić.

Co powstrzymuje (W dziesiątkę) W wyzwaniu 3 (Challenge 3) narzędzie posiada nadmiarowe uprawnienia. Twierdzi, że może odczytać jeden folder, ale w rzeczywistości może odczytać cały dysk. Atak próbuje wykraść dane uwierzytelniające systemu z prywatnego folderu. capgate to powstrzymuje. Kompiluje manifest do kontenera Docker, który montuje tylko dozwolony folder. Prywatne pliki nie istnieją wewnątrz piaskownicy (sandbox). Atak kończy się niepowodzeniem.

Co ogranicza (Środek pola) W wyzwaniu 7 (Challenge 7) narzędzie wycieka klucz API. capgate nie może powstrzymać narzędzia przed odczytaniem klucza, ale powstrzymuje eksfiltrację danych. Tworzy proxy wyjściowe (egress proxy), które pozwala na połączenia tylko z jednym, konkretnym hostem. Atakujący nie może wysłać skradzionego klucza na swój własny serwer.

W wyzwaniu 8 (Challenge 8) narzędzie pozwala na wykonywanie dowolnych poleceń powłoki (shell). capgate nie potrafi wyrazić w swojej gramatyce zasady „dozwól na dowolną powłokę”. Zamiast tego izoluje narzędzie (boxes the tool). Nawet jeśli atakujący uruchomi polecenie, proces nie ma dostępu do sieci, nie posiada dodatkowych uprawnień i korzysta z systemu plików w trybie tylko do odczytu. Szkody są ograniczone.

Czego nie wyłapuje (Granice) W wyzwaniu 1 (Challenge 1) atakiem jest prompt injection. Atakujący oszukuje model, aby zignorował instrukcje. capgate nic tutaj nie robi. Kompilator piaskownicy ogranicza to, czego narzędzie może dotknąć, ale nie może kontrolować tego, co mówi LLM.

Jeśli myślisz, że piaskownica powstrzymuje prompt injection, jesteś w błędzie. Sprawia ona jedynie, że prompt injection staje się mniej użyteczny, ograniczając skalę szkód.

Podsumowanie • Jedno skuteczne powstrzymanie. • Cztery znaczące ograniczenia. • Trzy uczciwe braki.

capgate nie jest magicznym rozwiązaniem (silver bullet). To jedna z warstw obrony. Zmienia „ten serwer może dotrzeć do wszystkiego” na „ten serwer może dotrzeć do jednej, konkretnej ścieżki”.

Source: https://dev.to/kcrazy/i-pointed-capgate-at-damn-vulnerable-mcp-heres-what-it-caught-and-what-it-couldnt-52i1

Optional learning community: https://t.me/GyaanSetuAi