Хакер воспользовался механизмом EIP-7702 в Ethereum, чтобы провернуть взлом Binance
Злоумышленник, стоявший за инцидентом безопасности Binance, использовал функцию EIP-7702 из обновления Pectra в Ethereum и вывел 2,5 млрд долларов менее чем за 4 минуты:
• Превратил биржевой кошелёк в контракт для выкачивания средств: EIP-7702 позволяет обычному кошельку заимствовать исполняемый код смарт-контракта с помощью короткой подписи, предоставляющей разрешение. Злоумышленник развернул вредоносный контракт и превратил крупный кошелёк Binance 14 в инструмент для запуска этого кода, получив полный контроль над активами.
• Заранее подготовил 50 подписей, чтобы опередить изменение порядкового номера транзакции: поскольку горячий кошелёк Binance непрерывно обрабатывает ордера, значение nonce меняется каждую секунду. Хакер заранее собрал 50 действительных подписей с номерами от 18.914.775 до 18.914.824, гарантировав, что транзакция для захвата контроля будет выполнена сразу же, как только появится следующий nonce.
• Вывел 2,5 млрд долларов и взял под контроль связанные кошельки: хакер перевёл 167.464 ETH и 1,6 млрд USDT одной транзакцией, а также использовал эти полномочия, чтобы приказать другому горячему кошельку вывести ещё 823 млн USDC. Почти 4 часа он продолжал выкачивать все новые пользовательские депозиты, прежде чем Binance успела отозвать разрешение.
Вот почему Binance так долго отслеживала и блокировала этот взлом. Чем больше удобств технологии дают пользователям, тем выше становятся риски для безопасности.
Похоже, теперь Binance и другим биржам придётся перестраивать систему кошельков — либо Ethereum потребуется новое обновление.
Злоумышленник, стоявший за инцидентом безопасности Binance, использовал функцию EIP-7702 из обновления Pectra в Ethereum и вывел 2,5 млрд долларов менее чем за 4 минуты:
• Превратил биржевой кошелёк в контракт для выкачивания средств: EIP-7702 позволяет обычному кошельку заимствовать исполняемый код смарт-контракта с помощью короткой подписи, предоставляющей разрешение. Злоумышленник развернул вредоносный контракт и превратил крупный кошелёк Binance 14 в инструмент для запуска этого кода, получив полный контроль над активами.
• Заранее подготовил 50 подписей, чтобы опередить изменение порядкового номера транзакции: поскольку горячий кошелёк Binance непрерывно обрабатывает ордера, значение nonce меняется каждую секунду. Хакер заранее собрал 50 действительных подписей с номерами от 18.914.775 до 18.914.824, гарантировав, что транзакция для захвата контроля будет выполнена сразу же, как только появится следующий nonce.
• Вывел 2,5 млрд долларов и взял под контроль связанные кошельки: хакер перевёл 167.464 ETH и 1,6 млрд USDT одной транзакцией, а также использовал эти полномочия, чтобы приказать другому горячему кошельку вывести ещё 823 млн USDC. Почти 4 часа он продолжал выкачивать все новые пользовательские депозиты, прежде чем Binance успела отозвать разрешение.
Вот почему Binance так долго отслеживала и блокировала этот взлом. Чем больше удобств технологии дают пользователям, тем выше становятся риски для безопасности.
Похоже, теперь Binance и другим биржам придётся перестраивать систему кошельков — либо Ethereum потребуется новое обновление.
