OWASP LLM10: как ресурсоёмкие промпты атакуют LLM и как защититься

Большие языковые модели становятся неотъемлемой частью современных информационных систем. Корпоративные помощники, RAG-приложения, AI-агенты, генерация программного кода, автоматизация документооборота — всё чаще именно LLM становятся основным интерфейсом взаимодействия пользователя с данными и серв

OWASP LLM10: как ресурсоёмкие промпты атакуют LLM и как защититься

Большие языковые модели становятся неотъемлемой частью современных информационных систем. Корпоративные помощники, RAG-приложения, AI-агенты, генерация программного кода, автоматизация документооборота — всё чаще именно LLM становятся основным интерфейсом взаимодействия пользователя с данными и сервисами компании. Вместе с ростом популярности меняется и профиль угроз: если ещё несколько лет назад основной задачей злоумышленника был поиск уязвимости в веб-приложении или API, то сегодня достаточно правильно сформулировать запрос к языковой модели. Причём целью может быть не получение конфиденциальной информации и даже не обход механизмов безопасности — иногда гораздо выгоднее заставить модель выполнять заведомо ресурсоёмкую задачу, расходуя процессорное время, память и тысячи токенов.

Именно этой проблеме посвящена категория LLM10: Unbounded Consumption в рейтинге OWASP Top 10 for LLM Applications. В отличие от классических атак типа Prompt Injection или Data Leakage, здесь злоумышленник воздействует не на логику приложения, а на его вычислительные ресурсы. По сути, речь идёт об адаптации идеи Denial of Service (DoS) к эпохе генеративного искусственного интеллекта. На первый взгляд может показаться, что защититься от подобных атак достаточно просто — например, ограничить длину пользовательского запроса или максимальный размер ответа. Однако на практике современные атаки становятся значительно изощрённее: они используют особенности работы больших языковых моделей, такие как рекурсивные инструкции, экспоненциальный рост контекста, моделирование множества независимых агентов, комбинаторные задачи и другие приёмы, заставляющие модель выполнять непропорционально большой объём вычислений при внешне вполне безобидном запросе.

Как работает атака Unbounded Consumption

Суть атаки LLM10 в том, чтобы заставить языковую модель выполнить задачу, требующую значительно больше ресурсов, чем задумывал разработчик приложения. Злоумышленник отправляет специально сконструированный промпт, который провоцирует модель на генерацию огромных объёмов текста, многократные итерации или обработку чрезмерно длинного контекста. В результате страдает не только сам сервис — повышается нагрузка на инфраструктуру, увеличиваются расходы на вычисления, а легитимные пользователи получают отказы в обслуживании.

Одним из самых простых и распространённых приёмов является отправка запроса на генерацию очень длинного текста — например, «напиши эссе на 10 000 слов». Модель будет генерировать токены до тех пор, пока не достигнет лимита, потребляя значительные вычислительные мощности. Более сложные атаки используют рекурсивные инструкции — модель просят «повторить предыдущий ответ, но с более подробными деталями», что приводит к лавинообразному росту выходных данных. Также злоумышленники могут моделировать множество виртуальных агентов внутри одного промпта, каждый из которых выполняет свою подзадачу, что экспоненциально увеличивает нагрузку.

Вред от таких атак может быть разным: от замедления работы сервиса до полного отказа. В корпоративной среде, где LLM используется для обработки документов или генерации кода, атака может привести к простою бизнес-процессов. Для компаний, предоставляющих LLM как услугу, это прямые финансовые потери из-за неоправданного расхода токенов и вычислительных ресурсов.

Предыстория и контекст

OWASP (Open Worldwide Application Security Project) — некоммерческая организация, известная своим рейтингом Top 10 для веб-приложений. В 2023 году она выпустила первую версию Top 10 for LLM Applications, адаптировав классические угрозы к реалиям генеративного ИИ. Категория LLM10: Unbounded Consumption появилась как ответ на растущее число инцидентов, связанных с ресурсоёмкими промптами. Разработчики и исследователи безопасности заметили, что атаки на LLM не ограничиваются кражей данных или обходом фильтров — злоумышленники начали использовать модели для истощения инфраструктуры.

