BlockSec、2023年DeFiプロトコルセキュリティの総括

2023年のDeFiプロトコルセキュリティ新トレンドとBlockSecの見解

BlockSec、2023年DeFiプロトコルセキュリティの総括

2023年はDeFiプロトコルにとって弱気市場の大部分を占めましたが、プロトコルの脆弱性による深刻なハッキング被害は依然としてエコシステムに続いています。特に、Euler Financeのハッキングでは約2億ドルの巨額な損失が発生しました。一方で、コンパイラによる脆弱性や広く使用されている標準間の非互換性など、DeFiセキュリティインシデントにおける新たなトレンドも出現しています。これらの脅威に対抗するため、コミュニティは監視や脅威インテリジェンスを含む複数のソリューションを提案しています。これらの対策の一部は効果を上げていますが、これらの取り組みは場当たり的であると私たちは考えています。コミュニティは依然として、DeFiプロトコルを保護するための体系的なアプローチとガイダンスを欠いています。

本ブログでは、まず代表的な事例を用いてDeFiプロトコルのセキュリティにおける新たなトレンドを紹介し、次に現在のソリューションとその限界を説明します。最後に、DeFiプロトコルを保護する方法についてのBlockSecの見解を提案します。

0x0. DeFiプロトコルのセキュリティにおける新たなトレンド

トレンドI:信頼されているプロトコルが攻撃される

2023年には、CurveBalancerKyberSwapなど、確立された信頼できるプロトコルが侵害されました。以下の表は、これらの信頼できるプロトコルのローンチ日と攻撃された時期を示しています。悪用された脆弱性は、プロトコルの初期ローンチ後に発生したアップデートで導入された可能性があることに注意することが重要です。したがって、表に示されている期間は概算であり、関与した期間の一般的なアイデアを提供することを目的としています。

プロトコル ローンチ時期 セキュリティインシデント時期 期間
kyberSwap 2017年 2023年11月 約6年
Curve 2020年 2023年7月 約3年
Balancer 2020年 2023年8月 約3年

上記以外にも、Aave V2は11月にコミュニティから脆弱性レポートを受け取った後、緊急停止されました。プロトコルは攻撃されていませんが、依然として信頼できるプロトコルのセキュリティに関する懸念を引き起こしました。

これらのプロトコルは複数の監査を受け、内部で複数のセキュリティ対策が実施されています。以下の表は、各プロトコルの監査会社をリストアップしています。監査会社がプロトコル内のスマートコントラクトの一部のみを監査している場合があることに注意する必要があります。表に記載されている監査会社は、脆弱となった特定のスマートコントラクトを監査した会社と必ずしも一致しません。この表の目的は、プロトコルがセキュリティに相当なリソースを投資していることを示すことです。

プロトコル 監査会社 リンク
kyberSwap ChainSecurity, Sherlock, Hacken Audits - KyberSwap Docs
Curve TrailOfBits, MixBytes, Quantstamp, ChainSecurity Audits - Curve Docs
Balancer OpenZeppelin, TrailOfBits, Certora, ABDK Security | Balancer

幸いなことに、被害者はそれぞれのプロトコルによって実施された計画を通じて損失を補償されました。例えば、Kyber Networkは、KyberSwap Treasuryを通じて影響を受けたユーザーに補償する意向を発表しました。同様に、Curveコミュニティは、LPの金銭的損失を払い戻す提案を支持する投票を行いました。これらの措置は、多大な費用がかかるものの、DeFiコミュニティの信頼を回復するためのステップです。

トレンドII:新たな攻撃ベクトルが出現

コンパイラバグや非互換なサードパーティライブラリに関わる攻撃ベクトルが、DeFi空間で確かに浮上しています。例えば、Curveのセキュリティインシデントの根本原因は、特定のバージョンのVyperコンパイラ内のバグであると特定されました。さらに、一部のプロトコルは、広く採用されている2つの標準、ERC2771とMulticallとの非互換性から生じる攻撃を受けています。これは、thirdwebのような人気のサードパーティ開発ライブラリに実装された場合に発生しました。これらの複雑な技術的課題は、徹底したセキュリティプラクティスと、新たな予期せぬ脆弱性から保護するためのセキュリティ対策の継続的な進化の重要性を強調しています。

