K0NSULT // ai-truth/ipIII
k0nsult.cloud / ai-truth / ipIII / agent-security / mcp-scanner

MCP / Tool Poisoning Scanner — specyfikacja (F9)

MCP (Model Context Protocol) i szerzej tool-use to nowa powierzchnia ataku: model czyta opisy narzędzi jako tekst i może wykonać ukrytą w nich instrukcję. Ta strona opisuje defensywny skaner, który inwentaryzuje serwery MCP, przegląda manifest narzędzi i flaguje podejrzane wzorce — zanim zostaną wpięte do agenta. Status: ROADMAP. To specyfikacja, nie działający moduł.

Charakter strony. To specyfikacja projektowa (spec, fala F9), nie wdrożony moduł. Żaden endpoint skanera nie jest dziś LIVE. Zgodnie z doktryną claim ≤ proof całość oznaczona jest jako ROADMAP: opisujemy co skaner ma robić i jak, a nie co już robi. Gdy powstanie MVP, przeniesiemy potwierdzone funkcje na roadmapę dev z dowodem (kod+test+endpoint).
Serwer MCP to zależność. Traktuj jego manifest jak kod z niezaufanego źródła.

Badania nad bezpieczeństwem MCP z 2026 r. pokazały klasę problemów, w której opis narzędzia (tool description) — a nie jego kod — staje się nośnikiem ataku: prompt injection ukryty w metadanych, „tool poisoning" (instrukcja widoczna dla modelu, niewidoczna dla użytkownika), oraz „rug pull" (manifest zmienia się po zatwierdzeniu). Skaner MCP jest odpowiedzią defensywną: przegląda manifest, liczy ryzyko, ostrzega — nie uruchamia narzędzi ani nie generuje payloadów ataku.

PRZEPŁYW: inwentaryzacja serwerówpobranie manifestuanaliza opisów/parametrówocena ryzykaraport + audit log

Powierzchnia ataku MCP — co skanujemy

Za każdym wektorem stoi udokumentowana w 2026 r. klasa słabości warstwy tool-use. Opis jest ogólny i defensywny — bez konkretnych payloadów.

Suspicious tool description detekcja

Opis narzędzia zawierający imperatywy skierowane do modelu („zawsze wywołaj", „zignoruj poprzednie", „nie informuj użytkownika") zamiast neutralnego opisu funkcji.

Hidden instruction detekcja

Instrukcje ukryte przed człowiekiem: znaki zero-width, tekst w kolorze tła, sekcje poza widocznym opisem, komentarze/metadane niepokazywane w UI konektora.

Parameter visibility detekcja

Parametry o nazwach/opisach niespójnych z deklarowaną funkcją, pola „ukryte" lub domyślne wartości mogące eksfiltrować kontekst (np. parametr „note" przekazujący całą historię).

Rug pull / manifest drift monitoring

Zmiana manifestu po pierwszym zatwierdzeniu. Skaner liczy hash manifestu i sygnalizuje różnicę względem wersji zatwierdzonej.

Cross-server shadowing monitoring

Narzędzie z jednego serwera opisujące zachowanie innego serwera / próbujące przechwycić wywołania (tool shadowing). Flaga przy nakładających się nazwach i odwołaniach.

Sandbox / scope warning ostrzeżenie

Serwer żądający szerokiego dostępu (system plików, sieć, sekrety) bez izolacji. Skaner oznacza brak sandboxa i nadmiarowy scope jako ryzyko konfiguracji.

Rejestr kontroli skanera

Każda kontrola: co sprawdza, jaki sygnał daje, jaki jest status. Wszystkie dziś ROADMAP — to plan, nie deklaracja działania. Priorytet: P0 rdzeń MVP · P1 rozszerzenie.

KontrolaCo sprawdzaSygnałPriorytetStatus
Inventory Lista skonfigurowanych serwerów MCP, ich narzędzia, wersja manifestu, deklarowany scope. Punkt wyjścia dla pozostałych kontroli. Rejestr serwerów + hash manifestu per serwer. P0 ROADMAP
Description lint Heurystyka nad opisem narzędzia: imperatywy do modelu, frazy „ignore/override/do not tell", niespójność opis↔nazwa. Ostrzeżenie z cytatem fragmentu opisu (bez wykonania). P0 ROADMAP
Hidden-content scan Znaki zero-width, non-print, homoglify, tekst poza widocznym polem opisu/metadanych. Flaga „ukryta treść" + pozycja znaku. P0 ROADMAP
Parameter audit Schemat parametrów: pola nieoczywiste dla funkcji, wartości domyślne mogące nieść kontekst, brak walidacji typu. Lista parametrów podwyższonego ryzyka. P1 ROADMAP
Manifest diff Porównanie bieżącego manifestu z wersją zatwierdzoną (approve-on-first-use). Wykrywa rug pull / cichą zmianę. Diff + alert „manifest zmieniony po zatwierdzeniu". P1 ROADMAP
Scope / sandbox check Deklarowany dostęp (fs/net/secrets) vs izolacja procesu. Nadmiarowy scope bez sandboxa. Ostrzeżenie konfiguracyjne z rekomendacją izolacji. P1 ROADMAP
Audit logging Trwały log każdego skanu: który serwer, jaki wynik, kto zatwierdził, hash manifestu, znacznik czasu. Append-only rekord dowodowy (chain-of-custody). P0 ROADMAP

