Nowe zagrożenie: Złośliwe prompty ukryte w dokumentach B2B
Podłączenie autonomicznych agentów AI i protokołu Model Context Protocol (MCP) do firmowych baz danych SQL, magazynów i systemów ERP (takich jak Comarch Optima czy SAP) otwiera bezprecedensowe możliwości automatyzacji. Jednocześnie wprowadza zupełnie nowy wektor ataku: Indirect Prompt Injection.
Atak tego typu polega na ukryciu niewidocznych instrukcji dla modelu w treści faktury PDF, zamówienia e-mail lub zapytania ofertowego. Gdy agent AI analizuje dokument z zewnętrznego źródła, ukryty prompt próbuje przejąć kontrolę nad procesem decyzyjnym, zmuszając model do wywołania narzędzi MCP z fałszywymi parametrami — na przykład zmiany konta bankowego kontrahenta lub obniżenia marży do 0%.
Cztery filary architektury Zero-Trust dla agentów AI
W zespołach inżynieryjnych Miscat.tech projektujemy integracje AI w oparciu o rygorystyczny reżim Zero-Trust. Bezpieczna architektura opiera się na 4 żelaznych zasadach:
- Ścisła separacja uprawnień narzędzi MCP: Narzędzia odpytujące bazę (SELECT) działają w izolowanych kontenerach w trybie
READ ONLYz wymuszeniem Row-Level Security (RLS). Agent analityczny fizycznie nie posiada dostępu do funkcji modyfikacji bazy. - Human-in-the-Loop dla operacji krytycznych: Narzędzia wykonujące zmiany stanów finansowych, zmiany numerów rachunków bankowych IBAN lub zatwierdzanie dokumentów magazynowych wymagają kryptograficznego podpisu lub zatwierdzenia 2FA przez człowieka.
- Odwracalna pseudonimizacja w locie (In-RAM DLP): Dane wrażliwe (NIP, marże, salda finansowe) są podmieniane na tokeny syntetyczne przed wysłaniem do modelu i przywracane w pamięci serwera dopiero w warstwie odpowiedzi.
- Walidacja schematów JSON i kontrola typów: Narzędzia MCP nie przyjmują dowolnego tekstu — każde wejście jest rygorystycznie walidowane przez parser schematu przed dotarciem do backendu SQL.
Praktyczne wnioski dla dyrektorów IT i zarządów
Wdrożenie sztucznej inteligencji w środowisku enterprise nie musi wiązać się z ryzykiem operacyjnym. Kluczem jest traktowanie modeli językowych jako niezaufanego komponentu obliczeniowego, który nigdy nie podejmuje decyzji wykonawczych bez deterministycznej zapory walidacyjnej na poziomie kodu backendowego.