ブロックチェーン上の「アイスフィッシング」

news

私たちをつなぐテクノロジーは絶え間なく進歩しており、これによりユーザーに途方もない新しい機能がもたらされる一方で、敵対者や悪用者に新たな攻撃対象領域も開かれています。ソーシャル エンジニアリングは、人間のつながりを可能にする事実上すべてのテクノロジーにまで及ぶ脅威の一種です。ブロックチェーンに関連するフィッシング攻撃に関する最近の分析では、これらの脅威の耐久性と、関連する将来のシステムやフレームワークにセキュリティの基礎を組み込む必要性が再確認されています。

クレデンシャル フィッシングは、私たちのほとんどが今日よく知っていて使用しているインターネットのバージョンである web2 の世界で、毎日のようにお客様を悩ませています。利ざやが少なく、ビジネスへの資格情報の収益化に関連する重大なリスクがあるとしても、サイバー犯罪者にとっては収益性の高いビジネスです (たとえば、人間が操作するランサムウェア攻撃を通じて)。さて、攻撃者が単独で、約2.2 兆米ドルの暗号通貨の時価総額の大部分を、ほぼ完全な匿名性で手に入れることができると想像してみてください。これはゲームのダイナミクスを変化させ、まさに web3 の世界で月に数回起こっていることです。

Web3 は、ブロックチェーンの基盤となる暗号化セキュリティの上に構築された分散型の世界です (対照的に、web2 はより集中型の世界です)。 web3 では、非カストディアル ウォレットに保持する資金は、あなただけが知っている秘密鍵によって保護されます。対話するスマート コントラクトは不変であり、多くの場合オープン ソースであり、監査されています。フィッシング攻撃は、このような安全な基盤でどのように発生するのでしょうか?

これは、このブログで検討する内容です。必要な背景情報をいくつか共有し、2021 年 11 月から 12 月に発生したフィッシング攻撃であるBadger DAO 攻撃について詳しく説明します。この攻撃では、攻撃者はユーザーから約 1 億 2,100 万米ドルを盗むことができました。

Badger DAO 攻撃は、進化と採用の初期段階にある web3 にセキュリティを組み込む必要性を強調しています。大まかに言えば、ソフトウェア開発者が web3 のセキュリティの使いやすさを向上させることをお勧めします。それまでの間、エンド ユーザーは、プロジェクトのドキュメントや外部の評判/情報 Web サイトを確認するなど、追加のリソースを通じて情報を明示的に確認する必要があります。

概要: Web3 の概念

攻撃を分析するには、必要な背景が必要です。

ブロックチェーン

ブロックチェーンは、暗号化アルゴリズムによって保護された分散台帳です。あるアカウントから別のアカウントへの暗号通貨コインの転送を示すデータベースと考えることができます。今日の時価総額で最大のブロックチェーンはビットコインとイーサリアムです。ブロックチェーンに送信するトランザクションは、たとえば、暗号通貨コインをアカウントから別のアカウントに転送することにより、台帳を変更する場合があります。

