23 ноября 2023 года KyberSwap был взломан в нескольких сетях, таких как Ethereum и Arbitrum, из-за манипуляций с тиками и двойного учета ликвидности, и злоумышленники получили прибыль в размере около 48 миллионов долларов.
SharkTeam впервые провела технический анализ этого инцидента и обобщила меры безопасности, надеясь, что последующие проекты смогут воспринять это как предупреждение и совместно построить линию защиты для блокчейн-индустрии.
I. Анализ транзакций атак
Эта атака более сложная, а реализация атаки более гениальная, поэтому мы выбираем одну из транзакций атаки для детального анализа и объяснения.
В этой транзакции злоумышленник выполнил ряд операций с 3 различными пулами ликвидности для слива пулов. Мы выбрали пул для анализа потока атак, которые существовали независимо друг от друга.
Процесс атаки:
Сначала злоумышленник заимствовал 10 000 wstETH через флэш-кредит, затем добавил около 2 998 wstETH в пул и обменял около 2 842 WETH.
В это время соответствующий тиковый статус в пуле составляет -110, 910, а цена wstETH меняется с 1.05 ETH на 0.000015257. В это время ликвидность пула равна 0, что открывает путь для создания ложной ликвидности;
Злоумышленник добавляет 3.4 wstETH ликвидности и удаляет 0.56 wstETH в диапазоне [0.000014659 , 0.000015260].
Далее злоумышленник совершает два свопа: WETH->wstETH, wstETH-> WETH. После первого свопа цена опустилась до 0,000014657, что немного ниже 0,000014659. После второго свопа поднимаем цену до 0,000016368;
В начале в пуле было около 3 wstETH ликвидности (mint 3.4 wstETH - burn 0.56 wstETH), а сейчас в пуле около (1,056 + 3,911), что явно больше;
После атаки возвращается флэш-займ, а средства переводятся с контракта атаки
2. Анализ причины уязвимости
Основная причина этой атаки: в функции computeSwapStep происходит потеря точности при вычислении тиков. Поскольку тиком можно манипулировать, он успешно обходит функцию _updateLiquidityAndCrossTick, позволяя многократно увеличивать ликвидность.
В первом свопе злоумышленник использует функцию calcReachAmount для вычисления количества wstETH, и в итоге вычисляет 1, 056.056735638220800000;
После вызова функций estimateIncrementalLiquidity и calcFinalPrice передается число 1, 056.056735638220799999. После округления в большую и меньшую сторону тик равен -111311, а нижний тик -111310. Таким образом, используя nextTick = currentTick+ 1 и используя “!=” для оценки двух параметров sqrtP, функция _updateLiquidityAndCrossTick успешно обходится, и обновление ликвидности избегается.
На втором свопе был коллирован _updateLiquidityAndCrossTick, что повысило ликвидность. Из-за потери точности в расчете количества при первом свопе ликвидность не обновляется и удаляется, в результате чего возникает двойная ситуация, когда ликвидность рассчитывается во второй раз.
III. Рекомендации по безопасности
В ответ на эту атаку разработчики должны принять следующие меры безопасности в своей повседневной разработке:
Обращайте внимание на правильный расчет инвариантов и математическую логику в бизнесе, чтобы избежать потери точности.
Перед выпуском проекта необходимо сотрудничать со сторонней профессиональной аудиторской командой для проведения аудита контракта.
О нас
Видение SharkTeam заключается в том, чтобы обезопасить мир Web3. Команда состоит из опытных специалистов по безопасности и старших исследователей со всего мира, которые хорошо разбираются в базовой теории блокчейна и смарт-контрактов. Он предоставляет услуги, включая ончейн-анализ больших данных, ончейн-предупреждение о рисках, аудит смарт-контрактов, восстановление криптоактивов и т. д., и создал ChainAegis, ончейн-платформу для анализа больших данных и раннего предупреждения рисков, которая поддерживает неограниченные уровни углубленного анализа графов и может эффективно бороться с риском Advanced Persistent Threat (APT) в мире Web3. Она установила долгосрочные отношения сотрудничества с ключевыми игроками в различных областях экосистемы Web3, такими как Polkadot, Moonbeam, polygon, Sui, OKX, imToken, ChainIDE и т. д.
Официальный сайт:
Щебетать:
Разногласие:
Телеграмма:
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
SharkTeam: Анализ атаки KyberSwap
23 ноября 2023 года KyberSwap был взломан в нескольких сетях, таких как Ethereum и Arbitrum, из-за манипуляций с тиками и двойного учета ликвидности, и злоумышленники получили прибыль в размере около 48 миллионов долларов.
SharkTeam впервые провела технический анализ этого инцидента и обобщила меры безопасности, надеясь, что последующие проекты смогут воспринять это как предупреждение и совместно построить линию защиты для блокчейн-индустрии.
I. Анализ транзакций атак
Эта атака более сложная, а реализация атаки более гениальная, поэтому мы выбираем одну из транзакций атаки для детального анализа и объяснения.
Атака Трейдинг:
0x09a3a12d58b0bb80e33e3fb8e282728551dc430c65d1e520fe0009ec519d75e8
Адрес злоумышленника:
0x50275E0B7261559cE1644014d4b78D4AA63BE836
Контракт с нападающим:
0xaF2Acf3D4ab78e4c702256D214a3189A874CDC13
В этой транзакции злоумышленник выполнил ряд операций с 3 различными пулами ликвидности для слива пулов. Мы выбрали пул для анализа потока атак, которые существовали независимо друг от друга.
Процесс атаки:
В начале в пуле было около 3 wstETH ликвидности (mint 3.4 wstETH - burn 0.56 wstETH), а сейчас в пуле около (1,056 + 3,911), что явно больше;
После атаки возвращается флэш-займ, а средства переводятся с контракта атаки
2. Анализ причины уязвимости
Основная причина этой атаки: в функции computeSwapStep происходит потеря точности при вычислении тиков. Поскольку тиком можно манипулировать, он успешно обходит функцию _updateLiquidityAndCrossTick, позволяя многократно увеличивать ликвидность.
III. Рекомендации по безопасности
В ответ на эту атаку разработчики должны принять следующие меры безопасности в своей повседневной разработке:
Обращайте внимание на правильный расчет инвариантов и математическую логику в бизнесе, чтобы избежать потери точности.
Перед выпуском проекта необходимо сотрудничать со сторонней профессиональной аудиторской командой для проведения аудита контракта.
О нас
Видение SharkTeam заключается в том, чтобы обезопасить мир Web3. Команда состоит из опытных специалистов по безопасности и старших исследователей со всего мира, которые хорошо разбираются в базовой теории блокчейна и смарт-контрактов. Он предоставляет услуги, включая ончейн-анализ больших данных, ончейн-предупреждение о рисках, аудит смарт-контрактов, восстановление криптоактивов и т. д., и создал ChainAegis, ончейн-платформу для анализа больших данных и раннего предупреждения рисков, которая поддерживает неограниченные уровни углубленного анализа графов и может эффективно бороться с риском Advanced Persistent Threat (APT) в мире Web3. Она установила долгосрочные отношения сотрудничества с ключевыми игроками в различных областях экосистемы Web3, такими как Polkadot, Moonbeam, polygon, Sui, OKX, imToken, ChainIDE и т. д.
Официальный сайт:
Щебетать:
Разногласие:
Телеграмма: