
2023年11月23日、Tick操作と流動性の二重計算により、KyberSwapがイーサリアムやアービトラムなどの複数のネットワークでハッキングされ、攻撃者は約4,800万ドルの利益を得ました。
SharkTeam はこのインシデントの技術分析を直ちに実施し、セキュリティ上の注意事項をまとめましたので、今後のプロジェクトがこれを教訓にして、ブロックチェーン業界のセキュリティ防御ラインを共同で構築できることを期待しています。
1. 攻撃トランザクション分析
この攻撃イベントは比較的複雑であり、攻撃の実装も比較的巧妙であるため、詳細な分析と説明のために攻撃トランザクションの 1 つを選択します。
攻撃トランザクション:
0x09a3a12d58b0bb80e33e3fb8e282728551dc430c65d1e520fe0009ec519d75e8
攻撃者のアドレス:
0x50275E0B7261559cE1644014d4b78D4AA63BE836
攻撃者の契約:
0xaF2Acf3D4ab78e4c702256D214a3189A874CDC13
この取引では、攻撃者は 3 つの異なる流動性プールに対して一連の操作を実行し、プール内の資金を流出させました。攻撃フロー分析用に、互いに独立して存在するプールを選択しました。
攻撃プロセス:
1. 攻撃者は最初にフラッシュ ローンを通じて 10,000 wstETH を借り、次に約 2,998 wstETH をプールに追加し、約 2,842 WETH を交換しました。
2. この時点で、プール内の対応する Tick ステータスは -110、910 で、wstETH の価格は 1.05 ETH から 0.000015257 に変化します。この時点では、プールの流動性は 0 であり、その後の偽の流動性の作成への道が開かれます。
3. 攻撃者は [0.000014659, 0.000015260] の範囲で 3.4 wstETH の流動性を追加し、0.56 wstETH を削除しました。
4. 次に、攻撃者は 2 つのスワップ、すなわち WETH->wstETH および wstETH->WETH を実行します。最初のスワップの後、価格は 0.000014659 よりわずかに低い 0.000014657 に押し上げられました。 2 回目のスワップの後、価格は 0.000016368 に引き上げられます。
5. 当初、プールには約 3 wstETH の流動性がありました (ミント 3.4 wstETH - バーン 0.56 wstETH)。現在、プールには約 (1,056 + 3,911) コインがあり、明らかにそれより多くなっています。
6. 攻撃がフラッシュ ローンを返した後、資金は攻撃契約から転送されます。
2. 脆弱性の原因分析
この攻撃の根本原因: computeSwapStep 関数では、Tick を計算するときに精度が失われます。 Tick は操作できるため、_updateLiquidityAndCrossTick 関数はうまくバイパスされ、流動性を繰り返し増加させることができます。
1. 最初のスワップでは、攻撃者は calcReachAmount 関数を使用して wstETH の量を計算し、最終的に 1, 056.056735638220800000 を計算しました。
2.estimateIncrementalLiquidity 関数と calcFinalPrice 関数を呼び出した後、渡される数量は 1, 056.056735638220799999 です。切り上げ、切り捨て処理を行うと、このときのTickは-111311、下限Tickは-111310となる。したがって、nextTick = currentTick+ 1 を使用し、「!=」を使用して 2 つの sqrtP パラメーターを判断することにより、_updateLiquidityAndCrossTick 関数が正常にバイパスされ、流動性の更新が回避されます。
3. 2 回目のスワップ中に、流動性を高めるために _updateLiquidityAndCrossTick が呼び出されました。最初のスワップ中の数量計算の精度が失われたため、流動性が更新されずに削除され、2 回目の流動性計算で二重の状況が発生しました。
3. 安全に関する提案
この攻撃に対応するために、開発者は日常の開発において次のセキュリティ対策を講じる必要があります。
1. 精度の低下を避けるために、ビジネスにおける不変条件と数学的論理を正しく計算することに注意してください。
2. プロジェクトがリリースされる前に、第三者の専門監査チームと協力して契約監査を実施する必要があります。
About Us
SharkTeam のビジョンは、Web3 の世界を保護することです。このチームは、ブロックチェーンとスマート コントラクトの基礎理論に精通した、世界中から集まった経験豊富なセキュリティ専門家と上級研究者で構成されています。オンチェーンビッグデータ分析、オンチェーンリスク警告、スマートコントラクト監査、暗号資産回復などのサービスを提供しており、オンチェーンビッグデータ分析およびリスク警告プラットフォームChainAegisを構築しています。詳細なグラフ分析を利用して、Web3 の世界での高度永続的脅威 (APT) リスクに効果的に対抗できます。 Polkadot、Moonbeam、polygon、Sui、OKX、imToken、ChainIDE など、Web3 エコシステムのさまざまな分野の主要企業と長期的な協力関係を確立しています。
公式ウェブサイト:https://www.sharkteam.org
Twitter:https://twitter.com/sharkteamorg
Discord:https://discord.gg/jGH9xXCjDZ
Telegram:https://t.me/sharkteamorg