🟧 Как купить DAO?
Говернанс-атакой называют кражу, в которой код работает так, как задумано. Атакующий не ищет баг, а покупает достаточно голосов и проводит через DAO мошеннический пропозыл в свою пользу. Например, минтит токены, переводит себе трежери или меняет админа контрактов.
При этом схема всегда одинаковая и начинается с поиска протокола, где контроль стоит дешевле того, что лежит на балансе конторы. Обычно у такого протокола маленький сапплай, упавший токен и пара процентов голосующих. Найдя такую возможность, атакующий скупает нужное количество токенов, подает пропозал с безобидным названием и прячет в него вредную инструкцию. Если никто не читает содержимое и не голосует против, пропозал одобряется, а деньги уходят за одну-две транзакции.
🎭 Открыл серию таких хаков в последнем квартале Token of Power 9 июня. Весь сапплай токена составлял 16 384 TOP, и атакующему хватило чуть больше половины. Голосование в Aragon к тому же шло без таймлока, так что пропозал создали, приняли и исполнили в одной транзакции. В итоге атакующему сминтили 10 млрд TOP, и он слил их в пул на Balancer, забрав около $1,58 млн.
Через месяц ту же схему применили к BonkDAO на Solana. 30 июня анонимный кошелек подал BIP #76, который обещал перезапустить DAO, а на деле переводил 4,43 трлн BONK из казны. Для принятия хватало голосов на 1% сапплая, поэтому 4–5 июля другой кошелек купил на Bybit и Binance такое количество токенов, потратив около $4,4 млн. Явка составила 2,9%: из 18 000 участников проголосовали только 7 кошельков, а кворум пропозал прошел с запасом меньше полупроцента. В итоге 6 июля из казны утекло около $20 млн.
BarnBridge пострадал 15 июля. Протокол давно закрылся, но голосования продолжали работать, а у пользователей вместе с этим остались апрувы на USDC. Этим и воспользовался атакующий: он застейкал токены и провел пропозал, который заменил контроллер на его контракт. Через старые апрувы он смог забрать USDC с кошельков пользователей, около $776 тыс.
😫 Похожая история случилась 6 августа со StrongBlock. Проект забросили, а STRONG обесценился, поэтому атакующий дешево собрал большинство голосов. Пропозал сделал атакующего админом прокси Governor, после чего тот подменил код и вывел STRONG и STRNGR примерно на $72 тыс. Таймлок здесь был, но следить за ним было некому.
Больше всех среди Ethereum-кейсов потеряла Term Finance 23 августа. В ее волтах голос давал не депозит, а отдельный токен, в который долю в волте нужно было завернуть вручную. Этого почти никто не делал, поэтому менее чем за $1000 атакующий получил 100% голосов в пяти USDC-волтах и 90,7% в ETH Meta Vault. Затем он подал пропозал, который выглядел как вето на изменения куратора, а первыми же действиями обнулял 7-дневную задержку. Поскольку за шесть дней никто не наложил вето, пропозал исполнился. За две транзакции из волтов ушли 2841 WETH и 1,68 млн USDC.
Neutron 22 сентября показал, что опасен может быть и говернанс самой сети: он стоит выше мультисигов приложений и может сменить админа у любого контракта. Пропозал AI Agent Takeover подавался как эксперимент с ИИ-агентами, а на деле передавал атакующему 10 контрактов Astroport и Drop. За 11–12 минут до конца голосования атакующий купил 31,6 млн NTRN за $20 тыс., застейкал их и проголосовал.
😃 После принятия пропозала он заменил код контрактов и вывел $4,9 млн из Astroport и $4,4 млн из Drop. Часть средств он перевел в Cosmos Hub, поэтому валидаторы остановили сеть почти на 25 часов, а при рестарте забрали с его кошелька 1,23 млн ATOM.
Почти везде атака шла в открытую: пропозалы днями висели в сети, а в Neutron почти такое же предложение отклонили еще в августе, но через месяц атакующий просто докупил голосов в последние минуты. Поэтому таймлоки и кворумы смогут спасти, лишь если холдеры читают содержание пропозалов, а не голосуют по названию или пропускают голосование.
Подписывайтесь на канал, ставьте лайк, заходите в чат👇
🧑🚀 Канал | Чат | Обменник
Post #112345
17
Forwarded from Gagarin Crypto (Alexandr)