コンパイラバグ

1983年、ケン・トンプソンはチューリング賞講演「Reflections on Trusting Trust」で、プログラムにバックドアを挿入するためにCコンパイラを修正する手順を説明し、予期せぬ結果につながる可能性について述べました。この講演で伝えられたアイデアはコミュニティに歓迎されました。しかし、実務における悪意のあるコンパイラの実際の事例はまれです(有名なXcodeGhostセキュリティインシデントを除く)。セキュリティモデルを悪意のあるコンパイラから無害だが予期しないコンパイラの動作に緩和した場合でも、深刻な金銭的損失を引き起こす公開事例は依然としてまれです。

VyperコンパイラバグによるCurveセキュリティインシデントは、約7,000万ドルの損失を引き起こした公に知られている事例の一つです(一部は返還されており、実際の損失は約2,300万ドルです)。Vyperコンパイラのバージョン0.2.15、0.2.16、0.3.0には、再入防止ガードを無効にするバグがあります。これは、開発者が再入防止コードを追加していた場合でも、コンパイラが正しいバイトコードを生成していれば発生しないはずのハッキングを、攻撃者が悪用できることを意味します。

攻撃トランザクション: 0x2e7dc8b2fb7e25fd00ed9565dcc0ad4546363171d5e00f196d48103983ae477c

一般的な標準の非互換性

DeFiのコンポーザビリティにより、異なるスマートコントラクトと標準を接続して強力なアプリケーションを作成できます。しかし、これは潜在的な互換性の問題を引き起こします。例えば、人気の標準を組み合わせると、各スマートコントラクトが単独でスムーズに機能する場合でも、新たなセキュリティ脆弱性を導入する可能性があります。

このような非互換性の問題の1つの例は、ERC-2771とMulticall標準です。ERC-2771は、信頼できるフォワーダーを介してメタトランザクションを受信するためのインターフェースを定義していますが、Multicallは単一のトランザクション内で複数の関数呼び出しをバッチ処理するためのメカニズムです。問題は、信頼できるフォワーダーから転送された呼び出しが、攻撃者によって操作される可能性のあるcalldataから実際の呼び出しアドレスを取得する場合に発生します。各標準は単独では問題なく機能しますが、それらを組み合わせると、特定の仮定が崩れ、予期せぬ問題につながる可能性があります。詳細については、OpenZeppelinのブログ記事を参照してください。

ERC-2771とMulticallの両方の標準は、OpenZeppelinやthirdwebなどの人気の開発ライブラリに実装されていることに注意してください。開発者は、これらのよく知られたコードベースに信頼を置き、コード監査から除外することがよくあります。この慣行は、プロトコル自体が本質的に脆弱でない場合でも、新たなセキュリティの抜け穴を導入する可能性があります。

トレンドIII:古い脆弱性が新たなセキュリティ影響をもたらす

精度損失とは、通常、期待されるよりも小数点以下の桁数が少ない結果が生じることによって、計算中の精度と正確性の低下を指します。静的アナライザは精度損失の問題を容易に検出できますが、その存在だけでは必ずしもセキュリティ脆弱性を示すわけではありません。深刻な結果につながる可能性がある場合にのみ、脆弱性と見なされます。しかし、プロトコルのセマンティクスとコードの特定のコンテキストを深く理解する必要があるため、精度損失の影響を評価することはしばしば困難です。

Compound v2やAave v2のような主要なプロトコルのフォークであるプロトコルは、既知の精度問題の影響を受けやすい可能性があります。具体的には、Hundred FinanceChannels Finance(いずれもCompound v2のフォーク)のインシデントは、不適切に初期化された市場と、精度損失に関連する問題から発生しました。これらの問題により、攻撃者は丸め誤差によるトークン数の減少で担保を償還することができました。

攻撃トランザクション: 0x3f7de75566289224c5e95a35ee8717ddd6928500227a05c1d83838844c60491d

