用語集 / プライバシーとセキュリティ
アドレスポイズニング
別名はAddress poisoningです。
- アドレスポイズニングとは?
- アドレスポイズニングとは、詐欺師が、読者がすでに使用しているアドレスに似せたアドレスから無価値な取引を送り付け、履歴から詐欺師のアドレスをコピーさせることを狙う窃取手口です。
狙われるのは習慣です。受取人に新しいアドレスを尋ねる代わりに、ウォレットの取引履歴をたどってアドレスを再利用してしまうことです。攻撃者は、先頭と末尾の数文字(ほとんどのウォレット画面やブロックエクスプローラーが表示するのはこれだけです)が一致する似たアドレスを総当たりで生成します。2024年5月、あるトレーダーは、1回の汚染された貼り付けによって、当時約6,800万ドル相当だった1,155のラップドビットコインを失いました。
仕組み
アドレスポイズニングには3つの段階があり、読者自身が関わるのは最後の段階だけです。
似たアドレスの生成。 ビットコインのアドレスは設計上長く、インターフェースは中央部分を隠します。bech32アドレスは32文字のアルファベットを使うため、対象の先頭4文字と末尾4文字に一致するアドレスを生成するには、およそ32の8乗、約1.1兆通りの候補を探索することになります。一般的なGPUを1台一晩動かせば到達でき、探索は極めて並列化しやすいため、レンタルしたマシンで何千もの対象を一度に汚染できます。攻撃者に必要なのは読者の鍵ではなく、読者が信頼しているアドレスに似た自分自身のアドレスだけです。
植え付ける。 ビットコインでは、攻撃者は似たアドレスから読者のアドレスへ、通常330または546サトシのダスト量を支払います。読者のウォレットは入金を記録し、送信元の欄には、読者が実際に使っているアドレスと一目では区別できないアドレスが表示されます。一部のキャンペーンは逆方向に汚染し、読者が自分の出金時に入力し続けている取引所の入金アドレスに似たアドレスから送金します。
待つ。 数週間後、読者は送金しようとします。履歴をスクロールし、「前回使ったアドレス」を見つけ、コピーし、貼り付け、確認します。取引は有効で、正しく署名されており、およそ10分後に承認された瞬間から取り消せません。詐欺部門は存在しません。プロトコルのレベルでは詐欺が発生していないからです。読者は、ネットワークに支払うよう指示した相手に、まさに支払ったのです。
経済性はチェーンによって異なります。Ethereumでは攻撃者がガス代だけでゼロ価値の送金を発行できるため、そこでの汚染はほぼ無料で、産業規模で行われます。ビットコインのダスト規則は試行ごとに少額の支払いを強制し、この方針が静かにスパム対策として働く数少ない場所の1つです。
ビットコインを購入するときにこれが重要な理由
新規購入者の人生で最も危険な1分間は、取引所から、設定したばかりのウォレットへ初めて出金するときです。
それは、2つのアプリ間で慣れない文字列をコピーしているときであり、まだアドレス帳がないときであり、中央の20文字が変わったことに最も気づきにくいときです。また、金額が保有資産の全体であることも多いときです。3つの管理策でリスクのほぼすべてを取り除けますが、いずれも注意深くあることには依存しません。
出金ホワイトリストを設定してください。Kraken、Coinbase、Binanceはいずれも、口座からの送金先として許可するアドレスを登録でき、ほとんどが新しく追加したアドレスが使えるようになるまでの遅延を設けています。何も盗まれていない平時に、一度落ち着いて設定します。ホワイトリストを設定した口座に汚染されたアドレスを貼り付けても、単に拒否されます。
アドレスは履歴ではなく受取側のデバイスから取得してください。ハードウェアウォレットは受取アドレスを生成し、自らの画面に表示します。TrezorとLedgerはいずれもその画面での確認を求め、コンピューター上のマルウェアや偽装された履歴はデバイスが表示する内容を変えられません。送金時も逆方向に同じことを行い、承認する前にデバイス画面で宛先を読んでください。
中央を確認してください。先頭4文字と末尾4文字を比較することは、まさにこの攻撃が通過するように作られた確認です。文字列の中央からの連続した文字を比較するか、さらに良いのは、読むのではなくQRコードをスキャンして全体を比較することです。
6,800万ドルの貼り付け
2024年5月3日、あるトレーダーは1,155のラップドビットコイン(当時およそ6,800万ドル相当)を移動しようと準備し、まず責任ある行動を取りました。少額のテスト送金です。
攻撃者はまさにそのパターンをメンプールで監視していました。数分以内に、正規の宛先の先頭と末尾の文字に一致するアドレスを作成し、そこからトークン送金を行ったため、汚染された項目が送信者の履歴の本物の項目のすぐ上に並びました。1,155コインの送金は攻撃者に渡りました。
結末は異例です。オンチェーンの調査者が攻撃者のインフラを追跡して公表し、およそ1週間後に資金は全額返還されました。この結果に再現性はありません。返還が起きたのは、金額が公のフォレンジックの注目を集めるのに十分大きく、攻撃者が圧力に耐える価値はないと判断したからであり、何らかのプロトコルや企業に支払いを取り消す手段があったからではありません。
アドレスポイズニングvsダスティング攻撃
アドレスポイズニングとダスティング攻撃はいずれも、予期しない少額の入金として現れ、それぞれ別の過ちを狙っています。ダスティング攻撃は、コイン自体を流通に戻し、読者の他のアウトプットと一緒に使わせることで、チェーン分析者に両者を1つのクラスターに統合させることを望みます。アドレスポイズニングはダストがどうなるかをまったく気にしません。ペイロードは、読者の履歴に残る送信元アドレスです。アウトプットを凍結すれば最初の攻撃からは守られますが、2つ目には何の効果もありません。だからこそ、ここでの本当の対策は、取引履歴からアドレスを取得しないことです。
アドレスポイズニングvsクリップボードマルウェア
どちらの攻撃も、ビットコインが意図しない文字列へ送られることで終わり、保管の連鎖の異なる部分を攻撃します。クリップボードマルウェアは読者のマシン上で動作するコードを必要とし、コピーと貼り付けの間でアドレスをすり替えるため、読者が見たアドレスは正しく、送金先のアドレスは正しくありませんでした。アドレスポイズニングは読者のデバイスへのアクセスをまったく必要としません。誤ったアドレスは、誰でも行える支払いによって、読者のウォレット自体の履歴にすでに置かれていたのです。そのためポイズニングはウイルス対策ソフトでは防げず、読者のアドレスを1つ知っている人なら誰でも到達できます。