Флэш-кредит захватил два места в управлении: какие уроки дает взлом X100?

OdailyOdaily

Оригинал | Odaily News (@OdailyChina)

Автор | Asher (@Asher_0210)

24 октября проект DeFi на Ethereum X100 подвергся атаке на управление, в результате которой было похищено около 4,85 млн USDT. По данным GMGN, рыночная капитализация токена X упала с примерно 760 млн долларов до атаки до примерно 24 млн долларов, снизившись за день более чем на 96%.

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

Ниже Odaily News разберет весь процесс этой атаки на управление и выявит скрытые угрозы безопасности DAO-управления, которые обнажил инцидент с X100.

 

Как хакер, заняв 1,94 млн долларов, захватил два места в «Сенате»?

Казначейство X100 управляется «Сенатом» из трех мест, члены которого голосуют за продажу токенов казначейства, размещение ликвидности и другие операции. Контроль над двумя местами позволяет проводить предложения и распоряжаться активами казначейства. Держатели токенов проекта X вносят их в контракт Freezer, выбирают заморозку на один, три или пять лет и платят регистрационный взнос в размере 100 X, чтобы участвовать в выборах. Три места распределяются в реальном времени по текущему замороженному балансу адресов-кандидатов, и первые три получают право управления.

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

До атаки адрес, занимавший второе место, имел замороженными около 19 000 X. 24 октября в 22:11 хакер взял флэш-кредит в Aave на сумму около 1,94 млн USDT, купил X и распределил их между двумя вспомогательными контрактами, которые затем заморозили токены и приняли участие в выборах. Каждый контракт заморозил 19 000,000001 X, что всего на одну миллионную токена больше, чем у прежнего второго места, и таким образом одновременно занял второе и третье места, вытеснив прежнего участника из списка управляющих.

Как хакер, получив большинство голосов, перевел активы казначейства в свои руки?

 

Два голоса «за» позволили казначейству продать 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 млн долларов.

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

Данный контент предназначен исключительно для информационных и образовательных целей и не является инвестиционным советом, связанным с BTCC. BTCC прилагает все усилия, но не может гарантировать правдивость, точность или оригинальность вышеприведенного контента.

Рекомендуемые

Уже признаны не ценными бумагами: почему шесть криптоорганизаций снова обратились в SEC?Новое поколение «банды PayPal»? Стажёры HRT дали миру главу Meta AI и основателя HyperliquidНовости BTCC (20 окт.): BTC отскочил к $82 800, SpaceX и Tesla обсуждают слияниеBTCC Daily (20 окт.) | Спотовые биткоин-ETF получили $527 млн чистого притока, Strive купила 4 045 BTC на прошлой неделеСледующее обновление Ethereum получило дату в Hoodi, но не в основной сети