Проблема усугубляется тем, что многие компании внедряют LLM без должного понимания их уязвимостей. Разработчики часто полагаются на стандартные механизмы защиты, такие как rate limiting и фильтрация входных данных, но они не всегда эффективны против сложных промптов. Например, ограничение длины запроса не поможет, если атака использует рекурсивные инструкции, которые приводят к генерации огромного ответа. Кроме того, модели становятся всё более мощными и способны обрабатывать контексты длиной в сотни тысяч токенов, что открывает новые векторы атак.

Как это работает? Примеры атак

Рассмотрим несколько конкретных примеров. Одна из атак заключается в отправке промпта, который просит модель «сгенерировать все возможные комбинации букв алфавита» — задача, которая приводит к экспоненциальному росту выходных данных. Другой приём — «промпт-рекурсия»: модель просят «объяснить это объяснение, а затем объяснить это объяснение объяснения» и так далее, что заставляет её генерировать всё более длинные ответы. Также известны атаки, использующие множественные роли: модель просят «разыграть диалог между 10 персонажами, каждый из которых задаёт вопросы остальным», что приводит к комбинаторному взрыву.

Эти атаки особенно опасны тем, что они выглядят вполне легитимно. Запрос «напиши эссе на 5000 слов» не вызывает подозрений у систем фильтрации, но может привести к значительным затратам ресурсов. В отличие от обычных DoS-атак, здесь не требуется большого количества запросов — достаточно одного хорошо продуманного промпта.

Технические детали и меры защиты

OWASP рекомендует несколько подходов к защите от LLM10. Во-первых, необходимо внедрить жёсткие лимиты на количество токенов, генерируемых моделью в одном ответе, а также на общее количество запросов от одного пользователя. Это можно сделать на уровне API-шлюза или в самом приложении. Во-вторых, важно использовать мониторинг и логирование для обнаружения аномального поведения: например, если пользователь отправляет запросы, которые приводят к генерации ответов, превышающих средний размер в несколько раз, это должно вызывать алерты.

Также рекомендуется ограничивать сложность промптов, например, запрещать рекурсивные конструкции или слишком длинные инструкции. Некоторые компании используют специальные фильтры, которые анализируют промпт на предмет потенциальной ресурсоёмкости. Однако универсального решения нет — каждая модель и каждое приложение имеют свои особенности, поэтому защита должна быть многоуровневой.

Важно понимать, что защита от LLM10 — это не только техническая задача, но и организационная. Необходимо проводить регулярное тестирование на проникновение, включающее сценарии ресурсоёмких атак, и обучать разработчиков правильному использованию LLM. Компании, предоставляющие LLM как услугу, могут внедрять системы квотирования и биллинга, которые автоматически ограничивают расходы каждого клиента.

Кого затронет и как

Атаки Unbounded Consumption затрагивают всех, кто использует LLM в производственной среде. Разработчики, создающие приложения на основе LLM, должны учитывать эту угрозу на этапе проектирования архитектуры. Для бизнеса, использующего корпоративных AI-ассистентов, это вопрос непрерывности операций — одна удачная атака может парализовать работу целого отдела. Провайдеры LLM-API, такие как OpenAI или Google, также сталкиваются с этой проблемой, поскольку злоумышленники могут использовать их API для бесплатного или дешёвого получения вычислительных ресурсов.

В России и странах СНГ, где активно развиваются собственные LLM-решения, например YandexGPT или GigaChat, проблема также актуальна. Локальные модели могут быть менее защищены, чем западные аналоги, поэтому разработчикам следует уделять особое внимание безопасности. Кроме того, в условиях экономии ресурсов, когда компании оптимизируют расходы на ИИ, атаки, приводящие к неоправданному расходу токенов, наносят двойной ущерб.

Что будет дальше

Ожидается, что атаки на LLM будут становиться всё более изощрёнными. С развитием мультимодальных моделей, которые обрабатывают не только текст, но и изображения, аудио и видео, появляются новые возможности для ресурсоёмких промптов. Например, злоумышленник может попросить модель проанализировать очень большой набор изображений или сгенерировать длинное видео, что потребует огромных вычислительных затрат. Кроме того, интеграция LLM в различные бизнес-процессы создаёт новые поверхности атаки, которые необходимо учитывать.

Однако вместе с ростом угроз развиваются и методы защиты. Исследователи работают над созданием специализированных инструментов для обнаружения ресурсоёмких промптов, а также над улучшением архитектуры моделей, чтобы они могли самостоятельно ограничивать потребление ресурсов. Важно, чтобы компании не останавливались на достигнутом и постоянно обновляли свои стратегии безопасности в соответствии с новыми вызовами.