Electrumウォレットがセキュリティ脆弱性を修正、ハッカーがビットコインを盗難
Electrumがバージョン4.8.3をリリースし、深刻なビットコインウォレットの脆弱性を修正しました。開発者は、悪意のあるサーバーがこの脆弱性を悪用してユーザーの支払いをリダイレクトしており、少なくとも1件の資金盗難が発生したことを確認しました。
- Electrumは、悪意のあるサーバーが深刻な脆弱性を悪用していることを確認した後、バージョン4.8.3をリリースしました。
- 攻撃者は、処理待ちのビットコイン支払いを不正な取引で置き換える可能性があり、ユーザーが手数料を増額する際に、取引が正常であると誤解して承認してしまうことがあります。
- 2人のユーザーが関連するイベントを報告しており、そのうち1人は取引手数料の引き上げによりビットコインを損失しました。
- この脆弱性は4.8.3より前のすべてのElectrumバージョンに影響します。開発者は総損失額を公表していません。
- セキュリティパッチは、ウォレットが制御する通貨によって発信され、未確認のトランザクション署名を検証します。
このウォレットが10月24日に公開したセキュリティアラートによると、攻撃者はElectrumが未確認のビットコイン取引を処理する方法を悪用し、正当な送金を不正取引に置き換えた。ユーザーが取引手数料を増額する際に、これらの取引を意図せず承認してしまう可能性がある。
Electrumは、取引履歴の取得、トランザクションのブロードキャスト、その他のネットワーク情報のために外部サーバーに接続する軽量なビットコインウォレットです。完全なビットコインノードとは異なり、このソフトウェアはブロックチェーンアクティビティのすべてのプロセスを独自に処理しません。
ドキュメントでは、Electrumが確認済みの取引をシンプルペイメント検証(Simple Payment Verification)で検証しているが、未処理取引を表示する際には、過去を通じてメインサーバーを信頼してきたと説明されている。
攻撃者はこの差異を悪用し、悪意のあるサーバーを通じて送信されたトランザクションを拦阻し、ビットコインネットワークに到達する前に改ざんしました。
合法な取引のブロードキャストを阻止した後、攻撃者は代替取引をウォレットに送信し、受取アドレスを攻撃者が制御するアドレスに変更できる。
無効な署名を伴う代替取引について、脆弱性のあるElectrumバージョンは、それをウォレットの履歴に表示する前にこれらの署名をチェックしません。
ユーザーがReplace-by-Fee(RBF)を用いて取引手数料を引き上げようとする際に、この詐欺は危険になります。RBFは、未確認の支払いをより高い手数料の取引で置き換えることができるビットコインの機能です。
ユーザーが手数料調整を承認すると、知らないうちに攻撃者への支払いを含む有効なトランザクションに署名してしまう可能性があります。
Electrum、現実世界の攻撃を確認し、ビットコインの損失を発生
開発者が、この脆弱性が理論上の攻撃ではなく、すでに実際の事例として報告された2件を明らかにしました。
10月11日、ユーザーdannydeezyが、Electrumの履歴に表示されている取引が、最初に提出された支払いと一致していないと報告しました。
10月18日、別のユーザーRaju-K12が取引手数料を引き上げようとして資金を失い、開発者に連絡しました。
公告によると、この2つの事件は、攻撃者が制御する受取アドレスに関係しており、これらのアドレスは対象の受取側ビットコインアドレスの最後の4文字と一致するように設計されています。
第二の事例では、不正取引の手数料がゼロであり、開発者はこれが被害者に手数料を引き上げる操作を促すための仕組みであると疑っています。
最初の報告は、2台のTrezorデバイスを使用した2-of-3マルチシグウォレットに関係しています。その合法的なトランザクションには31個の入力と1個の出力が含まれています。
調査員は、62個すべての署名が元の支払いには有効だが、置き換えられた取引には無効であることを発見した。偽造された取引は、ほぼすべてのビットコインを類似のアドレスに転送し、わずかに一部をウォレットに返却した。
元の取引は有効ですが、公開のビットコインネットワークには登録されていません。
Electrumは、現実には一部のサーバーがこの攻撃を実施していることを認めている。しかし、開発者は攻撃に参加したサーバーの数、盗まれた金額、またはさらに多くの被害者が特定されたかどうかを明らかにしていない。
Electrum 4.8.3 が悪意のある手数料引き上げ取引を阻止
この修正は10月23日にバージョン4.8.3に取り込まれ、10月24日にダウンロード可能なバイナリファイルが提供されました。
90fe308 を提出することで、開発者はユーザーのウォレットが入力を制御する未確認トランザクションに署名検証を導入しました。
Electrumは、これらの取引をローカル履歴に追加する前に署名を検証することで、公告で説明されている不正な送金が合法な取引として表示されるのを防ぎます。
今回の更新により、Electrumは完全なビットコインノードにはなりません。開発者は、受信した未確認トランザクションは新しい署名チェックの対象外であり、確認済みの支払いは従来の検証プロセスを引き続き使用すると説明しています。
4.8.3 より前のバージョンを使用しているユーザーは、Electrumの公式ウェブサイトから更新をダウンロードするよう促されています。
一時的にアップグレードできないユーザーに対して、開発者は、手数料置換取引を含む受取先アドレスと金額を確認するよう提案しています。
公告によると、信頼できるサーバー(自社サーバーを含む)にのみ接続しているユーザーは、この特定の悪意のあるサーバー攻撃の影響を受けません。
Electrumの過去の攻撃は、サーバーのリスクが繰り返し発生していることを示しています。
このイベントは、Electrumが外部サーバーに依存することを狙った以前の攻撃試みを継続しています。
2018年12月、crypto.newsは、悪意のあるサーバーがユーザーに偽のソフトウェア更新情報を見せていたと報じた。当時の報道では、損失額は約100万ドルと推定された。
2019年の別の悪意あるサーバー攻撃は、偽のウォレット更新とサービス拒否活動を利用して、ユーザーを侵されたソフトウェアへ誘導しました。
これらの攻撃は欺瞞的なダウンロードに依存していますが、今回修正された脆弱性は、元々合法的なウォレット内で保留中のトランザクション情報を操作するものです。
2020年に発表されたElectrumサーバーに関するインタビュー記事では、軽量ウォレットのトレードオフについて、取引履歴における外部インフラへの依存が議論された。
Electrumの公式ドキュメントによると、クライアントは通常約10台のサーバーに接続しますが、ウォレットの履歴を取得し、トランザクションをブロードキャストするために1台のメインサーバーを選択します。また、このメインサーバーは未確認トランザクションに関して信頼されています。

