Недавнее обновление Pectra на тестовой сети Sepolia столкнулось с серьезными проблемами из-за неизвестного злоумышленника, использующего уязвимость. Этот инцидент вызвал беспокойство среди разработчиков Ethereum по поводу безопасности процесса обновления и последствий для будущих разработок.
Ключевые выводы
-
Обновление Pectra было запущено 5 марта 2025 года в 7:29 утра.
-
Злоумышленник использовал крайний случай, что привело к майнингу пустых блоков.
-
Разработчики внедрили частичное исправление, чтобы смягчить проблему, не публикуя его.
-
Инцидент был изолирован на тестовой сети Sepolia и не затронул основную сеть.
Обзор инцидента
5 марта 2025 года команда разработчиков Ethereum выпустила обновление Pectra на тестовой сети Sepolia. Однако всего через несколько дней разработчик Мариус ван дер Виден сообщил, что обновление было испорчено ошибками, в первую очередь из-за того, что контракт на депозит вызывал неправильные события. Это привело к майнингу пустых блоков, что серьезно нарушило функциональность сети.
Первоначальная ошибка была связана с контрактом на депозит, который ошибочно вызвал событие передачи вместо события депозита. Эта неправильная конфигурация позволила неизвестному злоумышленнику использовать ситуацию, отправив нулевой токен на адрес депозита, что вызвало повторение той же ошибки.
Детали атаки
-
Метод эксплуатации: Злоумышленник использовал стандарт ERC-20, который позволяет нулевые переводы токенов, чтобы отправить транзакции с нового финансируемого аккаунта.
-
Влияние: Атака привела к значительному количеству майненных пустых блоков, что затруднило работу сети.
-
Ответ разработчиков: Команда изначально подозревала ошибку со стороны доверенных валидаторов, но быстро определила источник транзакции как внешний аккаунт.
Меры по смягчению последствий
В ответ на атаку команда разработчиков предприняла немедленные действия:
-
Развертывание частичного исправления: Было создано исправление для фильтрации транзакций, взаимодействующих с контрактом на депозит. Это исправление было развернуто на ограниченном количестве узлов DevOps, чтобы предотвратить дальнейшую эксплуатацию.
-
Контролируемые обновления: Разработчики решили не публиковать исправление, подозревая, что злоумышленник может следить за их коммуникациями. Вместо этого они обновили только узлы, которые они контролировали, чтобы стабилизировать сеть.
-
Успешное разрешение: К 14:00 того же дня все узлы были обновлены, и проблемная транзакция была успешно замайнена, восстановив нормальную работу.
Будущие последствия
Несмотря на трудности, с которыми столкнулись во время обновления Pectra, команда Ethereum подтвердила, что основная сеть осталась невредимой, и финализация никогда не терялась в ходе инцидента. Однако разработчики решили отложить обновление Pectra до тех пор, пока не будут проведены дополнительные тестирования для обеспечения надежности системы.
Этот инцидент подчеркивает продолжающиеся проблемы безопасности в технологии блокчейн и важность строгих процессов тестирования и валидации перед развертыванием обновлений. Поскольку Ethereum продолжает развиваться, поддержание целостности и безопасности своих сетей будет иметь первостепенное значение для его успеха и доверия пользователей.