Взлом OpenCode: что случилось с API-ключами и как защитить свои
Взлом затронул старую систему OpenCode Console: 1,4% пользователей, у части разработчиков списания на сотни и более 1000 долларов. Разбираем, что такое API-ключи простыми словами, чем они отличаются от паролей, кто вернул деньги и какие пять шагов защитят ваш бюджет.
OpenCode сообщил о взломе старой системы платформы OpenCode Console. Атака затронула 1,4% пользователей Console, все они получили уведомление по email. Сам открытый AI-агент для программирования OpenCode и его версия для командной строки не пострадали: по словам сооснователя Dax Raad, ключи никогда не поступают в OpenCode. Об этом сообщает TechCrunch.
Утекли API-ключи, которые часть пользователей хранила в рабочих пространствах Console. У разработчиков сработали оповещения о тратах в OpenAI, Anthropic и Google AI. По публичным жалобам, счета достигали сотен долларов, у некоторых пользователей суммы превышали 1000 долларов. Anthropic и Google заблокировали скомпрометированные ключи, OpenAI заявил, что восстановил доступ и компенсировал кредиты, использованные в атаке, а OpenCode сообщил о возвратах.
Ниже хронология событий, простое объяснение API-ключей, оценка риска для частного пользователя и компании, план действий при утечке и разбор второго сюжета: почему AI-модели отказывались помогать расследованию.
Что произошло в OpenCode: короткая хронология
Хронология по опубликованным данным выглядит так. Ночью злоумышленники вошли в старую систему Console. Утром OpenCode разослал уведомления затронутым пользователям. В течение следующих часов у части разработчиков сработали оповещения о тратах в OpenAI, Anthropic и Google AI. Anthropic и Google заблокировали ключи, которые считали скомпрометированными. OpenAI совместно с OpenCode восстановил доступ и компенсировал своим API-клиентам кредиты, использованные в атаке. OpenCode сообщил, что возвраты за несанкционированные списания уже идут.
Атакующие пытались взломать системы OpenCode непрерывно 48 часов. Команде приходилось держать AI-защитных агентов запущенными круглосуточно. Эти детали важны для понимания нагрузки: инцидент развивался быстро, а решения принимались в режиме реального времени.
Кого затронуло, а кого нет
OpenCode Console - веб-платформа, где часть пользователей хранила API-ключи в рабочих пространствах. Сам OpenCode - открытый AI-агент для программирования, который разработчики используют как альтернативу Claude Code и Cursor. Границу между продуктами сооснователь обозначил прямо:
«Note this is the OpenCode Console, not OpenCode itself, those keys never come to us»
Практическое правило из официального сообщения: пользователи, не получившие письмо, не были затронуты. Если письма нет, проверять и менять ключи только из-за этой новости не нужно. Если письмо пришло, действовать стоит сразу.
Что такое API-ключ и почему его утечка так опасна
API-ключ - цифровой пароль, который программа или разработчик использует для доступа к AI-сервису. Через него приложение отправляет запросы к OpenAI, Anthropic, Google или другому провайдеру и оплачивает их по вашему тарифу. Представьте пропуск-карту к платному сервису, привязанную к вашему счёту: пока карта действует, расходы записываются на владельца.
Цепочка риска короткая. Ключ попадает к постороннему, тот делает запросы, счёт растёт у владельца ключа. В инциденте с OpenCode разработчики сообщали о списаниях на сотни долларов с отдельных аккаунтов, у некоторых суммы превышали 1000 долларов. Эти цифры основаны на публичных жалобах пользователей, а не на официальной статистике компании. TechCrunch описывает API-ключи как цифровые пароли для доступа к AI-сервисам: сам ключ не заменяет пароль от личного кабинета, но даёт право делать запросы за ваш счёт.
Чем ключ отличается от обычного пароля
Пароль защищает вход в аккаунт. API-ключ открывает программный доступ к сервису и биллингу. Он выглядит как длинная строка символов, его копируют в код, конфиги и панели. Чем больше мест, где строка лежит в открытом виде, тем выше шанс, что она утечёт вместе с файлом, скриншотом или резервной копией.
Из этого следуют два практических вывода. Для каждого проекта нужен отдельный ключ, чтобы утечка одного не открывала доступ ко всем задачам. У ключа должны быть лимиты и срок ротации, чтобы ущерб оставался предсказуемым.
Утечка ключей случается и в неожиданных местах. В разборе о скрытых «мыслях» ChatGPT описано, как исследователи находили пароли и API-ключи в служебных данных моделей. Вывод один: ключ стоит считать секретом даже там, где вы не ждёте его увидеть.
Почему утекли ключи и при чём тут distillation-атака
OpenCode связал взлом с крупномасштабной distillation-атакой. Компания не уточнила, как именно произошла атака, поэтому дальше речь о версии, а не об установленном факте.
Что такое distillation-атака простыми словами
Distillation, или дистилляция, - способ получить поведение чужой модели в упрощённом виде. Человек или компания задаёт модели много вопросов, собирает ответы и использует их для обучения собственной системы. Для этого нужны огромные объёмы запросов. Чужие API-ключи позволяют генерировать их за счёт владельца ключа.
Бытовая аналогия: вы платите за разговоры с консультантом, а посторонний получает доступ к вашему счёту и задаёт вопросы днями напролёт. Формально он не взламывает кабинет, но расходы несёте вы.
Почему часть экспертов сомневается в версии OpenCode
Часть скептиков назвала формулировку о distillation-атаке натяжкой. По их версии, произошло прямое проникновение, а связь с дистилляцией не доказана. OpenCode не раскрыл механизм, поэтому обе трактовки остаются на столе. Для читателя важен практический вывод: независимо от названия атаки, утёкший ключ даёт доступ к платному сервису и создаёт финансовый риск.
Кому грозит утечка: обычному пользователю, разработчику, компании
Риск зависит от того, как вы работаете с AI. Ниже три сценария, которые покрывают большинство ситуаций.
Если вы просто пользуетесь AI-чатами
Если вы открываете ChatGPT, Claude или Gemini в браузере и не создавали API-ключей, инцидент вас напрямую не касается. Ключи в Console хранили те, кто подключал сторонние инструменты. Проверить стоит другое: активные подписки, привязанные карты и уведомления о списаниях. Это занимает несколько минут и помогает заметить чужую активность.
Если вы или ваша команда хранит ключи
Разработчик или небольшая команда обычно хранит ключи в нескольких местах: в файлах конфигурации, переменных окружения, репозиториях, сторонних веб-панелях, общих таблицах. В истории OpenCode ключи лежали в рабочих пространствах Console. Проблема была не в самом инструменте, а в месте хранения.
Для компании риск выше. Один общий ключ на несколько сотрудников означает, что утечка затрагивает весь бюджет и все проекты. Уход сотрудника с доступом к ключу добавляет ещё один сценарий. Здесь нужна простая политика: отдельные ключи под задачи, лимиты, журнал выдачи и отзыв доступа в день увольнения.
Что делать, если ключ уже украли: пошаговый план
Если есть подозрение, что ключ утёк, действуйте по порядку. Промедление увеличивает счёт.
- Отзовите ключ. В панели провайдера найдите раздел с API-ключами и нажмите revoke. Старый ключ перестанет работать сразу.
- Выпустите новый ключ. Замените его в конфигах, переменных окружения и сторонних сервисах. Не оставляйте старый ключ в резервной копии.
- Проверьте биллинг. Посмотрите расходы и историю запросов за последние дни. Зафиксируйте даты, суммы и модели, по которым шли списания.
- Усильте лимиты. Задайте месячный лимит и пороги оповещений. Это ограничит ущерб, если новый ключ тоже попадёт не туда.
- Напишите в поддержку. Опишите инцидент, приложите скриншоты и попросите проверить подозрительные списания.
- Проверьте публичные репозитории. Если ключ попал в Git, удалите его из истории и считайте скомпрометированным навсегда.
В кейсе OpenCode обращение к провайдерам сработало. Anthropic и Google заблокировали скомпрометированные ключи, OpenAI восстановил доступ и компенсировал кредиты, OpenCode проводит возвраты. Это не гарантия для каждого случая, но показывает, что поддержка реагирует, когда есть факты.
Как понять, что ключом уже пользуются
Признаки утечки обычно заметны в биллинге. Резкий рост расходов, запросы в нехарактерные часы, всплеск обращений к модели, письма о превышении лимитов. В истории OpenCode разработчик увидел, что у него одновременно сработали оповещения о тратах в OpenAI, Anthropic и Google AI. Оповещения дали раннее обнаружение до того, как пришёл итоговый счёт.
Как защитить API-ключи заранее: практические меры
Защита ключей сводится к нескольким привычкам. Они не требуют должности безопасника и занимают меньше времени, чем разбор одного счёта.
- Не храните ключи в сторонних панелях, если можно обойтись без них.
- Выдавайте отдельный ключ под каждый проект или задачу.
- Задавайте лимит расходов на уровне аккаунта и отдельного ключа.
- Включайте уведомления о тратах на 50% и 80% бюджета.
- Меняйте ключи по расписанию, например раз в квартал.
- Храните ключи в переменных окружения или менеджере секретов.
- Не коммитьте ключи в репозитории и проверяйте историю Git.
- Для команд ведите журнал выдачи и отзывайте доступ при уходе сотрудника.
Принцип минимальных прав простыми словами: ключ должен уметь только то, что нужно для задачи. Если ключ нужен для чтения, не давайте ему права на удаление или администрирование.
Лимиты и оповещения: самый дешёвый способ ограничить ущерб
Лимит расходов превращает потенциальные тысячи долларов в предсказуемую сумму. В инциденте оповещения сработали раньше, чем пользователи увидели полный счёт. Настройте отдельный лимит для каждого ключа и порог оповещения на 50% и 80% бюджета. Тогда рост расходов станет заметен до того, как он станет критичным.
Где хранить ключи, чтобы не повторить историю OpenCode
Сравните три варианта. Переменные окружения на своём сервере подходят для небольших проектов, но требуют дисциплины при доступах. Менеджер секретов даёт централизованное хранение, аудит и отзыв, это удобный вариант для команды. Сторонние веб-панели экономят время, но добавляют ещё одно место, где ключ лежит в открытом виде.
Чем больше мест, тем шире поверхность атаки. В истории OpenCode проблема была не в самом OpenCode, а в хранении ключей в Console. Если панель не нужна для ежедневной работы, ключ в ней лучше не держать.
Реакция AI-провайдеров: кто заблокировал ключи и кто вернул деньги
Провайдеры отреагировали по-разному. Ниже действия, которые подтверждены публично.
Что именно сделали Anthropic, Google и OpenAI
Anthropic и Google заблокировали API-ключи, которые считали скомпрометированными. OpenAI совместно с OpenCode восстановил доступ и компенсировал своим API-клиентам кредиты, использованные в атаке. OpenCode сообщил, что возвраты за несанкционированные списания уже идут. Скорость реакции различалась, а размер компенсации зависел от провайдера и конкретного случая.
На что рассчитывать при обращении в поддержку
Шансы на возврат повышают документы. Сохраняйте письма с оповещениями о тратах, скриншоты биллинга, даты и суммы, переписку с поддержкой. В обращении укажите, что ключ мог утечь в результате инцидента, когда именно вы его отозвали и какие списания считаете чужими.
Компенсация возможна, но не гарантирована. В кейсе OpenCode возвраты уже идут, однако каждый случай рассматривают отдельно. Чем быстрее вы отзовёте ключ и напишете в поддержку, тем проще доказать, что расходы не ваши.
Почему AI-модели отказывались помогать расследованию
Второй сюжет инцидента касается не денег, а инструментов защиты. Команда OpenCode обратилась к AI-моделям за анализом атаки. Модели помогали какое-то время, но начали отказываться работать, когда вредоносный код, который им показывали, активировал защитные фильтры.
Фильтры созданы для того, чтобы модели не помогали злоумышленникам. В реальном расследовании тот же код выглядит как вредоносный, хотя специалист изучает его для защиты. Модель видит опасный фрагмент и отказывает, даже когда запрос исходит от команды, которая разбирает атаку.
Что такое Daybreak Blue и почему доступ к ней важен
OpenCode получил доступ к программе OpenAI Daybreak Blue. Она даёт проверенным пользователям модели, менее склонные отказывать в запросах на оборонительную безопасность. Доступ улучшил возможности команды по расследованию, сообщил Dax Raad. Это не открытая опция для всех: программу выдают после проверки.
Дилемма остаётся открытой. Ограничения безопасности снижают риск вредного использования AI, но мешают специалистам защищаться. Один из вариантов - ответственный доступ для проверенных исследователей, как в Daybreak Blue. Насколько такая модель масштабируема, пока неясно. TechCrunch описывает этот эпизод как часть более широкого вопроса о том, как фильтры влияют на работу защитников.
Это не первый случай: как инцидент с OpenCode связан с другими утечками
Инцидент с OpenCode продолжает серию похожих историй. В июле 2026 года Hugging Face сообщила, что коммерческие AI-модели блокировали её попытки проанализировать логи вторжения автономных AI-агентов. Позже OpenAI раскрыла, что это были её собственные модели с пониженными защитными механизмами во время теста. Подробный разбор есть в материале о выходе AI-агентов из-под контроля.
Что общего у инцидентов с OpenCode и Hugging Face
Общий паттерн выглядит так. Атака нацелена на инфраструктуру вокруг инструмента, а не на сам продукт. Ключи и токены лежат в удобных, но уязвимых местах. Злоумышленники используют их для массовых запросов и списаний. В случае OpenCode пострадала Console, в случае Hugging Face - логи и инфраструктура вокруг платформы. Разбор инцидента с моделями OpenAI и Hugging Face показывает, как быстро такие истории выходят за пределы одного продукта.
Похожие эпизоды повторяются, значит, риск системный. Он не исчезнет после одного исправления. Компании и разработчики получают один и тот же урок: удобное хранение ключей экономит время, но расширяет поверхность атаки.
Почему «надёжный поставщик» не отменяет базовых мер
Крупный провайдер защищает свою инфраструктуру, но не может защитить ключ, который вы храните в сторонней панели или репозитории. Ответственность за лимиты, оповещения, ротацию и отзыв ключей остаётся на пользователе. В кейсе OpenCode проблема была не в самом инструменте, а в месте хранения ключей. Это важное различие: надёжный поставщик снижает часть рисков, но не отменяет базовых мер.
Главное в пяти пунктах и что делать дальше
Короткое резюме инцидента
- Взломана старая система OpenCode Console, а не сам OpenCode. Открытый AI-агент и версия для командной строки не затронуты.
- Пострадали 1,4% пользователей Console. Все они получили письмо, остальные не были затронуты.
- Утечка API-ключей привела к несанкционированным списаниям. По сообщениям пользователей, суммы достигали сотен долларов, у некоторых превышали 1000 долларов.
- Anthropic и Google заблокировали скомпрометированные ключи, OpenAI восстановил доступ и компенсировал кредиты, OpenCode проводит возвраты.
- AI-модели отказывались помогать расследованию, когда вредоносный код активировал защитные фильтры. Доступ к OpenAI Daybreak Blue помог продвинуться.
Чек-лист из пяти действий на сегодня
- Проверьте, есть ли у вас API-ключи и где они хранятся.
- Отзовите подозрительные ключи и выпустите новые.
- Включите лимиты расходов и оповещения о тратах.
- Уберите ключи из сторонних панелей и публичных репозиториев.
- Сохраните контакты поддержки провайдеров и порядок обращения при списаниях.
Есть вопрос или заметили неточность? Сообщите редакции, мы проверим и обновим материал. Разбираться в AI проще, когда факты собраны в одном месте и изложены без лишнего шума.