В ночь на 16 октября злоумышленник получил доступ к устаревшей системе компании OpenCode, что, по заявлению компании, могло привести к раскрытию API-ключей сторонних AI-провайдеров — OpenAI, Anthropic и Google, — сохранённых пользователями в сервисе OpenCode Console. Компания сообщила, что затронуты 1,4 % пользователей Console, у которых были подключены внешние провайдеры. Всем затронутым направлены уведомления с требованием немедленно отозвать скомпрометированные ключи на стороне провайдера и заменить их. Абсолютное число пострадавших не раскрыто.
Хронология и границы инцидента
По данным OpenCode, несанкционированный доступ произошёл в ночь на 16 октября. Утром 17 октября компания разослала затронутым пользователям письмо с темой «Action Required: Potential provider key breach». В тот же день в публикации на X компания уточнила: те, кто не получил письмо, не затронуты.
Сооснователь OpenCode Дакс Раад подчеркнул, что инцидент касается именно OpenCode Console, а не самого приложения OpenCode. Согласно документации, локальные версии — CLI и десктопное приложение — хранят API-ключи провайдеров в локальной базе данных SQLite на машине пользователя, и эти ключи «никогда не передаются» на серверы OpenCode.
Console, напротив, работает как размещённый сервис: пользователь вставляет ключ провайдера в рабочее пространство, а шлюз Console добавляет этот ключ к запросам при пересылке провайдеру, так что участники команды используют модели, не видя самого ключа. Именно эти хранимые на стороне Console ключи оказались в зоне риска.
Важная оговорка: OpenCode использует формулировку «ключи могли быть раскрыты» и не подтвердила, что какой-либо ключ был скопирован или использован злоумышленником. Компания также не раскрыла, что представляла собой «устаревшая система», каким способом был получен доступ и сколько ключей она содержала.
Незакрытые вопросы об охвате
Цифра 1,4 % — это заявление самой OpenCode, и абсолютное число пользователей остаётся неизвестным. Заявленная граница инцидента охватывает только пользователей Console с подключённым внешним провайдером. Однако в обсуждении на GitHub один из пользователей утверждает, что его ключ был отозван, хотя в его рабочем пространстве не было подключено ни одного стороннего провайдера. Это единичное неверифицированное сообщение, которое может не быть связано с данным инцидентом, но оно оставляет вопрос о точных границах компрометации открытым.
Связь с дистилляцией и продолжающиеся атаки
В публикации от 17 октября OpenCode охарактеризовала инцидент как «связанный с масштабной атакой дистилляции». Дистилляция — термин, которым AI-провайдеры обозначают кампании по массовому извлечению ответов модели для обучения конкурирующих систем. Anthropic ранее указывала, что подобные кампании используют сети поддельных аккаунтов, украденные платёжные данные и похищенные API-ключи.
Однако OpenCode не назвала конкретного злоумышленника и не объяснила техническую связь между взломом Console и предполагаемой кампанией дистилляции. Эту характеристику следует рассматривать как версию компании, а не как установленную атрибуцию.
18 октября Раад сообщил, что атакующие «непрерывно пытаются проникнуть в системы на протяжении последних 48 часов», добавив, что «побочный эффект — всё становится более защищённым».
Сообщения о несанкционированных расходах
Ряд вторичных источников передаёт заявления пользователей о финансовых потерях. По данным Dealroom, один пользователь сообщил о $281 несанкционированного использования OpenAI и $168 — Anthropic, другой оценил потери в $1 700. Notebookcheck передаёт заявления пользователей Reddit о $400 расходов на Anthropic и около €200 на Google. Эти суммы не подтверждены провайдерами и остаются пользовательскими заявлениями.
Практические рекомендации
API-ключ — это предъявительское удостоверение (bearer credential): любой, кто владеет копией, может выполнять тарифицируемые запросы от имени владельца до тех пор, пока провайдер не отзовёт ключ. Удаление ключа из Console не равнозначно его отзыву у провайдера. Лимиты бюджета Console также не защитят, поскольку Console контролирует только запросы, проходящие через собственный шлюз.
Для пользователей, чьи ключи были сохранены в Console:
- Отзовите ключ в панели управления провайдера и создайте новый. Инструкции доступны у OpenAI, Anthropic и Google.
- Обновите все приложения и скрипты, использовавшие старый ключ.
- Проверьте историю использования и биллинг у провайдера на предмет запросов, которые вы не совершали, как минимум начиная с 16 октября. OpenCode не уточнила, когда именно начался несанкционированный доступ.
- Установите лимиты расходов или оповещения на стороне провайдера и выделяйте отдельный ключ для каждого инструмента — это ограничивает ущерб от компрометации одного ключа и упрощает аудит.
Мы уже писали о связанных с OpenAI проблемах безопасности в контексте обзора киберугроз октября 2026.
Инцидент с OpenCode Console демонстрирует конкретный риск архитектуры, при которой сторонний сервис хранит предъявительские учётные данные от имени пользователя: компрометация одного промежуточного звена ставит под угрозу ключи сразу нескольких провайдеров. Приоритетное действие сейчас — ротация ключей на стороне провайдера, а не в Console. В долгосрочной перспективе стоит пересмотреть практику передачи API-ключей третьим сервисам и перейти на модели аутентификации, не требующие хранения секретов посредником, — например, OAuth-потоки с ограниченной областью действия.