
Cobo DeFiセキュリティ講座(前編):2022年DeFiセキュリティ重大インシデントの振り返り
TechFlow厳選深潮セレクト

Cobo DeFiセキュリティ講座(前編):2022年DeFiセキュリティ重大インシデントの振り返り
慢雾の統計によると、2022年には300件以上のブロックチェーンセキュリティ事件が発生し、関連金額は総額43億米ドルに達した。
著者:Max、Cobo セキュリティディレクター
Moledaoの招待を受け、CoboセキュリティディレクターのMaxはこのほどオンラインでコミュニティメンバーにDeFiセキュリティ講座を提供した。Maxはここ1年余りのWeb3業界における重大なセキュリティインシデントを振り返り、それらが発生した原因や回避方法について重点的に考察し、一般的なスマートコントラクトのセキュリティ脆弱性とその予防策をまとめて紹介した。さらにプロジェクトチームと一般ユーザーに対していくつかのセキュリティアドバイスも提示した。ここではMax氏の講演内容を前後編に分けて掲載し、DeFi愛好家の方々の参考としたい。
慢霧(マンウー)の統計によると、2022年には300件以上のブロックチェーンセキュリティ事件が発生し、関係金額は総額43億ドルに達した。

本稿では以下の8つの典型事例を詳しく解説する。これらのケースは損失額が基本的に1億ドル以上であり、Ankrの関係金額は比較的小さいものの、典型的な事例として挙げられる。

Ronin Bridge
事件の概要:
-
2022年3月23日、NFTゲームAxie InfinityのサイドチェーンであるRonin Networkは、Sky MavisのRonin検証ノードとAxie DAOの検証ノードがハッキングされたことを発表した。これにより、2回の取引を通じて17.36万ETH(現在価値約5.9億ドル)および2550万USDが橋渡しされた。
-
米財務省は、北朝鮮のハッカー集団LazarusがAxieInfinity Ronin Networkの6.25億ドル相当のハッキング事件に関与していると指摘した。
-
メディアが関係者の話として報じたところによると、ハッカーはLinkedInを通じてAxie Infinityの開発会社Sky Mavisの従業員に接触し、数回の面接後に高給での採用を通知した。その後、その従業員がPDF形式の偽「内定書」をダウンロードしたことで、マルウェアがRoninシステムに侵入。Roninネットワークの9つの検証ノードのうち4つを乗っ取り、完全支配まであと1つという状態になった。さらに、権限が撤回されていなかったAxie DAOを制御することで最終的な侵入を完了した。
北朝鮮のハッカー集団は以前から存在しており、Web3技術が普及する以前にも銀行や大手企業への侵入事件が多数報道されていた。近年、こうした伝統的なハッカー集団や国家レベルの勢力が、データやクレジットカード情報の盗難から脱却し、ブロックチェーンプロジェクトを攻撃して直接利益を得る方向へと進化している。
今回の攻撃手法は非常に典型的であり、従来のセキュリティ分野ではAPT(Advanced Persistent Threat:高度持続的脅威)と呼ばれる。ハッカー集団は一度ターゲットを決定すると、ソーシャルエンジニアリングなどの手段を用いて組織内の1台の端末をまず制圧し、それを踏み台にして内部へ徐々に浸透し、最終的に目的を達成する。
この事件はまた、Axie Infinityの従業員のセキュリティ意識の低さと、会社内部のセキュリティ体制に問題があることも露呈した。
Wormhole
事件の概要:
-
Wormholeが公開した事件レポートによると、今回の脆弱性はSolana側のコアWormholeコントラクトにおける署名検証コードのバグに起因し、攻撃者が「ガーディアン」からのメッセージを偽造してWormhole経由でETHを発行できた。結果、約12万枚のETHが流出した。
-
Jump Cryptoは12万枚のイーサリアムを投入し、Wormholeの損失を補填することで同プロジェクトの継続を支援した。
Wormholeが直面した問題は主にコードレベルのものであり、廃止された関数を使用していたことが原因だった。イーサリアムを例に挙げると、初期バージョンのSolidityには設計が不十分な関数があり、その後のアップデートで次第に非推奨となった。他のエコシステムでも同様の状況があるため、開発者には常に最新バージョンの使用を強く勧める。
Nomad Bridge
事件の概要:
-
クロスチェーン相互運用プロトコルNomad Bridgeは、Replicaコントラクトの初期化時に信頼できるルート(trusted root)が0x0に設定され、かつルート変更時に旧ルートの無効化が行われなかったため、攻撃者が任意のメッセージを構築して資金を盗むことに成功。攻撃者は1.9億ドル超の価値を搾取した。
-
ハッカーはこの脆弱性を利用し、有効な取引を1件選んで繰り返し同じデータを送信することで、橋渡しにロックされた資金を引き出した。その結果、Nomad上のほぼすべての資金が盗まれることになった。
-
派盾(PeckShield)の監視データによると、Nomad攻撃事件では約41アドレスが約1.52億ドル(全体の80%)を獲得。そのうちMEVボット約7台(約710万ドル)、Rari Capitalハッカー(約340万ドル)、ホワイトハットハッカー6台(約820万ドル)などが含まれており、ENSドメインアドレス約10%が610万ドルを獲得した。
Nomad Bridgeの事例は非常に典型的であり、根本的には初期設定に問題があった。もしハッカーが過去に有効だった取引を発見し、それを再ブロードキャストすれば、その取引に関連する資金が再度実行され、利益がハッカーに還元される仕組みになっていた。イーサリアムエコシステムには多くの参加者がおり、プロジェクトチームやユーザー以外にも多数のMEVボットが存在する。今回のケースでは、自動化されたボットが「誰が広げても利益が出る取引」を発見し、ガス代さえカバーできれば皆が積極的に再ブロードキャストしたため、事件はまるで「奪い合い」のような状態になった。関与したアドレスは非常に多く、プロジェクトチームが一部のENSアドレスやホワイトハットハッカーのアドレスを特定し、資金の一部を回収できたものの、大部分の資金は回収できなかった。もしハッカーが完全にクリーンな機器とアドレスを使用していた場合、データの関連性から背後の人物を特定するのは極めて困難である。
Google、Microsoft、Facebook、Alibaba、Tencentなど大手企業も度々ハッキング被害を受けているが、それらのプログラムは非公開(クローズドソース)である。一方、イーサリアムエコシステムやスマートコントラクトエコシステムでは多くのプログラムがオープンソースであり、ハッカーにとっては分析が比較的容易である。そのため、プロジェクトに脆弱性がある場合、それはほぼ即座にそのプロジェクトの敗北を意味する。
Beanstalk
事件の概要:
-
イーサリアムベースのアルゴリズム型ステーブルコインプロジェクトBeanstalk Farmsは、フラッシュローン攻撃により約1.82億ドルの損失を被った。具体的には7923万8241枚のBEAN3CRV-f、163万7956枚のBEANLUSD-f、3608万4584枚のBEAN、0.54枚のUNI-V2_WETH_BEANが流出。攻撃者は24830枚以上のETHと3600万枚のBEANを含む8000万ドル超の利益を得た。
-
攻撃の主な原因は、提案の投票と実行の間に時間的間隔が設けられていなかったことにある。これにより、攻撃者は投票完了後、コミュニティによる審査を経ずに悪意ある提案を直ちに実行できた。
-
攻撃の流れ:
-
1日前にトークンを購入・ステーキングし、提案資格を取得、悪意ある提案コントラクトを作成;
-
フラッシュローンで大量のトークンを借り入れ、悪意あるコントラクトに投票;
-
悪意のあるコントラクトを実行し、裁定取引で利益を得る。
-
Beanstalkも非常に典型的なケースである。ハッカーは特別な脆弱性を利用したわけではなく、単にプロジェクトのメカニズムを悪用しただけである。このプロジェクトでは、誰でもトークンをステーキングすれば提案を提出でき、提案自体もコントラクトとなる。攻撃者は攻撃の前日に一定量のトークンを購入し、悪意ある提案を提出した。その提案は24時間後に投票可能となり、投票後には一切の猶予期間やタイムロックがなく、承認されると直ちに実行可能であった。
現在多くのプロジェクトが「コミュニティ自治」を掲げ、完全に非中央集権的な運営を目指しているが、それによって多くの問題が生じている。例えば、各提案には審査メカニズムがあるのか? ある提案が正常なものか悪意あるものかを見極める仕組みはあるのか? 提案が承認された後、フラッシュローンで一時的に大量の票を獲得して通過させるのは適切なのか? あるいは、一定期間ステーキングしなければならない、あるいは特別な投票用トークンを発行するような仕組みが必要ではないか? また、提案承認後から実行までの間にタイムロックを設けるべきではないか? 理論上は必要だろう。そうすれば、タイムロック期間中の行動を監視でき、参加者に逃避のチャンスを与えることができる。なければ、悪意ある操作が実行された場合、誰も逃げられなくなってしまう。
Wintermute
事件の概要:
-
2022年9月21日の朝、Evgeny GaevoyがTwitterで事件の進展を公表し、Wintermuteは6月にProfanityおよび社内ツールを使ってウォレットアドレスを作成していたと明かした。これは手数料の最適化のためであり、単なる「美しい番号(プレミアムアドレス)」作成のためではないと説明。先週Profanityに脆弱性があることが判明した後、Wintermuteは旧鍵の廃止を急いだが、内部(人的)ミスにより誤った関数が呼び出され、感染アドレスの署名および実行権限が削除されなかった。
インターネット上で、アドレスの先頭に0が8つ並ぶような「美しい番号」を見かけることがある。イーサリアムアドレスに含まれる0が多いほど、手数料が安くなるため、MEVのフロントランボットやプロジェクトチームは特に好んで使用する。特に高頻度の操作を行う場合に顕著である。
Wintermuteはマーケットメーカーであり、当時多数のトークンを1つのコントラクトに送金し、「美しい番号」生成ツールでコントラクトアドレスを作成していた。このコントラクトの所有者(Owner)も「美しい番号」であったが、不幸にもその所有者の秘密鍵が他人に強制的に計算され特定されてしまい、コントラクト内の資金がすべて移転された。
外部のオープンソースツールを利用する際には、それがもたらす可能性のあるリスクを認識し、準備しておく必要がある。外部ツールを使用する際は、必ずある程度のセキュリティ評価を行うことを強くお勧めする。
Harmony Bridge
事件の概要:
-
Horizonクロスチェーンブリッジは1億ドル以上を損失。内訳は1.3万枚以上のETHと5000枚のBNB。
-
Harmony創業者は、Horizonの攻撃は秘密鍵の漏洩が原因だと述べた。
-
Bloombergの報道によると、ブロックチェーン調査会社Ellipticの最新分析では、北朝鮮のハッカー集団とみられるLazarus GroupがHarmonyのクロスチェーンブリッジHorizonから1億ドルを盗んだ黒幕とされている。Ellipticの分析では、Ronin Bridge事件と同様にTornado.Cashへ自動的に送金するプログラムによるマネーロンダリング、犯行タイミングなど、Lazarus Groupを示唆する複数の重要な要素が指摘されている。
Harmonyの事件については詳細が公表されていないが、報道ではやはり北朝鮮のハッカー集団の可能性が高いとされている。もしそうであれば、攻撃手法はRonin Bridgeと一致する。北朝鮮のハッカー集団は近年非常に活発であり、特に暗号通貨業界を標的にしており、最近多くの企業が彼らによるフィッシング攻撃を受けている。
Ankr
事件の概要:
-
Ankr: Deployer update コントラクト。
-
Ankr: DeployerがAnkr ExploiterにBNBを送金。
-
Ankr Exploiterが更新後のコントラクトの発行機能を利用してトークンを発行。
-
10兆枚のaBNBcが無から発行され、ハッカーAはPancakeSwapで500万USDCに交換し、流動性プールを枯渇させ、aBNBcの価値をほぼゼロにした。その後、ハッカーAは資金をイーサリアムに移し、Tornado Cashに送金した。
-
ハッカーAによる発行後約30分、aBNBcは急落し裁定機会が生まれた。裁定者Bは貸出プロトコルHelioのオラクルが6時間平均加重価格を採用している点に着目し、市場価格とHelioシステム内価格の差を利用してaBNBcをhBNBに交換、hBNBを担保に安定通貨HAYを獲得し、さらにHAYをBNBとUSDCに交換。合計で1700万ドル相当の資産を獲得し、HAYの流動性プールをほぼ完全に枯渇させた。
-
Ankrは1500万ドルの復旧基金から資金を拠出し、増発されたHAYを購入して攻撃被害者への補償を行う。
Ankrの全体的な損失は比較的小さいが、個別に取り上げて説明する。なぜなら、現在の多くのDeFiプロジェクトは「レゴブロック」のように、AがBに依存し、BがCに依存する形で構成されており、チェーンの中の一つのリンクに問題が生じると、上流・下流すべてのプロジェクトに影響が及ぶ可能性があるからである。

後にAnkrは事件の原因を「退職した内部スタッフによる悪意行為」と説明した。暴露された問題点として、まずStakingコントラクトの所有者がEOAアカウントであり、マルチシグではない点がある。つまり、秘密鍵を握っている者がそのままコントラクトを完全に制御できる状態であり、極めて危険である。さらに、Deployerの秘密鍵がいわゆる「コアスタッフ」によって管理されており、退職後もアクセス可能であった。つまり、内部のセキュリティ体制が全く機能していなかったのである。
Mango
事件の概要:
-
ハッカーは2つのアカウントを使い、合計1000万USDTを初期資金として使用。
-
第一段階:ハッカーはMango取引所のA、Bアドレスそれぞれに500万USDTを送金。
-
第二段階:Aアドレスを使ってMango上でMNGOの永続的契約(パーペチュアル)にてプラットフォームトークンMNGOを空売り。建値0.0382ドル、ポジションサイズ4.83億個。同時にBアドレスでMNGOを同価格0.0382ドルで4.83億個買い持ち(ロング)。両建ての理由は、Mangoのマーケットディープが浅く、自分自身と反対売買しないと、これほどのポジションを構築できないため。
-
第三段階:ハッカーはFTX、Ascendexなどの複数の取引所でMNGOの現物価格を人為的に引き上げ、5〜10倍の上昇を引き起こした。この価格はPythオラクルを通じてMango取引所に反映され、さらに価格上昇を促進。最終的にMango上のMNGO価格は0.0382ドルから最高0.91ドルまで上昇した。
-
第四段階:ハッカーのロングポジションの利益は4.83億 × (0.91 - 0.0382) = 約4.2億ドル。これを担保にMangoから追加で融資を受けた。幸い取引所の流動性が不足していたため、最終的に約1.15億ドルしか引き出せなかった。
-
攻撃後、ハッカーは新提案を発表し、公式が国庫資金(7000万ドル)を使ってプロトコルの不良債務を返済することを求めた。現在の国庫残高は約1.44億ドル(内訳:8850万ドル相当のMNGO、約6000万USDC)。ハッカーは、この提案が受け入れられれば一部の盗難資金を返還し、刑事捜査や資金凍結がなければよいと表明。「この提案が可決されれば、このアカウント内のMSOL、SOL、MNGOをMangoチームが公表したアドレスに送還する。国庫は残りの不良債務をカバーし、すべての被害ユーザーに完全補償を行う……上記のようにトークンが返還された場合、刑事捜査や資金凍結は行われないはずだ」と述べた。
-
CoinDeskによると、正体を明かしていたMango攻撃者Avraham Eisenbergは2022年12月26日、プエルトリコで逮捕された。彼には商品詐欺および市場操縦の罪が問われており、罰金や禁固刑の可能性がある。
Mangoの事件はセキュリティインシデントとしても定義できるが、裁定取引行為とも言える。問題はセキュリティ上の脆弱性ではなく、ビジネスモデル自体の欠陥にある。取引対象にはBTC、ETHといった時価総額の大きい通貨だけでなく、MNGOのようなマイナー通貨も含まれており、こうしたマイナー通貨は熊相場において流動性が不足するため、わずかな資金で価格を大きく動かせる。このような価格操作により、永続的契約取引所のポジション管理が極めて困難になる。
したがってプロジェクト側としては、あらゆるシナリオを想定し、テスト段階で予期しない状況もすべてテストケースに含める必要がある。
一般ユーザーにとっても、プロジェクトに参加する際にはリターンばかりに注目せず、元本の安全性についてもよく考えるべきである。セキュリティ脆弱性の観点だけでなく、ビジネスモデル自体に悪用可能な穴がないか、しっかり検討することが重要である。
TechFlow公式コミュニティへようこそ
Telegram購読グループ:https://t.me/TechFlowDaily
Twitter公式アカウント:https://x.com/TechFlowPost
Twitter英語アカウント:https://x.com/BlockFlow_News














