DeFiエコシステムの安全性全景
著者:BlockSec
序章
DeFiの発展が金融の風景を再構築する中で、安全性は常にDeFiエコシステムが直面する重大な課題であり、安全問題は毎年数十億ドルの資産損失を引き起こしています。
Chainalysisのデータによると、2023年のDeFiハッキング攻撃は11億ドル以上の資産損失をもたらしました。この数字は2022年よりも減少しましたが、2023年には新たなDeFi攻撃のトレンドが現れました。例えば、CurveやKyberSwapのような長期間安全に運営されてきた有名なプロトコルも攻撃を受けました。また、Flashbots Relayのようなインフラストラクチャの脆弱性に対する複雑な攻撃も発生しました。
Security Incident Dashboardのデータによると、2024年上半期には10万ドル以上の損失をもたらすハッキング事件が50件以上発生しました。
最近のハッキング事件
(出典:Security Incident Dashboard)
https://app.blocksec.com/explorer/security-incidents
安全性はDeFiプロトコルの発展にとって極めて重要です。一部のプロトコルは数十億ドルのユーザー資産を管理しており、安全事件はユーザーに重大な損失をもたらします。場合によっては、盗まれた資金が(部分的に)回収されることもあります(例えばEuler攻撃事件)。しかし、私たちはその希望に完全に依存することはできません。毎回の攻撃事件は、ユーザーのDeFiに対する信頼を弱めています。
業界では多くの安全性を強化する措置が提案されていますが、DeFiの安全性にはまだ大きな改善の余地があります。積極的な面では、コード監査がコミュニティの合意となり、大多数のプロトコルはローンチ前に監査を行うことで、スマートコントラクトの脆弱性による攻撃リスクを低減しています。しかし、コード監査だけではすべての安全問題を解決するには不十分です。コード監査は、契約のアップグレード、設定変更、外部依存によって引き起こされる脆弱性による攻撃を防ぐことはできません。これらの制限を考慮して、一部のプロトコルは運用監視や攻撃検出システムなど、より積極的な解決策を採用し始めています。
本稿では、プロトコルのローンチ前(Pre-Launch)、ローンチ後の運営(Post-Launch)、攻撃対応(Attack Response)段階で採用できる安全措置を概観し、DeFiの安全性の全景を理解します。各種の安全措置とその主要な供給者/製品、およびそれらの長所と短所について詳しく説明します。本稿がコミュニティにDeFiの安全性の現状をより良く理解し、革新的な安全解決策のインスピレーションを与えることを期待しています。
DeFiの安全性全景
DeFiプロトコルの安全措置は、プロトコルのローンチ前からローンチ後の全ライフサイクルにわたって実施されるべきであり、プロトコル自体と運営期間中の安全性を確保する必要があります。また、潜在的な攻撃に対して事前に予防措置と対応計画を展開することも同様に重要です。読者が現在どのようなDeFi安全解決策があるかを明確に理解できるように、関連する供給者(製品)を以下のいくつかのカテゴリに分けます。
Pre-Launch Security
プロトコルのローンチ前に採用できる安全措置には、コード監査、形式的検証、安全テストが含まれます。
コード監査サービス&コンペティション
コード監査は、コミュニティに認められたプロトコルの安全を確保する方法です。このプロセスでは、安全会社が凍結されたコードを半自動的に審査し、コード内の一般的な脆弱性を自動的にスキャンし、複雑な脆弱性は手動で審査します。代表的な監査会社にはOpenZeppelin、ChainSecurity、BlockSecなどがあります。
さらに、監査コンペティションプラットフォームもあります。直接監査サービスを提供する監査会社とは異なり、これらのプラットフォームは監査ニーズを公開し、コミュニティ内の安全研究者を監査コンペティションに参加させ、プロトコルの脆弱性を発見した参加者に報酬を分配します。監査コンペティションプラットフォームにはCode4rena、SHERLOCK、Cantina、Secure3などがあり、各プラットフォームは脆弱性の深刻度、報酬の分配、参加基準にいくつかの違いがあります。
コード監査はプロトコルの安全の第一の防線です。しかし、いくつかの制限もあり、著名な会社によって監査されたプロトコルが依然としてハッキング攻撃を回避できない理由でもあります。
まず、静的コード監査はプロトコルの依存関係によって引き起こされる安全問題を解決できません。DeFiプロトコルの可組み性はこれをさらに悪化させます。
次に、コード監査の過程で、一部の問題が十分に重視されないことがあります。例えば、精度損失は一般的な問題であり、監査者やプロトコル側によって見落とされる可能性があります。Hundred FinanceやChannels Financeの事件が発生するまで、コミュニティは精度損失の安全への影響を十分に認識していませんでした。
最後に、高品質のコード監査は依然として希少なリソースであり、安全、金融、コンピュータサイエンスの知識を持つ学際的な人材が必要ですが、現在、持続的かつ大規模にこのような人材を提供できる大学はほとんどありません。そのため、一部のプロトコルは監査を受けたにもかかわらず、監査サービスを提供する監査者の専門性が不足しています。
形式的検証
「形式的検証は、ある形式の規範または属性に基づいて、数学的方法を使用してシステムの正しさまたは不正確さを証明します。」形式的検証は、DeFiプロトコルの動作が形式的な規範に従っていることを保証できます。例えば、Certoraが開発したProverはDeFiプロトコルの形式的検証を行うことができます。開発者がルール(規範)を提供し、Proverはあらゆる可能なプログラム状態を探索し、結果をルールと比較することで脆弱性を特定します。 形式的検証の最大の利点は、数学的証明を通じて数十億の資産を管理するDeFiプロトコルの正しさを管理できることです。しかし、実際のアプリケーションにおけるいくつかの制限がその広範な採用を妨げています。
- まず、規範は開発者によって提供される必要があり、これは開発者がプロトコルの期待される動作について詳細な文書を持っていることを要求しますが、大多数の開発者はこの分野の専門家ではありません。
- 次に、プロトコルの頻繁なアップグレードは規範の更新とプロトコルの再評価を必要とする可能性があり、一部のプロトコルはこれに多くの時間と労力をかけることができないかもしれません。 これらの制限があるにもかかわらず、私たちはプロトコルが形式的検証を行うべきだと考えています。特に、まだ時間の検証を受けておらず、大量のユーザー資産を管理している新しいプロトコルにとって重要です。しかし、形式的検証の実用性を高め、その採用率を向上させる方法は、現在直面している大きな課題です。
安全テスト
安全テストは、テストケースを通じてプロトコル内の潜在的な問題を発見します。数学的方法を使用してプロトコルの正しさを証明する形式的検証に比べて、安全テストは一般的に具体的な入力データ(形式的検証のシンボル入力ではなく)を使用するため、効率が高いですが、包括性はやや低いです。
Foundryは非常に人気のあるスマートコントラクト開発テストフレームワークです。開発者はFoundry内でテストを実行でき、DeFiプロトコルに対して差分テスト、不変性テスト、差異テストを行うことができます。他の安全テストツールにはTenderlyやHardhatがあります。
Post-Launch Security
プロトコルのローンチ後に採用できる安全措置には、Bug Bounty、攻撃検出、運営監視が含まれます。
Bug Bounty
Bug Bountyはプロトコルと安全研究者の間の橋を架けます。プロトコルはBug Bountyプラットフォームで報酬プログラムを発表し、報酬の範囲と金額を詳細に説明し、安全研究者はプロトコルのゼロデイ脆弱性を報告することで報酬を得ます。Immunefiは代表的なWeb3 Bug Bountyプラットフォームです。
攻撃検出
攻撃検出プラットフォームは、取引をスキャンして悪意のある取引を識別します。具体的には、これらのプラットフォームはプロトコルと相互作用する各取引をスキャンして悪意のある行動を探し、悪意のある取引を識別するとシステムが警報を発します。
例えば、BlockSec Phalconは各メモリプールとチェーン上の取引をスキャンし、取引の行動特性を分析して悪意のある行動(悪意のあるコントラクト、悪意のある提案)を識別します。それはまるで安全の守護者のように、眠らずに各取引の詳細を監視し、異常な動向を探します。これらの取引から行動パターンを抽出し、金融モデル(銀行が詐欺を検出するために使用するモデルに類似)を使用して潜在的な攻撃を識別します。同様のシステムにはHypernativeやHexagateが提供する製品も含まれます。さらに、IronblocksのVenn Security Networkは、複数のソースからの検出結果を集約できる分散型インフラを提供しています。
運営監視
その名の通り、運営監視フレームワークはプロトコルのローンチ後の運営の安全を監視します。例えば、管理者の秘密鍵の変更状況、スマートコントラクトの展開と更新をリアルタイムで把握し、プルリクエスト内の安全脆弱性を自動的に検出します。OpenZeppelin Defenderプラットフォームは、開発者が安全にスマートコントラクトを作成、展開、運営するのを助けることができます。BlockSec Phalconは、コントラクトのアップグレード、Safeウォレットの取引(発起、新署名、実行)、アクセス制御およびガバナンス関連のリスクを監視できます。また、リアルタイム監視システムForta Networkを通じて、ユーザーはプロトコルを監視するボットを作成したり、既存のボットを購読してフィッシングなどの安全脅威警報を受け取ったりできます。
Attack Response
攻撃が発生した後に自動的にトリガーされるか、緊急に実施される安全措置には、攻撃阻止、自動応答、War Room、攻撃原因分析、攻撃者の資金流追跡が含まれます。
これらの5つの応答措置の中で、特に注目すべきは攻撃阻止です。なぜなら、プロジェクト側は事前に展開でき、攻撃が発生する前に攻撃を阻止し、損失をゼロに抑えることができるからです。自動応答プラットフォームも攻撃による損失を減少させるのに役立ちます。
War Roomの設立、攻撃原因分析、資金流追跡は攻撃が発生した後に取られる対策ですが、損失を減少させ、将来の類似攻撃を防ぐのに役立つ一方で、すでに重大な損失が発生している可能性が高く、回収が難しいです。また、プロジェクトの評判が損なわれ、ユーザーの信頼が失われることは、深刻な負の影響をもたらす可能性があります。リスクはどこにでも存在し、防ぎきれないように思えますが、プロジェクト側は受動的に対応するだけでなく、事前に防止措置を展開することが推奨される方法です。
攻撃阻止
攻撃検出はハッキング攻撃を知る重要な手段ですが、ハッキング攻撃に対抗するには、検出だけでは不十分です。自動化された攻撃阻止能力がなければ、手動での応答措置はしばしば間に合いません。KyberSwap、Gamma Strategies、Telcoinの攻撃事件を例に挙げると、これらのプロトコルは攻撃の数分、あるいは数時間後に応答措置を講じ、ハッカーはその間に複数の攻撃取引を行い、大量の資産を盗みました。7月のVelocoreとRhoの攻撃事件は、LineaとScroll全体の運営を一時停止させ、ユーザーにL2チェーンの中央集権問題への関心を引き起こしました。
攻撃阻止はハッキング攻撃を自動的に防ぐことができ、これは2つのコア技術に依存しています:事前検出と自動先行。事前検出は、取引がブロックチェーンに載る前、メモリプールの段階で攻撃取引を識別できることを指します。自動先行は、攻撃取引がブロックチェーンに載る前に、優先的に先行取引を提出してプロトコルを一時停止させ、攻撃取引の実行を阻止します。この方法は、攻撃が実質的に発生する前に阻止を行い、損失を回避します。
このカテゴリの中で、BlockSec Phalconはこれらのコア技術を持つ唯一の製品です。ハッカーが攻撃取引を開始した後、Phalconの攻撃監視エンジンはこの取引を事前に検出し、ユーザーに攻撃警告を送信し、自動的にプロトコルを一時停止させ、損失をゼロに抑えます。この製品の攻撃阻止能力は、過去20回以上のホワイトハット救助で検証され、2000万ドル以上の資産を救いました。
自動応答
攻撃阻止プラットフォームの他に、Phalcon、Hexagate、Hypernativeなどのプラットフォームも攻撃が発生した際に自動応答を行うことができます。
このようなプラットフォームを購読すると、ユーザーはさまざまなプロトコルリスクに対して監視および応答措置を設定できます。取引が監視ルールにヒットすると、システムはユーザーが事前に設定した応答措置(プロトコルの一時停止など)を自動的に発動し、損失を低減します。ただし、一部のプラットフォームは攻撃検出エンジンを持たず、システムは攻撃取引を直接識別してユーザーに通知することができず、ユーザーがどの条件で取引を攻撃と見なすかをカスタマイズする必要があります。攻撃取引の特性は非常に複雑であり、ユーザー(しばしばコントラクト開発者)が十分な安全知識を持っているとは限らないため、これはユーザーにとって非常に挑戦的です。
War Room
プロトコルが攻撃に直面しているとき、War Roomを設立することは特に重要です。これにより、プロトコルは状況を把握し、コミュニティとタイムリーに情報を共有し、リソースを効果的に統合して対応措置を講じることができます。これには多分野の専門家の密接な協力が必要です。
SEAL 911は「緊急時にユーザー、開発者、安全研究者が信頼できる安全専門家に直接連絡できるように支援すること」を目的としています。ユーザーはSEAL 911 Telegram Bot(https://t.me/seal911bot)を通じてこのサービスを利用でき、プロジェクトが攻撃を受けた際に迅速にWar Roomを設立して安全な課題に対応します。
攻撃原因分析
プロトコルが攻撃を受けた際、重要なのは問題の根源を特定することです。例えば、スマートコントラクト内部の脆弱性やその脆弱性がどのように利用されたかを分析します。攻撃取引を分析するには、いくつかのツールを利用する必要があります。Phalcon Explorer、OpenChain、Tenderlyは良い選択肢です。
資金流追跡
資金流追跡は、攻撃者の初期資金と攻撃による利益をチェーン上で追跡し、関連するアドレスや実体を特定することを指します。これらの資産が中央集権的な実体(例えば、中央集権的な取引所や他の機関レベルの実体)に流れた場合、法執行機関に連絡して資金を凍結する手助けを求めることができます。
Chainalysis、TRM Labs、ARKHAM、ELLIPTIC、MetaSleuthはこの分野の代表的な会社/製品です。例えば、MetaSleuthはクロスチェーンの資金流を自動的に追跡し、豊富なアドレスラベルを提供します。ARKHAMはコミュニティを構築し、プロトコル側が調査Bountyを発表し、コミュニティメンバーが攻撃者の資金流向を追跡するのを支援します。
安全教育リソース
知識は最良の防線です。前述の安全供給者や製品に加えて、DeFiの安全にとって重要な役割を果たすもう一つの役割は教育プラットフォームです。これらのプラットフォームが提供するリソースや情報は、DeFiの関係者やユーザーが安全知識を深く理解し、安全意識を高め、安全スキルを育成するのに役立ち、DeFiの安全発展を推進する重要な役割を果たします。私たちはこれらのプラットフォームに敬意を表し、以下のいくつかの注目すべきプラットフォームを共有します。
- SΞCURΞUM :イーサリアムの安全に特化したDiscordコミュニティで、定期的にスマートコントラクトの安全コンペティション「Secureum RACE」を開催しています。 https://x.com/TheSecureum
- Security Incidents Dashboard :このプラットフォームは、10万ドル以上の損失をもたらす攻撃事件を集約し、リアルタイムで更新し、損失額、影響を受けたチェーン、脆弱性の種類、攻撃原因分析、PoCなどの詳細情報を提供します。 https://app.blocksec.com/explorer/security-incidents
- Rekt :DeFiニュースのダークウェブと呼ばれ、DeFiの脆弱性利用、ハッキング攻撃、詐欺行為の詳細な分析を提供します。 https://rekt.news/
- RugDoc :DeFiの安全と教育コミュニティ。このプラットフォームはプロジェクトのリスク評価情報を提供し、DeFiエコシステムと技術を紹介するプラットフォームRugDocWiKiもあります。 https://rugdoc.io/
- DeFiHackLabs :Web3の安全コミュニティで、Web2の安全人材がWeb3分野に入るのを支援し、世界中に2000人以上のメンバーと約200人のホワイトハットハッカーを持ち、DeFiHackLabsのリポジトリは豊富な学習リソースを提供しています。 https://x.com/DeFiHackLabs
- Solodit :このプラットフォームはWeb3監査会社の過去の監査報告書を収集しています。 https://solodit.xyz/
- Ethernaut :Web3/Solidityに基づいたゲームで、プレイヤーはイーサリアムコントラクトの脆弱性を特定する必要があります。形式はCTFに似ています。 https://ethernaut.openzeppelin.com/
結論
安全問題は毎年数十億ドルの損失を引き起こし、DeFiエコシステムが長期的に直面する深刻な脅威です。現在、大多数の安全措置はプロジェクトのローンチ前の安全問題に焦点を当てています。しかし、安全分野には「銀の弾丸」は存在しません。プロトコルの発展の異なる段階において、それに応じた措置を講じて安全を確保し、プロトコルの全ライフサイクルにわたって実施されるべきです。
私たちは業界がプロジェクトのローンチ後の安全の重要性を認識し、プロトコルリスクを監視し、攻撃を自動的に阻止する措置を講じることを期待しています。
また、DeFiエコシステムが安全第一の合意を形成し、ユーザーの資産の安全をより良く保護できることを願っています。