アドレスポイズニングで偽トークンが送信されたように見える原因と対処法

あなたのウォレットが乗っ取られたわけではない。これはアドレスポイズニングの一種で、攻撃者が細工したトークンコントラクトによって、Etherscan上であたかもあなたのアドレスから送金が行われたかのように偽装しているだけだ。実際の資産は動いていない。

なぜ自分のウォレットから偽のトークンが送信されたように見えるのか

なぜ自分のウォレットから偽のトークンが送信されたように見えるのか

Etherscanなどのブロックチェーンエクスプローラは、トランザクションの「送信者」をスマートコントラクトが発行するイベントログから判断している。攻撃者はこの仕組みを悪用し、自らがデプロイした偽トークンのコントラクトに「被害者のアドレスから送金した」という虚偽のイベントを記録させる。その結果、エクスプローラ上では被害者が自発的に送金したかのように表示される。

ポイントは、この偽の送金が実際のトランザクション(イーサリアムネットワーク上の署名済みトランザクション)ではないことだ。あなたの秘密鍵は一切使われていない。攻撃者は単に、自分が完全に制御できる偽トークンのコントラクト内部で「Transfer」イベントを好きなように発行し、送信者としてあなたのアドレスを指定しているに過ぎない。

要するに、エクスプローラは「このコントラクトがこう言っている」という情報を表示しているだけで、その内容が真実かどうかまでは検証していない。攻撃者はその盲点を突いている。

アドレスポイズニングの手口と偽装のカラクリ

アドレスポイズニングの手口と偽装のカラクリ

アドレスポイズニングとは、攻撃者が被害者の取引履歴を監視し、被害者が直近でやり取りしたアドレスと先頭・末尾の数文字が一致する偽のアドレスを生成する攻撃だ。その偽アドレスから被害者に対して少額の偽トークン(またはゼロ価値のトークン)を送りつけ、取引履歴に紛れ込ませる。被害者が次回送金する際、うっかりその偽アドレスをコピーしてしまうことを狙っている。

今回のケースでは、攻撃者はさらに一歩進んでいる。被害者が本物のUSDTを送金した直後に、まったく同じ金額の偽USDTが、被害者のアドレスから送信先を模倣したアドレスへ送られたように見せかけている。これは以下の仕組みで成立する。

  1. 攻撃者は被害者の送金を常時監視しているボットを稼働させている
  2. 被害者がUSDTを送ると、直後に攻撃者が被害者のアドレスを「送信者」、模倣アドレスを「受信者」とする偽のTransferイベントを発行するトランザクションを自ら実行する
  3. このトランザクションの実体は、攻撃者が偽トークンのコントラクトを呼び出しているだけであり、被害者の秘密鍵は一切使用されていない
  4. EtherscanはTransferイベントの内容をそのまま表示するため、一見すると被害者が偽トークンを送信したように見える

この攻撃の目的は、被害者をさらに混乱させ、誤ったアドレスへの送金を誘発することにある。送信履歴に「自分が同じ金額を送った」という偽の記録が残ることで、被害者が「このアドレスは正しい」と勘違いしやすくなる。

この攻撃で資産が盗まれる可能性はあるのか

この攻撃で資産が盗まれる可能性はあるのか

偽トークンの送信が表示されること自体で、あなたのETHや他のトークンが直接盗まれることはない。秘密鍵が漏洩していない限り、攻撃者はあなたのウォレットを操作できない。

しかし、アドレスポイズニングの最終的な目的は「被害者が誤って偽のアドレスに送金すること」だ。偽の送金履歴に惑わされて、本物の送金時に模倣アドレスをコピーしてしまうと、その資産は攻撃者の手に渡り、取り戻すことは極めて難しい。

また、偽トークンの中には、被害者に「承認」操作をさせることを狙う悪質なものも存在する。見慣れないトークンを売却しようとしたり、怪しいサイトで操作しようとすると、結果的にウォレットの資産を抜き取られるリスクがある。偽トークン自体に価値はなく、インタラクションしないことが鉄則だ。

