Флеш-позики захопили дві посади в управлінні: які уроки дає крадіжка X100 для галузі?

ETH
USDT
Безпека DeFiУправління DAOатака на управлінняX100Крадіжка коштівФлеш-позики
1 годину томуДжерело: blockweeks.com
Флеш-позики захопили дві посади в управлінні: які уроки дає крадіжка X100 для галузі?


Оригінал | Odaily Planet Daily (@OdailyChina)

Автор | Asher (@Asher_0210)

Flash Loan Seizes Two Governance Seats, What Does the X100 Exploit Teach the Industry?

24 жовтня DeFi-проєкт X100 на Ethereum зазнав атаки на управління, внаслідок якої було викрадено приблизно 4,85 мільйона USDT. Згідно з даними GMGN, ринкова капіталізація токена X впала з приблизно 760 мільйонів доларів перед атакою до приблизно 24 мільйонів доларів, падіння за один день понад 96%.

Flash Loan Seizes Two Governance Seats, What Does the X100 Exploit Teach the Industry?

Скарбниця, якою спочатку керували спільно три місця «Сенату», була захоплена хакером, який використав кошти, позичені через флеш-позику, щоб захопити два з трьох місць. Маючи більшість голосів, хакер подав зловмисну пропозицію, а потім використав контрольовані ним місця, щоб проголосувати за неї, змусивши скарбницю схвалити транзакцію, яка надіслала активи йому самому. Після успіху першого раунду атаки інші зловмисники послідовно використали той самий механізм управління, щоб продовжити виведення активів проєкту.

Нижче Odaily Planet Daily розгляне весь процес цієї атаки на управління, а також ризики безпеки управління DAO, виявлені внаслідок інциденту з X100.

Позичивши 1,94 мільйона доларів, як хакер захопив два місця «Сенату»?

Скарбницею X100 керує «Сенат» із трьох місць під назвою Senate, члени якого голосують за рішення щодо таких операцій, як продаж токенів скарбниці та розгортання ліквідності. Якщо контролювати два з місць, можна проводити пропозиції та мобілізувати активи скарбниці. Власники вносять токен проєкту X до контракту Freezer, обирають заморожування на один, три або п'ять років, а потім сплачують реєстраційний збір у 100 X, щоб взяти участь у виборах. Три місця ранжуються в реальному часі відповідно до поточного замороженого балансу адрес-учасників, і перші три отримують права управління.

Цей механізм не обмежує одного контролера від отримання місць через кілька адрес, а також не встановлює періоду очікування для набуття чинності прав управління. Зловмиснику достатньо, щоб заморожені баланси двох контрольованих адрес одночасно увійшли до першої трійки, щоб негайно отримати більшість голосів; ухвалена пропозиція також може бути виконана негайно, що дозволяє завершити захоплення місць і переказ активів в одній транзакції.

Перед атакою адреса другого місця заморозила близько 19 000 X. О 22:11 24 жовтня хакер позичив близько 1,94 мільйона USDT через флеш-позику Aave, придбав X і розподілив його між двома допоміжними контрактами, щоб відповідно завершити заморожування та виборчу кампанію. Кожен контракт заморозив 19 000,000001 X, лише на одну мільйонну токена більше, ніж початкове друге місце, але одночасно зайняв друге та третє місця, витіснивши початкове друге місце зі списку управління.Flash Loan Seizes Two Governance Seats, What Does the X100 Exploit Teach the Industry?

Отримавши більшість голосів, як хакер змусив активи скарбниці потрапити до його рук?

Два голоси «за» дозволили казначейству продати 400 000 X за $35,68

Після отримання двох місць хакер негайно подав зловмисну пропозицію, яка вимагала від казначейства продати 400 000 X у пул PancakeSwap V3 X/USDT, створений хакером, із мінімальною сумою отримання, встановленою на нуль, а потім проголосував на підтримку через інший контрольований контракт, що дозволило пропозиції пройти двома голосами та бути негайно виконаною. Згідно з аналізом GoPlus, X100 дозволяє пропозиціям управління вказувати торговий пул, але не має ефективного захисту мінімальної суми транзакції. Хакер міг і вирішувати, де казначейство продаватиме токени, і сам встановлювати умови транзакції, а потім затвердити транзакцію більшістю голосів, які він контролював.

