Bitquery отследила предполагаемую кражу криптовалюты на $106 млн через ранее использовавшиеся кошельки
Ключевые выводы
- •Bitquery отследила вывод около $108,8 млн в USDC со счетов на OKX, Kraken и Crypto.com 1–2 ноября — средств, обозначенных ZachXBT как предполагаемая кража у компании из ЕС.
- •Одиннадцать из 15 кошельков-получателей до 1 ноября получали выплаты с тех же бирж, что привело Bitquery к выводу: у вора, вероятно, были и логины биржи, и приватные ключи кошельков.
- •Около $62,98 млн в стейблкоинах были обменены на 27 553 ETH через UniswapX примерно за четыре часа, и лишь около $3,7 млн осталось в USDC, который может заморозить Circle.
- •Один кошелёк получил 43 вывода с Kraken за 91 минуту, каждый менее $50 000, — картина, которую Bitquery расценила как обход лимитов на отдельный вывод.
- •На 13:47 UTC 2 ноября $78,27 млн оставались в привязанных к вору адресах на Ethereum, тогда как около $30,5 млн уже вышли через, в частности, депозитный адрес KuCoin, LI.FI и FixedFloat.

Расследование блокчейн-аналитической компании Bitquery от 2 ноября отследило вывод около $108,8 млн в USDC со счетов на трёх криптобиржах по средствам, которые блокчейн-детектив ZachXBT обозначил как предполагаемую кражу у компании из ЕС, о чём сообщалось в посте X-аккаунта Officer's Notes. Расследование Bitquery установило, что 11 из 15 кошельков-получателей до 1 ноября уже получали выплаты с тех же бирж, что $62,98 млн в стейблкоинах были конвертированы в 27 553 ETH и что лишь $3,7 млн средств остались в USDC, подлежащих заморозке.
Двадцать один час на трёх биржах
Первый вывод с OKX прошёл в 12:25 UTC 1 ноября. Kraken последовал через 44 минуты и в итоге выплатил 95% общей суммы, остальное вместе с OKX предоставил Crypto.com. Примерно две трети денег — $73,2 млн — вышли в течение трёх часов до 23:00 UTC, а финальный платёж прошёл в 09:09 UTC следующим утром.
Один кошелёк получил 43 вывода с Kraken за 91 минуту, каждый менее $50 000. Bitquery интерпретирует эту картину как обход злоумышленником лимита на отдельный вывод — стандартной меры защиты на счетах бирж. Если эта трактовка верна, лимит изменил форму оттока, но не его размер.
Ни одна из этих сумм не подтверждена жертвой как убыток. Bitquery анализировала только Ethereum и проверяла основные кошельки трёх бирж, поэтому активность в других сетях или через другие кошельки на тех же биржах может увеличить сумму. Жертва не названа, однако история кошельков указывает на торговую или платёжную компанию, использующую Kraken с мая, — вывод, который сама Bitquery называет предварительным.
Почему старые кошельки указывают за пределы логина биржи
Одиннадцать из 15 кошельков-получателей получали выплаты с тех же бирж до 1 ноября, и в совокупности на них пришлось 84% денег. Самый старый получил первый вывод с Kraken 4 мая и ещё 48 до кражи. Несколько кошельков переводили средства друг другу в течение лета. Восемь из 15 — смарт-аккаунты Trust Wallet, настроенные на оплату сетевых комиссий в USDC, то есть комиссия списывается с баланса токена, а не в ETH, — хотя Bitquery не нашла ничего, указывающего на уязвимость самого приложения.
Именно эта история побуждает Bitquery считать кошельки собственными для жертвы, и она же объясняет, почему один лишь логин биржи не объясняет дальнейшее. USDC обычно перемещался на новый кошелёк в течение трёх минут, а отправка далее требовала ключей от кошелька-получателя. Bitquery заключает, что злоумышленник, скорее всего, владел и логинами, и этими ключами. По её оценке, это указывает либо на взлом устройств владельца или настройки кошельков, либо на человека из команды жертвы. Блокчейн не позволяет различить эти сценарии.
Вывод о принадлежности кошельков остаётся умозаключением на основе их поведения, и ни жертва, ни биржи его не подтвердили. Если часть адресов принадлежала сотруднику, подрядчику или контрагенту, прежние выплаты свидетельствовали бы о доверии компании к конкретному человеку, а не об утечке её собственных ключей. В любом случае в отслеживании нет следов взлома Kraken, Crypto.com или OKX. Выводы осуществлялись со счетов одного клиента.
Где allowlist работает, а где нет
Allowlist позволяет счёту выводить средства только на заранее одобренные адреса. Отслеживание делит эту кражу на два сценария, которые по-разному проверяют эту настройку.
11 знакомых кошельков — тот случай, который allowlist не решает. Если они были уже одобрены, переводы на них пройдут проверку, поскольку настройка ограничивает адрес и ничего не говорит о том, кто владеет его ключами сегодня.
Четыре новых кошелька, получившие $17,27 млн, — противоположный случай. Первые платежи и с OKX, и с Kraken ушли на адреса без какой-либо истории. По формулировке Bitquery, если на счетах был allowlist, злоумышленнику удалось внести туда новые адреса, а если его не было — деньги могли уйти куда угодно. Был ли он включён на этих счетах, публично неизвестно.
Второй сценарий — для него и созданы дополнительные механизмы бирж:
- OKX: помимо функции allowlist, отдельная блокировка новых адресов запрещает выводы на только что добавленного получателя в течение 24 часов.
- Crypto.com Exchange: 24-часовая задержка распространяется на недавно внесённые в белый список адреса, а отключение этой функции вступает в силу ещё через 24 часа.
- Kraken: Global Settings Lock блокирует новые адреса для вывода и изменения защищённых настроек. Его снятие требует ожидания задержки, выбранной пользователем, если только заранее не создан Master Key — отдельный доступ, позволяющий обойти ожидание.
Ни один из этих механизмов не затрагивает кошелёк, уже присутствующий в списке. Блокировка, замедляющая новые адреса, по-прежнему позволяет любому с нужными ключами использовать старый.
Конвертация из замораживаемого USDC за считанные часы
Выведенные средства покидали биржи в USDC, который эмитент Circle может заморозить на любом адресе — эмитенты использовали такие полномочия в прошлых ончейн-кражах. У ETH нет эмитента, у DAI нет функции заморозки, поэтому конвертация стейблкоинов была первой задачей вора.
Незадолго до полуночи UTC 1 ноября новый кошелёк начал продавать стейблкоины через UniswapX — аукцион, на котором торговые фирмы конкурируют за исполнение ордеров. Примерно за четыре часа он продал $62,98 млн в USDC и USDT за 27 553 ETH по цене около $2 286 за монету. Ещё одна ветвь средств ушла в DAI. Bitquery не зафиксировала заморозки со стороны Circle ни во время продажи, ни при проверке в понедельник и сообщает, что не знает, обращался ли кто-то к Circle.
На 13:47 UTC 2 ноября $78,27 млн всё ещё находились на Ethereum в адресах, которые Bitquery связывает с вором, причём большая часть недосягаема для любого эмитента. Около $30,5 млн уже покинули сеть. Крупнейший отток — $8,12 млн — ушёл на депозитный адрес KuCoin, который Bitquery считает объединённым счётом Kyrrex, европейской биржи. LI.FI, мост и роутер обмена, получил $4,34 млн, часть — через одноразовые ордерные кошельки, которые аналитическая фирма TRM помечает как Wagyu, сервис обмена в Monero — криптовалюту с ориентацией на приватность, чей реестр задуман так, чтобы скрывать отправителей, получателей и суммы. FixedFloat, мгновенный обменник без регистрации, принял $1,32 млн.
Видя ETH на Ethereum, жертва не может вернуть его. Доступность оставшихся средств зависит от сторон, имеющих власть над своей частью: Circle — над оставшимся USDC, KuCoin и Kyrrex — над счётом, на который зачислен депозит, а мгновенные обменники — над тем, кто размещал ордера.
Что прояснило бы вопрос доступа
Kraken, обработавший 178 выводов, может подтвердить, кому принадлежит счёт и что происходило внутри него. Три записи позволили бы проверить теорию Bitquery: когда были добавлены четыре новых адреса и действовала ли тогда блокировка или задержка; проходили ли выводы через сессию вошедшего пользователя или через API-ключи с правом вывода — учётные данные, позволяющие программам действовать от имени счёта без входа человека; и менялись ли какие-либо настройки безопасности в часы перед 12:25 UTC 1 ноября.
Если журналы покажут, что новые адреса прошли из-за отключённого периода ожидания, вывод сместится в сторону настроек аккаунта. Если настройки были нетронуты, а деньги всё же ушли через старые кошельки, версия с компрометацией ключей кошельков усиливается. Ближайший публичный сигнал скромнее: заморозит ли Circle 3,74 млн USDC, всё ещё находящихся почти целиком в пяти кошельках, прежде чем вор их переместит.
Проверяйте, кто может тратить с каждого сохранённого адреса
Для всех, кто держит крупные балансы на биржах, это расследование — аргумент в пользу аудита списка вывода по владельцам ключей, а не по адресам. Для каждого сохранённого адреса вопрос в том, какой телефон, ноутбук, браузерное расширение или сервис может сегодня подписывать операции с него, и хранит ли то же устройство и логин биржи. Точка Bitquery: один взлом такого устройства открывает и то, и другое.
Из этого следуют и рекомендуемые меры защиты: аппаратный ключ для входа и для кошельков в allowlist, включённый период ожидания для новых адресов и такое же наблюдение за кошельками из allowlist, как и за самим аккаунтом. Платёж, пришедший в переставший использоваться кошелёк, — тревожный сигнал. Coindoo документировал аналогичную брешь, когда старые кошельки были опустошены после того, как трейдеры перестали пользоваться ботом — с адреса, о котором вы больше не думаете, всё ещё могут тратить средства.