ПОЧЕМУ СКОМПРОМЕТИРОВАННЫЙ КОШЕЛЁК МОЖЕТ СНОВА ПОТЕРЯТЬ ДЕНЬГИ ПОСЛЕ ПЕРВОГО ОПУСТОШЕНИЯ?
В техническом отчёте Blockaid об инциденте с Binance описано опасное сочетание: несанкционированное подписание + делегирование EIP-7702
Вот как это работает

СНАЧАЛА: ПОЛУЧИТЬ КОНТРОЛЬ НАД ПРОЦЕССОМ ПОДПИСАНИЯ
По данным Blockaid, злоумышленник получил контроль над инфраструктурой подписания Binance
Это не обязательно означает, что была скопирована сид-фраза. Злоумышленник, способный заставить сервис подписания создавать действительные подписи, может также санкционировать вредоносные действия
Блокчейн проверяет подпись — а не намерения человека, который её поставил

ЗАТЕМ: ИЗМЕНИТЬ ПРИНЦИП РАБОТЫ КОШЕЛЬКА
Обычный перевод санкционирует конкретную транзакцию
Авторизация EIP-7702 указывает кошельку на исполняемый код контракта. Транзакция типа 4 регистрирует это делегирование в блокчейне
После этого вредоносный код может исполняться в контексте кошелька и перемещать его активы

ПОЧЕМУ ВАЖЕН «РАЗБРОС NONCE»
Nonce — это счётчик транзакций аккаунта
По данным Blockaid, злоумышленник предоставил 50 подписанных авторизаций с разными значениями nonce, поскольку занятый кошелёк продолжал обрабатывать выводы средств
Это не было подбором приватного ключа. Для каждой авторизации всё равно требовалась действительная подпись

ПОЧЕМУ ПЕРВОЕ ОПУСТОШЕНИЕ НЕ УСТРАНИЛО РИСК
Делегирование сохраняется, пока его не заменят или не сбросят
Если вредоносный код остаётся активным, злоумышленник может снова вызвать его, чтобы вывести вновь внесённые средства, не получая от жертвы ещё одну подпись
Смена пароля или отключение сайта не удаляют это состояние из блокчейна
УРОК БЕЗОПАСНОСТИ
Защищайте сервис подписания, проверяйте адреса делегирования и отслеживайте изменения кода кошелька
Сброс делегирования и отзыв разрешений токенов — разные задачи. Если доступ к подписанию остаётся скомпрометированным, злоумышленник может снова выдать авторизацию
EIP-7702 был одним из механизмов, описанных в связи с этим инцидентом, — но он не объясняет все случаи в затронутых сетях
Подробности инцидента: отчёт Blockaid; здесь они не проверялись независимо
Протокол: спецификация Ethereum EIP-7702
Защищаем ли мы только баланс или ещё и операции, которые кошельку разрешено выполнять?
$BTC $ETH $BNB