Что произошло?

Вечером 29 октября с горячих кошельков Binance в сети Ethereum за 40 минут ушло от $2,5 до $3,5 млрд. По подсчёту Decrypt, с учётом Bitcoin и Tron набирается не меньше $5,57 млрд. Атакующий не крал ключи от монет напрямую: через EIP-7702 он подменил код кошелька Binance 14 и вывел содержимое одним вызовом.

Tether и Circle в первый час заморозили около $971 млн USDT и $823 млн USDC. К 01:09 по Москве Tether довёл заморозку примерно до $1,67 млрд, и вместе с Circle заблокировано около $2,5 млрд. Binance расследует инцидент и заявляет, что средства пользователей в безопасности; кто стоит за атакой, официально не названо.

Ниже разобрано то, что видно прямо в блокчейне. Данные публичные, их можно проверить самому. Срез обновлён в 22:09 UTC 29 октября (01:09 по Москве).

Хронология: 18 часов подготовки и 40 минут удара

Атакующий готовился почти сутки и трижды отрепетировал атаку на посторонних кошельках. Газ для этого пришёл заранее: три депозита примерно по 0,1 ETH из Tornado Cash 28 и 29 октября. Время ниже указано в UTC, московское на 3 часа больше.

  • 02:29 — инициатор 0x7C86…5CA0 деплоит первый контракт 0x19be…f2bf.

  • 13:51 — делегирование EIP-7702 на два тестовых кошелька.

  • • 14:20 и 14:24 — тесты 1 и 2: вызов sweep на этих кошельках.

  • 15:59 — деплой исправленного контракта 0x63e8…6fAe, который потом сработает на Binance.

  • 16:21–16:30 — тест 3 на третьем кошельке: два делегирования и sweep.

  • 20:21 — делегирование кода Binance 14 на контракт атакующего.

  • 20:24 — основной вывод: 167 464 ETH и 63 токена, из них около 1,615 млрд USDT. В ту же минуту Binance 16 отправляет на тот же адрес ещё 28 005,6 ETH.

  • 20:30–20:33 — получатель дробит USDT: 500 млн и 200 млн на два новых адреса.

  • 20:38 — 195 460 ETH уходят одним куском на 0x8532…43D4.

  • 20:41 и 20:59 — через Binance 14 вызвана другая функция; в те же минуты Hot Wallet 34 отдаёт 780 млн и 43 млн USDC.

  • 21:04 — ещё один sweep с Binance 14: 1 699,92 ETH.

  • 21:22–22:02 — раздача токенов по свежим кошелькам: RLUSD, UNI, PEPE, wBETH, ENA.

  • 21:44 — очередной успешный sweep с Binance 14.

Между последним тестом и ударом прошло три с половиной часа, между делегированием и выводом — 3 минуты 24 секунды. Все транзакции инициатора видны на Blockscout.

Механика: как EIP-7702 отдал кошелёк биржи чужому коду

EIP-7702 позволяет обычному кошельку (EOA) взять себе код смарт‑контракта. Владелец подписывает разрешение, и с этого момента любой вызов к адресу исполняет этот код. Одной подписи ключа достаточно, чтобы кошельком начал распоряжаться контракт.

В случае Binance это выглядело так:

  1. Атакующий развернул контракт 0x63e8…6fAe с функцией sweep(address pool, address[] depositors). Она забирает ETH и список токенов и отправляет всё на указанный адрес.

  2. В 20:20:59 он отправил транзакцию типа 4 (EIP-7702) с разрешением, подписанным ключом Binance 14. С этого момента по адресу биржи исполнялся код атакующего.

  3. Через 3 минуты 24 секунды он вызвал sweep прямо на адресе Binance 14. Кошелёк сам перевёл 167 464 ETH и 63 токена на 0x5227…2f8c, а комиссия составила около 0,0004 ETH, меньше доллара.

  4. В 20:41 и 20:59 атакующий вызвал на Binance 14 другую функцию (0x043ff9d2). Время совпадает с выводом 780 млн и 43 млн USDC с Hot Wallet 34: похоже, он воспользовался правами Binance 14 над этим контрактом.

Главный вопрос — откуда подпись. Разрешение EIP-7702 подписывается ключом самого кошелька. Значит, атакующий либо добыл ключ, либо заставил систему подписи биржи подписать чужие данные. Так было в сентябре с Bitget: через уязвимость стороннего продукта атакующие попали во внутреннюю сеть, и их поддельные транзакции проходили обычное одобрение.

В 22:09 UTC код Binance 14 всё ещё был делегирован контракту атакующего. Последний успешный sweep прошёл в 21:44, видимо, по свежим депозитам. Отдельная деталь: на 28 октября Binance планировала обслуживание Ethereum‑кошельков, связь с атакой неизвестна.

Куда ушли деньги?

ETH атакующий увёл первым, потому что его нельзя заморозить, а стейблкоины пытается рассовать по новым кошелькам. Получатель № 1 0×5227…2f8c принял всё с Binance 14, Binance 16 и Hot Wallet 34. На нём осталось около 971 млн USDT, ровно сумма заморозки Tether, и около 2 077 ETH.

195 460 ETH ушли на 0×8532…43D4 и на момент среза не двигались: с адреса нет ни одной исходящей транзакции. Остальное разлетается по одному токену на свежий кошелёк, и на каждый заранее приходит 0,5–1 ETH на газ.

  • 20:30 — 500 млн USDT на 0x9749292D…C762.

  • 20:33 — 200 млн USDT на 0x0Ddf0480…697e.

  • 21:22 — 88,5 млн RLUSD на 0x5C23…a4FC.

  • 21:46 — 7,02 млн UNI на 0x42CD…7810.

  • 21:49 — 7,77 трлн PEPE на 0x600d…8298.

  • 21:52 — 29 934 wBETH на 0x7f9D…15E3.

  • 22:02 — 217,5 млн ENA на тот же 0x7f9D…15E3.

В 21:54 очередной новый адрес 0x0e77…77D3 получил 1 ETH. В 22:02 217,5 млн ENA ушли на 0x7f9D…15E3, куда десятью минутами раньше пришли wBETH: это первый кошелёк, где копится сразу несколько активов, примерно на $118 млн. Tether в итоге заморозил около $1,67 млрд USDT — больше остатка на 0x5227, то есть, видимо, заморожена и часть уже раздробленных сумм.

Вокруг кошельков вора уже кормятся мошенники. В истории 0x5227 появились фейковые переводы «от него» на адреса‑двойники: 0x9749110a…c762 вместо настоящего 0x9749292D…C762, 0x0dDF2795…697E вместо 0x0Ddf0480…697e. Тикеры USDT и ETH подделаны греческими буквами и невидимыми символами. Расчёт на то, что вор скопирует адрес из истории и отправит деньги не туда.

Кто же стоит за атакой?

Официально группу пока не назвали ни Binance, ни ФБР, ни аналитические компании. Но почерк сильнее всего похож на TraderTraitor, подразделение северокорейской Lazarus, за которым Bybit, DMM Bitcoin и AFX. Ниже сравнение с двумя прошлыми взломами, где механика описана подробно.

  • Газ через Tornado Cash. В WazirX атакующий получил 6 × 0,1 ETH за 8 дней до удара, здесь — 3 × ~0,1 ETH за 1–2 дня.

  • Тестовые прогоны. В WazirX за 8 дней до кражи на мультисиг отправили мелкие тестовые переводы, здесь за 4–6 часов опустошили три чужих кошелька.

  • Как взяли кошелёк. WazirX — обновление мультисига до вредоносного контракта, Bybit — подмена кода через delegatecall, Binance — делегирование кода через EIP-7702.

  • Функция вывода. В Bybit вредоносный контракт выводил всё через sweepETH и sweepERC20, здесь — через sweep.

  • Подготовка. В Bybit вредоносный контракт задеплоили за 3 дня до удара, здесь — за 18 часов.

Контекст тоже сходится. В июле взломали AFX, это прямо приписано TraderTraitor; в сентябре — Bitget, где Elliptic считает след КНДР весьма вероятным. А за пару дней до инцидента Binance сообщила, что отбила серию связанных с КНДР атак через фейковые собеседования.

Есть и доводы против. Tornado Cash пользуются все, а sweep — обычное имя функции. Около $1,8 млрд стейблкоинов заморозили в первый час, хотя в Bitget атакующие успели перевести ~$100 млн в ETH до заморозки.

Версию подтвердит отмывание. В Bybit ~401 тыс. ETH разбили на 48 адресов примерно по 10 тыс. ETH и через THORChain перевели в биткоин (Chainhint). Если 195 460 ETH с 0x8532 разойдутся так же, совпадение будет почти полным.

Как же проверить самому?

Всё выше видно в публичных данных: адреса открываются на Etherscan или Blockscout, а делегирование проверяется одним запросом к открытому RPC:

curl -s -X POST https://ethereum-rpc.publicnode.com -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0x28C6c06298d514Db089934071355E5743bf21d60","latest"]}'

У обычного кошелька код пустой (0x). Ответ, который начинается с 0xef0100, значит делегирование EIP-7702, а следующие 20 байт — адрес контракта. На момент среза для Binance 14 там стоял 0x63e842…6fae, контракт атакующего.

Выводы

EIP-7702 дал атакующему то, что раньше требовало взлома мультисига: одна подпись — и кошелёк биржи исполняет чужой код. Для защиты горячих кошельков из этого случая следует несколько вещей:

  • Запрет на подпись разрешений 7702. Служебным кошелькам такие разрешения не нужны, и система подписи должна их отклонять.

  • Мониторинг транзакций типа 4. Подготовка шла 18 часов в открытую: деплой контрактов и три тестовых делегирования с адреса, пополненного через Tornado Cash. Такая активность могла поднять тревогу заранее.

  • Быстрый отзыв делегирования. Почти через два часа после удара код Binance 14 всё ещё указывал на контракт атакующего.

  • Заморозка работает, но не для всего. Около $1,8 млрд в стейблкоинах заблокировали в первый час, а к 01:09 по Москве — уже около $2,5 млрд. ETH атакующий увёл раньше, потому что его заморозить нельзя.

Дальше стоит следить за 195 460 ETH на 0x8532…43D4, официальным разбором от Binance и заявлением ФБР с адресами, которое обычно ставит точку в атрибуции.

Комментарии (2)


  1. Hint
    30.10.2026 14:48

    Если Tether заморозили $1,67 млрд, то, интересно, вернут ли они такую же сумму в Binance.


  1. oexce Автор
    30.10.2026 14:48

    Технически да: Tether может сжечь заблокированные USDT (destroyBlackFunds) и выпустить такую же сумму законному владельцу. Но не автоматически, а по решению суда или запросу правоохранителей, и обычно на это уходят месяцы. Около 325 млн USDT атакующий успел продать до заморозки — их уже не вернуть.