TL;DR
- セキュリティは依然としてDeFiにおける重要かつ継続的な課題であり、毎年数十億ドルが失われています。
- DeFiプロトコルのセキュリティ対策は、そのライフサイクル全体をカバーする必要があり、ローンチ前からローンチ後まで、内在的および運用上のセキュリティの両方を確保する必要があります。潜在的な攻撃を軽減するための予防的戦略と緊急時対応計画を実施することが重要です。
- コードオーディットを中心としたローンチ前のセキュリティは、コミュニティの合意事項となっています。しかし、ローンチ後のセキュリティソリューション(攻撃モニタリング&ブロッキングなど)が登場しているにもかかわらず、その重要性はまだコミュニティに十分に認識されていません。
- セキュリティプラクティスの継続的な改善と、セキュリティファーストの文化への転換は、ユーザー資産を保護し、エコシステムへの信頼を高めるために不可欠です。

はじめに
DeFiが金融の風景を革新し続ける中、セキュリティはエコシステム内で依然として重大な懸念事項であり、毎年数十億ドルの損失が発生しています。
Chainalysisのデータによると、2023年のDeFiハックは11億ドル以上の損失を引き起こしました。この数字は2022年と比較して減少していますが、2023年のDeFiハックにはいくつかの新しい傾向があります。例えば、CurveやKyberSwapなど、長年安全に運用されてきた信頼性の高いプロトコルがハッキングされました。さらに、Flashbots relayのような、インフラの脆弱性を狙った巧妙なハッキングも明らかになっています。
Security Incident Dashboardによると、2024年上半期には、10万ドルを超える損失を引き起こしたハッキングが50件以上発生しました。

セキュリティは、DeFiアプリケーションの繁栄と大規模な普及にとって重要な要素です。これは、DeFiプロトコルが数十億ドルのユーザー資産を管理しており、これらのプロトコルを対象としたハッキングは、影響を受けたユーザーに重大な損失をもたらす可能性があるためです。場合によっては、ハッキングされた資金が(部分的に)回収されることもありますが(Euler security incidentなど)、毎回これに頼ることはできません。攻撃が起こるたびに、人々のDeFiへの信頼は損なわれます。
セキュリティを強化するための複数の方法が提案されていますが、まだ改善の余地は大きく残されています。
- 良い側面としては、コードオーディットがセキュリティを確保するためのコミュニティの合意事項となっています。ほとんどのプロトコルはローンチ前にコードオーディットを受けており、これによりスマートコントラクトの脆弱性による攻撃対象領域を減らすことができます。
- しかし、コードオーディットだけでは、すべてのセキュリティ問題に対処するには程遠いものです。スマートコントラクトのアップグレード、設定変更、異なるプロトコル間のランタイム依存関係の際に生じた脆弱性によるハッキングを防ぐことはできません。
これらの限界により、運用モニタリングや攻撃検知システムといった、より積極的なソリューションが登場し、一部のプロトコルに採用されています。
このブログでは、プロトコルのセキュリティの旅を、ローンチ前フェーズから運用段階、そして攻撃対応まで、各段階を追ってDeFi Security Landscapeを探ります。様々な種類のセキュリティ対策について詳しく説明し、各段階における主要なベンダー(製品)を取り上げ、それぞれの利点と欠点について議論します。 これらの洞察が、コミュニティが最先端の技術をより深く理解する助けとなり、さらに重要なことには、将来の革新的なソリューションを生み出すきっかけとなることを期待しています。
DeFi Security Landscape
DeFiプロトコルのセキュリティ対策は、そのライフサイクル全体、つまりローンチ前段階からローンチ後段階までをカバーし、プロトコル固有のセキュリティと運用上のセキュリティの両方を確保する必要があります。さらに、潜在的な攻撃に対処するための予防的措置と緊急時対応計画を用意しておくことが不可欠です。読者が利用可能なソリューションを理解できるよう、DeFiセキュリティベンダー(製品)を以下のカテゴリーに分類します。
ローンチ前セキュリティ
このカテゴリーには、コードオーディット、フォーマル検証、セキュリティテストなど、プロトコルのローンチ前に実施されるセキュリティ対策が含まれます。