ブロックチェーンは公開されています。つまり、すべてのトランザクションが公開されています。ブロックチェーン Web フロント エンド (例: イーサリアム ブロックチェーンの場合はhttps://etherscan.io/ ) は、トランザクション、アカウント、およびスマート コントラクトを調査するために存在します。

アカウントと非保管ウォレット

アカウントは、保有する可能性のある暗号通貨コインに関連付けられています。ブロックチェーン上では、これはあるアカウントからあなたのアカウントに暗号通貨コインを転送する元帳のエントリによって表されます。このようなエントリのセットから、勘定残高を導き出すことができます。

ウォレットは、アカウントに関連付けられた暗号通貨コインを視覚化します。一般に信じられていることとは反対に、ウォレットは実際には暗号通貨のコインを保持していません。暗号通貨コインは、分散台帳、つまりブロックチェーンに保存されます。ウォレットを使用すると、暗号化キーを使用して、アカウントに関連付けられた暗号通貨コインでアクション (別のアカウントへの転送など) を行うトランザクションに署名できます。言い換えれば、暗号化キーにより、暗号通貨コインへのアクセスが可能になります。その鍵を別の当事者に開示すると、あなたの資金があなたの同意なしに譲渡される可能性があります。

ウォレットには、カストディアル ウォレットと非カストディアル ウォレットの 2 種類があります。前者は仮想通貨取引所に関連付けられたウォレットですが、後者はデバイスにローカルなウォレットです。この 2 つの大きな違いは、トランザクションに署名するための暗号化キーにアクセスして管理するのは誰かという点です。非カストディアル ウォレットは所有者に暗号化キーへのアクセスを提供しますが、カストディアル ウォレットは提供しません。

スマートコントラクト

スマート コントラクトは、暗号通貨のコインを保持して取引できるブロックチェーンに展開されたコードです。スマート コントラクトは、通常のアカウント (外部所有アカウント (EOA) とも呼ばれます) または別のスマート コントラクトがその実行をトリガーしたときにのみ実行されます。

スマート コントラクト フロント エンド

スマート コントラクトの実行をトリガーすることは簡単ではありません。 (1) フィールドに適切にデータを入力する有効なトランザクションを作成し、(2) 自分の秘密鍵でトランザクションに署名し、(3) トランザクションをブロックチェーンに送信する必要があります。使いやすさを向上させるために、スマート コントラクト プロバイダーはしばしばスマート コントラクト フロント エンドを作成し、ユーザーがブラウザーなどの使い慣れたツールを使用してスマート コントラクトを操作できるようにします (非カストディアル ウォレット プラグインを使用)。コンテンツ配信サービスを含むフロントエンド スタック全体。

ERC-20トークン

ERC-20 トークンは、ERC-20 スマート コントラクトを介して実装される特別な種類の暗号通貨コイン (つまり、トークン) であり、基本的に、これらのトークンをあるアカウントから別のアカウントに転送できる一連の機能を備えたバランス シートとして実装されます。各 ERC-20 トークンには、 ERC-20 トークン標準を実装する独自のスマート コントラクトがあります。たとえば、 LINKはトークンです。

あるアカウントから別のアカウントにトークンを転送するには、トランザクションの送信者がそれらのトークンの転送を承認される必要があります。トークンの所有者はこれらのトランザクションに対して自動的に承認されますが、所有者はスマート コントラクトなどの追加のエンティティに承認を委任することもできるため、それらのスマート コントラクトはユーザーに代わって資金を移動できます。これは、分散型取引所 (DEX) などの分散型金融 (DeFi) スマート コントラクトに必要です。これらは、さまざまな種類のトークンを交換するために使用されるためです (例: Uniswap V3 DEX の USDC トークンの LINK )。

分散型取引所 (DEX)

分散型取引所 (DEX) を使用すると、秘密鍵を所有しながら暗号通貨を取引できるため、暗号通貨を完全に制御できます。ハードウェア ウォレットは DEX で使用できるため、ユーザーの秘密鍵のセキュリティ レベルが高くなります。

フィッシング攻撃

Web3 の世界には複数のタイプのフィッシング攻撃があります。この技術はまだ始まったばかりであり、新しいタイプの攻撃が出現する可能性があります。一部の攻撃は、web2 で観察された従来のクレデンシャル フィッシング攻撃に似ていますが、一部は web3 に固有のものです。不変のパブリック ブロックチェーンが可能にする 1 つの側面は、完全な透過性であるため、攻撃が発生した後に観察して調査することができます。また、従来の web2 フィッシング攻撃では困難であった攻撃の経済的影響を評価することもできます。

暗号化キー (通常はウォレットに保存されます) を使用して、暗号通貨コインのキーを保持していることを思い出してください。その鍵を許可されていない当事者に開示すると、あなたの資金があなたの同意なしに移動される可能性があります.これらのキーを盗むことは、web2 アカウントの資格情報を盗むことに似ています。 Web2 クレデンシャルは通常、一連のフィッシング メールを介してユーザーを不正な Web サイト (銀行を装ったサイトなど) に誘導することによって盗まれます。

攻撃者は web3 で同様の戦術を利用して秘密鍵を取得できますが、現在の採用状況を考えると、電子メールが暗号通貨ユーザーの受信トレイに届く可能性は比較的低いです。代わりに、さまざまな戦術を使用して、暗号通貨ユーザーに到達し、だまして秘密鍵をあきらめさせることができます。

  • ユーザーがウォレット ソフトウェア サポートに連絡し、ダイレクト メッセージのスプーフィング サポートに飛び込んで自分の秘密鍵を直接盗むためのソーシャル メディアの監視2
  • 新しいトークンを一連のアカウントに無料で配布し (つまり、「Airdrop」トークン)、それらのトークンでのトランザクションに失敗し、エラー メッセージが表示されて、フィッシング Web サイト6またはユーザーの資格情報を盗むコイン マイニング プラグインをインストールする Web サイトにリダイレクトされます。ローカル デバイス3
  • 正当なスマート コントラクト フロント エンドのタイポスクワッティングとなりすまし4
  • ウォレット ソフトウェアになりすまして秘密鍵を直接盗む

この投稿で説明する「アイス フィッシング」手法では、個人の秘密鍵を盗む必要はありません。むしろ、ユーザーを騙して、ユーザーのトークンの承認を攻撃者に委任するトランザクションに署名させる必要があります。これは、図 1 に示すように、ユーザーのトークン (スワップなど) とやり取りするために使用される DeFi スマート コントラクトとのやり取りを可能にする一般的なタイプのトランザクションです。図 2 と 3 は、承認がどのように見えるかを示しています。この例では、Uniswap DEX が USDC トークンを LINK トークンに交換するために必要な初期承認 (図 1 のステップ 1)、インターフェース、およびトランザクション署名要求を示します。正当なリクエストの使用者は0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45 (Uniswap V3: Router 2) であることに注意してください。承認が得られると、Uniswap V3: Router 2 スマート コントラクトがユーザーに代わって USDC トークンを転送し、スワップを実行できるようになります (図 1 のステップ 3 と 4)。

Uniswap フローの例を示す図
図 1. Uniswap のフロー例
Uniswap 承認インターフェイスのスクリーンショットと、承認トランザクション署名要求のスクリーンショット。
図 2. Uniswap 承認インターフェイス。図 3. 承認トランザクションの署名要求。

「アイス フィッシング」攻撃では、攻撃者は使用者のアドレスを攻撃者のアドレスに変更するだけで済みます。これは、トランザクションが改ざんされたことを示す可能性のあるすべての関連情報がユーザー インターフェイスに表示されないため、非常に効果的です。上記の例では、承認されるアカウント 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45 (図 3 を参照) が実際に Uniswap V3: ルーター 2 であるか、攻撃者によって制御されているアドレスであるかをユーザーが判断できません。

承認トランザクションが署名され、送信され、マイニングされると、消費者は資金にアクセスできます。 「アイス フィッシング」攻撃の場合、攻撃者は一定期間にわたって承認を蓄積し、被害者のすべてのウォレットをすばやく使い果たす可能性があります。

これはまさに、2021 年 11 月から 12 月に攻撃者が数百万ドルを流出させた Badger DAO 攻撃で起こったことです。

Badger DAO 攻撃

Badger は、ビットコインの預金で利息を獲得できるようにする DeFi プロトコルです。 2020 年 12 月にイーサリアムのメインネットでローンチされました。ユーザーはラップされたビットコインをボールトに預け入れ、さまざまなイールド ファーミング戦略を通じてイールドを獲得します。 Badger は現在、9 億 7,800 万米ドルの総ボリューム ロック (TVL) を持っています。

図 4 は、Badger DAO 攻撃のタイムラインを示しています。 Badger スマート コントラクト フロントエンド インフラストラクチャ (特にその Cloudflare 部分) が侵害され (Cloudflare API キーへのアクセスを取得)、攻撃者が Badger スマート コントラクト フロントエンドに悪意のあるスクリプトを挿入できるようになりました。このスクリプトは、攻撃者のアカウント (0x1fcdb04d0c5364fbd92c73ca8af9baa72c269107) に ERC-20 の承認を与えるトランザクションに署名するようユーザーに要求しました。ブロックチェーン エクスプローラーの etherscan に基づくと、攻撃者のアカウントは 2018 年からアクティブであり、さまざまなフィッシング関連の攻撃や暗号通貨詐欺に関連していることに注意してください (たとえば、このトランザクション ハッシュ)。

このスクリプトは、2021 年 11 月 10 日にapp.Badger.comに最初に挿入されましたが、注入は一貫性がなく、特定の残高を持つウォレットのみを対象とし、スクリプトを定期的に変更していました。インジェクションは 2021 年 12 月 2 日午前 12 時 31 分 37 秒 (UTC) に停止しました。

2021 年 11 月 21 日、最初の資金が攻撃者によって送金されました (おそらくテスト トランザクション)。 2021 年 12 月 2 日午前 0 時 48 分 25 秒に、被害者の口座から実際の資金が流出しました。この資金の流出は、その日の午前 10 時 35 分 37 秒まで続きました。 Badger は午前 3 時 14 分 00 秒以降、コントラクトを一時停止し (可能な場合)、攻撃者のトランザクションの一部を失敗させました。最終的に、攻撃者は 10 時間以内に約 200 のアカウントから 1 億 2,100 万米ドルを流出させることができました。

Badger DAO のタイムラインを示す図。攻撃者のアクション、被害者のアクション、Badger DAO のアクション、および Forta Agent の検出の概要が示されています。
図 4. Badger DAO 攻撃のタイムライン

Forta を使用した検出

web3 スタックはまだ初期段階にあり、ユーザーにリスクをもたらします。この「アイス フィッシング」攻撃は、盗まれた資金の量において前例のないものでした。現在、最も高価な暗号ハッキングのrekt リーダーボードで 6 位にランクされています。 Badger DAO のスマート コントラクトとは対照的に、流出した資金はほとんどがユーザーのウォレットからのものであることに注意してください。

Badger は事後調査と、インフラストラクチャを保護し、コントラクトの一時停止を解除するためのアクションを進めましたが6 、このような攻撃は今後も続く可能性があります。幸いなことに、ブロックチェーン上のトランザクションは公開されているため、この種の攻撃をできるだけ早く自動化された方法で特定できます。

Badger DAO 攻撃から学び、将来同様の攻撃をより適切に検出するために、スマート コントラクトのリアルタイム脅威検出プラットフォームである Forta でエージェントを作成し、オープンソース化しました。 Forta は、分析のためにブロックチェーン トランザクションをエージェントにパイプします。当社のエージェントは、フィッシング攻撃のトランザクションを 2 段階で監視します。

  1. EOA アドレスが複数の ERC-20 コントラクトに承認されたときにトリガーされる、疑わしい ERC-20 承認検出器。エージェントのこのステップは、基本的に「アイス フィッシング」攻撃の準備ステップ (トークンの承認) を識別します。
  2. 疑わしい ERC-20 転送検出器は、疑わしい EOA アドレスが資金の転送を開始したときにトリガーされます。エージェントのこのステップは、ユーザーのウォレットから資金が引き出されたときにアラートを出します。

Badger DAO 攻撃に関係するブロック (ブロック 13650638-13726863) で検出器を実行すると、以下に示す 2 つのアラートが作成されます。これらのアラートは、図 4 に示すように、攻撃が手動で通知されるよりもかなり前に発生していたはずです。スマート コントラクト プロバイダーは、これらのアラートをサブスクライブし、自動化された応答プロセス (スマート コントラクトの一時停止やスマート コントラクトの Web フロントの無効化など) に統合することができます。 -end) Forta ExplorerOpenZeppelin の Defender 、またはその他の手段を介して。アラートは、インシデント対応担当者が攻撃者のトランザクションを迅速に特定して調査できるようにする実用的な情報を提供します。 For instance, transaction 0x3cad03b779572c11c8188d9660d39ba76d5ae20ec254df89df9c79b5874d17f7 shows attacker 0x1fcdb04d0c5364fbd92c73ca8af9baa72c269107 was granted approval for bSLP token (smart contract 0x88128580acdd9c04ce47afce196875747bf2a9f6) by victim 0xc610d02270c39a0581fe0137f5e93ae5053d3c66.