0x1. 現在のソリューション

信頼できるDeFiプロトコルがセキュリティ対策に多額の投資を行い、複数回のセキュリティ監査を受けていることは事実です。それにもかかわらず、これらのプロトコルが管理するユーザー資産の膨大さを考慮すると、プロトコルセキュリティの重大性を強調することは完全に正当化されます。コード監査以外にも、脅威監視などの追加のソリューションが提案されています。これらのソリューションの現在の状況とその限界を詳しく見ていきましょう。

コード監査

ここで定義されるコード監査は、DeFiプロトコルのセキュリティ評価において重要なプロセスであり、通常はプロトコルが稼働する前に実施されます。手動コードレビュー、静的分析、動的ファズテスト、形式的検証など、さまざまな技術が含まれます。また、このプロセスは1つ(または少数)の監査会社で行われるか、コミュニティ主導の方法で行われることもあります。しかし、コード監査には認識しなければならない限界があります。

  • 第一に、コード監査は主にプロトコルがデプロイされる前に行われます。プロトコルが稼働すると、監査プロセスは通常終了し、初期のコード監査によって継続的なセキュリティを評価することはできません。これは、ローンチ後に発生する可能性のある脆弱性や問題は、初期のコード監査では検出されない可能性があることを意味します。

  • 第二に、コード監査は、悪用されるには複雑な相互作用と特定の状態を必要とする微妙な脆弱性を特定するのに苦労することがよくあります。DeFiプロトコルのコンポーザビリティは、柔軟性と統合を促進する機能である一方で、プログラム空間を大幅に拡大し、人間によるレビュー担当者や静的アナライザに深刻な課題をもたらします。これらはプログラム状態の全範囲を探索するのが困難です。動的ファズテストは有益である可能性がありますが、トランザクションと状態の依存関係によって制限されます。DeFiプロトコルを認識したファズオーラクル(失敗を検出できるもの)の欠如は、業界と学界の両方で未解決の研究課題であり続けている分野における重大なギャップです。

  • 第三に、資格のあるコード監査員の不足があり、人材プールが限られているため、迅速に解決することはできません。コード監査は、サイバーセキュリティ、金融、数学の知識を必要とする学際的なタスクです。現在、この専門分野の教育を提供している大学はごくわずかであり、質の高いコード監査のコストが高く、サービスの待ち時間が長くなっています。その結果、プロトコルはビジネスのタイムラインを維持するために、コード監査なしで稼働する場合があります。

  • 第四に、コード監査の品質をユーザーが評価することは困難です。ユーザーは、資産を預けているため、プロトコルのセキュリティに最も投資していますが、ほとんどのユーザーはコード監査の徹底性を評価する能力を持っていません。これにより、単に見せかけのためだけに実施される監査が発生し、最終的にプロトコルとユーザー資産の両方のセキュリティを侵害する可能性があります。

結論として、コード監査はプロトコルを保護するための貴重なツールですが、その固有の限界により、唯一のセキュリティソリューションであることはできません。

脅威監視

脅威監視の基本的な考え方は、疑わしいものを監視および検出することです。これはセキュリティを向上させますが、効果を上げるためには以下の懸念に対処する必要があります。

  • 第一に、脅威監視システムの精度が重要です。誤検知と偽陰性の両方を最小限に抑えることでバランスを取る必要があります。誤検知率が高いと、偽のアラートにつながり、ユーザーやセキュリティチームが警告に鈍感になり、真の脅威を見落とす可能性があります。

  • 第二に、現在の脅威監視システムの状況では、疑わしいトランザクションが検出された場合、実際に行動を起こすために手動確認が必要であることがよくあります。これは、前述の誤検知率の高さによるものが大きいです。手動介入の受動的な性質は問題があります。なぜなら、ブロックチェーンやDeFiプロトコルのペースの速い環境では、手動対応が実装される前に、攻撃によってリソースが急速に枯渇する可能性があるからです。したがって、攻撃を防止または軽減するためのタイムリーな自動アクションを提供できない場合、脅威監視システムの価値は大幅に低下します。

  • さらに、脅威監視は永続的であり、新たな脅威が出現したときにそれらに適応できる必要があります。