コードオーディットサービスとコンテスト
コードオーディットは、プロトコルを保護するためにコミュニティで広く受け入れられているセキュリティプラクティスです。このプロセスでは、セキュリティ会社が半自動的な方法でコードをレビューします。すなわち、一般的な脆弱性についてコードを自動的にスキャンし、複雑な問題については手動でコードをレビューします。代表的な企業には、OpenZeppelin、ChainSecurity、BlockSecなどがあります。
さらに、オーディットの実施方法においてセキュリティオーディット会社とは異なる、オーディットコンテストプラットフォームも存在します。これらのプラットフォームはオーディットコンテストを開始し、コミュニティのセキュリティ研究者を参加させてオーディットコンテストを実施し、プロトコル内で問題を発見した人に報酬を配布します。もちろん、深刻度の評価方法、報酬配布のアルゴリズム、セキュリティ研究者の参加基準には、プラットフォームごとに微妙な違いがある場合があります。こうしたプラットフォームには、Code4rena、SHERLOCK、Cantina、Secure3などがあります。
コードオーディット(およびコンテスト)は、プロトコルのセキュリティにおける第一の防衛線です。しかし、実用上の限界があり、これが信頼できる企業によってオーディットされた多くのプロトコルが依然としてハッキングされる理由を説明しています。
- まず、静的コードオーディットでは、特にDeFiプロトコルの組み合わせ可能性による、プロトコル間の依存関係に起因するセキュリティ問題を完全に評価することはできません。
- 次に、いくつかの問題のセキュリティへの影響が、コードオーディットの際に過小評価されていました。例えば、精度損失は一般的な問題であり、オーディター側とプロトコル側の両方から見過ごされる場合があります。この問題のセキュリティへの影響は、Hundred FinanceやChannels Financeの事件が起こるまで、コミュニティに完全には認識されていませんでした。
- 最後に、高品質のコードオーディットは依然として、セキュリティ、金融、コンピュータサイエンスに精通した多分野の人材を必要とする、名誉あるかつ稀少なリソースです。現時点で、このような人材を一貫して、かつ大規模に提供できる大学は少数です。そのため、プロトコルが業務を行う資格のない企業によってオーディットされる場合があります。
フォーマル検証
「フォーマル検証とは、数学の形式的手法を用いて、特定の形式的な仕様やプロパティに関してシステムの正しさを証明または反証する行為である」。システムの正しさを証明できるため、フォーマル検証はDeFiプロトコルに適用されています。具体的には、DeFiプロトコルの動作が形式的な仕様を満たしていることを保証できます。DeFiプロトコル向けフォーマル検証製品の代表例は、Certoraが開発したProverです。開発者がルール(仕様)を提供すると、Proverはあらゆる可能なプログラムの状態を調べることで、その結果をルールと比較し、バグを特定します。
フォーマル検証の最も有望な点は、DeFiプロトコルの正しさを数学的に証明できることです。しかし、実際には、広範な採用を妨げるいくつかの限界がまだ存在します。
- まず、仕様は開発者によって提供される必要があり、これには開発者がプロトコルの期待される動作について、よく文書化された仕様を持っていることが求められます。ほとんどの開発者がこの分野の専門家ではないことを考慮すると、これは容易ではありません。
- 次に、プロトコルの頻繁なアップグレードには、更新された仕様とプロトコルの再評価が必要になる場合があります。一部のプロトコルは、そのための時間と労力を割けない場合があります。
とはいえ、フォーマル検証は、特に実戦でまだテストされておらず、相当なユーザー資産を管理している新しいプロトコルによって実施されるべきです。しかし、フォーマル検証の使いやすさを向上させ、採用率を高めることは、依然として継続的な課題です。
セキュリティテスト
セキュリティテストとは、テストケースを使用してプロトコル内のバグを見つけるプロセスを指します。プロトコルの正しさを数学的に証明するフォーマル検証と比較して、セキュリティテストは通常、フォーマル検証における記号的な入力ではなく、具体的な入力を使用するため、はるかに効率的ですが、正確性は劣ります。
- Foundryは、スマートコントラクト向けの人気の開発・テストフレームワークの一つです。開発者はFoundryでテストを実行できます。また、DeFiプロトコルに対してファズテスト、不変条件テスト、差分テストを実行する機能も提供しています。
- その他のセキュリティテストツールには、TenderlyやHardhatがあります。
ローンチ後セキュリティ
このカテゴリーには、バグバウンティ、攻撃検知、運用モニタリングなど、プロトコルがローンチされた後(またはメインネット上で稼働している間)に実施されるセキュリティ対策が含まれます。

