SharkTeam: Аналіз атаки KyberSwap

星球日报

23 листопада 2023 року KyberSwap було зламано в кількох мережах, таких як Ethereum та Arbitrum, через маніпуляції з тиками та подвійний підрахунок ліквідності, і зловмисники отримали прибуток у розмірі близько 48 мільйонів доларів.

SharkTeam:KyberSwap攻击事件原理分析

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

I. Аналіз транзакцій атаки

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

Атакуюча торгівля:

0x09a3a12d58b0bb80e33e3fb8e282728551dc430c65d1e520fe0009ec519d75e8

Адреса зловмисника:

0x50275E0B7261559cE1644014d4b78D4AA63BE836

Контракт зловмисника:

0xaF2Acf3D4ab78e4c702256D214a3189A874CDC13

У цій транзакції зловмисник виконав серію операцій проти 3 різних пулів ліквідності для зливу пулів. Ми вибрали пул для аналізу потоку атак, які існували незалежно один від одного.

Процес атаки:

  1. Зловмисник спочатку позичив 10 000 wstETH через флеш-позику, потім додав до пулу близько 2 998 wstETH і обміняв близько 2 842 WETH.

SharkTeam:KyberSwap攻击事件原理分析

  1. У цей час відповідний тік-статус у пулі становить -110, 910, а ціна wstETH змінюється з 1,05 ETH до 0,000015257. У цей час ліквідність пулу дорівнює 0, що відкриває шлях до створення помилкової ліквідності;

SharkTeam:KyberSwap攻击事件原理分析

  1. Зловмисник додає ліквідність 3.4 wstETH і видаляє 0.56 wstETH в діапазоні [0.000014659 , 0.000015260].

SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析

  1. Далі зловмисник робить два свопи, а саме: WETH->wstETH, wstETH-> WETH. Після першого свопу ціна була відсунута вниз до 0,000014657, що трохи нижче за 0,000014659. Після другого свопу підніміть ціну до 0,000016368;

SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析

  1. На початку в пулі було близько 3 wstETH ліквідності (mint 3.4 wstETH - burn 0.56 wstETH), а зараз в пулі близько (1 056 + 3 911), що очевидно більше;

  2. Після атаки повертається флеш кредит, а кошти перераховуються з атакуючого контракту

SharkTeam:KyberSwap攻击事件原理分析

2. Аналіз причини уразливості

Першопричина цієї атаки: У функції computeSwapStep відбувається втрата точності при обчисленні тиків. Оскільки тиком можна маніпулювати, він успішно обходить функцію _updateLiquidityAndCrossTick, дозволяючи багаторазово збільшувати ліквідність.

  1. У першому свопі зловмисник використовує функцію calcReachAmount для обчислення суми wstETH, і нарешті обчислює 1, 056.056735638220800000;

SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析

  1. Після виклику функцій estimateIncrementalLiquidity та calcFinalPrice передано число 1 056.056735638220799999. Після округлення в більшу і меншу сторону галочка дорівнює -111311, а нижня - -111310. Тому, використовуючи nextTick = currentTick+ 1 і використовуючи «!=» для оцінки двох параметрів sqrtP, функція _updateLiquidityAndCrossTick успішно обходить і уникає оновлення ліквідності.

SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析 SharkTeam:KyberSwap攻击事件原理分析

  1. При другому свопі називався _updateLiquidityAndCrossTick, що збільшувало ліквідність. У зв’язку з втратою точності розрахунку кількості при першому свопі ліквідність не оновлюється і видаляється, в результаті чого виникає подвійна ситуація, коли ліквідність розраховується вдруге.

SharkTeam:KyberSwap攻击事件原理分析

III. Рекомендації з безпеки

У відповідь на цю атаку розробники повинні вжити таких заходів безпеки у своїй щоденній розробці:

  1. Зверніть увагу на правильний розрахунок інваріантів і математичну логіку в бізнесі, щоб уникнути втрати точності.

  2. Перед виходом проекту необхідно співпрацювати зі сторонньою професійною аудиторською групою для проведення аудиту контракту.

Про нас

Бачення SharkTeam полягає в тому, щоб убезпечити світ Web3. Команда складається з досвідчених фахівців з безпеки та старших дослідників з усього світу, які добре розбираються в базовій теорії блокчейну та смарт-контрактів. Вона надає послуги, включаючи аналіз великих даних у мережі, попередження про ризики в мережі, аудит смарт-контрактів, відновлення криптоактивів тощо, а також створила ChainAegis, ончейн-платформу аналізу великих даних і раннього попередження про ризики, яка підтримує необмежені рівні поглибленого аналізу графів і може ефективно боротися з ризиком просунутої постійної загрози (APT) у світі Web3. Вона встановила довгострокові відносини співпраці з ключовими гравцями в різних сферах екосистеми Web3, такими як Polkadot, Moonbeam, polygon, Sui, OKX, imToken, ChainIDE тощо.

Офіційний сайт:

Твіттер:

Ворожнечу:

Телеграма:

Застереження: Інформація на цій сторінці може походити від третіх осіб і не відображає погляди або думки Gate. Вміст, що відображається на цій сторінці, є лише довідковим і не є фінансовою, інвестиційною або юридичною порадою. Gate не гарантує точність або повноту інформації і не несе відповідальності за будь-які збитки, що виникли в результаті використання цієї інформації. Інвестиції у віртуальні активи пов'язані з високим ризиком і піддаються значній ціновій волатильності. Ви можете втратити весь вкладений капітал. Будь ласка, повністю усвідомлюйте відповідні ризики та приймайте обережні рішення, виходячи з вашого фінансового становища та толерантності до ризику. Для отримання детальної інформації, будь ласка, зверніться до Застереження.
Прокоментувати
0/400
Немає коментарів