{
  "name": "疑わしいERC-20 EOAの承認",
  "description": "0x1fcdb04d0c5364fbd92c73ca8af9baa72c269107 は 2 つの ERC-20 コントラクトに承認を与えられました",
  "alertId": "PHISHING-SUS-ERC20-EOA-APPROVALS",
  "プロトコル": "イーサリアム",
  "重大度": "高",
  "タイプ": "疑わしい",
  "メタデータ": {
    "last_contract": "0x88128580acdd9c04ce47afce196875747bf2a9f6",
    "last_tx_hash": "0x3cad03b779572c11c8188d9660d39ba76d5ae20ec254df89df9c79b5874d17f7",
    "last_victim": "0xc610d02270c39a0581fe0137f5e93ae5053d3c66",
    "uniq_approval_contract_count": 2
  }
} 

2021 年 11 月 21 日午前 11:32:30 の 0xccc9ea1cbe146e274aff202722307b1443b781af67363bf2f256e0cc39cc1d0a に関するアラート 2
  "name": "疑わしいアカウントによるERC-20転送",
  "description": "0x1fcdb04d0c5364fbd92c73ca8af9baa72c269107 は 0x6def55d2e18486b9ddfaa075bc4e4ee0b28c1545 コントラクトからアドレス 0x91d65d67fc573605bcb0b5e39f9ef6e18afa1586 に資金を送金しました",
  "alertId": "PHISHING-SUS-ERC20-EOA-TRANSFERS",
  "プロトコル": "イーサリアム",
  "重大度": "重大",
  "type": "エクスプロイト",
  "メタデータ": {
    "last_contract": "0x6def55d2e18486b9ddfaa075bc4e4ee0b28c1545",
    "last_attacker_address": "0x91d65D67FC573605bCb0b5E39F9ef6E18aFA1586",
    "last_tx_hash": "0xccc9ea1cbe146e274aff202722307b1443b781af67363bf2f256e0cc39cc1d0a",
    "last_victim": "0x38b8F6af1D55CAa0676F1cbB33b344d8122535C2"
  }
}