バグバウンティ
バグバウンティプログラムは、プロトコルとセキュリティ研究者の間の橋渡しとなります。基本的な考え方は、研究者にゼロデイ脆弱性を報告するインセンティブを与え、その見返りに報酬を提供することです。具体的には、プロトコルはバグバウンティプラットフォームにバウンティを掲載し、バウンティの対象範囲や報告されたバグに対する報酬額を詳細に記載します。Immunefiは代表的なWeb3バグバウンティプラットフォームの一つです。
攻撃検知
攻撃検知プラットフォームは、トランザクションをスキャンして悪意のあるものを特定します。具体的には、これらのプラットフォームは、プロトコルと相互作用したトランザクションを悪意のある行動についてチェックします。そのようなトランザクションが発生すると、アラートがトリガーされます。
- 例えば、BlockSec Phalcon Securityはトランザクションをスキャンし、行動ベースの検知エンジンを使用して悪意のある活動(悪意のあるコントラクトやプロポーザルなど)を検知します。これは、金融トランザクションの一歩一歩を観察し、不審な行動を探す仮想のセキュリティガードのようなものだと考えてください。刑事が手がかりを分析するように、これらのトランザクションから行動パターンを抽出し、その後、銀行が不正を検出するために使用するものと同様の金融モデルを使用して、潜在的な攻撃を特定します。
- 同様のシステムには、HypernativeやHexagateが提供する製品があります。
- さらに、IronblocksのVenn Security networkは、複数のソースからの検知結果を統合する分散型インフラストラクチャを提供しています。
運用モニタリング
運用モニタリングフレームワークは、DeFiプロトコルの運用セキュリティを実装する方法を提供します。例えば、DeFiプロトコルは管理者キーの変更を把握し、スマートコントラクトのデプロイとアップグレードを実行し、セキュリティ脆弱性についてプルリクエストを自動的にスキャンする必要があります。
- OpenZeppelin Defenderは、開発者が安全にスマートコントラクトをコーディング、デプロイ、運用できるプラットフォームを提供します。
- BlockSec Phalcon Securityは、コントラクトのアップグレード、Safeウォレットのトランザクション作成、新規署名・実行、アクセスコントロール、ガバナンスに関連するリスクをモニタリングできます。
- Forta Networkは、ユーザーが自分のプロトコルを監視するための独自のボットを構築したり、フィッシングや脅威アラートのために既存のボットを利用したりできるインフラを持っています。
攻撃対応
このカテゴリーには、攻撃が発生した際にトリガーされるセキュリティ対策が含まれ、攻撃ブロッキング、自動アクション、ウォールーム、根本原因分析、攻撃者の資金フロー追跡などが含まれます。

