2023年はDeFiプロトコルの多くが弱気相場でしたが、プロトコルの脆弱性による深刻なハッキング被害はエコシステムで続いています。特に、Euler Financeのハッキングでは約2億ドルの大規模な損失が発生しました。一方で、コンパイラによる脆弱性や広く使われている標準間の非互換性など、DeFiセキュリティインシデントにおける新たなトレンドも出現しています。これらの脅威に対抗するため、コミュニティは監視や脅威インテリジェンスを含む多くのソリューションを提案しています。これらの対策の中には効果が証明されているものもありますが、これらは場当たり的なものだと考えています。コミュニティは依然として、DeFiプロトコルを保護するための体系的なアプローチとガイダンスを欠いています。
本ブログでは、まず代表的な事例を用いてDeFiプロトコルセキュリティの新たなトレンドを紹介し、次に現在のソリューションとその限界を説明します。最後に、DeFiプロトコルを保護する方法についてのBlockSecの見解を提案します。
0x0. DeFiプロトコルセキュリティの新たなトレンド
トレンドI:信頼できるプロトコルが攻撃される
2023年には、Curve、Balancer、KyberSwapなどの、確立された信頼できるプロトコルが侵害されました。以下の表は、これらの信頼できるプロトコルのローンチ日と攻撃された時期を示しています。悪用された脆弱性は、プロトコルの初期ローンチ後に発生したアップデートで導入された可能性があることに注意することが重要です。したがって、表に示された期間は概算であり、関係する期間のおおまかなアイデアを提供することを目的としています。
上記以外にも、Aave V2は11月にコミュニティから脆弱性レポートを受け取った後、緊急停止されました。プロトコルは攻撃されませんでしたが、信頼できるプロトコルに対するセキュリティ上の懸念は依然として提起されています。
これらのプロトコルは、複数の監査を受け、内部で複数のセキュリティ対策が実施されています。以下の表は、各プロトコルの監査会社をリストアップしています。監査会社がプロトコル内のスマートコントラクトの一部のみを監査した可能性があることに注意してください。表に記載されている監査会社は、脆弱であった特定のスマートコントラクトを監査した会社と必ずしも一致するわけではありません。この表の目的は、プロトコルがセキュリティに相当なリソースを投資していることを示すことです。
| プロトコル | 監査会社 | リンク |
|---|---|---|
| kyberSwap | ChainSecurity, Sherlock, Hacken | 監査 - KyberSwap ドキュメント |
| Curve | TrailOfBits, MixBytes, Quantstamp, ChainSecurity | 監査 - Curve ドキュメント |
| Balancer | OpenZeppelin, TrailOfBits, Certora, ABDK | セキュリティ | 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セキュリティインシデントは、約7000万ドルの損失を引き起こした、公に知られている事例の1つです(一部は返還されており、実際の損失は約2300万ドルです)。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のような主要なプロトコルのフォークであるプロトコルを標的としたいくつかの攻撃では、既知の精度問題の影響を受ける可能性があります。具体的には、Compound v2のフォークであるHundred FinanceとChannels Financeのインシデントは、市場の不適切な初期化と、精度損失に関する問題に起因しています。これらの問題により、攻撃者は丸め誤差によってトークン数が減少した状態で担保を償還することができました。
攻撃トランザクション: 0x3f7de75566289224c5e95a35ee8717ddd6928500227a05c1d83838844c60491d
0x1. 現在のソリューション
信頼できるDeFiプロトコルはセキュリティ対策に多額の投資を行い、複数回のセキュリティ監査を受けているのは事実です。それにもかかわらず、これらのプロトコルが管理する膨大なユーザー資産を考慮すると、プロトコルセキュリティの重要性を強調することは全く正当です。コード監査以外にも、脅威監視などの追加のソリューションが提案されています。これらのソリューションの現在の状態とその限界を掘り下げてみましょう。
コード監査
ここでは、コード監査はDeFiプロトコルのセキュリティ評価における重要なプロセスであり、通常はプロトコルが稼働する前に行われます。これには、手動コードレビュー、静的解析、動的ファズテスト、形式検証などのさまざまな技術が含まれます。また、このプロセスは1つ(または数個)の監査会社で実施されるか、コミュニティ主導の方法で実施されることもあります。しかし、コード監査には認識すべき限界があります。
-
第一に、コード監査は主にプロトコルがデプロイされる前に行われます。プロトコルが稼働すると、監査プロセスは通常終了し、初期のコード監査によって継続的なセキュリティを評価することはできません。これは、ローンチ後に発生する可能性のある脆弱性や問題は、初期のコード監査では検出されない可能性があることを意味します。
-
第二に、コード監査は、悪用されるために複雑な相互作用と特定の状態を必要とする微妙な脆弱性を特定するのに苦労することがよくあります。DeFiプロトコルのコンポーザビリティは、柔軟性と統合を促進する機能ですが、プログラム空間を大幅に拡大し、人間のレビュアーや静的アナライザーにとって深刻な課題をもたらします。これらのツールは、プログラム状態の全範囲を探索するのに苦労します。動的ファズテストは有益である可能性がありますが、トランザクションと状態の依存関係によって制限されます。DeFiプロトコルを認識するファズオーラクル(障害を検出できる)の欠如は、この分野における重大なギャップであり、産業界と学界の両方で未解決の研究課題のままです。
-
第三に、資格のあるコード監査人の不足があり、人材プールが限られているため、迅速に解決することはできません。コード監査は、サイバーセキュリティ、金融、数学の知識を必要とする学際的なタスクです。現在、この専門分野の教育を提供している大学はごくわずかであり、質の高いコード監査には高額な費用と長い待ち時間が発生します。その結果、プロトコルはビジネスのタイムラインを維持するために、コード監査なしで稼働する可能性があります。
-
第四に、ユーザーがコード監査の品質を評価することは困難です。ユーザーは、プロトコルに資産を預けているため、プロトコルのセキュリティに最も投資していますが、ほとんどのユーザーはコード監査の徹底度を評価する能力がありません。これにより、単に見せかけのために行われた監査につながる可能性があり、最終的にはプロトコルとユーザー資産の両方のセキュリティを侵害する可能性があります。
結論として、コード監査はプロトコルを保護するための貴重なツールですが、その固有の限界により、唯一のセキュリティソリューションであることはできません。
脅威監視
脅威監視の基本的な考え方は、疑わしいものを監視して検出することです。これはセキュリティを向上させますが、効果を発揮するためには以下の懸念に対処する必要があります。
-
第一に、脅威監視システムの精度が重要です。誤検知と見逃しの両方を最小限に抑えるバランスを取る必要があります。誤検知率が高いと、誤ったアラートにつながり、ユーザーやセキュリティチームは警告に慣れてしまい、真の脅威を見逃す可能性があります。
-
第二に、現在の脅威監視システムの多くは、疑わしいトランザクションの検出に基づいて手動で確認する必要があります。これは、前述の誤検知率の高さによるものです。手動介入の受動的な性質は問題があります。なぜなら、ブロックチェーンやDeFiプロトコルのペースの速い環境では、攻撃は手動の対応が実装される前に、リソースを迅速に枯渇させる可能性があるからです。したがって、攻撃を防止または軽減するためのタイムリーな自動アクションを提供できない場合、脅威監視システムの価値は大幅に低下します。
-
さらに、脅威監視は永続的であり、新たな脅威が出現してもそれに対応できる必要があります。
0x2. BlockSecの見解
プロトコルのセキュリティには、プロトコルのライフサイクルのさまざまな段階で複数の防御が必要であると考えています。これには、質の高いコード監査、ローンチ前のセキュリティテスト、攻撃の検出とブロック、ローンチ後のセキュリティインシデント対応が含まれます。また、コミュニティで軽視されているいくつかの視点を強調したいと思います。
-
まず、コードまたは構成の小さなアップグレードであっても、徹底的なセキュリティテストが必要であると考えています。そのようなテストは、ユーザーデータの偽の状態ではなく、プロトコルの実際の状態に対して実行されるべきです。前述のように、複雑なプロトコルで脆弱性を特定するには、プロトコルの状態が重要です。
-
第二に、手動介入以外の、攻撃に対する自動応答システムが必要です。これには、誤検知が非常に少なく、見逃しがほぼゼロの、正確で迅速な攻撃検出システムが必要です。例えば、自動応答が展開されれば、数百万人のユーザーの資産を救うことができます。
-
第三に、適切なセキュリティインシデント対応手順を確立し、包括的なセキュリティサービスを提供できるセキュリティパートナーが必要です。例えば、エクスプロイトが発生した場合、パートナーはウォーラームの作成、推奨されるアクション、セキュリティパッチのレビューと監査の支援、資金の流れの追跡などを支援できます。yearn financeの記事は、エクスプロイトの処理方法に関する良いリソースです。
BlockSecが提供するフルスタックセキュリティサービス
これらの洞察に基づき、BlockSecはプロトコルにフルスタックセキュリティサービスを提供します。
- 質の高いコード監査サービス。BlockSecはDeFiプロトコルに勤勉なコード監査サービスを提供します。革新的な学術研究に裏打ちされた静的解析ツール、動的ファジング、差分テストフレームワークを活用することで、当社のコード監査はプロトコルと基盤となるEVM実行エンジンの両方をカバーします。さらに、静的解析ツールHookScanは、Uniswap Labによってサポートされ、Uniswap V4フックの脆弱性を検出しました。
- Phalcon:攻撃検出およびブロックシステム。20件以上の攻撃をブロックし、約1400万ドルを救出した実績のある技術により、BlockSec Phalconは、プロトコルが攻撃トランザクション(攻撃トランザクションが起動する前であっても)を積極的に監視するのを支援できます。ほぼ99.99%の精度の攻撃検出エンジンとユーザー定義ポリシーにより、BlockSec Phalconは誤検知と見逃しのバランスを取り、自動防御メカニズムを可能にします。
- セキュリティインシデント対応。BlockSecは、DeFiハックにおける攻撃の根本原因と脆弱性を特定する上で、常に最速(もし最初でなければ)のセキュリティベンダーです。当社は、プロトコルがセキュリティパッチをレビューする(Telcoin)、ホワイトファンドの救済を支援する[例:AnySwap、TransitSwap、Paraspace、Loot])、ハック資金の流れを追跡する、Hopeland攻撃者の特定などを支援できます。
0x3. 結論
2023年、DeFiプロトコルセキュリティにおける新たなトレンドが見られ、多くの信頼できるプロトコルが攻撃されました。技術的にプロトコルセキュリティを確保することは、複雑で継続的な課題であることを認識しています。コード監査や監視システムを採用するだけでは、もはや十分ではありません。これらの要素を組み合わせ、プロトコルのライフサイクル全体で機能するフルスタックソリューションが必要です。
結論として、BlockSecのDeFiプロトコルセキュリティに対する包括的なアプローチは、最先端の監査技術、自動攻撃防御ツール、および応答性の高いインシデント管理を組み合わせることで、2024年の進化するDeFi空間の脅威に直面してセキュリティ対策を強化し、ユーザー資産を保護しようとするプロトコルの主要なパートナーとしての地位を確立しています。