偽のトランザクションへの具体的な対処法

偽のトランザクションへの具体的な対処法

偽のトークンや取引履歴は完全に無視する

エクスプローラ上に心当たりのないトークンや送金履歴が表示されていても、それに対して何か操作をする必要は一切ない。慌ててトークンを移動させようとしたり、消そうとしないことだ。操作しない限り、被害は発生しない。

ウォレットアプリで不明なトークンを非表示にする

MetaMaskなどのウォレットアプリでは、スパムトークンを手動で非表示にできる。トークン一覧から該当のトークンを選択し「非表示にする」を選べば、少なくとも日常的な表示からは消える。

Ledger Liveでも、不明なトークンは「アカウントに追加」しない限り表示されない仕様になっている。誤って追加してしまった場合は、設定から非表示に変更する。

Etherscan上でスパムトークンを非表示にする

Etherscanのアカウント機能を利用している場合、トークンドロップダウンから「非表示」を選択することで、個人のダッシュボード上では表示されないようにできる。

アドレスポイズニングを未然に防ぐための習慣

アドレスポイズニングを未然に防ぐための習慣

最大の防御策は、送金時にアドレスを「一部分」ではなく「全体」で確認することだ。最初と最後の数文字だけを見て判断しない。特にMetaMaskでは、アドレス確認画面で全文字を表示させ、ブックマークやアドレス帳を活用する。

また、ENS(イーサリアムネームサービス)のような人間が読み取れるドメイン名が設定されているアドレスを利用するのも有効だ。攻撃者がまったく同じENS名を取得することは不可能に近いため、アドレス文字列の類似性に惑わされるリスクを大幅に減らせる。

さらに、ハードウェアウォレットを使っている場合は、送金前にデバイス本体の画面で受信アドレスを必ず確認する習慣をつける。ソフトウェア上の表示が改ざんされていても、ハードウェアウォレットの画面は独立しているため、最終的な安全確認ができる。

よくある質問

偽の送金履歴が表示されているが、秘密鍵は漏れているのか

漏れていない可能性が高い。表示されているのはコントラクト内部で発行された偽のイベントであり、実際の署名は行われていない。Etherscan上でそのトランザクションの詳細を確認し、ガス代をあなたが支払っていなければ、あなたの秘密鍵は使われていない証拠だ。

なぜ攻撃者はわざわざ同じ金額を使うのか

被害者が「これだけの金額を送ったのは間違いなく自分だ」と錯覚しやすくするためだ。金額が一致していると、本来の取引と偽の取引を見分けるのが非常に難しくなり、結果的に誤送金の確率が上がる。

誤って偽のアドレスに送金してしまった場合、取り戻せるか

ブロックチェーンの取引は不可逆だ。送金先が攻撃者のアドレスであれば、資産を取り戻すことは事実上不可能に近い。可能な限り早く、残りの資産を新しいウォレットに移動させ、二度と同じアドレスを使わないようにするしかない。

スパムトークンが勝手に増えていくのは防げるのか

根本的に防ぐことは難しい。あなたのアドレスは公開情報であり、誰でもトークンを送りつけられるからだ。ただし、取引に使うアドレスとは別に長期保管用のアドレスを用意し、公開するアドレスを使い分ける習慣をつければ、日常的なスパムの目障りさを軽減できる。

この記事のポイント

  • 自分のウォレットから偽トークンが送信されたように見えるのは、攻撃者が細工したコントラクトによる偽装表示
  • 実際の資産は動いておらず、秘密鍵の漏洩もない
  • 偽の履歴やトークンには一切インタラクションしない
  • 送金時はアドレス全体を確認し、ENSやアドレス帳を活用する
  • 誤送金した場合の回復は極めて困難であり、日頃の確認習慣が最大の防御
共有:

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)