何が起きたか
2021年8月10日、ユーザーがブロックチェーン間でトークンを転送またはスワップできるクロスチェーン相互運用プラットフォームPoly Networkから、記録上最大級のデジタル通貨窃盗の一つとして6億1000万ドル以上が流出した。セキュリティ企業SlowMistは、6億1000万ドル以上が3つのアドレスに送金され、O3 Swapのクロスチェーンプールで大きな損失が出たことを確認した。
根本原因はスマートコントラクトの設計上の欠陥であり、鍵の盗難ではなかった。Polyのコントラクトでは、EthCrossChainManagerのverifyHeaderAndExecuteTx関数がクロスチェーン取引を実行でき、これを使ってputCurEpochConPubKeyBytesを呼び出すことが可能だった。これによりEthCrossChainDataコントラクトのkeeperロールを攻撃者が選んだアドレスに変更できた。keeperが置き換えられると、攻撃者は任意の取引を構築し、任意の金額を引き出すことができた。
後に「Mr. White Hat」と呼ばれることになる攻撃者は、攻撃は脆弱性を暴露するために「楽しみで」行ったと主張し、翌日から資金を返還し始めた。Poly Networkは50万ドルの報奨金を提示し、この人物が責任を問われることはないと約束した。8月12日までに約3億4200万ドルが返還され、Tetherの約3300万ドルのみがトークン発行体によって依然として凍結されていた。
その代償
Ethereum、Binance Smart Chain、Polygonにまたがって6億1000万ドル以上が盗まれ、当時最大のDeFi強奪事件となった。Tetherの3300万ドルが凍結された以外は、ほぼ全額が数日以内に返還された。
なぜ起きたのか
コントラクトは、クロスチェーン取引によって全資金を守るkeeperアドレスを変更できるようになっていた。
verifyHeaderAndExecuteTxとkeeper更新の経路は、特権分離のない関数境界を共有していた。
コードは3つのチェーンに展開されていたが、同じ欠陥がそのすべてに存在していた。
流出が始まってから止めるのに十分迅速な緊急停止機構がなかった。
教訓
クロスチェーンブリッジでは、特権は資金そのものである。keeper変更機能とメッセージ検証機能には、鍵の保管だけでなく、別々の監査、最小限の特権、ロジックテストが必要である。
その後
攻撃者はその後数日間で盗んだ資産のほぼ全額を返還し、Poly Networkはこの人物を「ホワイトハット」と宣言して、残りを双方が管理するマルチシグウォレットに移した。6億1000万ドルという数字は、2021年の最初の7か月間にDeFi全体で記録された犯罪による損失4億7400万ドルをはるかに上回り、この事件はブリッジプロジェクトに、秘密鍵だけでなくコントラクトロジックを重大な攻撃対象として扱わせるきっかけとなった。Poly Networkは運営を続けたが、クロスチェーンブリッジはその後数年間も好まれる標的であり続けた。
出典をたどる
出典
- 'White hat' hacker returns most of $600 million crypto tokens taken - Poly Network Reuters · finance.yahoo.com ·
- 'White hat' hacker behind $610m crypto heist returns most of money The Guardian · theguardian.com ·
- Over $600 Million Stolen in Biggest Ever Cryptocurrency Theft Infosecurity Magazine · infosecurity-magazine.com ·