Вищезазначений пул був створений хакером у тій самій транзакції, з ін'єкцією ліквідності лише близько $100. Коли казначейство продало в нього 400 000 X, пул міг сплатити лише невелику суму USDT, і оскільки мінімальна сума отримання була нульовою, транзакція не провалилася через надмірно низьку віддачу. Зрештою, казначейство передало 400 000 X і отримало у відповідь лише близько $35,68. Потім хакер вивів ліквідність із самозробленого пулу, повернув X, що містився в ньому, і продав частину токенів у наявний торговий пул Uniswap V3 X/USDT в обмін на USDT. Після погашення флеш-позики та інших витрат перший хакер отримав прибуток близько 4,75 мільйона USDT.

Від позичання коштів для купівлі токенів і захоплення місць до схвалення низькоцінового продажу токенів казначейства та обготівковування для погашення позики — усе було завершено в одній транзакції. Токени, передані казначейством, стали фішками хакера для обготівковування, тоді як USDT у реальному торговому пулі використовувався для погашення позики та перетворення на дохід від атаки.

Подальші атаки відбувалися одна за одною — куди пішли викрадені кошти?

Приблизно через 24 хвилини після першої атаки другий хакер знову захопив два місця в управлінні через флеш-позику, вилучив частину ліквідних позицій Uniswap V3, що належали Freezer, і використав самозроблений торговий пул для подальшого переведення активів, отримавши близько 96 400 USDT. Приблизно через п'ять хвилин третій гаманець використав допоміжний контракт, залишений другим хакером, який не обмежував викликачів, безпосередньо позичивши його місця в управлінні для ухвалення пропозиції та переведення близько 550 000 X. Перші два раунди атак завдали загальних збитків близько 4,85 мільйона USDT, а третій раунд перевів ще близько 550 000 X; три раунди атак відбулися менш ніж за пів години.

Згідно з відстеженням Bitquery, перший хакер конвертував основні надходження USDT в ETH протягом кількох хвилин після атаки, а потім розподілив їх на п'ять гаманців, загалом близько 2 022,86 ETH. Другий хакер конвертував USDT в ETH і направив їх через проміжні адреси до ChangeNOW, весь процес переказу зайняв близько 21 хвилини.

Після втрати повноважень управління переведення активів швидко перетворилося з одиничної атаки першого хакера на послідовне викачування кількома гаманцями. Пізнішим учасникам навіть не потрібно було знову купувати токени для агітації; вони могли використовувати наявні повноваження для подальшого переведення активів.

Ончейн-світ, де вартість атак на управління стає дедалі нижчою

X100 не є поодиноким випадком, і атаки на управління не обов'язково вимагають від хакерів заздалегідь вкладати величезні кошти. Зловмисники можуть або купувати токени для отримання права голосу, або використовувати низькі пороги пропозицій для пошуку можливостей, тоді як флеш-позики додатково дозволяють позиченим коштам брати участь у захопленні влади в управлінні.

З початку цього року подібні атаки на управління неодноразово завдавали великих збитків. У липні зловмисник Bonk DAO витратив близько $4,09 мільйона на купівлю токенів, що становили 1,003% пропозиції, лише трохи перевищивши поріг схвалення управління, а потім перевів близько $20,5 мільйона активів через зловмисну пропозицію і навіть повернув застейкані токени після завершення голосування. У серпні Term Finance втратила близько $8,5 мільйона через атаку на управління. Навіть якщо для купівлі права голосу потрібні мільйони доларів, ці гроші можуть не бути витратами, які зрештою несе зловмисник.

Поріг для деяких спроб атак був навіть лише кілька сотень доларів. У березні цього року зловмисник Moonwell витратив лише близько $1 808 на купівлю MFAM і самоделегування, а потім подав зловмисну пропозицію, намагаючись отримати права управління над сімома кредитними ринками та основними контрактами, що стосувалися близько $1,08 мільйона коштів користувачів. У вересні зловмисник Olas витратив лише близько $135 на блокування 5 100 OLAS, перевищивши поріг пропозиції. Хоча обидві атаки були перехоплені, вони показують, що зловмисникам не обов'язково володіти більшістю голосів; лише отримання права на подання пропозиції може створити можливості для атаки.

22 жовтня Arkadiko також зазнав атаки на управління. Зловмисник придбав достатньо DIKO, одноосібно провів голосування за пропозицію, що впроваджувала шкідливий контракт, без жодного голосу проти в процесі, і оціночні збитки становили близько 1,09 мільйона доларів.

Права на управління можна позичити, а активи можна перевести геть щойно голосування проходить. Коли контроль над скарбницею так легко переходить з рук у руки, кого насправді може захистити так зване децентралізоване управління?



Посилання на джерело