ハッカー事件が頻発していますので、このCrypto防盗ガイドを受け取ってください。

KofiKufuor
2022-10-08 17:59:50
コレクション
暗い森の中の攻撃手法と防止策。

原文タイトル:《The State of Crypto Security

著者:Kofi Kufuor

編纂:Katie 辜,Odaily 星球日报

ハッカーは今年、暗号アプリケーションから20億ドル以上を盗みました。国慶節の期間中、業界は再びTokenPocketのフラッシュスワップサービスが盗まれる事件(2100万ドル以上の損失)やBNB ChainのクロスチェーンブリッジBSC Token Hubが攻撃される事件(約5.66億ドルの損失)を経験しました。

暗号エコシステムの発展に伴い、セキュリティ攻防戦はますます激化するでしょう。したがって、この記事では:

  • 暗号セキュリティ事件の分類法を提案します;

  • これまでにハッカーが最も利益を上げた攻撃手法を列挙します;

  • 現在ハッカー攻撃を防ぐために使用されているツールの長所と短所を振り返ります;

  • 暗号セキュリティの未来について議論します。

一、ハッカーの種類

暗号アプリケーションエコシステムは、相互運用プロトコルで構成されており、スマートコントラクトによって支えられ、チェーンとインターネットの基盤インフラに依存しています。このスタックの各層には独自の脆弱性があります。私たちは、利用されるスタック層と使用される方法に基づいて暗号ハッカーを分類できます。

ハッカー事件頻発,请收下这篇Crypto防盗指南

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

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

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

この層のハッカーは、スマートコントラクト言語(Solidityなど)の弱点や脆弱性を利用します。たとえば、再入可能性(reentrancy)や委任呼び出し(delegatecall)の危険性などがあり、これらは安全な規範に従うことで回避できます。

プロトコルロジックへの攻撃

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

たとえば、新しいDEXがユーザーが取引から得る金額を決定する数学的方程式にエラーがあった場合、そのエラーを利用してユーザーが取引から本来得られるはずの金額以上を得ることができます。

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

エコシステムへの攻撃

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

通常、エコシステム攻撃に使用される資金は、フラッシュローン(flashloan)を通じて借りられます。フラッシュローンを実行する際、AaveやdYdXなどのプロトコルの流動性プールから希望する金額を借りることができます。

二、データ分析

私は2020年以降の100件の規模の大きな暗号通貨ハッキング攻撃のデータセットを収集し、盗まれた資金は合計50億ドルに達しました。

エコシステムへの攻撃が最も頻繁に発生しています。これらは41%を占めています。

ハッカー事件頻発,请收下这篇Crypto防盗指南

プロトコルロジックの脆弱性が最も多くの金銭的損失を引き起こしました。

金額が最も大きい3つの攻撃:Roninクロスチェーンブリッジ攻撃(6.24億ドル)、Poly Network攻撃(6.11億ドル)、BSCクロスチェーンブリッジ攻撃(5.7億ドル)。

ハッカー事件頻発,请收下这篇Crypto防盗指南

上位3つの攻撃を除外すると、インフラストラクチャに対する盗難事件が最も多くの資金を失ったカテゴリーとなります。

ハッカー事件频发,请收下这篇Crypto防盗指南

三、ハッカーはどのように攻撃するのか?

インフラストラクチャ

61%のインフラストラクチャの脆弱性では、プライベートキーが未知の方法で漏洩しています。ハッカーは、フィッシングメールや偽の求人広告などの社会的攻撃を通じてこれらのプライベートキーを取得する可能性があります。

ハッカー事件频发,请收下这篇Crypto防盗指南

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

再入可能性攻撃は、スマートコントラクト言語レベルで最も人気のある攻撃タイプです。

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

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

ハッカー事件频发,请收下这篇Crypto防盗指南

プロトコルロジック

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

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

注意:多くのケースで、複数のプロトコルが同じ技術を使用してハッカーに攻撃されることがあります。これは、チームが脆弱なコードベースをフォークしたためです。

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

ハッカー事件频发,请收下这篇Crypto防盗指南

エコシステム

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

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

ハッカー事件频发,请收下这篇Crypto防盗指南

四、ハッカーはどこで攻撃するのか?

盗まれたコントラクトやウォレットが存在するチェーンに基づいてデータセットを分析します。イーサリアムのハッカーが最も多く、サンプルグループの45%を占めています。バイナンススマートチェーン(BSC)が20%のシェアで2位です。

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

  • イーサリアムとBSCは最高のTVL(アプリケーションに預けられた資金)を持っているため、これらのチェーン上のハッカーにとって報酬の規模が大きくなります。

  • 大多数の暗号通貨開発者はSolidityを知っており、これはイーサリアムとBSCのスマートコントラクト言語であり、より複雑なツールがこの言語をサポートしています。

ハッカー事件频发,请收下这篇Crypto防盗指南

イーサリアムで盗まれた資金が最も多く(20億ドル)。BSCが2位(8.78億ドル)。

