
За одну неделю в октябре 2026 года произошли три крупные утечки. Пострадали популярный инструмент LiteLLM, хостинг Railway и сервис OpenCode. Во всех трёх случаях злоумышленники охотились за одним и тем же: ключами к OpenAI, Anthropic, Google и облачным сервисам.
Украденный ключ работает как ваша банковская карта в чужих руках. Им пользуются, а счёт приходит вам. Если вы подключали AI к своему сайту, боту или сервису, проверьте ключи сегодня. Ниже простая инструкция.
Что такое API-ключ и почему его крадут
API-ключ это длинная строка вроде sk-ant-... или sk-proj-.... Ваш сайт или бот показывает её сервису, например ChatGPT или Claude. Сервис видит ключ и понимает: это вы, и платите тоже вы.
По сути это банковская карта без ПИН-кода. Кто знает номер, тот и платит. Только платит не он, а вы.
Почему за этими ключами сейчас идёт охота:
- Это прямые деньги. С чужим ключом можно бесплатно пользоваться дорогими моделями или перепродавать доступ. Один украденный ключ может нагенерировать счёт на десятки тысяч долларов за сутки.
- Ключи покупают оптом. Некоторые компании используют чужие ключи, чтобы скачивать ответы больших моделей и обучать на них свои. Это называют дистилляцией. На такие ключи есть постоянный спрос.
- Ключи часто лежат рядом с другими секретами. Там же пароли от баз данных, доступы к облаку, ключи от платёжных систем. Украл одно, получил всё.
LiteLLM: отравленное обновление
LiteLLM это популярная программа-посредник. Через неё сайты и боты обращаются сразу к десяткам AI-сервисов. Её скачивают около 23 миллионов раз в неделю.
Что случилось. 21 октября злоумышленники выпустили от имени LiteLLM поддельную версию 1.107.0. Она провисела в PyPI и Docker около двух часов. За это время её скачали примерно 49 тысяч раз.
Это как если бы на заводе в пачки с лекарством подложили яд. Упаковка настоящая, производитель настоящий, а внутри отрава.
Что делала поддельная версия. Она собирала всё ценное на компьютере или сервере: пароли из браузеров, SSH-ключи, доступы к облаку, ключи от AI-сервисов. Ещё она оставляла «чёрный ход», чтобы злоумышленник мог вернуться в любой момент. Украденные ключи начали проверять уже через несколько часов.
С чего всё началось. В мае разработчики LiteLLM случайно выложили служебный ключ в открытый репозиторий на GitHub. Его никто не заменил. В октябре злоумышленник нашёл этот ключ и через него добрался до системы выпуска обновлений.
Мораль простая. Один забытый ключ пролежал полгода и привёл к заражённому обновлению, которое скачали десятки тысяч раз.
Все версии до 1.107.0 безопасны. Отдельно LiteLLM обещала 27 октября раскрыть ещё одну уязвимость. Если вы пользуетесь LiteLLM, следите за обновлениями.
Railway: взлом хостинга
Railway это облачная платформа, где разработчики запускают свои приложения. Пароли и ключи там хранятся в так называемых переменных окружения.
Что случилось. 21 октября Railway заметила подозрительную активность в системах, где хранятся эти переменные. По словам компании, злоумышленник мог получить к ним доступ и часть расшифровать.
Это как если бы взломали не вашу квартиру, а комнату консьержа, где висят запасные ключи от всех квартир дома.
Последствия. Railway попросила всех клиентов заменить все ключи и пароли. Деплои были остановлены примерно на 17 часов. Пользователи писали, что их ключи к AI-сервисам начали использовать ещё до официального предупреждения. По данным исследователей, с криптокошельков, ключи от которых хранились на Railway, вывели около $371 тысячи. Сама Railway эту связь не подтвердила.
Railway считает, что взлом был частью серии атак на хостинги ради ключей к AI-сервисам. За два дня до этого о похожем взломе сообщил хостинг Zeabur.
OpenCode: ключи из старой системы
OpenCode это популярный AI-помощник для программистов. У него есть веб-кабинет Console. Туда можно сохранить свои ключи от OpenAI, Anthropic или Google, чтобы вся команда работала через них.
Что случилось. В ночь на 16 октября злоумышленник проник в старую систему OpenCode. Компания как раз собиралась её отключить. Но ключи клиентов там всё ещё лежали. Пострадали 1,4% пользователей Console.
Это как переехать в новый офис, а в старом оставить сейф с документами. Двери уже никто не охраняет.
Что заметили пользователи. Один разработчик рассказал, что ночью ему пришли уведомления о тратах сразу от трёх сервисов. Google сам заблокировал подозрительную активность. OpenAI и Anthropic продолжали списывать деньги, пока он не отозвал ключи вручную.
Важно: если вы удалите ключ только из OpenCode, это не поможет. Тот, кто его скопировал, продолжит им пользоваться. Отзывать ключ нужно в кабинете самого сервиса.
Проверьте, задело ли вас
LiteLLM. Проверьте версию на сервере:
pip show litellm
Если в ответе Version: 1.107.0, сервер заражён. Ещё поищите файлы, которые оставляла вредоносная версия:
find / -name "cook.pth" -o -name "litellm-1.107.0.dist-info" 2>/dev/null
Если вы запускаете LiteLLM в Docker, вспомните, не обновляли ли образ 21 октября. Опасными были теги v1.107.0, latest, main-latest и main-stable.
- Railway. Если у вас там есть хотя бы один проект, считайте, что вас задело. Railway сама просит всех клиентов заменить ключи.
- OpenCode. Проверьте почту: OpenCode разослала письма пострадавшим. Если писем нет, но вы сохраняли свои ключи в OpenCode Console, лучше их всё равно заменить. Если вы пользуетесь только программой на своём компьютере, ваши ключи хранятся у вас и в этой утечке не участвовали.
- Всем остальным. Откройте кабинеты OpenAI, Anthropic, Google и посмотрите расходы за последние две недели. Резкий скачок, особенно ночью, это повод насторожиться.
Замените ключи правильно
Заменить ключ нужно так, чтобы сайт не упал. Порядок такой:
- Создайте новый ключ в кабинете сервиса: OpenAI, Anthropic, Google AI Studio и других.
- Пропишите новый ключ в своём сайте, боте или сервисе.
- Проверьте, что всё работает.
- Удалите старый ключ в кабинете сервиса. Только после этого он перестанет работать у вора.
Это как замена замка после потери ключей. Сначала ставите новый замок и раздаёте ключи своим. Потом выбрасываете старый.
Меняйте не только AI-ключи. Если ключ лежал на сервере рядом с другими секретами, меняйте всё: пароли от баз данных, ключи облака, токены платёжных систем, SSH-ключи.
Если у вас стояла LiteLLM 1.107.0, одной замены ключей мало. Вредоносная версия оставляла «чёрный ход». Удалить пакет недостаточно. Если вор уже побывал в квартире и сделал дубликат ключа от чёрного хода, новый замок на парадной двери не поможет. Такой сервер безопаснее переустановить с нуля, а потом уже менять все пароли и ключи.
Поставьте лимиты и наведите порядок
Полностью исключить утечку нельзя. Но можно сделать так, чтобы она обошлась дёшево.
- Поставьте лимит трат на каждый ключ. Все крупные AI-сервисы позволяют задать месячный бюджет. Это как лимит на банковской карте. Даже если карту украдут, больше лимита не снимут.
- Один ключ на один проект. Не используйте один ключ для сайта, бота и тестов. Если утечёт один, вы замените только его и сразу поймёте, откуда утечка.
- Не храните ключи в коде. Держите их в файле
.envи добавьте этот файл в.gitignore. Так он не попадёт в репозиторий. Именно так начался взлом LiteLLM: ключ случайно оказался на GitHub. - Не пишите ключи в логи. Проверьте, что ваш сайт или бот не сохраняет в логах полные запросы с ключами и токенами. Через логи злоумышленник добрался до системы обновлений LiteLLM.
- Фиксируйте версии программ. Пишите точную версию, например
litellm==1.106.2, а не простоlitellm. В Docker не используйте тегlatest. Тогда поддельное обновление не установится само, пока вы его не проверите.
Чек-лист
- Проверил версию LiteLLM на сервере
- Проверил, нет ли у меня проектов на Railway
- Проверил почту на письмо от OpenCode
- Посмотрел расходы в кабинетах OpenAI, Anthropic, Google
- Заменил ключи в правильном порядке: новый, проверка, удаление старого
- Заменил остальные пароли и ключи на заражённом сервере
- Поставил лимит трат на каждый ключ
- Убрал ключи из кода и логов
- Зафиксировал версии программ и Docker-образов
Не хотите разбираться сами?
Найти все ключи на сервере сложнее, чем кажется. Один в .env, другой в настройках бота, третий в Docker-контейнере, четвёртый случайно попал в логи. А если сервер мог быть заражён, его нужно переустановить и ничего не потерять.
Для таких случаев у Zomro есть два варианта.
SOD: проверим сервер за вас
Наш системный администратор:
- проверит, нет ли на сервере заражённой версии LiteLLM и её следов;
- найдёт, где лежат ключи и пароли, и подскажет, какие нужно заменить;
- проверит, не попадают ли секреты в логи;
- поможет перенести проект на чистый сервер, если это нужно.
Стоимость: €12.50 за каждые 15 минут работы.
Premium: быстрая помощь, когда она нужна
Когда ключ утёк, счёт растёт каждый час. По обычному техническому запросу ответ может занять до 10 часов. С Premium мы отвечаем за время от 5 до 30 минут.
Каждую неделю появляются новые утечки и уязвимости. С Premium вам не придётся разбираться с ними в одиночку.