0x2. BlockSecの見解

プロトコルのセキュリティには、高品質のコード監査、ローンチ前のセキュリティテスト、攻撃検出とブロック、ローンチ後のセキュリティインシデント対応など、プロトコルのライフサイクルのさまざまな段階で複数の防御が必要であると考えています。また、コミュニティで軽視されてきたいくつかの見解を強調したいと思います。

  • 第一に、コードまたは構成の小さなアップグレードには、徹底したセキュリティテストが必要であると考えています。このようなテストは、ユーザーデータの偽の状態ではなく、プロトコルの実際の状態に対して実行されるべきです。前述のように、複雑なプロトコルで脆弱性を見つけるには、プロトコルの状態が重要です。

  • 第二に、手動介入以外の、攻撃に対する自動化された応答システムが必要です。これには、誤検知が非常に少なく、偽陰性がほぼゼロである、正確で迅速な攻撃検出システムが必要です。例えば、自動応答が展開されていれば、数百万人のユーザーの資産を救うことができます。

  • 第三に、適切なセキュリティインシデント対応手順を確立し、包括的なセキュリティサービスを提供できるセキュリティパートナーが必要です。例えば、エクスプロイトが発生した場合、パートナーはウォー​​ルームの作成プロセスを支援し、取るべき行動を推奨し、セキュリティパッチのレビューと監査を支援し、資金の流れを追跡するなどできます。yearn financeの記事は、エクスプロイトの対処方法に関する良いリソースです。

BlockSecが提供するフルスタックセキュリティサービス

上記の洞察に基づき、BlockSecはプロトコルにフルスタックセキュリティサービスを提供します。

  • 高品質のコード監査サービス。BlockSecは、DeFiプロトコルに注意深いコード監査サービスを提供します。創造的な学術研究に裏打ちされた静的分析ツール、動的ファズテスト、差分テストフレームワークを活用することで、当社のコード監査は、プロトコルと基盤となるEVM実行エンジンの両方をカバーします。さらに、静的分析ツールHookScanは、Uniswap V4フックの脆弱性を検出するためにUniswap Labによってサポートされました
  • Phalcon: 攻撃検出およびブロックシステム。20件以上の攻撃をブロックし、約1,400万ドルを救出した実証済みの技術により、BlockSec Phalconはプロトコルが攻撃コントラクトとトランザクションを積極的に監視する(攻撃トランザクションを開始する前にさえ)のを支援できます。ほぼ99.99%の精度の攻撃検出エンジンとユーザーカスタマイズポリシーにより、BlockSec Phalconは誤検知と偽陰性のバランスを取り、自動防御メカニズムを可能にします
  • セキュリティインシデント対応。BlockSecは、DeFiハッキングにおける攻撃の根本原因と脆弱性を特定する上で、常に最速(最初でなければ)のセキュリティベンダーです。プロトコルのセキュリティパッチのレビュー(Telcoin)、ホワイトファンド救済の提供(例:AnySwapTransitSwapParaspaceLoot)、ハッキング資金の流れの追跡、Hopeland攻撃者の身元の特定などを支援できます。

0x3. 結論

2023年には、DeFiプロトコルのセキュリティにおける新たなトレンドがあり、多くの信頼できるプロトコルが攻撃されたことがわかりました。技術的にプロトコルのセキュリティを確保することは、複雑で継続的な課題であることを私たちは知っています。コード監査や監視システムを導入するだけではもはや十分ではありません。これらの要素を組み合わせ、プロトコルのライフサイクル全体で機能するフルスタックソリューションが必要です。

結論として、最先端の監査技術、自動攻撃防御ツール、および応答性の高いインシデント管理を組み合わせた、DeFiプロトコルのセキュリティに対するBlockSecの全体的なアプローチは、2024年にDeFiスペースにおける進化する脅威に直面してセキュリティ対策を強化し、ユーザー資産を保護しようとするプロトコルにとって、主要なパートナーとしての地位を確立しています。

Sign up for the latest updates