エレクトラム、脆弱性を修正 ハッカーがビットコインを盗取

CoinDeskの報道によると、ビットコインウォレットのエレクトラム(Electrum)は重大な脆弱性を修正するバージョン4.8.3を公開した。開発者は、悪意あるサーバーがこの脆弱性を悪用してユーザーの送金先を改ざんし、少なくとも1件の資金盗難が起きたことを確認した。攻撃者は未確認のビットコイン送金を不正な取引に差し替える可能性があり、ユーザーが手数料を引き上げる際に正規の取引と誤認して承認してしまう。2件のユーザー報告があり、1人は手数料引き上げに関連してビットコインを失った。脆弱性は4.8.3より前のすべてのバージョンに影響する。開発者は損失総額を開示していない。修正は、ウォレットが管理する未確認コインを起点とする取引の署名を検証する。10月24日公表のセキュリティ勧告によると、攻撃者はエレクトラムの未確認ビットコイン取引の扱いを悪用し、正規の送金を不正取引に置き換えた。ユーザーは手数料引き上げ時にこれらの取引を意図せず承認する可能性がある。エレクトラムは軽量ビットコインウォレットで、外部サーバーに接続して取引履歴を取得し、取引をブロードキャストし、その他のネットワーク情報を得る。フルノードと違い、ブロックチェーン上のあらゆる処理を自前で行うわけではない。ドキュメントによると、確認済み取引はSPV(簡易支払検証)で検証するが、未確認取引の表示では従来、メインサーバーを信頼していた。攻撃者はこの差を突き、悪意あるサーバーを通じて送信済み取引を傍受し、ビットコインネットワークに届く前に改変した。正規取引のブロードキャストを妨害したうえで、受取アドレスを攻撃者管理のものに変えた代替取引をウォレットに送る。代替取引の署名は無効だが、脆弱なバージョンは履歴に表示する前に署名を検証しない。この欺瞞が危険になるのは、ユーザーがRBF(Replace-by-Fee)で手数料を引き上げる場合だ。RBFは未確認取引をより高い手数料の別取引で置き換えるビットコインの機能である。ユーザーが手数料変更を承認すると、攻撃者に支払う有効な取引に署名してしまう可能性がある。エレクトラムは、実際の攻撃でビットコイン損失が発生したことを確認した。開発者は非公開で報告された2件を公表している。10月11日、dannydeezyというユーザーが、エレクトラムの履歴に表示された取引が当初送信した支払いと一致しないと報告した。10月18日には別のユーザーRajuK12が手数料引き上げを試みるなかで資金を失い、開発者に連絡した。両件とも攻撃者管理の受取アドレスが関与し、標的の受取人のビットコインアドレス末尾4文字に一致するよう作られていた。2件目では不正取引の手数料がゼロで、開発者は被害者に手数料引き上げ操作をさせるための誘導とみている。1件目はTrezor端末2台を使う2-of-3マルチシグウォレットだった。正規取引は31入力1出力。調査では62件の署名すべてが元の支払いには有効だったが、差し替えられた取引には無効だった。偽取引はほぼ全ビットコインを類似アドレスへ移し、ごく一部だけをウォレットに戻した。元の取引は依然有効だが、公開ビットコインネットワークには入らなかった。エレクトラムは、現実に一部のサーバーがこの攻撃を行っていることを認めている。ただし、関与したサーバー数、盗まれた金額、追加の被害者が特定されたかは開示していない。エレクトラム4.8.3は悪意ある手数料引き上げ取引を遮断する。修正は10月23日にバージョン4.8.3へ含まれ、ダウンロード可能なバイナリは10月24日に提供された。開発者はコミット90fe308で、入力がユーザーのウォレットに管理される未確認取引の署名検証を導入した。エレクトラムはこれらの取引をローカル履歴に追加する前に署名を検証し、勧告で説明された不正な送金が正規取引として表示されるのを防ぐ。この更新でエレクトラムがビットコインフルノードになるわけではない。開発者によると、受信側の未確認取引は新たな署名検証の対象外で、確認済み支払いは従来の検証工程を続ける。4.8.3より前のバージョンを使うユーザーは、公式サイトから更新版をダウンロードすることが求められている。直ちに更新できない場合、署名前に手数料置き換え取引を含め、受取アドレス全体と金額を確認するよう開発者は勧めている。信頼できるサーバーだけに接続するユーザー、自前サーバーを含む、はこの特定の悪意あるサーバー攻撃の影響を受けない。エレクトラムへの過去の攻撃は、サーバーリスクが繰り返すことを示している。今回の事案は、外部サーバーへの依存を突く従来の試みの延長にある。2018年12月、crypto.newsは悪意あるサーバーが偽のソフトウェア更新通知をユーザーに表示したと報じた。当時推定損失は約100万ドル。2019年の別の悪意あるサーバー攻撃では、偽のウォレット更新とサービス妨害活動を悪用し、ユーザーを改ざんされたソフトウェアへ誘導した。これらの攻撃は欺瞞的なダウンロードに依存するが、今回修正された脆弱性は、正規のウォレット内で未確認取引情報を操作するものだ。2020年公開のエレクトラムサーバーに関するインタビュー記事は、取引履歴を外部インフラに依存するなど、軽量ウォレットのトレードオフを論じた。エレクトラムのドキュメントによると、クライアントは通常約10台のサーバーに接続するが、ウォレット履歴の取得と取引のブロードキャストには1台のメインサーバーを選ぶ。このメインサーバーは未確認取引に関して信頼される、とドキュメントは記している。