100件の攻撃事件を振り返り、暗号攻撃の種類、ツール、防止方法、そして将来の予測を精査する。

KofiKufuor
2022-10-12 19:35:52
コレクション
いくつかのことは変わらなければなりません。過去の過ちを振り返り、この業界での安全性の扱い方を変える時が来ました。

原文タイトル:《DAOrayaki |100件の攻撃事件から暗号攻撃の種類、ツール、防止方法、未来予測を分析する》( The State of Crypto Security

執筆:Kofi Kufuor

編訳:DAOctor

暗号安全の啓示録

ハッカーは今年、暗号アプリケーションから20億ドル以上を盗みました。DAOrayakiの分散型編集委員会がこの記事を執筆している時、Rabby walletとSolanaエコシステムの分散型金融プラットフォームMangoで2件のハッキング事件が発生しました。暗号エコシステムが発展し、より多くの悪意のある行為者を引き寄せるにつれて、問題は悪化する一方です。何かを変える必要があります。過去の過ちを振り返り、この業界でのセキュリティの取り扱い方を変える時が来ました。

この記事では、私たちは:

  • 暗号通貨ハッカーを分類するためのフレームワークを提案します
  • これまでに最も利益を上げたハッカーが使用した手法を概説します
  • 現在のハッキング防止ツールの利点と欠点を振り返ります
  • 暗号通貨のセキュリティの未来について議論します

1、暗号通貨ハッキング攻撃分類フレームワーク

暗号アプリケーションエコシステムは、相互運用可能なプロトコルで構成されており、スマートコントラクトによって支えられ、ブロックチェーンとインターネットの基盤インフラに依存しています。

スタックの各層には独自の脆弱性があるため、利用されるスタック層と使用される手法に基づいて暗号ハッカーを分類できます。

インフラストラクチャ

インフラストラクチャ層への攻撃は、暗号アプリケーションを支える基盤システムの弱点を利用します:合意形成のためのブロックチェーン、フロントエンド用のインターネットサービス、プライベートキー管理ツールに依存しています。

スマートコントラクト言語

この層のハッカーは、Solidityなどのスマートコントラクト言語の脆弱性を利用します。スマートコントラクト言語には、再入可能性や誤った委任呼び出しの実装の危険性など、よく知られた脆弱性が存在し、これらの脆弱性はベストプラクティスに従うことで緩和できます。

興味深い事実:6000万ドルのThe DAOハッキング攻撃に使用された脆弱性は、実際にはLeast AuthorityがEthereumのセキュリティ監査で発見したものです。もしリリース前に修正されていたら、事態はどれほど異なっていたでしょう。

プロトコルロジック

この種の攻撃は、単一のアプリケーションのビジネスロジックのエラーを利用します。ハッカーがエラーを発見した場合、それを利用してアプリケーション開発者の意図しない行動を引き起こすことができます。

例えば、新しい分散型取引所がユーザーが取引所から得る金額を決定する数学的方程式にエラーがある場合、そのエラーを利用して取引所から本来可能な金額以上を得ることができます。

プロトコルロジックレベルの攻撃は、既存のガバナンスシステムを利用してアプリケーションのパラメータを制御することもできます。

エコシステム

最も影響力のある暗号ハッカーの多くは、複数のアプリケーション間の相互作用を利用しています。最も一般的な変種は、ハッカーが他のプロトコルから借りた資金を利用して、あるプロトコル内のロジックエラーを利用して攻撃を拡大することです。

通常、エコシステム攻撃に使用される資金は、迅速な貸付を通じて借り入れられます。フラッシュローンを実行する際、資金が同じ取引内で返済される限り、AaveやdYdXなどのプロトコルの流動性プールから可能な限り多くの資金を担保なしで借りることができます。

2、データ分析

2020年から、私たちは100件の最大の暗号ハッカーのデータセットを収集し、盗まれた資金は合計50億ドルに達しました。

エコシステム攻撃は最も頻繁に発生します。サンプルグループの41%を占めています。プロトコルロジックの脆弱性による損失が最も大きいです。

データセットの中で最も大きな3つの攻撃、すなわちRonin bridge攻撃(6.24億ドル)、Poly Networkハッカー(6.11億ドル)、Binance bridgeハッカー(5.7億ドル)は、結果に大きな影響を与えました。

最初の3つの攻撃を除外すると、インフラストラクチャハッキング攻撃が損失資金に最も影響を与えるカテゴリです。

3、ハッカーはどのように実行するか

インフラストラクチャ攻撃

サンプルグループの61%のインフラストラクチャ脆弱性利用では、プライベートキーが未知の方法で破壊されました。ハッカーは、フィッシングメールや偽の求人広告などのソーシャル攻撃を通じてこれらのプライベートキーへのアクセスを得た可能性があります。

スマートコントラクト言語攻撃

再入攻撃は、スマートコントラクト言語レベルで最も一般的な攻撃タイプです。

再入攻撃では、脆弱なスマートコントラクト内の関数呼び出しが悪意のある連絡先の関数を呼び出します。または、脆弱なコントラクトが悪意のあるコントラクトにトークンを送信する際に、悪意のあるコントラクト内の機能がトリガーされることがあります。その後、コントラクトが残高を更新する前に、その悪意のある関数が再帰的なループで脆弱な関数をコールバックします。

例えば、Siren Protocolのハックでは、担保トークンを引き出す機能が再入可能であり、悪意のあるコントラクトがトークンを受け取るたびに繰り返し呼び出され、すべての担保が消費されるまで続きます。

プロトコルロジック攻撃

プロトコル層のほとんどの脆弱性は特定のアプリケーションに固有であり、各アプリケーションには独自のロジックがあります(純粋なフォークでない限り)。

アクセス制御エラーは、サンプルグループで最も一般的な問題です。例えば、Poly Networkのハックでは、「EthCrossChainManager」コントラクトには、誰でも呼び出してクロスチェーン取引を実行できる機能があります。

このコントラクトは「EthCrossChainData」コントラクトを所有しているため、「EthCrossChainData」をクロスチェーン取引のターゲットに設定すると、onlyOwner()のチェックを回避できます。

残るのは、どの公開鍵がプロトコルの「保管者」として定義されるかを変更する正しいメッセージを作成し、制御を奪い、資金を消費することです。一般ユーザーは「EthCrossChainData」コントラクトの機能にアクセスできません。

注意:多くの場合、複数のプロトコルが同じ技術を使用してハッキングされるのは、チームが脆弱性のあるコードベースをフォークしたためです。

例えば、CREAM、Hundred Finance、Voltage Financeなどの多くのCompoundフォークは、Compoundのコードが相互作用の効果を確認せずに相互作用を許可したため、再入攻撃の被害者となりました。これは、彼らがサポートする各新しいトークンの脆弱性をレビューしたため、Compoundにとってはうまくいきましたが、フォークチームはそのような努力をしていませんでした。

エコシステム攻撃

98%のエコシステム攻撃はフラッシュローンを使用しています。

フラッシュローン攻撃は通常、次の公式に従います:ローンを使用して大規模なスワップを行い、AMM上のトークン価格を押し上げ、AMMがそれを価格フィードとして使用します。その後、同じ取引内で膨れ上がったトークンを担保として使用し、実際の価値を大幅に上回るローンを取得します。

4、ハッキング攻撃が実行されるタイミング

データセットは十分に大きくないため、時間分布から有意な傾向を導き出すことはできません。しかし、異なるタイプの攻撃が異なる時間により頻繁に発生することは確認できます。

2021年5月はエコシステム攻撃の歴史的なピークでした。2021年7月にはプロトコルロジック攻撃が最も多く発生しました。2021年12月にはインフラストラクチャ攻撃が最も多く発生しました。これらのクラスターが偶然なのか、成功した成功事例が同じアクターや他の人々に特定のカテゴリに集中するように促しているのかを判断するのは難しいです。

スマートコントラクト言語レベルの脆弱性利用は最も稀です。このデータセットは2020年に始まり、このカテゴリのほとんどの脆弱性はすでに広く知られており、早期に発見されていた可能性が高いです。

時間の経過とともに、盗まれた資金の分布には4つの主要なピークがあります。2021年8月にはPoly Networkハッカーによって引き起こされたピークがありました。2021年12月には、8ight Finance、Ascendex、Vulcan Forgedなどのインフラストラクチャハッキング攻撃によってプライベートキーが破壊され、再びピークが訪れました。次に、Roninハッカー攻撃によって2022年3月に歴史的なピークが見られました。最後のピークはBNB bridgeの攻撃によって引き起こされました。

5、ハッカーはどこで実行するか

盗まれた資金がホスティングされた契約またはウォレットのチェーンに基づいてデータセットを分割します。Ethereumのハッカー数が最も多く、サンプルグループの45%を占めています。Binance Smart Chain(BSC)が20%で2位です。

この状況には多くの要因があります:

  • EthereumとBSCのロックされた総価値(アプリケーションに預けられた資金)が最も高いため、これらのチェーン上のハッカーにとって報酬の規模が大きくなります。
  • 大多数の暗号開発者はSolidityを知っており、これはEthereumとBSCで選択されたスマートコントラクト言語であり、より複雑なツールがこの言語をサポートしています。

Ethereumで盗まれた資金の量は最大(20億ドル)、BSCが2位(8.78億ドル)です。Ethereum、BSC、Polygonで盗まれた資金のハッカーは、1回の事件で3位(6.89億ドル)にランクされています。これは主にPoly Network攻撃事件によるものです。

クロスチェーンブリッジやマルチチェーンアプリに関与するハッカー(マルチチェーン交換やマルチチェーン貸付など)は、データセットに大きな影響を与えます。これらのハッカーは事件の10%に過ぎませんが、盗まれた資金の25.2億ドルを占めています。

6、私たちはどのようにハッカーの侵入を防ぐか

脅威スタックの各層に対して、潜在的な攻撃ベクトルを早期に特定し、攻撃を防ぐためのいくつかのツールを使用できます。

インフラストラクチャ

ほとんどの大規模なインフラストラクチャハッキング攻撃は、ハッカーがプライベートキーなどの機密情報を取得することを含みます。良好な運用セキュリティ(OPSEC)プラクティスに従い、定期的な脅威モデリングを行うことで、こうした事態が発生する可能性を低下させることができます。良好なOPSECプロセスを持つ開発者チームは:

  • 機密データ(プライベートキー、従業員情報、APIキーなど)を特定します
  • 潜在的な脅威(ソーシャル攻撃、技術的脆弱性、内部脅威など)を特定します
  • 既存のセキュリティ防御の脆弱性と弱点を特定します
  • 各脆弱性の脅威レベルを決定します
  • 脅威を軽減するための計画を作成し、実施します
  • スマートコントラクト言語とプロトコルロジック

ファジングテスト

Echidnaのようなファジングテストツールは、スマートコントラクトが大量のランダムに生成された取引にどのように反応するかをテストできます。これは、特定の入力が予期しない結果を生むエッジケースを検出するのに良い方法です。

静的分析

SlitherやMythrilのような静的分析ツールは、スマートコントラクト内の脆弱性を自動的に検出します。これらのツールは、一般的な脆弱性を迅速に特定するのに優れていますが、あらかじめ定義された問題のセットしか捉えられません。スマートコントラクトにツールの仕様に含まれない問題がある場合、それは見逃されます。

形式検証

Certoraのような形式検証ツールは、スマートコントラクトを開発者が作成した仕様と比較します。この仕様は、コードが何をすべきか、必要な属性を詳細に説明します。例えば、貸付アプリケーションの開発者は、各貸付が十分な担保によってサポートされなければならないと指定します。

スマートコントラクトのいかなる可能な動作が仕様に合致しない場合、形式検証者はその違反を特定します。

形式検証の弱点は、テストが仕様と同じくらい良いことです。提供された仕様が特定の動作を考慮していない場合や、あまりにも緩い場合、検証プロセスはすべてのエラーを捕捉できません。

監査と同行レビュー

監査または同行レビューでは、信頼できる開発者グループがプロジェクトのコードをテストし、レビューします。監査人は、発見した脆弱性とそれらの問題を修正する方法について詳細に説明したレポートを作成します。

第三者の専門家にコントラクトをレビューさせることは、元のチームが見逃した脆弱性を特定する良い方法です。しかし、監査人も人間であり、すべてのものを見つけることは不可能です。また、監査人が問題を発見した場合、それをあなたに知らせるのではなく、自分で利用する可能性があることを信頼しなければなりません。

エコシステム攻撃

残念ながら、エコシステム攻撃は最も一般的で破壊的な変種であるにもかかわらず、これらのタイプの攻撃を防ぐための適切なツールはあまりありません。

自動化されたセキュリティツールは、1つの連絡先内のエラーを1つずつ発見することに焦点を当てています。監査は通常、エコシステム内の複数のプロトコル間の相互作用を利用する方法を解決できません。

FortaやTenderly Alertsなどの監視ツールは、コンポーザビリティ攻撃が発生した際に警告を発し、チームが行動を取ることができるようにします。しかし、フラッシュローン攻撃の間、資金は通常1回の取引で盗まれるため、警告は巨額の損失を防ぐには遅すぎます。

脅威検出モデルは、メモリプール内で悪意のある取引を探すために使用できます。取引はノードが処理する前に位置しますが、ハッカーはflashbotsなどのサービスを使用して取引を直接マイナーに送信することで、これらのチェックを回避できます。

7、暗号安全の未来予測

1)私は、最良のチームがセキュリティをイベントベースの実践(テスト -> 同行レビュー -> 監査)として捉えるのではなく、継続的な実践プロセスに移行することを信じています。彼らは:

  • メインコードベースの各追加に対して静的分析とファジングテストを実行します。
  • 重大なアップグレードのたびに形式検証を実行します。
  • 監視と警告システムを設定し、応答操作(アプリケーション全体または影響を受けた特定のモジュールを一時停止)を使用します。
  • 一部のチームメンバーにセキュリティ自動化と攻撃応答計画の策定と維持を専門に担当させます。
  • セキュリティは、記入して放置するチェックボックスのセットではありません。セキュリティ作業は監査後に終了すべきではありません。多くの場合、Nomad bridge hackのように、脆弱性は監査後のアップグレードで導入されたエラーに基づいています。

