TL;DR
- DeFiにおけるセキュリティは依然として重要かつ継続的な課題であり、年間数十億ドルが失われている。
- DeFiプロトコルのセキュリティ対策は、そのライフサイクル全体にわたるものでなければならない。潜在的な攻撃を軽減するために、予防的な戦略とコンティンジェンシープランを実施することが極めて重要である。
- コード監査を中心とした発売前のセキュリティは、コミュニティのコンセンサスとなっている。しかし、上市後のセキュリティ・ソリューション(例えば、攻撃の監視とブロッ キング)が出現しているにもかかわらず、その重要性はまだコミュニティによって十分に認識されていない。
- セキュリティ対策の継続的な改善と、セキュリティ優先の文化への転換は、ユーザー資産を保護し、エコシステムの信頼を高めるために不可欠である。
はじめに
DeFiが金融業界に革命を起こし続ける一方で、セキュリティはエコシステム内の重要な懸念事項であり続け、毎年数十億ドルの損失が発生している。
Chainalysis](https://www.chainalysis.com/blog/crypto-hacking-stolen-funds-2024/#:~:text=Hacks%20of%20DeFi%20protocols%20largely,%241.1%20billion%20from%20DeFi%20protocols.)のデータによると、2023年のDeFiハッキングは11億ドル以上の損失をもたらした。この数字は2022年と比べて減少したものの、2023年のDeFiハッキングには複数の新しい傾向が見られる。例えば、CurveやKyberSwapなど、何年も安全に運用されてきた評判の高いプロトコルがハッキングされている。さらに、インフラの脆弱性を狙った巧妙なハッキング、例えばFlashbots relayが暴露されている。
セキュリティ・インシデント・ダッシュボード](https://app.blocksec.com/explorer/security-incidents)によると、2024年上半期には、10万ドルを超える損失を引き起こすハッキングが50件以上発生している。
セキュリティ・インシデント・ダッシュボード](https://app.blocksec.com/explorer/security-incidents)における最近のハッキングの一部。 セキュリティ・インシデント・ダッシュボード](https://blocksec-static-resources.s3.us-east-1.amazonaws.com/assets/frontend/blocksec-strapi-online/_0cfb94e1b9.jpg)
セキュリティは、DeFiアプリケーションの繁栄と大規模な普及にとって極めて重要な要素である。なぜなら、DeFiプロトコルは何十億ドルものユーザー資産を管理しており、これらのプロトコルを標的にしたハッキングは、影響を受けたユーザーに大きな損失をもたらす可能性があるからです。ハッキングされた資金を(部分的に)回復できるケースもありますが(オイラー・セキュリティ事件のように)、毎回これを当てにすることはできません。攻撃を受けるたびに、DeFiに対する信頼は失われていく。
DeFiのセキュリティを強化するために複数の方法が提案されてきたとはいえ、まだまだ改善の余地は大きい。ポジティブな面では、コード監査はセキュリティを確保するためのコミュニティのコンセンサスとなっている。ほとんどのプロトコルはローンチ前にコード監査を受けており、スマートコントラクトの脆弱性に起因する攻撃面を減らすのに役立っている。しかし、コード監査だけではすべてのセキュリティ問題に対処するには程遠い。スマート・コントラクトのアップグレード、コンフィギュレーションの変更、異なるプロトコルにまたがるランタイムの依存性などの間に導入された脆弱性に起因するハッキングを防ぐことはできない。このような限界があるため、運用監視や攻撃検知システムなど、よりプロアクティブなソリューションが登場し、いくつかのプロトコルで採用されている。
このブログでは、立ち上げ前の段階から、運用段階を経て、攻撃への対応に至るまで、様々な段階におけるプロトコルのセキュリティの道のりをたどることで、DeFiのセキュリティの状況を探ります。様々なタイプのセキュリティ対策について詳しく説明し、各段階における主なベンダー(製品)に焦点を当て、その長所と短所について議論します。 私たちの洞察が、コミュニティが技術の現状をよりよく理解する助けとなり、さらに重要なこととして、将来の革新的な解決策を鼓舞することを願っています。
DeFiセキュリティの展望
DeFiプロトコルのセキュリティ対策は、プロトコルのライフサイクル全体を包含するものでなければならない。さらに、潜在的な攻撃に対処するための予防策とコンティンジェンシープランも不可欠である。読者が利用可能なソリューションを理解しやすくするため、DeFiセキュリティ・ベンダー(製品)を以下のカテゴリーに明確化する。
プリ・ローンチ・セキュリティ
このカテゴリーは、コード監査、正式な検証、セキュリティテストなど、プロトコルを立ち上げる前に実施されるセキュリティ対策で構成されます。
コード監査サービスとコンテスト
コード監査は、プロトコルの安全性を確保するためにコミュニティで広く受け入れられているセキュリティ手法です。このプロセスの間、コードはセキュリティ会社によって半自動的な方法でレビューされます。つまり、一般的な脆弱性については自動的にコードをスキャンし、複雑な脆弱性については手動でコードをレビューします。代表的な企業としては、OpenZeppelin、ChainSecurity、BlockSecなどがある。
さらに、監査コンテスト・プラットフォームがあり、これは、監査が実行される方法において、セキュリティ監査会社とは異なる。これらのプラットフォームは、監査コンテストを開始し、監査コンテストを実施するためにコミュニティからセキュリティ研究者を参加させ、プロトコルの問題点を発見した者に報酬を分配します。もちろん、プラットフォームは、重大性を評価する方法、報酬を分配するアルゴリズム、セキュリティ研究者を参加させる基準において、微妙な違いがあるかもしれません。そのようなプラットフォームには、Code4rena、SHERLOCK、Cantina、Secure3がある。
コード監査(とコンテスト)は、プロトコルのセキュリティのための主要な防衛線です。しかし、これには現実的な限界があり、評判の良い企業によって監査された多くのプロトコルがいまだにハッキングされている理由を説明している。
- 第一に、静的なコード監査では、特にDeFiプロトコルの複合性のために、プロトコルの依存関係によって引き起こされるセキュリティ問題を完全に評価することはできません。
- 第二に、コード監査において、いくつかの問題のセキュリティへの影響が過小評価されている。例えば、精度損失は一般的な問題であり、監査人とプロトコルの両方によって軽視される可能性がある。Hundred Finance](https://www.comp.xyz/t/hundred-finance-exploit-and-compound-v2/4266)とChannels Financeのインシデントが発生するまで、そのセキュリティ上の影響はコミュニティによって十分に認識されていませんでした。
- 最後になりましたが、高品質のコード監査は、セキュリティ、金融、コンピュータ・サイエンスに精通した学際的な才能を必要とする、名誉ある希少なリソースであり続けています。現在のところ、そのような人材を安定して大規模に提供できる大学はほとんどない。したがって、プロトコルは、その業務を行う資格を持たない企業によって監査される可能性がある。
形式的検証
"形式的検証とは、数学の形式的手法を用いて、あるシステムの正しさを、ある形式的仕様や性質に関して証明したり反証したりすることである。システムの正しさを証明できるため、形式的検証はDeFiプロトコルにも適用されている。具体的には、DeFiプロトコルの振る舞いが形式仕様を満たすことを保証することができる。DeFiプロトコルの形式検証製品の代表は、Certora社が開発したProverである。開発者がルール(仕様)を提供し、Proverがそのルールと結果を比較することで、可能な限りのプログラム状態を探索してバグを特定する。
形式的検証の最も有望な点は、DeFiプロトコルの正しさを数学的に証明することである。しかし、実際にはまだいくつかの制約があり、広く採用されるには至っていない。
- 第一に、プロトコルの仕様は開発者によって提供されるべきであり、開発者はプロトコルの期待される動作について十分に文書化された仕様を持っている必要がある。ほとんどの開発者がこの分野の専門家ではないことを考えると、これは容易ではない。
- 第二に、プロトコルの頻繁なアップグレードは、仕様の更新やプロトコルの再評価を必要とする場合がある。プロトコルによっては、そのような時間と労力をかける余裕がない場合もある。
とはいえ、正式な検証は、特にまだ実戦的なテストが行われておらず、実質的なユーザー資産を管理していない新しいプロトコルによって実施されるべきである。しかし、形式的検証の使いやすさを向上させ、採用率を高めることは、依然として継続的な課題である。
セキュリティテスト
セキュリティテストとは、テストケースを用いてプロトコルのバグを発見するプロセスを指す。プロトコルの正しさを数学的に証明する形式的検証に比べ、セキュリティテストは、通常、形式的検証の記号的な入力の代わりに具体的な入力を使用します。
Foundryは、スマートコントラクトのための一般的な開発・テストフレームワークの一つである。開発者はFoundryでテストを実行できる。Foundryは、DeFiプロトコルのファズテスト、不変性テスト、差分テストを実行する機能も提供している。その他のセキュリティ・テスト・ツールには、TenderlyとHardhatがある。
起動後のセキュリティ
このカテゴリーは、プロトコルがローンチされた(またはメインネット上で生きている)後に実施されるセキュリティ対策から構成され、バグ報奨金、攻撃検知、運用監視などが含まれる。
バグ報奨金
バグ報奨金プログラムは、プロトコルとセキュリティ研究者の架け橋となる。基本的なコンセプトは、報奨金と引き換えに、ゼロデイ脆弱性を報告するよう研究者にインセンティブを与えることです。具体的には、プロトコルはバグ報奨金プラットフォームに報奨金を掲載することができ、報奨金の範囲と報告されたバグに対する報奨金の額を詳しく説明します。Immunefiは、代表的なWeb3のバグ報奨金プラットフォームである。
攻撃検知
攻撃検知プラットフォームは、トランザクションをスキャンして悪意のあるものを特定する。具体的には、これらのプラットフォームはプロトコルと相互作用するトランザクショ ンを検査し、悪意のある振る舞いがないかどうかを調べます。そのようなトランザクションが発生した場合、アラートがトリガーされる。
例えば、BlockSec Phalconはトランザクションをスキャンし、悪意のある行動(悪意のある契約や提案など)を検出するために行動ベースの検出エンジンを搭載している。これは、金融取引のあらゆるステップを観察し、不審な行動を探すバーチャルな警備員だと考えてほしい。探偵が手がかりを分析するように、これらの取引から行動パターンを抽出し、銀行が詐欺を検出するために使用するのと同様の金融モデルを使用して、潜在的な攻撃を特定する。同様のシステムには、HypernativeやHexagateが提供する製品がある。そのほか、IronblocksのVenn Security networkは、複数のソースからの検知結果をまとめる分散型インフラを提供している。
運用監視
運用監視フレームワークは、DeFiプロトコルの運用セキュリティを実装する方法を提供する。例えば、DeFiプロトコルは管理者キーの変更を知る必要があり、スマートコントラクトのデプロイとアップグレードを実行し、セキュリティ脆弱性についてプルリクエストを自動的にスキャンする必要がある。OpenZeppelin Defenderは、開発者がスマートコントラクトを安全にコーディング、デプロイ、運用できるプラットフォームを提供する。BlockSec Phalcon は、コントラクトのアップグレード、セーフウォレットトランザクションの作成、新規署名と実行、アクセス制御、ガバナンスに関連するリスクを監視できる。Forta Networkは、ユーザーがプロトコルを監視するために独自のボットを構築したり、フィッシングや脅威アラートのために既存のボットを購読したりするためのインフラを持っている。
攻撃への対応
このカテゴリーは、攻撃ブロック、自動アクション、ウォー・ルーム、根本原因分析、攻撃者の資金フロー追跡など、攻撃発生時に発動されるセキュリティ対策から構成される。
攻撃対応」の5つの対策の中でも、特に注目すべきは「攻撃遮断」で、プロジェクトチームが事前に予防策を展開することで、攻撃を実行前に遮断することに成功し、損失をゼロに抑えることができる。また、自動対応プラットフォームも攻撃による被害を軽減するのに役立つ。ウォー・ルームの設置、根本原因分析の実施、盗まれた資金の追跡などは、攻撃発生後に行われる事後対応策である。これらの戦略によって被害をある程度軽減し、将来の同様の攻撃を防ぐことはできるが、損失はすでに発生している可能性があり、回復が困難な場合もある。その上、プロジェクトの評判への被害と、その結果としてのユーザーの信頼の失墜は、深刻なものになる可能性がある。リスクはどこにでもあり、しばしば制御不能なものであるが、先制的な防御策を導入することは十分に可能であり、強く推奨される。
攻撃ブロック
実際にハッキングに対抗する場合、攻撃検知だけでは不十分である。というのも、ハッキングを自動的にブロックする機能がなければ、手作業による対応では十分なスピードが得られないからだ。いくつかのケース(以下の表ではKyberSwap、Gamma Strategies、Telcoin)では、プロトコルが手動で対応するまでに数分から数時間かかり、プロトコル内の資産を救うには遅すぎる。VelocoreとRhoに対する最近のハッキングでは、それぞれLineaとScrollのチェーン全体が一時停止されたため、L2チェーンに対する集中化の懸念が高まっている。
攻撃ブロックとは、ハッキングを自動的に防ぐ機能であり、早期検知とハッキングの自動フロントランニングという2つの重要な技術を必要とする。早期検知とは、攻撃トランザクションがブロックチェーン上で確定される前に、具体的にはまだメンプールで保留されている間に、システムが攻撃トランザクションを特定できることを意味する。攻撃のフロントランニングとは、攻撃トランザクションよりも先にチェーン上にトランザクションを配置してプロトコルを一時停止させ、攻撃が実行される前に効果的に阻止することである。
このカテゴリーでは、BlockSec Phalconがこれらの重要な技術を持つ唯一の製品である。ハッカーが攻撃トランザクションを開始した後、Phalconの攻撃監視エンジンはこのトランザクションを即座に検出し、ユーザーに攻撃アラートを送信し、自動的にフロントランしてプロトコルを一時停止し、損失をゼロにすることができます。その主要な技術は、20件以上、2000万米ドル以上の救出で実戦テストされている。
自動アクション
Phalcon](https://blocksec.com/phalcon)、Hexagate、Hypernativeのようなプラットフォームは、攻撃発生時に自動的に対応することもできる。
このようなプラットフォームに加入すると、ユーザーは様々なプロトコルのリスクに対する監視と対応策を設定することができる。トランザクションが監視ルールに合致した場合、システムは自動的にユーザーが事前に設定した対応措置(プロトコルの一時停止など)を開始し、それによって損失を減らすことができる。しかし、プラットフォームによっては攻撃検知エンジンがなく、システムが攻撃トランザクションを直接認識してユーザーに通知することができない。その代わり、どのような条件のトランザクションを攻撃と見なすかをユーザーがカスタマイズする必要がある。攻撃トランザクションの特性は非常に複雑であり、ユーザー(多くの場合、契約開発者)は十分なセキュリティー知識を持っていない可能性があるため、ユーザーにとってこれは非常に困難なことである。
ウォー・ルーム
プロトコルが攻撃を受けているときは、ウォー・ルームの確立が必要である。これは、プロトコルが何が起こっているかを理解し、コミュニティで情報を共有し、 さらなる行動のためにリソースを活用するのに役立つ。これには通常、異なる視点からの専門家が関与する。
SEAL 911は、「ユーザー、開発者、セキュリティ研究者に、緊急時に信頼性の高いセキュリティ専門家の少人数グループとつながるアクセス可能な方法を提供する」プロジェクトである。SEAL 911 Telegram Bot](https://t.me/seal_911_bot)からアクセスできる。ハッキングを受けたプロジェクトの場合、プロトコルを支援するためのウォールームを設置することができる。
根本原因分析
攻撃が発生した場合、プロトコルはスマート・コントラクト内の脆弱性や、それがどのように悪用されたかといった根本原因を理解する必要がある。そのためには、攻撃トランザクションを分析するための便利なツールが必要である。Phalcon Explorer、OpenChain、 Tenderlyがこの目的に使用できる。
資金フローの追跡
資金フローの追跡とは、攻撃者の初期資金と攻撃利益をブロックチェーン上で追跡し、関連するアドレスとエンティティを特定することである。資産が中央集権的なエンティティ(中央集権的な取引所やその他の機関レベルのエンティティなど)に流入している場合、法執行機関に連絡して資金凍結を支援することができる。
Chainalysis](https://www.chainalysis.com/)、TRM Labs、ARKHAM、ELLIPTIC、MetaSleuthなど、いくつかの企業やツールがこのカテゴリーに属する。例えば、BlockSecによって開発されたMetaSleuthは、ウォレットアドレスの豊富なラベルを使用して、異なるチェーン間の資金を自動的に追跡することができます。ARKHAMには、プロトコルが調査に懸賞金をかけることができるコミュニティがあり、コミュニティが攻撃者の資金追跡に協力するインセンティブを与えている。
セキュリティ教育リソース
情報収集は、より強固な防御を構築する。上記のセキュリティ・ベンダーや製品だけでなく、DeFiセキュリティのもう一つの重要な要素がある。これらのプラットフォームは、DeFiの実務者やユーザーがセキュリティに関する見識を理解し、意識を高め、セキュリティ・スキルを向上させるために不可欠なリソースを提供します。これらのプラットフォームは、DeFiセキュリティの発展において重要な役割を果たしています。私たちは、これらの教育プラットフォームに感謝の意を表し、いくつかの注目すべき例を挙げます。
- sξcurξum](https://x.com/TheSecureum):イーサリアムのセキュリティに焦点を当てたDiscordコミュニティ。毎月スマートコントラクトのセキュリティクイズ "Secureum RACE "も開催している。
- Security Incidents Dashboard](https://app.blocksec.com/explorer/security-incidents):このプラットフォームは、10万ドル以上の損失を引き起こしたすべての攻撃インシデントを収集し、損失、影響を受けたチェーン、脆弱性、根本原因、PoCを詳述しています。
- Rekt](https://rekt.news/):DeFiジャーナリズムのダークウェブとして知られるRektは、エコシステム内のエクスプロイト、ハッキング、詐欺の詳細な分析を提供する。
- RugDoc](https://rugdoc.io/):プロジェクトのリスクを評価するDeFiの安全性と教育コミュニティ。RugDocWiKiと呼ばれるプラットフォームもあり、DeFiエコシステムとテクノロジーを紹介している。
- DeFiHackLabs](https://x.com/DeFiHackLabs):2,600人以上のメンバーと200人近くのホワイトハットハッカーを擁するWeb3セキュリティコミュニティで、Web2とWeb3のセキュリティ専門知識の橋渡しを目指している。
- Solodit](https://solodit.xyz/):様々なWeb3監査会社の過去のレポートをまとめたプラットフォームで、スマートコントラクト監査人にとって貴重なリソースとなる。
- Ethernaut](https://ethernaut.openzeppelin.com/):Web3/Solidityベースのゲームで、プレイヤーはEthereumコントラクトの脆弱性を特定する。
結論
セキュリティはDeFiエコシステムにとって現在進行中の深刻な脅威であり、毎年何十億もの損失を引き起こしている。現在、セキュリティ対策のほとんどはローンチ前の段階で行われている。しかし、セキュリティに特効薬はなく、DeFiプロトコルの全ライフタイムにおいて様々な方法が実行されるべきである。私たちは、業界が発売後のセキュリティ・ソリューションを採用し、攻撃を監視し、さらに重要なことは、攻撃を自動的にブロックすることを期待しています。ユーザーの資産を完全に保護するために、エコシステムにセキュリティ第一の文化が確立されることを期待している。
関連記事
- L2チェーンに革命を:シーケンサーから本質的なセキュリティを構築する](https://blocksec.com/blog/revolutionizing-l2-chains-building-intrinsic-security-from-sequencers)
- リード・イン:ファルコンのハッキング・ブロック佐賀](https://blocksec.com/blog/lead-in-phalcon-s-hack-blocking-saga)
- 2023年「すごい」セキュリティ事件トップ10](https://blocksec.com/blog/top-ten-awesome-security-incidents-in-2023)