Специалист по информационной безопасности Бенджамин Флеш обнаружил серьезную уязвимость в API ChatGPT, которая позволяет злоумышленникам проводить DDoS-атаки на целевые веб-сайты. Особенность этой уязвимости заключается в том, что для организации атаки достаточно всего одного HTTP-запроса к API чат-бота.
Механизм эксплуатации уязвимости
Уязвимость обнаружена в эндпоинте API https://chatgpt.com/backend-api/attributions, который отвечает за получение данных о веб-источниках, упомянутых в ответах ChatGPT. Основная проблема заключается в отсутствии должной валидации и ограничений при обработке списка URL-адресов в параметре urls.
Технические особенности атаки
При эксплуатации уязвимости злоумышленник может отправить единственный POST-запрос, содержащий множество слегка модифицированных URL-адресов, указывающих на один и тот же ресурс. API ChatGPT обрабатывает каждый URL как уникальный, что приводит к генерации множественных запросов к целевому сайту через краулер ChatGPT-User.
Масштаб потенциальной угрозы
По данным исследователя, один API-запрос может быть амплифицирован до 20-5000 запросов в секунду к целевому сайту. Важно отметить, что запросы осуществляются с различных IP-адресов через прокси Cloudflare, что затрудняет блокировку атаки традиционными методами защиты.
Недостатки системы безопасности
В ходе исследования были выявлены следующие критические упущения в системе безопасности API ChatGPT:
- Отсутствие механизма дедупликации URL-адресов
- Отсутствие ограничений на количество URL в запросе
- Уязвимость к инъекциям промптов
- Недостаточный контроль частоты запросов к одному домену
Несмотря на многочисленные попытки исследователя сообщить об уязвимости через различные каналы связи, включая BugCrowd, электронную почту команды безопасности OpenAI, Microsoft и HackerOne, проблема остается нерешенной. Данная ситуация подчеркивает необходимость более тщательного подхода к безопасности при разработке и внедрении систем искусственного интеллекта, особенно когда речь идет о публично доступных API.