Взлом OpenCode Console: утечка API-ключей и списания у пользователей

Атакующие похитили API-ключи части пользователей OpenCode Console и использовали их для доступа к сервисам OpenAI, Anthropic и Google. Во время расследования команда столкнулась с тем, что обычные ИИ-модели отказывались анализировать вредоносный код.

Взлом OpenCode привёл к расходам на сотни долларов и вскрыл проблему ИИ-защиты

У части пользователей OpenCode Console утекли API-ключи для подключения к ИИ-сервисам. После взлома владельцы аккаунтов заметили неожиданные расходы: сотни долларов, а в отдельных случаях больше $1 000. Команда OpenCode сообщила, что инцидент затронул 1,4% пользователей Console.

Разработчики столкнулись и с другой проблемой: ИИ-модели, помогавшие расследовать атаку, начали отказываться анализировать вредоносный код. Защитные фильтры срабатывали на материалы, которые специалистам как раз и требовалось изучить.

Что взломали: Console, а не приложение OpenCode

OpenCode используется как открытый ИИ-помощник для программирования. Но в этой истории важно различать сам инструмент и онлайн-сервис OpenCode Console, через который пользователи подключают внешних провайдеров моделей.

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

Сооснователь проекта Дакс Раад отдельно уточнил: речь идёт об OpenCode Console, а не о самом OpenCode. Ключи пользователей локального приложения не поступают команде. Поэтому переносить сообщение об утечке на всех, кто установил OpenCode или работает с ним из командной строки, неправильно.

Откуда взялись списания и что с возвратами

API-ключ позволяет обращаться к модели от имени владельца аккаунта. Если им воспользуется посторонний, запросы будут учитываться как использование этого аккаунта. Именно поэтому утечка таких ключей опасна прямыми расходами на генерацию.

В исходной публикации сообщается об уведомлениях о расходах в OpenAI, Anthropic и Google, а также о блокировке скомпрометированных ключей со стороны Anthropic и Google.

Со стороны OpenAI Тибо Соттьо сообщил, что команда помогла пользователям OpenCode восстановить работу с API OpenAI и вернуть кредиты, израсходованные во время атаки. Это сообщение относится именно к клиентам API OpenAI; оно не означает, что один провайдер возмещает расходы во всех остальных сервисах.

Почему ИИ отказался помогать расследованию

Дакс Раад описал неприятный эпизод работы с моделями: сначала они помогали, а затем начали отказываться продолжать анализ. Позднее команда получила доступ к Daybreak Blue, после чего ситуация улучшилась.

Это специальный режим доступа для защитной работы с киберугрозами. Представитель OpenAI предложил командам запрашивать его заранее, до столкновения с реальным инцидентом.

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

У Hugging Face уже была похожая история

В июльском отчёте об инциденте Hugging Face описала тот же конфликт. Коммерческие модели блокировали запросы с командами атаки, полезными нагрузками и другими следами вторжения. Для расследования компания запустила открытую модель GLM-5.2 на собственной инфраструктуре.

Команда анализировала журнал из более чем 17 000 событий. Локальный запуск позволил продолжить работу без отказов внешнего API и не передавать за пределы компании данные атакующего и упомянутые в них учётные данные.

Для пользователя OpenCode главный вопрос сейчас практический: хранились ли его ключи в Console и пришло ли уведомление от команды. Для разработчиков ИИ-инструментов этот случай добавляет ещё одну задачу: заранее подготовить средства расследования, которые смогут работать с реальными следами атаки.

Исходная публикация: Home of Magery. Заявления OpenCode, OpenAI и отчёт Hugging Face приведены по ссылкам в статье.