Detekce injekcí ANSI escape sekvencí v MCP serverech

Útoky pomocí ANSI escape sekvencí mohou skrýt instrukce před lidským uživatelským rozhraním, ale jsou viditelné pro AI modely.

23. července 2026

Útoky pomocí ANSI escape sekvencí představují významnou zranitelnost v MCP serverech. Tyto sekvence, které byly původně navrženy pro terminály, umožňují útočníkům manipulovat s textem tak, že skrývají instrukce před lidským uživatelským rozhraním, zatímco zůstávají viditelné pro AI modely. To vytváří prostor pro potenciální zneužití, kde model může vykonat skryté příkazy, které by jinak zůstaly neodhaleny.

Co jsou ANSI escape sekvence?

ANSI escape sekvence jsou neviditelné kontrolní kódy, které mění barvy, skrývají text nebo pohybují kurzorem. Tyto sekvence začínají bajtem ESC (hex 0x1B) a následuje kontrolní kód, který terminál interpretuje jako příkaz. Pro lidského čtenáře jsou tyto kódy neviditelné, ale AI modely je zpracovávají jako součást textu. To znamená, že co vypadá jako prázdný řádek pro člověka, může obsahovat skryté instrukce pro model.

Varianty útoků: direct-fetch AESI a stored AESI

Existují dvě hlavní varianty útoku pomocí ANSI escape sekvencí: direct-fetch AESI a stored AESI.

  1. Direct-fetch AESI: Útočník hostí obsah s ANSI escape sekvencemi na URL, kterou server načte a předá modelu. Model pak může vykonat skryté instrukce, které byly do textu vloženy.

  2. Stored AESI: Tato varianta je nebezpečnější, protože payload je uložen na serveru a může být aktivován při budoucím přístupu k datům. Tímto způsobem může útočník zasáhnout více uživatelů, protože payload zůstává v systému a může být aktivován kdykoliv.

Detekce pomocí DAST

Dynamické testování aplikací (DAST) je efektivní metodou pro detekci zranitelností způsobených ANSI escape sekvencemi. DAST skenery provádějí testy na běžících serverech a detekují zranitelnosti bez přístupu ke zdrojovému kódu. Tento přístup je ideální pro odhalení útoků, protože závisí na tom, jak server zpracovává a reléuje payloady.

Designové principy pro detekci

Detekce zranitelností je založena na několika designových principech, včetně inspekce surových bytů. Při detekci se také používá třísignální potvrzení, které pomáhá snižovat falešné pozitivy. To je důležité pro zajištění přesnosti detekce a minimalizaci zbytečných alarmů.

Bezpečnostní dopady a rizika

Útoky pomocí ANSI escape sekvencí mohou manipulovat s logy a auditními stopami, což ztěžuje incident response. Skrývání činností během revize může vést k vážným bezpečnostním incidentům, protože útočníci mohou provádět akce, které zůstanou neodhaleny.

Automatizovaná detekce by měla být součástí kontinuální integrace a DAST procesů. Pravidelné skenování a detekce zranitelností v MCP serverech mohou pomoci odhalit tyto skryté útoky dříve, než způsobí vážné škody.

Tento výzkum ukazuje, jak důležité je mít na paměti bezpečnostní aspekty při vývoji a integraci MCP serverů, a jak mohou staré techniky, jako jsou ANSI escape sekvence, představovat nové hrozby v kontextu moderních AI modelů.