4 октября хранилище на сети Base потеряло 1 783 wstETH — около 6 млн долларов. Код не ломали: атакующий оказался в белом списке заёмщиков, потому что мультиподписной кошелёк владельца сам его туда внёс. Любопытна хронология: в 08:52 UTC контракт атакующего из списка убрали, а в 08:53 те же подписанты внесли его обратно. Через минуту начался вывод.
Коротко
Схема управления — Safe три подписи из семи. До этого дня кошелёк не совершал операций 25 суток, а затем за одну минуту провёл две правки подряд. Похищенное — токены aBaswstETH, расписки Aave на Base; их тут же обменяли на wstETH в Aave V3 шестью выводами за 25 минут, причём первый был пробным. Сам протокол Aave не пострадал. Владелец хранилища публично не объявился; в нём осталось около 31,7 млн долларов.
Что означает правка, отменённая через минуту
Собственное наблюдение: эта пара операций — самая информативная часть инцидента, и она почти исключает версию простой ошибки.
Если бы подписанты не знали, что за контракт перед ними, они бы внесли его один раз и не трогали. Если бы кто-то один действовал злонамеренно, он не стал бы сначала удалять. Последовательность «убрали — через минуту вернули» теми же подписями означает, что на стороне управления кто-то уже увидел проблему и успел её исправить, после чего решение было отменено. Варианта два: либо ключи к тому моменту были скомпрометированы и злоумышленник откатил чужую правку, либо подписантов убедили, что удаление было ошибкой. Оба варианта — не про код, а про людей и процедуры.
Отсюда и единственная техническая мера, которой здесь не хватило: задержка исполнения на изменения белого списка. С таймлоком правка 08:53 не вступила бы в силу сразу, и минуты, за которую всё решилось, хватило бы на остановку. Мы разбирали этот механизм в материале о том, как читать управление по мультиподписи и таймлоку: сама по себе схема «три из семи» не защищает, если между решением и исполнением нет паузы.
Четвёртый случай за две недели — и ни один не про уязвимость в коде
Сложите с тем, что мы публиковали рядом. 22 сентября голосование в Neutron за 20 тысяч долларов отдало админские права над контрактами Astroport и Drop. 24 сентября бэкенд Bitget подписал поддельные переводы, а ключи остались целы. На этой неделе NEAR Intents — единственный из четырёх, где нашли настоящую ошибку в контракте. Теперь Base: белый список, подписанный законными ключами.
То есть три случая из четырёх — это не дыры в логике контрактов, а захват права их менять. Проверять в протоколе нужно соответственно: не только аудит кода, но и у кого админские права, сколько подписей требуется и есть ли задержка. Полезная привычка для владельца — периодически сверять права доступа в своей же схеме.
Хронология инцидента
| Когда | Что произошло |
|---|---|
| До 4 октября | 25 суток без операций у мультиподписи |
| 08:52 UTC | контракт атакующего убран из белого списка |
| 08:53 UTC | те же подписанты внесли его обратно |
| Далее | шесть выводов за 25 минут, первый пробный |
| Похищено | 1 783 wstETH, около 6 млн $ |
| Схема управления | Safe, три подписи из семи |
| Корень проблемы | нет задержки исполнения на правки списка |
| Осталось в хранилище | около 31,7 млн $ |
Частые вопросы
Это взлом Aave или Base
Ни то, ни другое. Пострадало отдельное хранилище, которое держало расписки Aave; сам протокол и сеть работали штатно. Атакующий обменял расписки на wstETH обычной операцией.
Что такое белый список заёмщиков
Перечень адресов, которым хранилище разрешает брать средства в долг. Попадание в него — не уязвимость, а административное решение, и защищает его только то, насколько надёжна процедура внесения.
Почему «три из семи» не помогли
Потому что порог защищает от одного недобросовестного участника, а не от скомпрометированных ключей и не от убеждённых подписантов. Если нужные три подписи получены, схема отработает как задумано.
Чем помог бы таймлок
Паузой между решением и исполнением. Правка, вступающая в силу через сутки, оставляет время заметить и отменить её; здесь всё решилось за минуту, и отменять было нечего.
Как проверить это в протоколе, которым пользуюсь
Найти, какой адрес владеет контрактами, сколько подписей он требует и есть ли задержка на изменения параметров. Если права у обычного кошелька без порога и без задержки, риск сосредоточен в одном человеке.
Обсуждение
Добавить комментарий