推奨事項

Badger DAO 攻撃のような脅威から身を守るために、エンド ユーザーが従うべきいくつかの推奨事項を次に示します。これらの推奨事項は、ユーザーに大きな負担をかけることに注意してください。 web3 プロジェクトとウォレット プロバイダーには、ユーザーがこれらのアクションを実行できるように使いやすさを向上させることをお勧めします。

  1. やり取りしているスマート コントラクトを確認します。
  2. 契約住所は正しいですか?残念ながら、適切なスマート コントラクトと対話するためにスマート コントラクト フロントエンドに依存することはできません。トランザクションを送信する前に、署名するトランザクションに表示されるコントラクト アドレスを確認する必要があります。これは、ウォレット プロバイダーがイノベーションを起こし、セキュリティ層を追加できる領域です。
  3. スマート コントラクトは監査されていますか? defiyieldなど、いくつかの Web サイトがその評価に役立ちます。
  4. バグが発見されたときにプロジェクトが修正を展開できるように、コントラクトはアップグレード可能ですか (つまり、プロキシ パターンとして実装されますか)。 Etherscan のコントラクト タブには、スマート コントラクトがプロキシとして実装されているかどうかが表示されます。
  5. スマート コントラクトには、一時停止/一時停止解除などのインシデント対応または緊急機能がありますか?これらはどのような条件下でトリガーされますか?
  6. 展開後のスマート コントラクトのセキュリティ特性は? CertiK Skynetは、オンチェーン モニタリングを通じて展開後のセキュリティ インテリジェンスを追跡します。
  7. 複数のウォレットを介して暗号通貨とトークンを管理し、トークンの許容量を定期的に見直して取り消します。 https://etherscan.io/tokenapprovalcheckerを使用すると、これを簡単に行うことができます。

