SharkTeam: Analisis serangan KyberSwap

星球日报

Pada 23 November 2023, KyberSwap diretas di beberapa jaringan seperti Ethereum dan Arbitrum karena manipulasi tick dan penghitungan ganda likuiditas, dan penyerang telah mendapat untung sekitar $48 juta.

SharkTeam:KyberSwap攻击事件原理分析

SharkTeam melakukan analisis teknis dari insiden ini untuk pertama kalinya, dan merangkum tindakan pencegahan keamanan, berharap bahwa proyek tindak lanjut dapat menganggap ini sebagai peringatan dan bersama-sama membangun garis pertahanan keamanan untuk industri blockchain.

I. Analisis Transaksi Serangan

Serangan ini lebih kompleks dan implementasi serangan lebih cerdik, jadi kami memilih salah satu transaksi serangan untuk analisis dan penjelasan terperinci.

Perdagangan Serangan:

0x09a3a12d58b0bb80e33e3fb8e282728551dc430c65d1e520fe0009ec519d75e8

Alamat penyerang:

0x50275E0B7261559cE1644014d4b78D4AA63BE836

Kontrak Penyerang:

0xaF2Acf3D4ab78e4c702256D214a3189A874CDC13

Dalam transaksi ini, penyerang melakukan serangkaian operasi terhadap 3 kolam likuiditas yang berbeda untuk menguras kolam. Kami memilih kumpulan untuk analisis aliran serangan, yang ada secara independen satu sama lain.

Proses serangan:

  1. Penyerang pertama-tama meminjam 10.000 wstETH melalui pinjaman kilat, kemudian menambahkan sekitar 2.998 wstETH ke kolam, dan menukar sekitar 2.842 WETH.

SharkTeam:KyberSwap攻击事件原理分析

  1. Pada saat ini, status tick yang sesuai di pool adalah -110, 910, dan harga wstETH berubah dari 1,05 ETH menjadi 0,000015257. Pada saat ini, likuiditas kolam adalah 0, yang membuka jalan bagi penciptaan likuiditas palsu;

SharkTeam:KyberSwap攻击事件原理分析

  1. Penyerang menambahkan likuiditas 3,4 wstETH dan menghapus 0,56 wstETH dalam kisaran [0,000014659 , 0,000015260].

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

  1. Selanjutnya, penyerang melakukan dua swap, yaitu WETH->wstETH, wstETH-> WETH. Setelah swap pertama, harga didorong turun ke 0,000014657, yang sedikit lebih rendah dari 0,000014659. Setelah swap kedua, naikkan harga menjadi 0,000016368;

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

  1. Pada awalnya, ada sekitar 3 wstETH likuiditas di kolam (mint 3.4 wstETH - membakar 0.56 wstETH), dan sekarang ada sekitar (1.056 + 3.911) di kolam, yang jelas lebih;

  2. Setelah serangan mengembalikan pinjaman kilat, dan dana ditransfer dari kontrak serangan

SharkTeam:KyberSwap攻击事件原理分析

2. Analisis penyebab kerentanan

Akar penyebab serangan ini: Dalam fungsi computeSwapStep, ada kehilangan akurasi saat menghitung kutu. Karena kutu dapat dimanipulasi, ia berhasil melewati fungsi _updateLiquidityAndCrossTick, memungkinkan likuiditas ditingkatkan berulang kali.

  1. Dalam swap pertama, penyerang menggunakan fungsi calcReachAmount untuk menghitung jumlah wstETH, dan akhirnya menghitung 1.056.056735638220800000;

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

  1. Setelah memanggil fungsi estimateIncrementalLiquidity dan calcFinalPrice, nomor yang diteruskan adalah 1.056.056735638220799999. Setelah dibulatkan ke atas dan dibulatkan ke bawah, centangnya -111311 dan centang bawah -111310. Oleh karena itu, dengan menggunakan nextTick = currentTick+ 1 dan menggunakan “!=” untuk menilai dua parameter sqrtP, fungsi _updateLiquidityAndCrossTick berhasil dilewati, dan pembaruan likuiditas dihindari.

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

  1. Pada swap kedua, _updateLiquidityAndCrossTick dipanggil, yang meningkatkan likuiditas. Karena hilangnya akurasi dalam perhitungan kuantitas selama swap pertama, likuiditas tidak diperbarui dan dihapus, menghasilkan situasi ganda ketika likuiditas dihitung pada kedua kalinya.

SharkTeam:KyberSwap攻击事件原理分析

III. Rekomendasi Keselamatan

Menanggapi serangan ini, pengembang harus mengambil langkah-langkah keamanan berikut dalam pengembangan harian mereka:

  1. Perhatikan perhitungan invarian dan logika matematika yang benar dalam bisnis untuk menghindari hilangnya akurasi.

  2. Sebelum proyek dirilis, perlu bekerja sama dengan tim audit profesional pihak ketiga untuk melakukan audit kontrak.

Tentang Kami

Visi SharkTeam adalah untuk mengamankan dunia Web3. Tim ini terdiri dari para profesional keamanan berpengalaman dan peneliti senior dari seluruh dunia, yang berpengalaman dalam teori dasar blockchain dan kontrak pintar. Ini menyediakan layanan termasuk analisis data besar on-chain, peringatan risiko on-chain, audit kontrak pintar, pemulihan aset kripto, dll., Dan telah menciptakan ChainAegis, analisis data besar on-chain dan platform peringatan dini risiko, yang mendukung tingkat analisis grafik mendalam yang tidak terbatas dan dapat secara efektif memerangi risiko Advanced Persistent Threat (APT) di dunia Web3. Ini telah menjalin hubungan kerja sama jangka panjang dengan pemain kunci di berbagai bidang ekosistem Web3, seperti Polkadot, Moonbeam, poligon, Sui, OKX, imToken, ChainIDE, dll.

Situs resmi:

Twitter:

Perselisihan:

Telegram:

Penafian: Informasi di halaman ini dapat berasal dari pihak ketiga dan tidak mewakili pandangan atau opini Gate. Konten yang ditampilkan hanya untuk tujuan referensi dan bukan merupakan nasihat keuangan, investasi, atau hukum. Gate tidak menjamin keakuratan maupun kelengkapan informasi dan tidak bertanggung jawab atas kerugian apa pun yang timbul akibat penggunaan informasi ini. Investasi aset virtual memiliki risiko tinggi dan rentan terhadap volatilitas harga yang signifikan. Anda dapat kehilangan seluruh modal yang diinvestasikan. Harap pahami sepenuhnya risiko yang terkait dan buat keputusan secara bijak berdasarkan kondisi keuangan serta toleransi risiko Anda sendiri. Untuk detail lebih lanjut, silakan merujuk ke Penafian.
Komentar
0/400
Tidak ada komentar