Hacker shhing

Coinbase ウォレットおよびその他の分散型暗号化アプリ (dapps) は、セキュリティ機能から悪意のあるスマート コントラクトの動作を隠すために使用できる「レッド ピル攻撃」に対して脆弱であることが判明しました。

Coinbase は、Bitcoin、Ethereum、ERC-20 トークンなど、プラットフォームから購入できる幅広いデジタル資産をユーザーが保存、管理、および操作するための暗号ウォレット アプリを提供する主要な暗号通貨交換です。

ZenGo Wallet のセキュリティ研究者は、Coinbase Wallet を含む dapps が、トランザクション シミュレーション中にスマート コントラクトが悪意のある動作を隠すことを可能にする新しい攻撃に対して脆弱であることを発見しました。これにより、ユーザーは取引が安全であると信じて取引を続行できるようになりますが、後でスマート コントラクトが資産を盗んだことを知ります。

この脆弱性は Coinbase に開示され、Coinbase は報告されたセキュリティ問題に対処し、責任ある開示に対して ZenGo ウォレットに複数のバグ報奨金を授与しました。

シミュレーションへの攻撃

Web3 スマート コントラクトは、暗号通貨が発生したときに自動的に実行されるプログラムであり、開発者は Web サイトや暗号資産の幅広い機能を利用できます。

たとえば、スマート コントラクトを使用して、支払いを受け取った後に誰かに NFT を自動的に送信したり、ユーザーが資産を購入してすぐに売却したことに対して「課税」したり、トランザクションに基づいてコンテンツを Web サイトに自動的に書き込むことができます。基本的に、プログラム可能なものはすべてスマート コントラクトによって実行できます。

ただし、脅威アクターは、送信された暗号を盗んだり、資産のウォレットを流出させたりするなど、悪意のある理由でスマート コントラクトを使用することもあります。

これらの悪意のある契約署名要求は、正当なものと区別するのが難しく、暗号通貨保有者が危険を回避することを困難にしています。

これらの攻撃を防ぐために、dapps 開発者はシミュレートされたトランザクション ソリューションを導入して、トランザクションの署名をエミュレートし、ユーザーが承認する前に結果を予測しました。これらのシミュレーションの結果はユーザーに提示され、ユーザーは何が起こるかを確認し、トランザクションを続行するかどうかを決定できます。

取引承認のセキュリティシミュレーション
取引承認のセキュリティシミュレーション
(ZenGoウォレット)

ただし、ZenGo ウォレット レポートが強調しているように、一部の悪意のあるスマート コントラクトは、それらがシミュレートされていることを検出し、非正規の動作を示してターゲットにとって無害または有益に見えるため、web3 エミュレーション セキュリティ システムをだますことができます。

アナリストは、攻撃者が悪意のある契約に「レッド ピル」を実装して、シミュレートされたときに動作を変更し、実際に承認されたときにターゲットからお金を盗む可能性があると説明しています。

この攻撃は、シミュレーション中にスマート コントラクトの変数に「安全な」データを入力し、ライブ トランザクション中にそれを「悪意のある」データと交換することによって実行されます。これにより、シミュレーション中はスマート コントラクトが安全であると表示されますが、ライブ トランザクション中にはユーザーの暗号が盗まれます。

「「COINBASE」命令には、現在のブロックマイナーのアドレスが含まれています。シミュレーション中には実際のブロックが存在せず、したがってマイナーも存在しないため、一部のシミュレーションの実装では、それをヌル アドレス (すべてゼロのアドレス) に設定するだけです」とZenGo のレポートは説明しています。

「したがって、悪意のあるスマート コントラクトは、この「COINBASE」の赤い丸薬を次のように武器化する可能性があります。ユーザーにネイティブ コインをコントラクトに送信するように依頼します。COINBASE がゼロの場合 (つまり、Polygon でのシミュレーション)、コントラクトは見返りにコインを送り返します。そのウォレットがそれをシミュレートするとき、トランザクションがユーザーにとって潜在的に利益になるようにします。」

「しかし、ユーザーが実際にトランザクションをオンチェーンで送信すると、COINBASE は実際には現在のマイナーのゼロ以外のアドレスで満たされ、コントラクトは送信されたコインを取得するだけです。」

研究者は、この攻撃を実演する次のビデオも公開しています。

シミュレーションは、ユーザーがトランザクション要求を承認した場合、0.016 WETH ($30) を受け取ることを示していることに注意してください。ただし、ライブ トランザクションを実行しても、見返りはありません。

影響

これらの「レッド ピル攻撃」シナリオを調査することで、ZenGo ウォレットは 6 つの暗号通貨ウォレット dapps が悪用に対して脆弱であることを発見しました。

これらは、Coinbase ウォレット、Rabby ウォレット、Blowfish、PocketUniverse、Fire Extension、および問題をまだ修正していない名前のない拡張機能です。

影響を受けるベンダー
影響を受けるベンダー(ZenGo ウォレット)

上記の他のすべてのベンダーは、ZenGo ウォレットのレポートを受け取った直後に、トランザクション シミュレーションに修正を実装しました。

この攻撃を修正するには、脆弱な変数に任意の値を使用するのをやめ、悪意のあるコントラクトでそれらが「レッド ピル」として使用されるのを防ぎます。