Model wyniku — przykład (dane syntetyczne)

Poniżej ilustracyjny kształt raportu. Wartości są syntetyczne, serwer fikcyjny — nie jest to wynik żadnego realnego skanu.

{
  "scan_id": "mcp-scan-SYNTH-0001",
  "generated_at": "2026-07-05T00:00:00Z",
  "server": "example-notes-mcp (SYNTETYCZNY)",
  "manifest_sha256": "<hash>",
  "tools_reviewed": 4,
  "findings": [
    { "tool": "save_note", "control": "description-lint",
      "severity": "warn",
      "note": "opis zawiera imperatyw skierowany do modelu" },
    { "tool": "save_note", "control": "parameter-audit",
      "severity": "info",
      "note": "parametr 'context' o szerokim domyslnym zakresie" }
  ],
  "sandbox": "brak izolacji — scope: fs+net (ostrzezenie)",
  "verdict": "REVIEW_REQUIRED",
  "disposition": "wymaga akceptacji operatora przed wpieciem do agenta"
}
Skaner nie wykonuje narzędzi. Analizuje wyłącznie statyczny manifest (opisy, schematy parametrów, deklarowany scope) i metadane. Nie wywołuje żadnego narzędzia MCP, nie wysyła kontekstu do serwera, nie generuje ani nie odtwarza payloadów wstrzyknięć. Werdykt to sygnał do przeglądu przez człowieka, nie automatyczna decyzja.

Zasada działania — defensywnie i po RoE

1. Inwentaryzacja. Skaner czyta konfigurację serwerów MCP udostępnioną przez operatora. Nie odkrywa serwerów w sieci samodzielnie.
2. Analiza statyczna. Manifest i schematy parametrów przechodzą przez heurystyki lintu i skanu ukrytej treści. Zero wykonania narzędzi.
3. Ocena ryzyka. Wynik agregowany do werdyktu (OK / REVIEW_REQUIRED / BLOCK-recommend). Werdykt jest rekomendacją.
4. Audit log. Każdy skan zapisany append-only z hashem manifestu — materiał dowodowy dla przeglądu i retestu.
5. Decyzja człowieka. Operator zatwierdza lub odrzuca wpięcie serwera. Skaner nie modyfikuje konfiguracji agenta samodzielnie.

Odniesienie do badań 2026

Kontekst badawczy. W 2026 r. społeczność bezpieczeństwa opisała warstwę MCP/tool-use jako odrębną powierzchnię ataku: prompt injection przez opis narzędzia, tool poisoning (instrukcja widoczna dla modelu, ukryta przed użytkownikiem), tool shadowing / cross-server oraz rug pull (zmiana manifestu po zatwierdzeniu). Ten skaner adresuje te klasy po stronie obrony — inwentaryzacja, przegląd manifestu, detekcja wzorców, ostrzeżenie o sandboxie, audit logging. Streszczamy publiczny kierunek badań; nie podajemy linków zewnętrznych ani technik po stronie napastnika.

Zakres i granice

7
Kontroli w spec
Inventory · lint · hidden · param · diff · scope · audit
0
Wykonań narzędzi
wyłącznie analiza statyczna manifestu
100%
Danych syntetycznych
przykłady fikcyjne, po RoE
ROADMAP
Status modułu
spec F9, brak endpointu LIVE
Granica etyczna i prawna. Skaner MCP jest narzędziem obrony (GRC/blue). Działa wyłącznie defensywnie, na danych syntetycznych i w granicach pisemnych Rules of Engagement. Nie wykonuje narzędzi MCP, nie eksfiltruje kontekstu, nie generuje ani nie odtwarza wstrzyknięć. Wynik skanu to wsparcie decyzji, nie automatyczne dopuszczenie serwera do agenta.

Powiązane: warstwa bezpieczeństwa agentów → /agent-security · rejestr konektorów i źródeł → /connectors · uczciwy rejestr braków → /known-limitations.