Back to Blog

ポリネットワークハッキングのセキュリティ研究者視点からの回顧

Code Auditing
August 15, 2021
4 min read

このブログでは、Poly Networkのハッキングの全プロセスをレビューし、そこから得られた教訓について議論します。

このブログでは、Poly Networkが2021年8月10日(このブログでは+8タイムゾーンを使用)にハッキングされていたことを認識していました。しかし、ハッキングがどのように行われたのか、またハッキングの根本原因については全くの手がかりがありませんでした。セキュリティリサーチチームとして、私たちは調査を開始しました。

ステップ1:攻撃トランザクションの特定

私たちは、トランザクション仮想化システム(https://tx.blocksecteam.com)で、攻撃トランザクション 0xd8c1f7424593ddba11a0e072b61082bf3d931583cb75f7843fc2a8685d20033a をリプレイしました。

トレースは非常にシンプルで、価格操作を行う他の攻撃とは異なりました。それらは通常、非常に複雑な関数呼び出しを伴います(Popsicleハックを参照)。

ステップ2:コントラクトコードの分析

攻撃トレースを取得した後、コントラクトのソースコードを確認する必要があります。驚くべきことに、Poly NetworkはEtherscanで検証済みのソースコードを公開していませんでした。しかし、私たちはGitHubで公開されているソースコードを見つけることができました。

ソースコードをレビューしましたが、明確なコードの脆弱性は見つかりませんでした。また、攻撃トレースと正当なトランザクションのトレースを比較しましたが、それらは類似していました。

ステップ3:重要な状態の復元

次に、攻撃中の重要な状態を復元しました。攻撃はVerifyHeaderAndExecuteTxEventの呼び出しから開始されたため、いくつかの重要な変数の値を復元しました。これは私たちの最初の分析で共有しました[1]。

このプロセス中に、キーパーが1つしか存在しないことを発見しました(上記の図を参照)。値は攻撃トレースから取得され、攻撃トランザクションはすべての署名検証を通過していたため、秘密鍵の漏洩またはサーバーの署名プロセスにおけるバグが潜在的な理由であると考えました[1]。

しかし、ここで間違いを犯しました。攻撃の分析は玉ねぎを剥くようなものです。1枚ずつ剥がしていき、真の「根本的な根本的な」原因を特定します。その時、キーパーが変更されたかどうかをさらに確認しませんでした!

ステップ4:新しい手がかり

数時間後、Kelvinとslow mistがTwitterで新しい手がかりを提供し、キーパーが変更されたことを示しました。変更プロセスは、ハッシュの衝突を悪用して強力な関数、つまり「スマート」ハックを呼び出しました。

ここで、最初の分析が完全ではなかったことに気づきました。最新の情報に基づき、キーパーを変更したトランザクションをリプレイしました。それでもトレースは非常にシンプルでした。

しかし、このトランザクション中には、4つのキーパー(1つではなく)が存在することを覚えておいてください。これらのキーはすべて、他の正当なトランザクションと同じです。つまり、キーは正当です。ここで疑問が生じます。キーパーを変更するトランザクションがチェーンに記録され、実行されたのはなぜでしょうか?

ステップ5:ソーストランザクションの特定

Poly Networkはクロスチェーンブリッジであるため、ソーストランザクションを特定しようとしました。どこかにソーストランザクションが存在するはずです。これは、重要な変数をデコードすることによって行いました(以下の図に示す)。ソースチェーンとPolyチェーンのトランザクションハッシュが表示されます。

どこにも言及されていないトリックがあります。変数内のtxハッシュ値は、Polyチェーンの公式値とは異なる表現になっています。例えば、図中のPolyチェーンのtxハッシュは0x80cc978479eb082e1e656993c63dee7a5d08a00dc2b2aab88bc0e465cfa0721aです。しかし、Polyチェーンブラウザでは、ハッシュ値は1a72a0cf65e4c08bb8aab2c20da0085d7aee3dc69369651e2e08eb798497cc80です(違いがわかりますか?)。私たちは、8月11日16:55にEthereumSecurity tgグループで発見を共有しました。

ステップ6:根本原因の特定

しかし、それでも「キーパーを変更するトランザクション」がチェーンにパッケージ化された理由を説明することはできませんでした。この質問に答えるために、Ontologyチェーンから開始し、トランザクションフローを見つけました。

Ontologyトランザクション -> Ontologyリレイヤー -> Polyチェーン -> Ethereumリレイヤー -> Ethereum

その後、Ontologyチェーンとリレイヤーのソースコードを読みました。数時間後、Ontologyリレイヤーはクロスチェーントランザクションに対して十分な検証を行っていないことがわかりました。これにより、悪意のあるトランザクションがPolyチェーンにパッケージ化される可能性があります。その後、システムは乗っ取られました。

内部で議論し、異議を唱えた後、8月12日02:41にTwitterとmedium[3]で発見を発表しました。

教訓

  • 設計によるセキュリティ。 セキュリティはDeFiプロジェクトの全プロセスにおいて考慮されるべきです。ユーザーはプロジェクトにお金を託します。したがって、プロジェクトはその信頼に値するべきです。残念ながら、Poly Networkのセキュリティに対する無関心が見られました。例えば、検証の欠如は旧式のセキュリティ脆弱性であり、私は学部生向けのクラスで教えました。

  • 6億ドル以上のTVLを持つDeFiプロジェクトなどに検証済みのソースコードがない。 分散型インフラストラクチャの基盤は信頼であり、信頼の基盤は透明性です。残念ながら、ユーザーはブラックボックスプロジェクトにお金を投じることを厭いません。これは私を驚かせ、懸念させています。ユーザーのセキュリティ意識をどのように向上させるかは、新しいソリューションが必要かもしれません。

参考文献

[1]https://blocksecteam.medium.com/the-initial-analysis-of-the-polynetwork-hack-270ac6072e2a

[2]https://twitter.com/kelvinfichter/status/1425290462076747777

[3]https://blocksecteam.medium.com/the-further-analysis-of-the-poly-network-attack-6c459199c057

クレジット:Yufeng Hu, Siwei Wu, Lei Wu, Yajin Zhou @ BlockSecTeam

BlockSec (@BlockSecTeam) / Twitter

Sign up for the latest updates
HarmonyのクロスシャードONEミント + 約4700万ドルの鍵漏洩による損失 | BlockSec
Security Insights

HarmonyのクロスシャードONEミント + 約4700万ドルの鍵漏洩による損失 | BlockSec

2026年8月10日〜16日の週、注目すべきセキュリティ事件5件を紹介、損失総額は約4700万ドル。詳細分析はHarmony Layer-1の連鎖実装欠陥に注目。Harmonyでは、クロスシャードのレシート再生により、未署名のMerkleProofのShardIDとBlockNumから支出マーカーを導出し、ONEが不正発行された。約3.01兆ONEが偽造されたが、名目価値は市場総額を大幅に超え、実現・確定損失ではないため総額から除外。約4700万ドルは秘密鍵漏洩(Unknown Whale Wallet約2500万ドル、Kite約1400万ドル、Coinsbuy約790万ドル)とFoxのロジック欠陥(約11.7万ドル)による。

約160万ドルの損失:MokeトークンとLpdFiへの攻撃 | BlockSec週次レポート
Security Insights

約160万ドルの損失:MokeトークンとLpdFiへの攻撃 | BlockSec週次レポート

2026年8月3〜9日の週、BNBチェーンで2件の重大なセキュリティインシデントが発生し、いずれも価格操作により総損失は約160万ドルに上った。LpdFi事件(約69.7万ドル)では、注文評価と利息償還の両方に同じ操作可能なPancakeSwapペアのリザーブが使用され、攻撃者がポジションの元本を水増しし過大な利息を請求した。Mokeトークン(約90.6万ドル)では、操作可能なスポット価格とLP配当の重複計上を組み合わせ、MOKEを水増し請求してBNB配当を複数回取得した。

COLDCARDの事件:ウォレットの「ランダム」シードがランダムではなかった時
Security Insights

COLDCARDの事件:ウォレットの「ランダム」シードがランダムではなかった時

COLDCARDファームウェアのビルド・統合バグにより、Bitcoin種生成がソフトウェアRNGフォールバックに誘導され、脆弱な乱数によりウォレットの秘密鍵がオフラインで復元可能となった。欠陥は種自体にあるためファームウェア更新では修正不可。2026年8月7日までに確認された被害は1,405 BTC(約91億円)、非公式推定では最大2,055 BTCに上る。

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit