#8: SushiSwap事件:不手際な救済試みから模倣攻撃の連鎖へ

2023年4月9日、SushiSwapは未検証の外部パラメータにより不正利用の標的となり、約330万ドルの損失が発生しました。

#8: SushiSwap事件:不手際な救済試みから模倣攻撃の連鎖へ

2023年4月9日、SushiSwapは検証されていない外部パラメータによりエクスプロイトの標的となりました。総損失額は約330万ドルです。

イーサリアム上で多くのユーザーを抱える主要なプロトコルとして、このようなトッププロトコルでさえ、コントラクトのアップグレード中に重大な新問題が発生する可能性があります。これはDeFiコミュニティにとって、セキュリティは常に最優先事項であるべきだというリマインダーです。 さらに、このセキュリティインシデントはホワイトハットセキュリティ研究者による救済の試みによって引き起こされ、コミュニティ内でかなりの議論を巻き起こしました。ここでは、このインシデントについて簡潔に紹介し、2023年のトップ10セキュリティインシデントの1つとして取り上げます。

背景

SushiSwap

有名なDEXであるSushiSwapは、Uniswapに対してバンパイアアタックを仕掛け、絶大な成功を収めました。ピーク時にはTVLは80億ドルに達し、現在でも約4億ドルを維持しています。

承認(Approval)

要するに、***「コントラクトがあなたのウォレットから特定のトークンにアクセスし、送金する許可」***のことです。

利便性のために、多くのコントラクトはデフォルトで無制限の承認を求めます。セキュリティリスクを懸念する多くのユーザーは、さまざまなプロトコルに少額しか預けませんが、これらのユーザーはプロトコルに無制限の資金承認を与えています。プロトコルが侵害された場合、アカウント内の承認されたすべてのトークンが失われる可能性があります。

脆弱性

検証されていない外部パラメータ

RouteProcessor2コントラクトのprocessRoute()は、ユーザーにパラメータrouteを通じてコールフローを完全に制御させます。 そしてuniswapV3SwapCallback()では、safeTransferFrom()のパラメータfromは、ユーザー提供のrouteからデコードされます。 その結果、RouteProcessor2コントラクトを承認していたユーザーは資産を失いました。

攻撃プロセス

このインシデントは複数の攻撃トランザクションを伴いましたが、最初の攻撃トランザクションを例に説明します。 トランザクション: 0x43ff7e01423044cfb501b4fe9ef1386725c0ddc117dadd6e6620cb68bdeaf4f9

  1. 攻撃者は、慎重に構築された長い引数routeを使用して、脆弱なRouteProcessor2コントラクトのprocessRoute()を呼び出しました。
  2. processRouteInternal()は、ユーザー提供のルートに基づいてInputStreamを作成します。
  3. トランザクションは、攻撃者のrouteに従い、swapUniV3()に到達しました。poolstreamからデコードされており、攻撃者がどのpoolswap()するかを制御し、それをlastCalledPoolとして設定したことに注意してください。
  4. これにより、攻撃者がデプロイした悪意のあるコントラクトが呼び出され、攻撃者は悪意のあるcalldataを渡してRouteProcessor2のuniswapV3SwapCallback()にコールバックしました。
  5. uniswapV3SwapCallback()はmsg.senderチェックを必要としますが、lastCalledPoolはすでに悪意のあるコントラクトに設定されていたため、ハッカーはチェックをバイパスしました。重要なのは、safeTransferFrom()のパラメータfromが、攻撃者が構築したcalldataからデコードされたことです。
  6. 被害者の資産は、攻撃者がデプロイした悪意のあるコントラクトに転送されました。

議論を呼んだホワイトハット救済

ユーザー名@trust__90によるホワイトハットがこの問題を特定し、資金の救済を試みましたが、この救済の試みが悲劇を引き起こしたことは言及する価値があります。

  • プライベートRPCではなく、メンプールを使用してトランザクションをブロードキャストしたこと。
  • リスクのあるすべての資金ではなく、100 Etherのみを救済しようとしたこと。

これにより、MEVボットやその他の攻撃者が複数のコピーキャットトランザクションを実行する道が開かれ、ほとんどの資金が流出しました。これらの出来事の後、@trust__90は批判に直面し、自身の行動を擁護しようとしました

BlockSecによる救済

この攻撃において、私たちは100 Etherを救済し、その資金を被害者である0xsifuに返還しました。

現在までに、私たちは20件以上の実際のハッキングを阻止し、1400万ドル以上の資産を救済しました。

セキュリティに関する推奨事項

アップグレードは常に監査を受けるべき

これはDeFiコミュニティにとって、セキュリティは常に最優先事項であるべきだというリマインダーです。監査はセキュリティを保証するものではありませんが、監査がないことが安全を保証するわけでもありません。

承認問題の緩和策

2023年には、承認攻撃に関連する多くのインシデントが発生しました。この機会に、承認の管理の重要性を改めて強調します。 セキュリティプラクティスとして、必要最低限の金額のみを承認するか、利便性を優先する場合は、必要額よりわずかに多い金額を承認することが推奨されます。

BlockSecのMetaSuitesは、便利な承認診断機能を提供しています。さらに、Revoke Cashのようなツールを使用して、承認ステータスを定期的に確認することができます。

モニタリングと自動応答メカニズムの導入

イーサリアムはダークフォレストであり、DeFiコミュニティの誰もが、セキュリティ専門家でさえ、さまざまなリスクや課題に直面しています。 2023年、私たちはPhalconをリリースしました。これは、攻撃を監視するだけでなく、リアルタイムで脅威を積極的にブロックするように設計された、業界初の自動応答システムです。Phalconの戦術的にテストされた機能は、20件以上の実際のハッキングを阻止し、1400万ドル以上の資産を救済したことでその有効性を証明しています。このイノベーションにより、すべてのステークホルダーは、投資を保護するための積極的な対策が講じられていることを知って、より安心して眠ることができます。

このシリーズの他の記事を読む:

Sign up for the latest updates