Suiブロックチェーン上のDeFiプロトコルCetus Protocolへの攻撃とその影響
2025年5月22日、Suiブロックチェーン上で運用される分散型金融(DeFi)プラットフォームであるCetus Protocolにおいて、大規模なハッキング攻撃が発生し、2億2,300万ドル相当の資産が流出しました。本稿では、この事件の概要、原因、およびその影響について解説します。
事件の概要
Cetus Protocolは、Suiブロックチェーンを基盤とする分散型取引所(DEX)であり、ユーザーは暗号資産の交換や流動性の提供を行うことができます。しかし、この日、高度な技術を用いたハッキング攻撃により、プロトコルの流動性プールから巨額の資産が不正に引き出される事態となりました。
この攻撃の結果、Cetus ProtocolのネイティブトークンであるCETUSの価格は一時的に33%下落し、複数の流動性プールトークンにおいても最大80%に及ぶ価格急落が見られました。プロトコルの取引機能は一時的に停止され、被害の全容が明らかになりました。
攻撃の原因:checked_shlw()関数の脆弱性
ハッキングの根本的な原因は、Cetus Protocolのスマートコントラクトに存在するコードの脆弱性に起因します。具体的には、math_u256.moveファイル内のchecked_shlw()関数における実装ミスが、攻撃を許容する要因となりました。この関数は、256ビット整数の演算におけるオーバーフローを検知する役割を担っていましたが、その機能に欠陥が存在していました。
問題のコードは以下の通りです。
このコードにおける問題点は、オーバーフロー検出のためのマスク値(mask)の設定が不適切であったことです。64ビットの左シフト演算(n << 64)におけるオーバーフローを適切に検出するためには、異なるマスク値が要求されました。この実装の誤りにより、攻撃者はオーバーフローチェックをバイパスし、意図しない挙動を引き起こすことが可能となりました。具体的には、本来ありえない規模の流動性トークンを、ごく少量の資産を基に生成することが可能になったのです。
攻撃の手法
攻撃者は、この脆弱性を悪用し、以下の手順で資産を不正に取得しました。
-
少額の資金による過剰な流動性トークンの生成: 通常、流動性プールへの資産提供は、一定の比率に基づいて行われます。しかし、今回の脆弱性により、攻撃者は極めて少額の暗号資産を投入するだけで、不当に大量の流動性トークンを取得しました。
https://suivision.xyz/txblock/CZ6o96UDHUt2fvqj7ScRtSSV875HDvNV6qk6nYbHJB6m?tab=Events- amount_a = "1":わずか「1」単位のトークンAのみ投入
- amount_b = "0":トークンBは投入されていない
- liquidity:過剰とも言える膨大な流動性トークンが発行されている
このログから、「極少量のトークンA(1単位)で異常なほど多くの流動性が生成されている」ことが分かります。
-
不正取得したトークンによる高価値資産の引き出し: 次に、攻撃者はこの不正に生成された流動性トークンを担保として利用し、Suiブロックチェーン上の他の主要な暗号資産(SUI、USDCなど)を流動性プールから引き出すことに成功しました。
https://suivision.xyz/package/0x1eabed72c53feb3805120a081dc15963c204dc8d091542592abaf7a35689b2fb?tab=Code- 数値演算関数 get_delta_a における不備:
- v0 == 0 || arg2 == 0 のとき return 0 → 不正な値がそのまま処理を通る。
- checked_shlw() によるビットシフトで数値が過剰に膨張。
- amount_a = 1 のような極端な入力へのバリデーション不足。
- LPトークンの計算に使用される桁・桁溢れ管理が不十分。
- 数値演算関数 get_delta_a における不備:
-
盗難資産のクロスチェーン移動と換金: さらに、攻撃者は取得した資産をUSDCに交換した後、SuiブロックチェーンからEthereumブロックチェーンへとブリッジング(資産の移動)を実行しました。Ethereum上では、これらのUSDCを用いて21,938 ETHを購入し、換金を図ったと報告されています。
教訓
本事件は、DeFi領域におけるセキュリティ対策の重要性を改めて強調するものです。Cetus Protocolは、過去に複数の監査機関によるコード監査を受けていましたが、この根本的な脆弱性は検出されませんでした。これは、監査の実施がセキュリティを完全に保証するものではなく、依存するライブラリを含めた徹底的な検証の必要性を示唆しています。
また、比較的新しいスマートコントラクト言語であるMoveを採用したSuiブロックチェーンにおいても、コードのわずかなミスが甚大な経済的損失を招く可能性があることを示唆する事例となりました。
Cetus ProtocolおよびSuiコミュニティは、現在、流出した資金の回収と影響を受けたユーザーへの対応に取り組んでいます。しかし、この事件は、DeFiプロトコル開発者にとって、より厳格なセキュリティ基準の策定と実装、そして継続的な監視体制の構築が不可欠であることを示唆する重要な事例と言えるでしょう。
Discussion