ビットコインウォレットElectrumでは、4.8.3より前のバージョンで、悪意あるサーバーが未承認取引を偽の内容で表示し、手数料を引き上げた利用者の送金先をすり替える手口が報告されています。未承認取引の表示と署名が結び付く仕組み、4.8.3で追加されたとされる対策を整理します。
- Electrum 4.8.3未満で偽の未承認取引が表示されたとされます。
- Electrum 4.8.3未満では、Replace-by-Fee操作で攻撃者宛て取引への署名が成立するおそれ。
- Electrumで10月18日に手数料引き上げ後の資金損失が報告されました。
- Electrum 4.8.3の署名検証追加と送付先・金額の確認が焦点。
悪意あるサーバーによる偽取引の表示
ビットコインウォレットのElectrumで、悪意あるサーバーが未承認取引を偽の内容へ差し替え、利用者の手数料引き上げ操作を利用する攻撃が報告されています。少なくとも1人の利用者が、この手口で資金を失ったとされています。
Electrumは、取引履歴の取得や取引の送信に外部サーバーを利用するウォレットです。問題があったバージョンでは、ネットワークでまだ確定していない取引について、サーバーから伝えられた内容の署名を検証していなかったとされています。
攻撃者が管理するサーバーは、正規の送金がビットコインネットワークへ届く前に、ウォレットの履歴上で送付先を攻撃者のアドレスへ替えた偽取引を表示させます。この偽取引は未承認のまま表示されるため、利用者が通常の送金遅延と受け取る余地がありました。
手数料引き上げで成立する送金先のすり替え
Replace-by-Feeは、未承認の取引を、より高い手数料を付けた取引で置き換える仕組みです。利用者が表示された偽取引に対してこの操作を選ぶと、Electrumがその取引へ有効な署名を付け、攻撃者宛ての送金が成立する流れだったとされています。
報告された事例では、偽取引に手数料が設定されておらず、取引が停滞しているように見せる手口が使われました。また、攻撃者の受取アドレスの末尾4文字を正規の送付先と一致させ、短時間の確認では差し替えに気付きにくくする方法も示されています。
10月11日には、2台のTrezorハードウェアウォレットを使う2-of-3のマルチシグウォレットで、利用者が履歴上の不審な出金を確認した事例が伝えられています。この事例では資金損失は報告されていません。10月18日には、差し替えられた取引の手数料を引き上げた後に資金を失った事例が報告されました。
4.8.3で追加された署名検証と確認点
Electrumの4.8.3は10月24日に公開され、ウォレット自身のコインを使う未承認取引について、署名を検証してから履歴へ取り込む対策が追加されたとされています。4.8.3より前のバージョンは、悪意あるサーバーへ接続した場合にこの手口の影響を受ける可能性があるとされています。
対策としては、4.8.3への更新に加え、送金や手数料引き上げの署名前に、送付先アドレスと金額を確認することが示されています。信頼するサーバーだけに接続していた利用者や、自身で運用するサーバーを利用していた利用者は、この攻撃の対象外とされています。被害額と悪用されたサーバーは明らかにされていません。