攻撃対応における5つの対策の中で、攻撃ブロッキングは特に注目に値します。これは、プロジェクトチームが予防措置を事前に展開し、攻撃を実行前に成功裡にブロックし、損失をゼロに抑えることができるためです。自動応答プラットフォームも、攻撃による被害を軽減するのに役立ちます。
ウォールームの設立、根本原因分析の実施、盗まれた資金の追跡は、攻撃発生後に取られる事後対応的なステップです。これらの戦略は一部の被害を軽減し、将来同様の攻撃を防ぐのに役立つ可能性がありますが、損失はすでに発生している場合があり、回収が難しい可能性があります。さらに、プロジェクトの評判への害と、それに伴うユーザーの信頼の失墜は深刻なものとなり得ます。
リスクはどこにでも存在し、しばしば制御が及びませんが、事前対応的な防御措置を展開することは十分に実現可能であり、強く推奨されます。
攻撃ブロッキング
実際にハッキングに対抗する際、攻撃検知だけでは不十分です。これは、ハッキングを自動的にブロックする能力がなければ、手動での対応は十分な速さで行えないためです。ある場合には(下表のKyberSwap、Gamma Strategies、Telcoin)、プロトコルが手動でアクションを取るまでに数分、時には数時間もかかっており、プロトコル内の資産を救うには遅すぎます。VelocoreとRhoに対する最近のハッキングでは、それぞれLineaチェーンとScrollチェーン全体が一時停止され、L2チェーンの中央集権化に対する懸念が高まりました。

攻撃ブロッキングとは、ハッキングを自動的に防止する能力であり、2つの重要な技術が必要です。早期検知と、ハッキングの自動フロントランニングです。
- 早期検知とは、攻撃トランザクションがブロックチェーン上でファイナライズされる前、具体的にはまだメンプール内で保留状態にある間に、システムがそれを識別できることを意味します。
- 攻撃のフロントランニングとは、攻撃トランザクションよりも前にチェーン上にトランザクションを配置してプロトコルを一時停止させ、攻撃が実行される前に効果的に停止させることです。
このカテゴリーでは、BlockSec Phalcon Securityがこれらの重要な技術を持つ唯一の製品です。ハッカーが攻撃トランザクションを開始すると、Phalcon Securityの攻撃モニタリングエンジンはこのトランザクションを即座に検知し、ユーザーに攻撃アラートを送信し、自動的にフロントランニングを行ってプロトコルを一時停止させ、損失をゼロに抑えます。その重要な技術は、2000万ドル以上の20件を超える救済によって実戦で検証されています。
自動アクション
Phalcon Security、Hexagate、Hypernativeなどのプラットフォームは、攻撃が発生した際に自動的に対応することもできます。
こうしたプラットフォームに登録した後、ユーザーは様々なプロトコルリスクに対するモニタリングと対応措置を設定できます。トランザクションがモニタリングルールに合致する場合、システムはユーザーがあらかじめ設定した対応アクション(プロトコルの一時停止など)を自動的に開始し、それによって損失を軽減します。
しかし、一部のプラットフォームには攻撃検知エンジンが搭載されておらず、システムは攻撃トランザクションを直接認識してユーザーに通知することができません。代わりに、どのような条件でトランザクションを攻撃と見なすべきかをユーザーがカスタマイズする必要があります。攻撃トランザクションの特徴は非常に複雑であり、ユーザー(多くの場合コントラクト開発者)には十分なセキュリティ知識がない場合があるため、これは彼らにとって非常に困難な場合があります。
ウォールーム
プロトコルが攻撃を受けている際には、ウォールームの設立が必要です。これにより、プロトコルは何が起きているのかを把握し、コミュニティ内で情報を共有し、さらなる対応のためにリソースを活用することができます。これには通常、様々な視点を持つ専門家が関与します。
SEAL 911は、「ユーザー、開発者、セキュリティ研究者に、緊急時に少数の高度に信頼できるセキュリティ専門家と繋がるためのアクセスしやすい方法を提供する」プロジェクトです。SEAL 911 Telegram Botから連絡することができます。プロジェクトがハッキングされている場合、ウォールームを設立してプロトコルを支援することができます。
根本原因分析
攻撃が発生した際、プロトコルはスマートコントラクト内の脆弱性やそれがどのように悪用されたかなど、根本原因を理解する必要があります。これには、攻撃トランザクションを分析するための有用なツールが必要です。この目的には、Phalcon Explorer、OpenChain、Tenderlyを使用できます。
資金フロー追跡
資金フロー追跡とは、ブロックチェーン上で攻撃者の初期資金と攻撃による利益を追跡し、関連するアドレスやエンティティを特定することです。資産が中央集権的なエンティティ(中央集権型取引所や他の機関レベルのエンティティなど)に流入している場合、法執行機関に連絡して資金の凍結を支援してもらうことができます。
このカテゴリーには、Chainalysis、TRM Labs、ARKHAM、ELLIPTIC、MetaSleuthなど、複数の企業やツールがあります。
- 例えば、BlockSecが開発したMetaSleuthは、ウォレットアドレスの豊富なラベル付けにより、異なるチェーン間で資金を自動的に追跡できます。
- ARKHAMにはコミュニティがあり、プロトコルが調査に対してバウンティを設定することができ、これによりコミュニティが攻撃者の資金追跡を支援するインセンティブとなります。
セキュリティ教育リソース
情報に通じた頭脳が、より強固な防御を構築します。上記のセキュリティベンダーや製品に加えて、DeFiセキュリティにはもう一つの重要な要素があります。それは教育プラットフォームです。

