Атака відмови в обслуговуванні AI
Launch a denial-of-wallet attack against an unprotected AI API.
Що таке Атака відмови в обслуговуванні AI?
AI-сервіси споживають обчислювальні ресурси з швидкістю, яка робить традиційну економіку відмови в обслуговуванні дешевою в порівнянні. Один складний промпт до великої мовної моделі може коштувати в 100-1000 разів більше для обробки, ніж стандартний вебзапит, що робить AI API особливо вразливими до атак вичерпання ресурсів. У 2024 році кілька організацій повідомили про інциденти 'denial-of-wallet', де зловмисники експлуатували AI-ендпоінти для генерації п'яти- та шестизначних хмарних рахунків протягом годин. У цій симуляції ви виявляєте AI-ендпоінт API, відкритий вашою організацією. Ви формуєте серію промптів, розроблених для максимізації споживання ресурсів: надзвичайно довгі вводи, що випробовують ліміти контекстного вікна, рекурсивні запити на генерацію, що створюють масивні виводи, та паралельні запити, що перевантажують інфраструктуру інференсу. Ви спостерігаєте в реальному часі, як панель хмарних витрат зростає з доларів до тисяч, час відповіді API погіршується з мілісекунд до хвилин, а легітимні користувачі втрачають доступ до AI-сервісу повністю. Вправа демонструє як зовнішні атаки, де неавторизована сторона виявляє та зловживає ендпоінтом, так і сценарії внутрішнього зловживання, де авторизований користувач випадково чи навмисно провокує надмірне споживання. Ви навчитеся впроваджувати багаторівневий захист: валідацію довжини вводу, ліміти токенів виводу, обмеження швидкості на рівні користувача та сесії, ліміти витрат та оповіщення, чергу запитів з пріоритетними рівнями та панелі моніторингу, що виявляють аномалії споживання до того, як витрати вийдуть з-під контролю. Симуляція робить фінансовий вплив відчутним, показуючи саме те, як кожен захисний контроль зменшує радіус ураження атаки необмеженого споживання.
Що ви дізнаєтесь у Атака відмови в обслуговуванні AI
- Визначити вектори вичерпання ресурсів, специфічні для AI API, включаючи зловживання контекстним вікном, рекурсивну генерацію та флуд паралельних запитів
- Простежити шлях ескалації витрат від сформованих промптів через споживання обчислень до впливу на хмарний рахунок
- Застосовувати обмеження швидкості, валідацію вводу та ліміти токенів виводу до ендпоінтів AI-сервісів для запобігання необмеженому споживанню
- Оцінити бюджетний контроль, оповіщення про витрати та механізми автоматичного дроселювання, що обмежують витрати на AI-сервіс під час атак
- Розрізняти легітимні патерни високого споживання AI та адверсаріальні спроби вичерпання ресурсів за допомогою моніторингу та виявлення аномалій
Атака відмови в обслуговуванні AI — Кроки навчання
-
Налаштування сканування
Боб відкриває інформаційну панель сканування облікових даних – інструмент, який відстежує загальнодоступні сховища коду на наявність відкритих ключів API, маркерів і хмарних секретів. Він збирається націлитися на громадську організацію GitHub CypherPeak Technologies.
-
Запуск сканування
Боб вводить URL-адресу організації CypherPeak на GitHub у сканер і починає перевірку облікових даних у всіх їхніх загальнодоступних сховищах.
-
Критичний висновок
Сканер проаналізував 847 сховищ і 12 403 останні коміти. Серед шести знайдених секретів один виділяється: робочий ключ OpenAI API, відкритий у конфігураційному файлі, закріпленому лише кілька хвилин тому для проекту шлюзу ШІ CypherPeak.
-
Перевірка коміту
Боб переходить до вихідного коміту, щоб перевірити відкритий обліковий запис у його вихідному контексті. GitHub commit diff показує повний файл конфігурації з ключем API у вигляді звичайного тексту.
-
Розкритий ключ API
Різниця фіксації розкриває робочий ключ API, жорстко закодований безпосередньо у файлі конфігурації Python. Цей ключ надає повний доступ до API платформи штучного інтелекту CypherPeak без обмежень швидкості чи бюджету.
-
Підготовка атаки
Боб відкриває термінал, щоб перевірити, чи викрадений ключ API досі активний. Якщо ключ працює і не має обмеження швидкості, він може запустити атаку на відмову в гаманці, щоб виснажити весь бюджет ШІ CypherPeak.
-
Перевірка вкраденого ключа
Боб надсилає простий запит API, використовуючи вкрадений ключ, щоб перевірити його роботу. Успішна відповідь без заголовків обмеження швидкості підтвердить, що ключ можна використовувати.
-
Ключові роботи
API відповідає успішно. Відповідь підтверджує, що ключ дійсний – і важливо те, що обидва поля rate_limit і budget_cap мають значення null . На цьому ключі немає жодного захисту.
-
Початок атаки
Ключ працює і без захисту. Боб запускає автоматизований сценарій атаки, який надсилає сотні ретельно розроблених рекурсивних підказок розширення, кожен з яких призначений для споживання максимум 32 768 токенів на запит, через 50 одночасних потоків.
-
Атака триває
Сценарій атаки ініціалізує 50 одночасних робочих потоків, кожен з яких надсилає рекурсивні підказки розширення при максимальному виведенні маркера. За кілька секунд вартість сягає 12,40 доларів США за хвилину – понад 700 доларів США за годину.