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

SharkTeamは、このインシデントの技術的な分析を初めて実施し、セキュリティ上の注意事項をまとめ、フォローアッププロジェクトがこれを警告として受け止め、ブロックチェーン業界のセキュリティ防御ラインを共同で構築できることを期待しています。
この攻撃はより複雑で、攻撃の実装はより巧妙であるため、詳細な分析と説明のために攻撃トランザクションの1つを選択します。
アタック取引:
0x09a3a12d58b0bb80e33e3fb8e282728551dc430c65d1e520fe0009ec519d75e8
攻撃者のアドレス:
0x50275E0B7261559cE1644014d4b78D4AA63BE836
攻撃依頼:
0xaF2Acf3D4ab78e4c702256D214a3189A874CDC13
このトランザクションでは、攻撃者は3つの異なる流動性プールに対して一連の操作を実行し、プールを枯渇させました。 攻撃フロー分析には、互いに独立して存在するプールを選択しました。
攻撃プロセス:



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

5.当初、プールには約3 wstETHの流動性がありました(ミント3.4 wstETH - 0.56 wstETHを燃やす)が、現在はプールに約(1, 056 + 3, 911)あり、明らかに多くなっています。
6.攻撃後、フラッシュローンが返され、資金が攻撃契約から送金されます

この攻撃の根本的な原因: computeSwapStep 関数で、ティックを計算する際の精度が失われます。 ティックは操作できるため、_updateLiquidityAndCrossTick関数をうまくバイパスし、流動性を繰り返し増やすことができます。
1.最初のスワップでは、攻撃者はcalcReachAmount関数を使用してwstETHの量を計算し、最終的に1、056.056735638220800000を計算します。



この攻撃に対応して、開発者は日常の開発で次のセキュリティ対策を講じる必要があります。
1.精度の低下を避けるために、ビジネスにおける不変量と数学的論理の正しい計算に注意を払います。
2.プロジェクトがリリースされる前に、サードパーティの専門監査チームと協力して契約監査を実施する必要があります。
SharkTeamのビジョンは、Web3の世界を保護することです。 このチームは、ブロックチェーンとスマートコントラクトの基礎となる理論に精通した、経験豊富なセキュリティ専門家と世界中の上級研究者で構成されています。 オンチェーンビッグデータ分析、オンチェーンリスク警告、スマートコントラクト監査、暗号資産回収などのサービスを提供し、オンチェーンビッグデータ分析およびリスク早期警告プラットフォームであるChainAegisを作成し、無制限のレベルの詳細なグラフ分析をサポートし、Web3の世界におけるAdvanced Persistent Threat(APT)のリスクに効果的に対抗できます。 Polkadot、Moonbeam、polygon、Sui、OKX、imToken、ChainIDEなど、Web3エコシステムのさまざまな分野の主要なプレーヤーと長期的な協力関係を築いています。
公式ウェブサイト:
囀る:
不和:
電報: