要点
ブロックチェーンブリッジは、資産やデータをそれらの間で移動できるようにするために、2つの別々のブロックチェーンを接続します。クロスチェーンブリッジは大量のユーザー資金を扱うため、攻撃者にとって集中した標的になりやすいのです。
最も一般的なブリッジの脆弱性には、チェーン上の検証が弱いこと、チェーン外の検証が弱いこと、ネイティブトークンの取り扱いが不適切であること、設定ミス、そしてバリデータ/カストディアンの鍵の侵害が含まれます。
ブリッジのハックにより、数十億ドル規模の損失が発生しています。有名なエクスプロイトとしてはWormhole(3億2500万ドル)、Ronin(6億2500万ドル)、Nomad(1億9000万ドル)などがあります。
既知のあらゆる攻撃ベクトルに対するデプロイ前の徹底的なテストと、サードパーティによるセキュリティ監査を組み合わせることが、ブリッジのセキュリティリスクを低減する最も効果的な方法です。たとえ監査済みのコードであっても、バリデータ鍵が侵害されていればすり抜けられてしまいます。
はじめに
ブロックチェーンブリッジは、2つのブロックチェーンが通信し、資産をやり取りできるようにするプロトコルです。ビットコインを保有しているものの、イーサリアムネットワーク上の活動に参加したい場合、クロスチェーンブリッジを使えばビットコインを売却せずにこのようなことができます。
ブリッジはマルチチェーン・エコシステムにおいて中心的な役割を果たします。ブリッジは大量のユーザー資金を保有し、複雑なオンチェーン/オフチェーン要素に依存しているため、攻撃面が広いのが特徴です。この組み合わせにより、ブリッジはブロックチェーン領域で最も頻繁に狙われる分野の一つになっています。
ブリッジ攻撃による損失は、2022年だけでも20億ドルを超えました。その年の代表的なエクスプロイトには、Wormhole(2022年2月頃、約3億2500万ドル。チェーン上の検証が弱いという欠陥によるもの)、Ronin Bridge(2022年3月頃、約6億2500万ドル。9人中5人のバリデータ鍵が侵害されたことによるもの)、およびNomad(2022年8月頃、約1億9000万ドル。誰でも不正なメッセージを送信できてしまう設定ミスによるもの)などが挙げられます。
その後も攻撃は続き、例えば2024年にはOrbit Bridgeプロトコルに侵害が発生し、約8,200万ドルの損失につながりました。なぜブリッジが脆弱なのかを理解することは、業界がより良いセキュリティにどう取り組めるかを把握するうえで重要です。
なぜブリッジのセキュリティは重要なのでしょうか?
ブリッジは通常、ユーザーがあるチェーンから別のチェーンへ移動したいトークンを保有します。クロスチェーン送金は時間の経過とともに積み上がるため、ブリッジはある時点で、相当量のユーザー資金を保有している可能性があります。これにより、価値の高い標的になります。
ブリッジには、攻撃面も大きくあります。ブロックチェーン上のスマートコントラクトと、オフチェーンのバックエンド基盤の両方が関わり、システムを安全にするには両者が正しく連携する必要があります。これらの要素の相互作用におけるどれか一つの「隙間」でも、悪用のための入り口になり得ます。
コードレベルの脆弱性に加えて、クロスチェーンメッセージに署名するためにバリデータやカストディアンの集合に依存するブリッジには、追加のリスクカテゴリがあります。すなわち、攻撃者が十分なバリデータ鍵を侵害できれば、基盤となるスマートコントラクトがどれほど適切に書かれていても、不正な出金を承認できてしまうということです。Ronin Bridgeのエクスプロイトはこのカテゴリに該当し、鍵管理が契約のセキュリティと同じくらい重要であることを示しました。
悪意のある行為者は、侵害が成功した場合に得られる可能性のある利益が大きいため、これらのどの領域にも存在し得る「穴」を見つける強い動機を持ちます。
よくあるブリッジのセキュリティ脆弱性
ブリッジの脆弱性は、いくつかの主要なカテゴリに分類されます。それぞれに適したテスト手法と対策戦略が必要です。
チェーン上の検証が弱い
一部のブリッジは、スマートコントラクトを利用してメッセージを検証し、ブロックチェーン上で入金を直接確認します。ユーザーが資金を入金すると、オフチェーンのリレイヤーまたはバリデータセットがその入金を監視し、署名済みの証明を生成します。その後、オンチェーンのコントラクトがこの証明を検証して、受信チェーンでの出金を承認します。
オンチェーンの検証ロジックに欠陥がある場合、攻撃者は検証チェックを通過する偽の証明を偽造できます。たとえばWormholeのエクスプロイトでは、攻撃者が発生していない入金に対して有効な署名を生成し、Solana上で約12万枚のラップドETHを鋳造しましたが、対応するイーサリアム上の入金は存在しませんでした。
ラップドトークンを扱うブリッジは、ここで特に影響を受けやすいです。ラップドトークンを発行するトランザクションが適切に検証されない場合、攻撃者はそれらを意図しないアドレスへリダイレクトできてしまいます。このリスクは、ユーザーがガス代を減らすための一般的な手法として、ブリッジコントラクトに対してトークンの無制限承認を付与している場合、さらに増幅される可能性があります。
チェーン外の検証が弱い
一部のブリッジシステムは、出金を承認する前に入金トランザクションが正当かどうかを検証するため、オフチェーンのバックエンドサーバーに依存しています。このサーバーをだませる攻撃者であれば、入金を行わなくても資金を引き出せます。
ここでよくある弱点は、イベントを発行するコントラクトの検証が不完全であることです。バックエンドサーバーは「入金イベントが発行されたか」だけでなく、それが正しいコントラクトアドレスから発行されたことも確認する必要があります。イベントの構造だけを確認して、発信元アドレスを確認しない場合、攻撃者は同一の構造で入金イベントを発行する偽のコントラクトを展開し、サーバーをだまして不正な出金を承認させることができます。
ネイティブトークンの取り扱いが不適切
イーサリアムのようなネットワークでは、ネイティブトークン(ETH)とユーティリティトークン(ERC-20)は、異なる仕組みでブリッジに入金されます。ネイティブトークンはトランザクションとともに直接送付されますが、ERC-20トークンは別途の承認と送金ステップが必要です。
両方のタイプが同じ関数で入金できる場合、ネイティブトークンとERC-20トークンを「入れ替え可能」とみなすロジックによって、攻撃者が悪用できるエッジケースが生まれるリスクがあります。例えば、ゼロアドレス(ネイティブトークンを表す)がホワイトリストのチェックをすり抜けると、攻撃者は実際にはトークンを一切移さずに、入金が記録されるような形でトランザクションの流れを操作できてしまいます。
ブリッジは、ネイティブ(そのままの通貨)とERC-20の入金に対して別々の関数を用いることでこの問題に対応できます。または、ネイティブトークンのケースを明示的に扱う、堅牢なホワイトリストを実装することでも対処できます。
設定ミス
ブリッジプロトコルにおける特権ロールは、トークンのホワイトリスト化、署名者(サイナー)の割り当て、設定の更新といった重要な機能を制御します。これらのいずれかのポイントでの設定ミスは、重大な結果につながり得ます。
Nomadブリッジのエクスプロイトでは、プロトコルのアップグレードによって設定ミスが導入され、誰でも不正な出金メッセージを送信でき、それが正当なリレイヤーとして扱われました。システムが「送信元の任意のメッセージ」を事前検証済みとして受け入れていたため、攻撃者は有効なトランザクションをコピーし、受取人アドレスを置き換えるだけで、技術的な突破なしにブリッジから資金を引き出せました。
この種の脆弱性は、設定変更をコード変更と同じ厳密さで扱い、アップグレードの前後で徹底的なテストを行う必要性を示しています。
バリデータおよびカストディアンの鍵の侵害
多くのブリッジは、クロスチェーンメッセージを承認するためにバリデータ群またはマルチシグのカストディアンに依存しています。攻撃者が署名に必要な閾値(サイン閾値)に到達するのに十分な鍵を侵害できれば、基盤となるスマートコントラクトがどれほど安全でも、不正な出金を承認できます。
Ronin Bridgeの攻撃は、暗号史上最大のブリッジ・エクスプロイトとして残っています。攻撃者は9人中5人のバリデータの秘密鍵にアクセスし、合計約6億2500万ドルの不正な出金2件に署名できるだけの権限を得ました。この侵害は6日間発見されませんでした。ブリッジに大口流出に対する自動監視やアラートがなかったためです。
このカテゴリへの対策には、バリデータの鍵を共有インフラを持たない独立した複数の当事者に分散すること、異常な出金パターンに対する自動監視を実装すること、さらに署名鍵を保護するためにハードウェア・セキュリティ・モジュール(HSM)を使うことなどが含まれます。出金に対するレート制限も、鍵が侵害された場合であっても被害を抑えることができます。
ブリッジのセキュリティを改善する方法
上記で説明した脆弱性の種類には共通点があります。つまり、いずれもブリッジがメッセージと資金をどのように処理するかを制御するロジック、設定、または鍵管理の「穴」に起因しています。
効果的なセキュリティ実務では、これらのギャップ(穴)を、デプロイ前に厳密なテストで埋めます。偽の証明、偽の入金イベント、ネイティブトークンのエッジケース、設定レベルの前提、バリデータ鍵の管理まで、既知のあらゆる攻撃ベクトルを網羅します。
サードパーティのスマートコントラクトに対するセキュリティ監査は、内部チームが見落としがちな問題を外部の専門知識で発見するための追加の検証レイヤーを提供します。ただし監査だけでは不十分です。Roninのエクスプロイトは監査済みのコードで発生しており、バリデータ鍵のセキュリティや運用手順が、たとえ最も徹底したコードレビューであってもすり抜け得ることを示しています。
出金に対するレート制限や、特権アクションに対するマルチシグ要件も、成功したエクスプロイトの影響を小さくできます。短時間のうちに攻撃者が引き出せる金額を制限できるからです。異常なアクティビティを自動監視し、アラートを出すことで、検知までの時間(検知ウィンドウ)を短縮できます。これはRonin Bridgeのケースで重要な要因でした。
単一のアプローチでは、すべてのリスクを排除できません。最も強靭なブリッジは、厳密なテスト、外部監査、堅牢な鍵管理、そして慎重な運用手順を組み合わせた「多層防御」のセキュリティ体制を採用します。
よくある質問(FAQ)
なぜブロックチェーンブリッジは攻撃者の標的になりやすいのですか?
ブリッジはスマートコントラクト上でユーザーの大きな資金を保管し、正しく動作することを前提に、チェーン上とチェーン外の両方の要素に依存しています。高額な資金と広い攻撃面を併せ持つため、攻撃の格好のターゲットになります。バリデータ鍵管理、設定、または検証ロジックに不備があると、正当な入金がなくても資金を引き出す形で悪用される可能性があります。
最大のブロックチェーン・ブリッジのハックは何でしたか?
2022年3月のRonin Bridgeエクスプロイトでは、約6億2500万ドルの損失が発生し、これがブリッジのハックとしては最大規模でした。攻撃者は9人中5人のバリデータの秘密鍵にアクセスし、不正な出金を承認できるようになりました。
ブリッジセキュリティにおける「チェーン外の検証が弱い」とは何ですか?
チェーン外の検証が弱いとは、ブリッジのバックエンドサーバーが、出金を承認する前に入金トランザクションを十分に検証できていないことを指します。サーバーがイベントの構造だけを確認して、イベントを発行したアドレスを確認しない場合、攻撃者は正当な入金イベントを模倣する偽のコントラクトを展開し、検証のチェックをすり抜けられます。
無制限トークン承認は、なぜブリッジのリスクを高めますか?
多くのブリッジは、取引手数料を抑えるために、ユーザーに対してトークンの無制限承認を求めます。もしブリッジコントラクトに検証の脆弱性があると、攻撃者はその承認を悪用して、他のユーザーのトークンを自分自身へ移すことが可能になります。コントラクトがそれらのウォレットに対して無制限のアクセス権を与えられているためです。
ブリッジのセキュリティリスクを最も減らす方法は何ですか?
最も効果的なアプローチは、既知のあらゆる攻撃ベクトルに対する徹底的なデプロイ前テストと、サードパーティによるセキュリティ監査を組み合わせることです。さらに重要なのは、バリデータセットに対する安全な鍵管理、出金レート制限、特権アクションに対するマルチシグ要件、異常なアクティビティに対する自動監視です。単一の対策でリスクをすべてなくすことはできません。多層防御のセキュリティ体制が不可欠です。
最後にひとこと
ブロックチェーンブリッジはマルチチェーン・エコシステムの基盤となる要素であり、資産を別々のネットワーク間で移動できるようにします。その価値の高さゆえに、攻撃者からも継続的な標的になりやすいのが現実です。ブリッジの脆弱性の主なカテゴリ(チェーン上の検証が弱い、チェーン外の検証が弱い、不適切なネイティブトークンの取り扱い、設定ミス、バリデータ鍵の侵害)それぞれに対して、的を絞ったテストと慎重な設計が必要です。
ブリッジのエクスプロイトの歴史から分かるのは、コードの品質だけでは不十分だということです。暗号史上最大のブリッジ・ハック(Ronin Bridge)は、スマートコントラクトのバグではなくバリデータ鍵を悪用しました。ブリッジ基盤を開発したり監査したりする開発者は、オンチェーンのコードだけでなく、オフチェーンのロジック、鍵管理、そして運用手順までも、潜在的な攻撃面として扱うべきです。
さらに読む
ブロックチェーン・ブリッジとは?
クロスチェーン相互運用性とは何ですか?
スマートコントラクトとは何で、どのように動くのですか?
分散型金融(DeFi)で詐欺を見抜く方法
イーサリアムとは何ですか?どのように機能しますか?
免責事項:本コンテンツは一般的な情報および教育目的のために「現状のまま」提供されるものであり、いかなる種類の表明または保証もありません。いかなる金融的・法的・その他の専門的助言として解釈されるべきではなく、特定の商品またはサービスの購入を推奨する意図もありません。適切な専門家からご自身で助言を得てください。第三者の寄稿によってコンテンツが提供されている場合、そこに表明されている見解は当該第三者の寄稿者に帰属し、Binance Academyの見解を必ずしも反映するものではありません。デジタル資産の価格は変動することがあります。投資の価値は上がることも下がることもあり、投資額をそのまま回収できるとは限りません。投資判断はすべてご自身の責任で行っていただきます。Binance Academyは、あなたが被る可能性のある損失について一切の責任を負いません。詳細については、利用規約、リスクに関する警告、およびBinance Academyの利用規約をご覧ください。