ハッカー事件频发,请收下这篇Crypto防盗指南

クロスチェーンブリッジやマルチチェーンアプリケーション(たとえば、マルチチェーン取引やマルチチェーン貸付)がデータセットに大きな影響を与えました。これらのハッカー事件は総数の10%に過ぎませんが、25.2億ドルの資金を盗みました。

ハッカー事件频发,请收下这篇Crypto防盗指南

五、ハッカー攻撃を防ぐには?

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

インフラストラクチャ

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

  • 機密データ(プライベートキー、従業員情報、APIキーなど)を特定する;

  • 潜在的な脅威(社会的攻撃、技術的利用、内部脅威など)を特定する;

  • 既存のセキュリティ防御の脆弱性や弱点を見つける;

  • 各脆弱性の脅威レベルを特定する;

  • 脅威を軽減するための計画を策定し、実施する。

スマートコントラクト言語とプロトコルロジック

  1. ファジングツール

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

  1. 静的分析

静的分析ツール(SlitherやMythrilなど)は、スマートコントラクト内の脆弱性を自動的に検出します。これらのツールは、一般的な脆弱性を迅速に特定するのに非常に適していますが、あくまで事前に定義された問題のセットしか捕捉できません。スマートコントラクトにツールの仕様にない問題が存在する場合、それは発見されません。

  1. 形式的検証

形式的検証ツール(Certoraなど)は、スマートコントラクトを開発者が作成した仕様と比較します。この仕様は、コードが何をすべきか、必要な属性を詳細に説明します。たとえば、開発者が貸付アプリケーションを構築する際、各貸付には十分な担保が必要であることを指定します。スマートコントラクトのいかなる可能な動作が仕様に合致しない場合、形式的検証者はその違反を特定します。

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

  1. 監査と同行レビュー

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

専門の第三者に契約をレビューさせることは、元のチームが見落とした脆弱性を発見する良い方法です。しかし、監査人も人間であり、すべての脆弱性を捕捉することはできません。また、監査人を信頼する必要があります。監査人が問題を発見した場合、彼らはあなたに知らせるでしょうが、自分でそれを利用することはありません。

  1. エコシステム攻撃

エコシステム攻撃は最も一般的で破壊的なタイプですが、既存のツールの中にはこの種の攻撃を防ぐのに適したものはあまりありません。自動セキュリティツールは、毎回1つのコントラクト内のエラーを探すことに焦点を当てています。監査は通常、エコシステム内の複数のプロトコル間の相互作用を利用する方法を解決できません。

Fortaやtenerly Alertsのような監視ツールは、組み合わせ攻撃が発生した際に早期警告を提供し、チームが行動を起こすことができます。しかし、フラッシュローン攻撃では、資金が通常1回の取引で盗まれるため、いかなる予警も大きな損失を防ぐには遅すぎます。

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

六、暗号セキュリティの未来

私は暗号セキュリティの未来について2つの予測を持っています:

  1. 私は、最良のチームがセキュリティをイベントベースの実践(テスト->同行レビュー->監査)として見るのではなく、継続的なプロセスとして見るように変わると信じています。彼らは:
  • メインコードベースに新しく追加されたコードのすべてに対して静的分析とファジングを実行する;

  • すべての重大なアップグレードに対して正式な検証を行う;

  • 反応アクションを持つ監視および警報システムを構築する(アプリケーション全体または影響を受けた特定のモジュールを一時停止する);

  • 一部のチームメンバーにセキュリティ自動化および攻撃対応計画を策定し、維持させる。

セキュリティ作業は監査後に終了すべきではありません。多くのケースで、たとえばNomadクロスチェーンブリッジハッキング攻撃では、その脆弱性は監査後のアップグレードで導入されたエラーに基づいています。

  1. 暗号セキュリティコミュニティがハッカー攻撃に対応するプロセスは、より組織的で効率的になるでしょう。ハッカー攻撃が発生するたびに、貢献者が暗号セキュリティグループチャットに押し寄せ、助けを提供したがりますが、組織が欠如しているため、重要な詳細が混乱の中で失われる可能性があります。私は将来的に、これらのグループチャットがより整理された組織形式に変わると考えています:
  • オンチェーン監視およびソーシャルメディア監視ツールを使用して、積極的な攻撃を迅速に検出する;

  • セキュリティ情報およびイベント管理ツールを使用して作業を調整する;

  • 独立したワークフローを採用し、異なるチャネルを使用してハッカーの作業、データ分析、根本原因、その他のタスクをコミュニケーションする。

ChainCatcherは、広大な読者の皆様に対し、ブロックチェーンを理性的に見るよう呼びかけ、リスク意識を向上させ、各種仮想トークンの発行や投機に注意することを提唱します。当サイト内の全てのコンテンツは市場情報や関係者の見解であり、何らかの投資助言として扱われるものではありません。万が一不適切な内容が含まれていた場合は「通報」することができます。私たちは迅速に対処いたします。
チェーンキャッチャー イノベーターとともにWeb3の世界を構築する