これらのプラットフォームは、DeFiの実務者やユーザーがセキュリティに関する洞見を理解し、意識を高め、セキュリティスキルを育成するための重要なリソースを提供します。DeFiセキュリティの進歩において、これらは重要な役割を果たしています。これらの教育プラットフォームに感謝を表し、注目すべき例をいくつか紹介します。
- SΞCURΞUM:イーサリアムのセキュリティに焦点を当てたDiscordコミュニティ。毎月のスマートコントラクトセキュリティクイズ「Secureum RACE」も主催しています。
- Security Incidents Dashboard:このプラットフォームは、10万ドルを超える損失を引き起こしたすべての攻撃事件を収集し、損失、影響を受けたチェーン、脆弱性、根本原因、PoCの詳細を提供します。
- Rekt:DeFiジャーナリズムのダークウェブとして知られるRektは、エコシステム内のエクスプロイト、ハッキング、詐欺に関する深い分析を提供します。
- RugDoc:プロジェクトのリスクを評価するDeFi安全性・教育コミュニティ。DeFiエコシステムとテクノロジーを紹介するRugDocWiKiというプラットフォームも備えています。
- DeFiHackLabs:2,600人以上のメンバーと約200人のホワイトハッカーを抱えるWeb3セキュリティコミュニティで、Web2とWeb3のセキュリティ専門知識の橋渡しを目指しています。
- Solodit:様々なWeb3オーディット会社の過去のレポートをまとめたプラットフォームで、スマートコントラクトオーディターにとって貴重なリソースとなっています。
- Ethernaut:プレイヤーがイーサリアムコントラクトの脆弱性を特定するWeb3/Solidityベースのゲームで、CTFチャレンジに似ています。
結論
セキュリティは依然としてDeFiエコシステムにとって継続的かつ深刻な脅威であり、毎年数十億ドルの損失を引き起こしています。現在、セキュリティ対策の大部分はローンチ前段階で実施されています。しかし、セキュリティに万能の解決策は存在せず、DeFiプロトコルのライフタイム全体を通じて様々な手法が実施されるべきです。業界がローンチ後のセキュリティソリューションを採用し、モニタリングを行い、さらに重要なことには攻撃を自動的にブロックするようになることを期待しています。ユーザーの資産を完全に保護するために、エコシステム内にセキュリティファーストの文化が確立されることを見込んでいます。



