Poly Networkは、EthCrossChainManager契約の脆弱性によってハッキングされ、資金が失われました

robot
概要作成中

Poly Networkのハッキングの分析

最近、クロスチェーン相互運用プロトコルPoly Networkに対するハッカー攻撃事件が広く注目を集めています。セキュリティチームの分析によると、今回の攻撃はkeeperの秘密鍵の漏洩によるものではなく、攻撃者が巧妙に構成したデータを通じてEthCrossChainData契約のkeeperアドレスを成功裏に変更したものです。

攻撃の原則

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

攻撃者は、verifyHeaderAndExecuteTx関数に巧妙に設計されたデータを渡すことで、_executeCrossChainTx関数がEthCrossChainDataコントラクトのputCurEpochConPubKeyBytes関数を呼び出すようにし、keeper役割を攻撃者が指定したアドレスに変更しました。このステップを完了すると、攻撃者は自由に取引を構築し、コントラクトから任意の量の資金を引き出すことができます。

攻撃プロセス

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

  2. その後、攻撃者は契約から資金を引き出す一連の攻撃取引を実施しました。

  3. 攻撃が完了した後、keeperが変更されたため、他のユーザーの正常な取引が拒否されて実行されなくなります。

  4. この攻撃パターンは、バイナンススマートチェーン(BSC)だけでなく、イーサリアムネットワークでも類似の操作が発生しています。

!

まとめ

今回の攻撃の根本原因は、EthCrossChainData コントラクトの keeper が EthCrossChainManager コントラクトによって変更可能であり、後者の verifyHeaderAndExecuteTx 関数がユーザーから渡されたデータを実行できることにあります。攻撃者はこの設計の欠陥を利用して、特定のデータを構築することで EthCrossChainData コントラクトの keeper を変更し、資金の盗難を実現しました。

この出来事は、特にクロスチェーン操作や重要な役割の管理に関与する際に、スマートコントラクトの安全性の重要性を再び強調しました。ブロックチェーンプロジェクトの側にとっては、安全メカニズムを継続的に改善し、潜在的な脆弱性をタイムリーに発見し修正することが重要です。同時に、一般ユーザーにとっても、新興のブロックチェーンプロジェクトに参加する際には警戒を怠らず、プロジェクトの安全性評価や監査報告書に注目する必要があります。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 4
  • 共有
コメント
0/400
pvt_key_collectorvip
· 08-01 16:56
また一つの巨大な脆弱性
原文表示返信0
HodlOrRegretvip
· 07-31 04:26
警鐘の音は耳をつんざくようだ
原文表示返信0
Anon32942vip
· 07-31 04:14
またクロスチェーンリスクが見られました
原文表示返信0
CommunitySlackervip
· 07-31 04:08
また初心者を搾取しているのか
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)