Взломать агента, не трогая его данные
Или защитить)
Снова про MCP и безопасность. В отличие от классической эксплуатации уязвимостей, side-channel атака не требует прямого доступа к данным. Даже если агент не раскрывает свои данные напрямую, он может непреднамеренно выдавать информацию через поведение:
🧙♀️ различное время выполнения tool calls;
🧙♀️ изменение размера ответов;
🧙♀️ вариации потребления ресурсов;
🧙♀️ характерные последовательности вызовов инструментов;
🧙♀️ особенности создания и завершения контекстов.
Такая информация может раскрывать внутреннее состояние агента.
Например:
🧙♂️ определить, использует ли агент конкретный инструмент;
🧙♂️ понять, обращался ли агент к внутренним корпоративным данным;
🧙♂️ выявить выполнение дорогостоящих операций;
🧙♂️ восстановить структуру агентного воркфлоу;
🧙♂️ обнаружить наличие скрытых инструкций или дополнительного контекста;
🧙♂️ подготовить более эффективную промпт-инъекцию.
Получается, что у злоумышленника появляется возможность постепенно профилировать поведение агентной системы 😎, не имея доступа к ее внутренним данным. Опасны и low-and-slow атаки, когда разведка ведется неделями небольшими порциями и не вызывает срабатывания классических сигнатурных средств защиты. 🐹Агент обычно отвечает за 200–300 мс. После серии специально подобранных запросов время ответа скачет до 2–3 секунд только при наличии доступа к определенному внутреннему инструменту. Даже без прямого доступа к данным атакующий получает бит информации о конфигурации системы. Повторяя эксперимент тысячи раз, можно постепенно восстановить внутреннюю архитектуру агента.
Здесь появляется интересная возможность для применения классического машинного обучения. Ура!
Для каждой MCP-сессии можно собирать признаки:
🐹 среднее и медианное время выполнения операций;
🐹 дисперсию задержек;
🐹 количество tool calls;
🐹 число уникальных инструментов;
🐹 размеры запросов и ответов;
🐹 частоту создания новых сессий;
🐹 JSON-RPC последовательности;
🐹 TLS fingerprint клиента;
🐹 потребление ресурсов на запрос.
После этого задача превращается в классическую задачу обнаружения аномалий, так как у нас нет размеченных атак, только норма:
🐹 One-Class SVM — построить картину нормального поведения
🐹 Local Outlier Factor — поискать локальную аномальность (когда несколько ролей у агентов)
🐹 HDBSCAN — можно нового клиента идентифицировать
🐹 LightGBM — лучше всего в прод, кмк. На подобных данных бустинг обычно уничтожает большинство других алгоритмов.
🐹🐹🐹 Да даже цепи Маркова!
Фактически получается поведенческий IDS для MCP-инфраструктуры (модель анализирует не содержимое запросов, а характеристики поведения клиента). Это уже классический UEBA — только теперь для агентных систем.
Все!
🎁
Или защитить)
Снова про MCP и безопасность. В отличие от классической эксплуатации уязвимостей, side-channel атака не требует прямого доступа к данным. Даже если агент не раскрывает свои данные напрямую, он может непреднамеренно выдавать информацию через поведение:
🧙♀️ различное время выполнения tool calls;
🧙♀️ изменение размера ответов;
🧙♀️ вариации потребления ресурсов;
🧙♀️ характерные последовательности вызовов инструментов;
🧙♀️ особенности создания и завершения контекстов.
Такая информация может раскрывать внутреннее состояние агента.
Например:
🧙♂️ определить, использует ли агент конкретный инструмент;
🧙♂️ понять, обращался ли агент к внутренним корпоративным данным;
🧙♂️ выявить выполнение дорогостоящих операций;
🧙♂️ восстановить структуру агентного воркфлоу;
🧙♂️ обнаружить наличие скрытых инструкций или дополнительного контекста;
🧙♂️ подготовить более эффективную промпт-инъекцию.
Получается, что у злоумышленника появляется возможность постепенно профилировать поведение агентной системы 😎, не имея доступа к ее внутренним данным. Опасны и low-and-slow атаки, когда разведка ведется неделями небольшими порциями и не вызывает срабатывания классических сигнатурных средств защиты. 🐹Агент обычно отвечает за 200–300 мс. После серии специально подобранных запросов время ответа скачет до 2–3 секунд только при наличии доступа к определенному внутреннему инструменту. Даже без прямого доступа к данным атакующий получает бит информации о конфигурации системы. Повторяя эксперимент тысячи раз, можно постепенно восстановить внутреннюю архитектуру агента.
Здесь появляется интересная возможность для применения классического машинного обучения. Ура!
Для каждой MCP-сессии можно собирать признаки:
🐹 среднее и медианное время выполнения операций;
🐹 дисперсию задержек;
🐹 количество tool calls;
🐹 число уникальных инструментов;
🐹 размеры запросов и ответов;
🐹 частоту создания новых сессий;
🐹 JSON-RPC последовательности;
🐹 TLS fingerprint клиента;
🐹 потребление ресурсов на запрос.
После этого задача превращается в классическую задачу обнаружения аномалий, так как у нас нет размеченных атак, только норма:
🐹 One-Class SVM — построить картину нормального поведения
🐹 Local Outlier Factor — поискать локальную аномальность (когда несколько ролей у агентов)
🐹 HDBSCAN — можно нового клиента идентифицировать
🐹 LightGBM — лучше всего в прод, кмк. На подобных данных бустинг обычно уничтожает большинство других алгоритмов.
🐹🐹🐹 Да даже цепи Маркова!
Фактически получается поведенческий IDS для MCP-инфраструктуры (модель анализирует не содержимое запросов, а характеристики поведения клиента). Это уже классический UEBA — только теперь для агентных систем.
Все!
🎁