Флэш-кредит захватил два места в управлении: чему учит кража 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 управляет «Сенат» из трёх мест, члены которого голосованием решают такие операции, как продажа токенов казначейства и размещение ликвидности. Как только контролируются два из трёх мест, предложения могут быть приняты, а активы казначейства мобилизованы. Держатели вносят токен проекта 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, превысив порог предложения. Хотя обе атаки были перехвачены, они показывают, что злоумышленникам не обязательно нужно владеть большинством голосов; mere получение права на предложение может создать возможности для атаки.

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

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



Ссылка на источник