Описание
Неограниченное потребление ресурсов (Unbounded Consumption) относится к процессу, в котором большая языковая модель (LLM) генерирует вывод на основе входных запросов или промптов. Инференс (inference) — критически важная функция LLM, заключающаяся в применении усвоенных закономерностей и знаний для формирования релевантных ответов или прогнозов.
Атаки, направленные на нарушение работы сервиса, истощение финансовых ресурсов цели или даже кражу интеллектуальной собственности путём клонирования поведения модели, для успеха опираются на общий класс уязвимостей безопасности. Неограниченное потребление ресурсов возникает, когда приложение LLM позволяет пользователям выполнять избыточные и неконтролируемые операции инференса, что ведёт к таким рискам, как отказ в обслуживании (DoS), экономические потери, кража модели и деградация сервиса. Высокие вычислительные требования LLM, особенно в облачных средах, делают их уязвимыми к злоупотреблению ресурсами и несанкционированному использованию.
Типовые примеры уязвимости
- Поток входных данных переменной длины (Variable-Length Input Flood). Злоумышленники могут перегрузить LLM многочисленными входными данными разной длины, эксплуатируя неэффективность обработки. Это может истощить ресурсы и потенциально сделать систему неотзывчивой, существенно снижая доступность сервиса.
- Отказ в оплате (Denial of Wallet, DoW). Инициируя большой объём операций, злоумышленники эксплуатируют модель оплаты за использование облачных AI-сервисов, создавая для провайдера непосильную финансовую нагрузку и угрозу финансового краха.
- Непрерывное переполнение входных данных (Continuous Input Overflow). Непрерывная отправка входных данных, превышающих контекстное окно LLM, может приводить к избыточному использованию вычислительных ресурсов, деградации сервиса и нарушению его работы.
- Ресурсоёмкие запросы. Отправка необычно требовательных запросов со сложными последовательностями или замысловатыми языковыми конструкциями может истощать ресурсы системы, приводя к длительной обработке и возможным сбоям.
- Извлечение модели через API (Model Extraction). Злоумышленники могут обращаться к API модели с тщательно подобранными входными данными и с применением техник промпт-инъекции, чтобы собрать достаточно ответов для воспроизведения части модели или создания теневой модели (shadow model). Это не только создаёт риск кражи интеллектуальной собственности, но и подрывает целостность исходной модели.
- Функциональное воспроизведение модели (Functional Model Replication). Использование целевой модели для генерации синтетических обучающих данных позволяет злоумышленникам дообучить другую базовую модель и создать её функциональный эквивалент. Это позволяет обойти традиционные методы извлечения на основе запросов и создаёт значительные риски для проприетарных моделей и технологий.
- Атаки по сторонним каналам (Side-Channel Attacks). Злоумышленники могут эксплуатировать техники фильтрации входных данных LLM для проведения атак по сторонним каналам, получая веса модели и сведения об её архитектуре. Это может нарушить защищённость модели и привести к её дальнейшей эксплуатации.
Меры предотвращения и смягчения
- Валидация входных данных. Внедрите строгую валидацию входных данных, чтобы они не превышали разумных ограничений по размеру.
- Ограничение раскрытия логитов и логарифмов вероятностей. Ограничьте или маскируйте раскрытие параметров logit_bias и logprobs в ответах API. Предоставляйте только необходимую информацию, не раскрывая подробных вероятностей.
- Ограничение частоты запросов (rate limiting). Применяйте ограничение частоты и пользовательские квоты, чтобы ограничить число запросов от одного источника за определённый период времени.
- Управление распределением ресурсов. Динамически отслеживайте и управляйте распределением ресурсов, чтобы ни один пользователь или запрос не мог потреблять избыточные ресурсы.
- Тайм-ауты и регулирование нагрузки (throttling). Устанавливайте тайм-ауты и регулируйте обработку ресурсоёмких операций, чтобы предотвратить длительное потребление ресурсов.
- Изолированная среда (песочница). Ограничьте доступ LLM к сетевым ресурсам, внутренним сервисам и API. Это особенно значимо для всех типовых сценариев, поскольку охватывает внутренние риски и угрозы (insider). Кроме того, это определяет, в каком объёме приложение LLM имеет доступ к данным и ресурсам, и тем самым служит ключевым механизмом контроля для снижения или предотвращения атак по сторонним каналам.
- Всестороннее журналирование, мониторинг и обнаружение аномалий. Непрерывно отслеживайте использование ресурсов и ведите журналы, чтобы обнаруживать необычные паттерны потребления ресурсов и реагировать на них.
- Водяные знаки (watermarking). Внедрите механизмы водяных знаков, позволяющие встраивать метки в вывод LLM и обнаруживать его несанкционированное использование.
- Плавная деградация (graceful degradation). Проектируйте систему так, чтобы при высокой нагрузке она деградировала плавно, сохраняя частичную функциональность, а не отказывала полностью.
- Ограничение очереди действий и надёжное масштабирование. Введите ограничения на число действий в очереди и общее число действий, используя динамическое масштабирование и балансировку нагрузки для обработки меняющегося спроса и обеспечения стабильной производительности.
- Обучение устойчивости к состязательным атакам (adversarial robustness training). Обучайте модели обнаруживать и нейтрализовывать состязательные запросы и попытки извлечения.
- Фильтрация глитч-токенов (glitch tokens). Составляйте списки известных глитч-токенов и проверяйте вывод перед добавлением его в контекстное окно модели.
- Контроль доступа. Внедрите строгий контроль доступа, включая ролевую модель доступа (RBAC) и принцип наименьших привилегий, чтобы ограничить несанкционированный доступ к репозиториям моделей LLM и средам обучения.
- Централизованный реестр ML-моделей. Используйте централизованный реестр или каталог ML-моделей, применяемых в промышленной эксплуатации, обеспечивая надлежащее управление и контроль доступа.
- Автоматизированное развёртывание MLOps. Внедрите автоматизированное развёртывание MLOps с процессами управления, отслеживания и согласования, чтобы ужесточить контроль доступа и развёртывания в инфраструктуре.
Примеры сценариев атак
- Сценарий №1: неконтролируемый размер входных данных. Злоумышленник отправляет приложению LLM, обрабатывающему текстовые данные, необычно большой объём входных данных, что приводит к избыточному использованию памяти и нагрузке на ЦП и потенциально к сбою системы или значительному замедлению сервиса.
- Сценарий №2: повторяющиеся запросы. Злоумышленник отправляет в API LLM большой объём запросов, вызывая избыточное потребление вычислительных ресурсов и делая сервис недоступным для легитимных пользователей.
- Сценарий №3: ресурсоёмкие запросы. Злоумышленник составляет специальные входные данные, рассчитанные на запуск наиболее вычислительно затратных процессов LLM, что приводит к длительной загрузке ЦП и возможному отказу системы.
- Сценарий №4: отказ в оплате (DoW). Злоумышленник генерирует избыточное число операций, эксплуатируя модель оплаты за использование облачных AI-сервисов и создавая для провайдера сервиса непосильные расходы.
- Сценарий №5: функциональное воспроизведение модели. Злоумышленник использует API LLM для генерации синтетических обучающих данных и дообучает другую модель, создавая функциональный эквивалент и обходя ограничения традиционного извлечения модели.
- Сценарий №6: обход фильтрации входных данных системы. Злоумышленник обходит техники фильтрации входных данных и преамбулы LLM, чтобы провести атаку по стороннему каналу и передать сведения о модели на подконтрольный ему удалённый ресурс.
Связанные фреймворки и таксономии
- MITRE CWE-400: Uncontrolled Resource Consumption — MITRE Common Weakness Enumeration (https://cwe.mitre.org/data/definitions/400.html)
- AML.TA0000 ML Model Access: Mitre ATLAS (https://atlas.mitre.org/tactics/AML.TA0000) и AML.T0024 Exfiltration via ML Inference API (https://atlas.mitre.org/techniques/AML.T0024) — MITRE ATLAS
- AML.T0029 - Denial of ML Service — MITRE ATLAS (https://atlas.mitre.org/techniques/AML.T0029)
- AML.T0034 - Cost Harvesting — MITRE ATLAS (https://atlas.mitre.org/techniques/AML.T0034)
- AML.T0025 - Exfiltration via Cyber Means — MITRE ATLAS (https://atlas.mitre.org/techniques/AML.T0025)
- OWASP Machine Learning Security Top Ten - ML05:2023 Model Theft — OWASP ML Top 10 (https://owasp.org/www-project-machine-learning-security-top-10/docs/ML05_2023-Model_Theft.html)
- API4:2023 - Unrestricted Resource Consumption — OWASP Web Application Top 10 (https://owasp.org/API-Security/editions/2023/en/0xa4-unrestricted-resource-consumption/)
- OWASP Resource Management — OWASP Secure Coding Practices (https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/)