Poly Networkがハッカーの攻撃を受ける:契約の脆弱性によりkeeperが改ざんされる

robot
概要作成中

Poly Networkがハッカーによる攻撃を受けた事件の分析

近日、クロスチェーン相互運用プロトコルPoly Networkがハッカーの攻撃を受け、広範な関心を引き起こしました。セキュリティチームの詳細な分析によると、攻撃者はkeeperの秘密鍵の漏洩を通じて攻撃を実施したのではなく、契約の脆弱性を利用しました。

攻撃の原則

この攻撃の核心は、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数が、_executeCrossChainTx関数を通じて特定のクロスチェーントランザクションを実行できることです。 EthCrossChainData コントラクトの所有者は EthCrossChainManager コントラクトであるため、後者は前者の putCurEpochConPubKeyBytes 関数を呼び出してコントラクトのキーパーを変更できます。

慎重に細工されたデータをverifyHeaderAndExecuteTx関数に渡すことで、攻撃者は_executeCrossChainTx関数にEthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数の呼び出しを実行させ、キーパーの役割を攻撃者が指定したアドレスに変更します。 キーパーの役割が置き換えられると、攻撃者は自由に取引を構築し、コントラクトから任意の金額の資金を引き出すことができます。

攻撃プロセス

  1. 攻撃者はまず、EthCrossChainManagerコントラクトのverifyHeaderAndExecuteTx関数を通じてputCurEpochConPubKeyBytes関数を呼び出し、キーパーを変更します。

  2. その後、攻撃者は変更された権限を利用して一連の攻撃取引を実施し、契約から資金を引き出しました。

  3. keeperが変更されたため、他のユーザーの正常な取引が拒否されました。

  4. この攻撃パターンはBSCチェーンだけでなく、イーサリアムネットワークでも同様の攻撃操作が発生しました。

まとめ

この攻撃の根本的な原因は、EthCrossChainData コントラクトのキーパーが EthCrossChainManager コントラクトによって変更される可能性があり、EthCrossChainManager コントラクトの verifyHeaderAndExecuteTx 関数が _executeCrossChainTx 関数を通じてユーザーが入力したデータを実行できることです。 攻撃者は、この設計上の欠陥を利用して、特定のデータを構築することでEthCrossChainDataコントラクトのキーパーを変更し、資金の盗難を達成しました。

この出来事は再びクロスチェーンプロトコルのセキュリティ設計の重要性を浮き彫りにし、特に権限管理や関数呼び出しに関しては、より厳格な監査と制限が必要です。分散型金融プロジェクトにとって、継続的なセキュリティ監査とバグ修正は、同様の攻撃事件の発生を防ぐために極めて重要です。

!

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 6
  • リポスト
  • 共有
コメント
0/400
PanicSeller69vip
· 08-12 04:32
バグがあってもDeFiをやるのか?
原文表示返信0
BearMarketNoodlervip
· 08-11 11:12
ホワイト売春チュートリアル警告の別の犠牲者
原文表示返信0
HodlKumamonvip
· 08-10 15:50
あああ QA監査はどうしてこんなに曖昧なの〜
原文表示返信0
AirdropATMvip
· 08-10 15:49
契約の脆弱性は本当に厄介です
原文表示返信0
TokenCreatorOPvip
· 08-10 15:46
またやられちゃった
原文表示返信0
PoolJumpervip
· 08-10 15:31
こんなにたくさんの毛をむしられているのに、契約はまだバグがあると言えるのか?
原文表示返信0
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)