暗号通貨アドレスポイズニング攻撃:ウォレットアドレス詐欺の見分け方と防御策
暗号通貨アドレスポイズニングの3つの一般的な手口(ゼロバリュー送金、ダスト送金、偽トークン送金)を詳しく解説し、偽造された類似アドレスの見分け方とデジタル資産を守るための実践的な対策を紹介します。
2024年5月、あるユーザーが日常的な暗号通貨の送金を行っていました。いつもの習慣でウォレットの取引履歴を開き、「完全に正しく見える」アドレスをコピーしました。数分後、71万ドル相当のWBTCが詐欺師によって巧妙に偽造されたアドレスに送金されました。最初の6文字と最後の6文字は本物のアドレスと完全に一致していましたが、間の文字は全く異なるものでした。ユーザーが異変に気づいた時には、資金はとうに取り戻せない状態でした。
これは特殊なケースではありません。オンチェーンデータの分析によると、2024年だけでアドレスポイズニング攻撃による被害額は数億ドルを超えています。この攻撃手法がこれほど有効な理由は、技術的な脆弱性を一切必要としないことにあります。人間の操作習慣を悪用しているのです。
アドレスポイズニング攻撃とは
アドレスポイズニング(Crypto Address Poisoning)は、暗号通貨ユーザーの取引習慣を狙ったソーシャルエンジニアリング攻撃です。攻撃者はウォレットをハッキングしたり秘密鍵を盗んだりしません。代わりに、特別に作成された取引をウォレットに送信し、普段使用しているアドレスに酷似した偽アドレスを取引履歴に「注入」するのです。
仕組みは非常にシンプルです:
- オンチェーン取引の監視:攻撃者はブロックチェーンエクスプローラーや専用スクリプトを使い、アクティブなウォレット間の高額送金を監視します。
- 類似アドレスの生成:アドレス生成ツールを使って、ターゲットアドレスの先頭と末尾の文字が高い精度で一致する新しいアドレスを作成します。
- 取引履歴の汚染:偽アドレスからターゲットウォレットにゼロ値または極小額の取引を送信し、ウォレットの取引履歴に表示させます。
- 被害者がかかるのを待つ:ユーザーが次に送金する際、アドレス帳からではなく取引履歴からアドレスをコピーすると、攻撃者のアドレスを誤ってコピーする可能性があります。
重要ポイント:この攻撃はウォレット内の資産を一切危険にさらしません。資金、秘密鍵、シードフレーズは安全なままです。攻撃者はあなたがアドレスをコピーする際に、全文字を注意深く確認しないことに賭けているのです。
攻撃者はどのように類似アドレスを生成するのか
イーサリアムのアドレスは42文字(「0x」プレフィックスを含む)、ビットコインのアドレスは通常26〜35文字です。ほとんどのユーザーはアドレスを確認する際、最初の数文字と最後の数文字しか見ません。攻撃者はまさにこの行動を悪用しています。
Vanity Addressジェネレーター
攻撃者はVanity Addressジェネレーターと呼ばれるツールを使用し、特定のプレフィックスとサフィックスの条件を満たす秘密鍵とアドレスをブルートフォースで探索します。例:
- 本物のアドレス:
0x1a2B...3c4D(中間の30文字を省略) - 偽のアドレス:
0x1a2B...3c4D(最初の4文字と最後の4文字が完全一致、中間は異なる)
一致する文字数が多いほど生成に時間がかかりますが、コストは低いままです:
| 一致文字数 | 推定生成時間 | リスクレベル |
|---|---|---|
| 先頭4文字+末尾4文字 | 数分 | 極めて高い |
| 先頭6文字+末尾6文字 | 数時間 | 高い |
| 先頭8文字+末尾8文字 | 数日〜数週間 | 中程度 |
現在のGPU計算能力をもってすれば、先頭6文字と末尾6文字の一致は攻撃者にとってほぼコストゼロです。アドレスの先頭と末尾だけしか確認しなければ、本物と偽物を区別することはほぼ不可能です。
3つの一般的なアドレスポイズニング手法
1. ゼロバリュートークン送金(Zero-value Transfer)
現在最も普及し、最もステルス性の高いポイズニング手法です。攻撃者はERC-20トークンコントラクトのtransferFrom関数の特性を利用し、トークンを一切保有せずにゼロバリュー送金を実行します。
技術的説明:ERC-20標準では、transferFrom関数は送金額がゼロの場合、残高や承認を確認しません。そのため、誰でも任意のアドレスの名前でゼロバリュー送金を実行でき、少額のガス代を支払うだけで済みます。
実際の影響:ウォレットの取引履歴に突然「あなたが[あるアドレス]に0 USDTを送金」という記録が表示されます。そのアドレスは実際の送金先と先頭・末尾の文字が同じですが、実際には攻撃者のアドレスです。
2023年、ゼロバリュー送金攻撃はピーク時にイーサリアムネットワーク上の全取引の約10%を占め、オンチェーンデータとユーザーのウォレットインターフェースを深刻に汚染しました。
2. ダスト送金(Dust Transfer)
ゼロバリュー送金と似ていますが、攻撃者は極めて少額の実際のトークン(通常0.01ドル未満)をターゲットアドレスに送信します。
特徴:
- 送金額は少額だがゼロではないため、すべてのウォレットで正常に表示される
- 取引は完全に正当であり、簡単にフィルタリングできない
- 攻撃者は偽の類似アドレスから送金し、「最近の受取」リストに表示させる
- 被害者は既知の取引相手からの送金と誤認する可能性がある
典型的なシナリオ:普段使っている取引所の出金アドレスに見える送信元から0.001 USDTが届く。次に取引所に入金する際、最近の取引から「同じに見える」アドレスをコピーするが、資金は攻撃者のウォレットに送られる。
3. 偽トークン送金(Fake Token Transfer)
さらに巧妙な手法です。攻撃者は有名なトークンと同名の独自ERC-20コントラクトをデプロイし、そのフェイクコントラクトを使ってターゲットにトークンを送信します。
仕組み:
- 攻撃者が「USDT」や「USDC」という名前の偽トークンコントラクトを作成
- 偽の類似アドレスからターゲットに偽トークンを送信
- 取引履歴上では通常のUSDT/USDC送金に見える
- トークンコントラクトアドレスを慎重に確認して初めて、完全に異なる偽コントラクトだと判明する
影響:偽トークン送金は実際の送金額を表示するため、ゼロバリュー送金よりも視覚的に騙されやすくなります。
アドレスポイズニング攻撃の見分け方
常にアドレス全体を確認する
これが最も重要かつ効果的な防御策です。 最初と最後の数文字だけを見てはいけません。送金を確認する前に、少なくとも先頭10文字と末尾10文字を確認してください。理想的には42文字すべてを確認します。
- 間違った方法:
0x1a2B...3c4Dを見てアドレスが正しいと判断する - 正しい方法:
0x1a2B7E8f9D...5A6b3c4Dの各セグメントを一文字ずつ比較する
取引履歴からアドレスをコピーしない
いくら強調しても足りません。ウォレットの取引履歴から新しい送金のためにアドレスをコピーしないでください。 取引履歴はポイズニング攻撃の主戦場です。
正しいアドレスの情報源:
- ウォレット内蔵のアドレス帳・連絡先機能
- 取引所公式サイトの入金アドレスページ(毎回新しく取得する)
- 以前に検証済みで安全に保存されたアドレス記録
少額の不審な入金に警戒する
見覚えのないアドレスから突然、極少額のトークン(特にUSDTやUSDCなどのステーブルコイン)を受け取り、そのアドレスがよく使う取引アドレスに酷似している場合、ほぼ間違いなくポイズニング攻撃です。
ScamLensのアドレス検査ツールを使う
高額送金の前に、ScamLens暗号通貨アドレス検査ツールで送金先アドレスの安全状態を確認できます。ScamLensはGoPlus、Etherscan、OpenSanctionsなどの複数のセキュリティデータベースを統合しています。
さらに、ScamLensは専用のアドレスポイズニング検出機能も提供しており、アドレスがVanity Addressジェネレーターで作成されたポイズニングアドレスかどうかを分析できます。
包括的な防御策
ウォレットのアドレス帳機能を使う
主要なウォレットのほぼすべてにアドレス帳(連絡先)機能があります。初めて新しいアドレスに送金した際、正確であることを確認した上で、わかりやすいラベル付きでアドレス帳に保存してください。以降の送金はすべてアドレス帳から実行します。
ホワイトリスト機能を有効にする
Binance、OKX、Coinbaseなどの主要取引所は出金ホワイトリスト機能を提供しています:
- 有効化後、事前承認されたアドレスにのみ出金可能
- 新しいアドレスの追加にはメールと2FA認証、24時間のクールダウン期間が必要
- アカウントが侵害されても、攻撃者は未知のアドレスにすぐに出金できない
テスト送金を行う
新しいアドレスへの高額送金前に、まず極少額(例:1 USDT)をテストとして送信してください。受取確認後に本送金を行います。
ハードウェアウォレットによる追加保護
LedgerやTrezorなどのハードウェアウォレットを使用している場合、トランザクション確認時にハードウェアウォレットの画面上でアドレス全体を一文字ずつ確認してください。
ENSなどのネームサービスを利用する
イーサリアム・ネーム・サービス(ENS)により、42文字の複雑なアドレスを読みやすい名前(例:alice.eth)にマッピングできます。ただし、解決されたアドレスが正しいか必ず確認してください。
主要ウォレットのセキュリティ機能
MetaMask
- 2023年末より取引履歴で疑わしいゼロバリュー送金を自動的にフラグ表示
- ユーザーの過去の取引アドレスに類似した新アドレスに警告を表示
- 設定で「ゼロバリュートークン送金を非表示」機能を有効化可能
Trust Wallet
- 取引履歴フィルタリング機能内蔵で、疑わしい少額・ゼロバリュー送金を非表示にできる
- 既知の悪意あるコントラクトからの偽トークン送金をフラグ表示・フィルタリング
Etherscan
- ゼロバリュー送金と既知のポイズニング取引に**「Warning: Address Poisoning」**ラベルを追加
- ゼロバリュー送金の非表示フィルターオプション
- 先頭・末尾の文字が類似した疑わしいアドレスをハイライト表示
OKX Web3ウォレット
- アドレスリスク検出APIを統合し、受取アドレス入力時に自動セキュリティチェック
- 高リスクアドレスに対して目立つ警告を表示
注意:ウォレットにこれらの保護機能があっても、完全には頼らないでください。正しい操作習慣を身につけることが最も根本的な防御線です。
被害に遭った場合の対処法
1. 被害範囲を確認する
- ブロックチェーンエクスプローラー(Etherscan、BscScanなど)で取引詳細を確認
- 資金の流れを追跡
- 関連するすべてのトランザクションハッシュを記録
2. 取引所に直ちに連絡する
資金が中央集権型取引所のアドレスに送られた場合、直ちにサポートとセキュリティチームに連絡し、完全な取引証拠を提供して資金の凍結を要請してください。
3. ScamLensの資金追跡を利用する
ScamLens暗号資金追跡サービスは、イーサリアム、BSC、Tronを含む18のブロックチェーンに対応した専門的なオンチェーン資金フロー分析を提供し、法執行機関に提出可能なフォレンジックレポートを生成します。
4. コミュニティに報告する
- ScamLensで悪意あるアドレスを報告
- 関連コミュニティ(Twitter/X、Discord、Telegram)で警告を投稿
- ウォレット開発チームにアドレスを報告
5. 法執行機関に届け出る
- 所轄のサイバー犯罪部門に届け出る
- 完全な証拠チェーンを準備する:取引記録のスクリーンショット、ブロックチェーンエクスプローラーのリンク、資金フロー図
まとめ
アドレスポイズニングは、人間の操作習慣を悪用した、技術コストが低く高リターンの詐欺です。防御に深い技術知識は不要で、いくつかのシンプルだが重要な操作習慣を身につけるだけです:
- 取引履歴からアドレスをコピーしない — ポイズニング攻撃の唯一の入口
- 検証済みアドレスをアドレス帳に保存する — すべての送金をアドレス帳から実行
- 高額送金前にテスト送金を行う — 追加のガス代は全額損失より遥かに安い
- 先頭と末尾だけでなくアドレス全体を確認する — 少なくとも先頭10文字と末尾10文字
- 取引所のホワイトリスト機能を有効にする — 未知のアドレスへの送金可能性をシステム的に排除
- セキュリティツールを活用する — ScamLensで送金前にアドレスの安全性をすばやく確認
暗号通貨の世界では、すべての取引は不可逆です。アドレスを慎重に確認する30秒が、数万ドルから数十万ドルの損失を防ぐかもしれません。良いセキュリティ習慣は負担ではなく、分散型世界における最も重要なお守りです。
関連記事
Chromeウェブストアで入手可能。全Chromiumブラウザ対応。