プロジェクト開発者にとって、スマート コントラクトの監査は必要な最初のステップですが、監査はインフラストラクチャとインシデント対応プロセス全体に拡大する必要があります。展開後、監視 ( FortaCertiKなどによる) により、資金を流出させるエクスプロイトを防止または制限する時間が得られる場合があります。最後に、すべての監査およびセキュリティ インシデント対応プロセスが、プロジェクトの Web サイトの専用セクションに文書化されていることを確認することをお勧めします。

このブログで分析した 2021 年後半の「アイス フィッシング」攻撃は、今日のブロックチェーン テクノロジに影響を与える脅威の一例にすぎません。それ以来、ブロックチェーン プロジェクトとユーザーに影響を与えるハッキングがさらに多く発生しました。このブログでは、これらの攻撃を迅速に特定する方法を特定し、プロジェクトの開発者とユーザーが従うことができる一連のセキュリティ プラクティスを列挙しました。ブロックチェーン技術は急速に発展しており、幅広い採用が視野に入っているため、研究者がこの新しい技術を引き続き調査し、調査結果をより広いコミュニティと共有し、安全なコードと情報に基づいたセキュリティ製品の両方を通じてセキュリティの向上を支援することをお勧めします.

クリスチャン・ザイフェルト
Microsoft 365 Defender 研究チーム

参考文献

  1. Web2 対 Web3
  2. 一般的な詐欺とその回避方法
  3. Huobi、MyEtherWallet、Blockchain.info 詐欺のハンティング
  4. そのリンクを注意深く読んでください: 詐欺師はスペルミスのある暗号通貨の URL をすくい上げて、あなたの財布を盗みます
  5. 更新: トランザクション エラー メッセージ
  6. Phisher Watch: エアドロップ詐欺
  7. BadgerDAOエクスプロイトのテクニカルポストモーテム

参考: https ://www.microsoft.com/en-us/security/blog/2022/02/16/ice-phishing-on-the-blockchain/

Comments

Copied title and URL