Для многих криптопроектов самый чувствительный файл — не кошелёк, а страница настроек. В среду, 21 октября 2026, платформа для разработчиков Railway предупредила, что посторонний мог получить доступ к переменным окружения клиентов и расшифровать часть из них. У крипто-команд там часто лежат API-ключи бирж, RPC-доступы и, что хуже, приватные ключи кошельков.
К моменту предупреждения деньги уже двигались. Исследователь безопасности Тейлор Монахан насчитала примерно $371 000, выведенных с кошельков, ключи которых, судя по всему, хранились на Railway.
Главное
- 21 октября 2026 Railway сообщил, что посторонний мог получить доступ к переменным окружения части клиентов и расшифровать их, и попросил каждого клиента «сменить все ключи».
- Тейлор Монахан насчитала около $371 000 в более чем 500 транзакциях с 200+ адресов минимум в 19 блокчейнах; выводы начались в 19:36 UTC.
- Выводы стартовали примерно за два часа до публичного предупреждения Railway в 21:59 UTC; связь со своим инцидентом Railway не подтвердил.
- 22 октября в 04:17 UTC Railway аннулировал API-токены всех клиентов и сбросил доступы к хранилищам и подключениям GitHub.
- Платформой, по словам Railway, пользуются более 2 млн разработчиков; сколько клиентов затронуто, не сообщается.
- Основатель Джейк Купер сказал, что Railway обнаружил аномальную активность в системах, где хранятся переменные окружения.
Что произошло в инциденте безопасности Railway?
Railway заметил аномальную активность в системах, где хранятся переменные окружения клиентов — значения конфигурации, которые приложения читают при запуске, — и пришёл к выводу, что атакующий мог расшифровать часть из них. Инцидент появился на статус-странице в 21:59 UTC 21 октября с рекомендацией отозвать и сменить все секреты.
В раскрытии инцидента Railway сообщил, что аннулировал все свои API-токены и сбросил доступы к хранилищам и GitHub. Основатель Джейк Купер сказал, что компания подозревает атаки на платформы с целью добраться до ИИ-компаний. На статус-странице видно, что сборки для enterprise-клиентов возобновились в 03:32 UTC 22 октября, для Pro — в 06:29 UTC.
Криптовая сторона
По подсчёту Монахан, опубликованному в X, ушло около $371 000 в более чем 500 транзакциях с 200+ адресов минимум в 19 сетях. Onchain Lens сообщил, что предполагаемый кошелёк атакующего отправил не меньше $369 300 на биржу HitBTC и другие адреса, назвав связь с Railway неподтверждённой.
Приватный ключ в переменной окружения — это горячий кошелёк с лишними шагами.
Почему криптоприложения держат ключи в переменных окружения?
Потому что удобно. Торговым ботам, платёжным бэкендам и скриптам казначейства нужно подписывать транзакции без человека, и разработчики кладут ключ в хранилище секретов рядом с паролем от базы. Это работает, пока не взломают само хранилище — и тогда открытыми оказываются сразу все сервисы на платформе.
Безопасные подходы есть, и ничего экзотического в них нет:
- Держи в ключе, доступном серверу, только операционный остаток; остальное уводи в холодное хранение.
- Используй биржевые API-ключи с отключённым выводом и белыми списками IP.
- Предпочитай отдельные сервисы подписи или HSM вместо сырых ключей в конфиге.
- Меняй ключи по графику, а не только после инцидентов.
Что делать клиентам Railway прямо сейчас?
Менять всё: биржевые API-ключи, ключи кошельков, доступы к RPC и базам, ключи ИИ- и платёжных провайдеров. Для любого кошелька, чей приватный ключ когда-либо лежал в переменной окружения на Railway, переводи средства на новый ключ, а не просто меняй значение переменной. Затем проверь логи за период с 21 октября до момента смены.
В собственных гайдах Railway прямо называет OpenRouter, Grok, Anthropic, OpenAI и Stripe среди ключей для смены. Командам, на которых распространяются правила защиты данных, стоит проверить, нужно ли уведомление об утечке — по GDPR срок 72 часа.
Что это значит для мерчантов и свапов
Случай Railway напоминает: «некастодиальность» — свойство системы, а не ярлык. Если твой бэкенд хранит ключ, способный двигать средства, твой сервер — кастодиан. Мерчант-решения вроде SwapZilla Pay устроены так, что платежи приходят на собственный кошелёк продавца, а не на горячий ключ на чужом сервере; плюсы и минусы разобраны в гайде о некастодиальном приёме криптоплатежей.
Разработчики, встраивающие свапы, могут использовать API SwapZilla, не храня средства пользователей и ключи подписи: пользователь отправляет со своего кошелька и получает на свой адрес. Так зона поражения остаётся маленькой, когда — а не если — какой-то кусок инфраструктуры взломают.
Финальная мысль
$371 000 — немного на фоне громких взломов этого года. Важен паттерн: один взлом платформы, сотни сервисов и ключи, которым там вообще не место. Самое дешёвое исправление — то, что сделано до того, как пришло письмо.