SharkTeam:KyberSwap攻撃の分析

星球日报

2023年11月23日、KyberSwapはティック操作や流動性の二重カウントにより、イーサリアムやアービトラムなどの複数のネットワークでハッキングされ、攻撃者は約4,800万ドルの利益を上げました。

SharkTeam:KyberSwap攻击事件原理分析

SharkTeamは、このインシデントの技術的な分析を初めて実施し、セキュリティ上の注意事項をまとめ、フォローアッププロジェクトがこれを警告として受け止め、ブロックチェーン業界のセキュリティ防御ラインを共同で構築できることを期待しています。

I. 攻撃トランザクション分析

この攻撃はより複雑で、攻撃の実装はより巧妙であるため、詳細な分析と説明のために攻撃トランザクションの1つを選択します。

アタック取引:

0x09a3a12d58b0bb80e33e3fb8e282728551dc430c65d1e520fe0009ec519d75e8

攻撃者のアドレス:

0x50275E0B7261559cE1644014d4b78D4AA63BE836

攻撃依頼:

0xaF2Acf3D4ab78e4c702256D214a3189A874CDC13

このトランザクションでは、攻撃者は3つの異なる流動性プールに対して一連の操作を実行し、プールを枯渇させました。 攻撃フロー分析には、互いに独立して存在するプールを選択しました。

攻撃プロセス:

  1. 攻撃者は最初にフラッシュローンで10, 000 wstETHを借り、次に約2, 998 wstETHをプールに追加し、約2, 842 WETHを交換しました。

SharkTeam:KyberSwap攻击事件原理分析

  1. このとき、プール内の対応するティックステータスは-110, 910で、wstETHの価格は1.05ETHから0.000015257に変化します。 このとき、プールの流動性は0であり、偽の流動性を生み出す道を開きます。

SharkTeam:KyberSwap攻击事件原理分析

  1. 攻撃者は 3.4 wstETH の流動性を追加し、[0.000014659 , 0.000015260] の範囲で 0.56 wstETH を削除します。

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

4.次に、攻撃者はWETH->wstETH、wstETH->WETHの2つのスワップを行います。 最初のスワップの後、価格は0.000014659よりわずかに低い0.000014657に押し下げられました。 2回目のスワップ後、価格を0.000016368に上げます。

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

5.当初、プールには約3 wstETHの流動性がありました(ミント3.4 wstETH - 0.56 wstETHを燃やす)が、現在はプールに約(1, 056 + 3, 911)あり、明らかに多くなっています。

6.攻撃後、フラッシュローンが返され、資金が攻撃契約から送金されます

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 の 2 つのパラメータを判定することで、_updateLiquidityAndCrossTick 関数をうまくバイパスし、流動性の更新を回避します。

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

  1. 2回目のスワップでは、_updateLiquidityAndCrossTickがコールされ、流動性が高まりました。 最初のスワップで数量の計算が正確さを失ったため、流動性は更新されず、削除されず、2回目のスワップで流動性が計算されたときに二重の状況になります。

SharkTeam:KyberSwap攻击事件原理分析

III. 安全上の推奨事項

この攻撃に対応して、開発者は日常の開発で次のセキュリティ対策を講じる必要があります。

1.精度の低下を避けるために、ビジネスにおける不変量と数学的論理の正しい計算に注意を払います。

2.プロジェクトがリリースされる前に、サードパーティの専門監査チームと協力して契約監査を実施する必要があります。

会社案内

SharkTeamのビジョンは、Web3の世界を保護することです。 このチームは、ブロックチェーンとスマートコントラクトの基礎となる理論に精通した、経験豊富なセキュリティ専門家と世界中の上級研究者で構成されています。 オンチェーンビッグデータ分析、オンチェーンリスク警告、スマートコントラクト監査、暗号資産回収などのサービスを提供し、オンチェーンビッグデータ分析およびリスク早期警告プラットフォームであるChainAegisを作成し、無制限のレベルの詳細なグラフ分析をサポートし、Web3の世界におけるAdvanced Persistent Threat(APT)のリスクに効果的に対抗できます。 Polkadot、Moonbeam、polygon、Sui、OKX、imToken、ChainIDEなど、Web3エコシステムのさまざまな分野の主要なプレーヤーと長期的な協力関係を築いています。

公式ウェブサイト:

囀る:

不和:

電報:

免責事項:このページの情報は第三者から提供される場合があり、Gateの見解または意見を代表するものではありません。このページに表示される内容は参考情報のみであり、いかなる金融、投資、または法律上の助言を構成するものではありません。Gateは情報の正確性または完全性を保証せず、当該情報の利用に起因するいかなる損失についても責任を負いません。仮想資産への投資は高いリスクを伴い、大きな価格変動の影響を受けます。投資元本の全額を失う可能性があります。関連するリスクを十分に理解したうえで、ご自身の財務状況およびリスク許容度に基づき慎重に判断してください。詳細は免責事項をご参照ください。
コメント
0/400
コメントなし