Web3フロントエンド攻撃:ハッカーの新しい楽園

robot
概要作成中

私たちが守ることを忘れた見えない層

Web3のセキュリティについて話すとき、大多数の人は通常スマートコントラクトを思い浮かべます。これは理にかなっています。結局のところ、これらのコード片は実際の資産を握り、プロトコルのロジックを定義し、数十億ドルのユーザー資金を保護しています。これまでの数年間、セキュリティチームは再入可能性の脆弱性、アクセス制御の問題、算術エラー、特定の実行パスでのみ発生する微細な脆弱性を発見するために無限のエネルギーを注いできました。しかし、オンチェーンで起こることへのこの熱中の中で、私たちは大多数のユーザーが実際に最初に対話するものを見落としていました:フロントエンド

フロントエンドは常に、ユーザーがブロックチェーンと対話するためのインターフェースとして輝かしい外殻と見なされてきました。しかし、この「外殻」は急速にエコシステム全体で最も乱用されている層の一つになっています。スマートコントラクトは不変で監査可能ですが、フロントエンドは可変で集中化されており、完全にブロックチェーンの保証外のインフラストラクチャによってサービスが提供されています。しかし、それらがウォレットの要求としてユーザーに署名させる取引のペイロードを構築しています。これがまだあなたを恐れさせていないなら、それはあなたを恐れさせるべきです。

信頼インターフェースは攻撃者を信頼することを意味する

フロントエンドの本当の危険は、必ずしも技術の複雑さではなく、信頼の不一致です。ほとんどのユーザーは、取引を確認する際に実際に署名しているものが何であるかを理解していません。彼らは完全にフロントエンドが彼らに示す内容に依存しています。

「Swap」ボタンが承認をトリガーしている可能性があります。ステーキングインターフェースが委任呼び出しを渡している可能性があります。ユーザーは、ウォレットが人間に読める形式でデータをデコードしない限り、自分が何をしているのかを確認できません。多くのウォレットはまだこれを行っていません。

これにより、フロントエンド侵入はWeb3における資金窃盗の最も効果的な方法の一つとなります。攻撃者は契約を破壊したり、コアプロトコルの脆弱性を見つけたりする必要はありません。彼らが必要とするのは、フロントエンドを一時的にでも改ざんする方法であり、それによってユーザーとブロックチェーンの間に透明に座ることができます。クリックのたびに、ハイジャックの意図が生まれます。

これらの攻撃はどのように発生するのか

これらの攻撃の実施方法には特別な点はありません。時には、DNSハイジャックのように簡単で、攻撃者はプロジェクトのドメイン名レコードにアクセスして、それを悪意のあるサーバーに指し示すことができます。他の場合、攻撃者は感染した依存関係を通じてコードを注入し、悪意のあるロジックを置き換え、取引データをウォレットに渡す前に取引データを変更します。また、いくつかのケースでは、フロントエンドがクラウドダッシュボードやCDN設定にアクセスすることによって直接侵害され、攻撃者がリアルタイムでUIスクリプトを変更することを許可されます。

効果はいつも同じです。ユーザーはいつものようにアプリケーションにアクセスし、ウォレットを接続し、安全だと思う取引に署名します。しかし、彼らが署名するのは全く異なるものであり、通常は信頼できない契約を承認したり、攻撃者が制御するウォレットにトークンを移転したりします。そして、ブロックチェーンは署名に従って完全に実行されるため、取り消しボタンはありません。

これを証明する最近の出来事

私たちはこの分野でのいくつかの苦痛の例を見てきました。最も有名な例の1つは 2022年のCurve Finance事件で、攻撃者はCurveのDNSを制御し、ユーザーに偽のフロントエンドを提供しました。そのウェブサイトは全く同じに見えました。ウォレットの提示も非常に正常に見えました。しかし、裏では、すべての取引が攻撃者のウォレットにルーティングされていました。数時間のうちに約60万ドルを失いました。

別の例は BadgerDAO で、攻撃者が悪意のある JavaScript をそのフロントエンドに注入した後、1億ドル以上の損失を被りました。そのコードは特定のユーザー(特にホエール)の取引ペイロードをこっそりと変更し、これらのユーザーが自ら破滅に向かうようにしました。

これらの出来事の共通点は、スマートコントラクトが不変であることです。ロジックは健全であり、監査はクリーンですが、フロントエンドが異なる物語を語るとき、すべては無意味になります。

なぜこの問題は消えないのか

Web3におけるフロントエンドのセキュリティが特に難しい理由は、それが奇妙なグレーゾーンに属しているからです。それはオフチェーンであるため、ほとんどのオンチェーンセキュリティツールが監視できません。監査中にしばしば無視され、特に納期を優先しセキュリティを後回しにするプロジェクトではそうです。また、それはDNS、クラウドストレージ、JavaScriptパッケージレジストリなどの中央集権的なインフラに非常に依存しており、これらはブロックチェーンと同じ保証を提供していません。

さらに悪いことに、フロントエンド検証に関するツールはまだ成熟していません。チェーン上で検証できるコントラクトバイトコードとは異なり、フロントエンドコードは頻繁に変更され、固定またはハッシュ化されることはほとんどなく、ユーザーが確認できる方法で公開されることはほとんどありません。これは、トークンの立ち上げ、エアドロップ、またはUIのアップグレードなどの敏感な時期に、標的攻撃のための完璧な環境を作り出します。

何を変える必要があるか

Web3が安全に発展するためには、安全性をスマートコントラクトの外に拡張する必要があります。開発者は、バックエンドと同様に、フロントエンドに対しても同じように偏執的かつ厳格に対応しなければなりません。これは、依存関係をロックし、不必要なサードパーティのスクリプトを避け、DNS設定を保護し、フロントエンドの監査を重要なリリースの一部として扱うことを意味します。

ウォレットプロバイダーも役割を果たすべきです。ユーザーは、自分が署名している内容をより明確に理解する必要があります。これは、デコードの改善、より良い警告、さらにはフロントエンドの真実性チェックを意味するかもしれません。現在、人々はインターフェースへの信頼度が高すぎますが、その完全性を検証する努力は不足しています。

ユーザーの視点から見ると、アドバイスは厳しいが正直である:どんなUIも盲目的に信頼しないこと。高価値のプロトコルと対話している場合は、ドメイン名だけを確認しないでください。ソースコードを確認してください。悪意のある契約を追跡するブラウザ拡張機能を使用してください。何かおかしいと感じたら、署名しないでください。

まとめ

Web3は、単に信頼不要な実行に関するものではありません。それは、全体の信頼の境界についてであり、その出発点、どのように移動するか、そしてその終点についてです。現在、フロントエンドはちょうどその境界の中央に位置しており、ユーザーが見ているものと署名された内容との間のギャップを利用できる十分に賢い人々の遊び場となっています。

あなたの契約は完璧かもしれませんが、もしあなたのフロントエンドが攻撃を受けたら、結果は同じです。資金の損失、信頼の崩壊、ユーザーはすべてがどのように間違ったのかを知りたがります。業界がフロントエンドを後回しにするのをやめる時が来ました。なぜなら、ハッカーにとって、それは攻撃の最初の標的となっているからです。

CRV-4.17%
原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • 共有
コメント
0/400
コメントなし
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)