2)暗号セキュリティコミュニティがハッキング攻撃に対処するプロセスは、より体系的で効率的になるでしょう。ハッキング攻撃が発生するたびに、貢献者は助けを提供したいという熱意を持って暗号セキュリティグループチャットに押し寄せますが、組織が欠如しているため、重要な詳細が混乱の中で失われる可能性があります。私は、未来のいくつかのグループチャットがより構造化された組織に変わるのを見ています:

  • チェーン上の監視とソーシャルメディア監視ツールを使用して、積極的な攻撃を迅速に検出します。
  • セキュリティ情報およびイベント管理ツールを使用して作業を調整します。
  • ホワイトハッカーの作業、データ分析、根本原因理論、およびその他のタスクをコミュニケーションするための異なるチャネルを持つ独立したワークフロー。
ChainCatcherは、広大な読者の皆様に対し、ブロックチェーンを理性的に見るよう呼びかけ、リスク意識を向上させ、各種仮想トークンの発行や投機に注意することを提唱します。当サイト内の全てのコンテンツは市場情報や関係者の見解であり、何らかの投資助言として扱われるものではありません。万が一不適切な内容が含まれていた場合は「通報」することができます。私たちは迅速に対処いたします。
チェーンキャッチャー イノベーターとともにWeb3の世界を構築する