本文へスキップ
2FAAuth.Work
言語: 日本語
9分で読める 2faauth.work 著 編集方針

フィッシングはどのように2FAコードを盗むのか——そしてその防ぎ方

フィッシングは進化し、ワンタイムコードそのものを狙うようになりました。リアルタイムフィッシングと偽ログインページの仕組み、そして実際に効果のある防御策を解説します。

なぜ今、2FAコードが狙われるのか

長年、セキュリティのアドバイスは一言に集約されてきました。強力で一意なパスワードを使うこと。その助言は今も重要ですが、それだけでは足りなくなりました。二要素認証が銀行、メール、SNSアカウントに広がるにつれ、攻撃者は壁にぶつかりました。盗んだパスワードだけでは、もはや扉は開かなくなったのです。

そこで攻撃者は手を変えました。パスワードを攻める代わりに、今では第二要素そのものを狙います。テキストメッセージ、認証アプリ、プッシュ通知で届くワンタイムコードです。

コードが新たな狙い目

こうしたコードは使い捨てに見えます。6桁の数字、有効期間は数秒。しかし、その数秒の間、コードはパスワードと同じ力を持ちます。攻撃者がコードを「ハッキング」することはまれです。偽のログインページ、もっともらしい電話、あるいは「今受け取った番号を確認して」と促す差し迫ったメッセージで、あなたを騙してコードを渡させるのです。

なぜ今も通用するのか

フィッシングは技術を破るのではなく、人間の習慣を突くことで成功します。よく知るブランドへの信頼、アカウントの問題への不安、急いで行動しなければという焦り。これが機能するのに技術的な欠陥は必要ありません。だからこそ、なくならないのです。この変化を理解することが、封じるための第一歩です。

偽ログインページ:定番の手口

最も古い手口は今も最も一般的です。信頼しているサイトとそっくりに見えるウェブサイトです。攻撃者は本物のログイン画面をコピーし——同じロゴ、同じ配色、同じ入力欄——紛らわしいドメインでホストします。こうしたアドレスは、一見して見落としやすい細部に依存しています。入れ替わった一文字、「secure」や「login」といった余計な単語、あるいは「.com」と思い込んでいる部分の変わった末尾などです。

そのページは本物のように振る舞います。それこそが問題です。ユーザー名とパスワードを入力すると、偽サイトは本物のサイトと同じように第二段階を求め、あなたは認証アプリやSMSのコードを入力します。

その瞬間、攻撃者はすべてを手にします。入力情報がサーバーに届いた直後、攻撃者は本物のサイトを開き、あなたのパスワードと取得したばかりのコードでサインインします。通常これは数秒以内に起こり、30秒のコードが失効するはるか前に完了します。本物のサイトから見れば、まったく普通のログインです。

その後、偽ページはエラー表示や「セッションが期限切れです」のメッセージを出すか、単にリダイレクトします——ログインが密かに失敗した理由を問わせないための何かを。

リアルタイムフィッシング:中間者(AiTM)攻撃

偽のログインページは巧妙化しています。最も危険な手口は、パスワードを収集するだけでは終わりません —— その場ですぐに使い切ります。

リレーの仕組み

中間者(AiTM)攻撃は、あなたと正規のウェブサイトの間に割り込むプロキシサイトを使用します。リンクをクリックすると、ほぼ完璧に再現されたログインページに着地し、認証情報を入力します。プロキシはそれを正規サイトへ転送し、応答をすべて中継して返します —— そのため、ページは本物とまったく同じように動作します。

次に2FAコードを入力します。プロキシはそれをリアルタイムで渡し、正規サイトは受け入れ、ログインが完了します —— ただし、攻撃者側でです。

短いコード有効期限が救いにならない理由

30秒のコード有効期間は、攻撃者がまずパスワードを見て、後からコードを見るという前提に基づいています。AiTMはその時間差を消し去ります。コードは、まだ有効なうちに、入力した瞬間に使用されるのです。有効期限は無意味になります。

本命の狙い:あなたのセッション

ログイン後、正規サイトはセッションCookieを攻撃者のブラウザに渡します —— あなたのブラウザではありません。攻撃者は認証済みセッションを握り、あなたのメールを読んだり、他のパスワードをリセットしたり、密かにログインし続けたりできます。パスワードとコードは盗まれたのではありません。生きたまま「借りられた」のです。それがさらに厄介です。

ログインフォームを超えるソーシャルエンジニアリング

すべての攻撃が偽サイトを使うわけではありません。技術を完全に無視して、電話を手にしている本人を狙う盗賊もいます。

ビッシング: コードを聞き出す電話

「ビッシング」は電話によるフィッシングです。相手は銀行、勤務先、サポートチームを名乗り、不審な取引やアカウント凍結といった緊急性をでっち上げて、「本人確認のため」と認証コードを読み上げるよう求めます。正規のサービスがコードを音声で聞き出すことは決してありません。電話中の犯人はまさにログイン中であり、あなたのコードが最後に必要なピースなのです。

プッシュ通知疲れ

アプリが承認プロンプトを送る場合、パスワードを既に知る攻撃者が午前2時に「ログインを承認しますか?」を連打し、止めさせるためにAcceptをタップさせるのを狙います。疲れた1タップでアカウントを渡すことになります。誤承認が多いため、番号マッチング(画面に表示された数字の入力を必須にする)を追加するアプリもあります。

SIMスワップとSMS傍受

SMSで送られるコードは電話番号に紐づいており、電話番号は盗まれます。SIMスワップでは詐欺師がキャリアを説得して番号を自分のSIMカードに移行させ、コードを直接受信します。SMSは最も弱い2FAチャネルです。基盤ではなくフォールバックとして扱うべきです。

実際にコード窃取を防げる対策

パスキーとセキュリティキー: 設計段階でフィッシング耐性を備える

パスキーとFIDO2ハードウェアキーは、登録元の正確なウェブサイトに暗号学的に紐付けされています。これは「オリジンバインディング」と呼ばれる特性です。署名を行う前に、デバイスは本物のドメインと通信していることを検証します。偽のログインページでは、リアルタイムプロキシを動かしているものであっても、キーは単に拒否します。盗むものも、リプレイするものも何もなく、ログインは自然に失敗します。ここで挙げた対策の中で、あなたが何かに気づく必要なくフィッシングを自動的に阻止できる唯一の防御がこれです。

SMSより認証アプリを優先する

認証アプリのワンタイムコードはSMSコードに勝ります。SMSコードはSIMスワップで傍受されたり、あなたに届く前に攻撃者の中継へ転送されたりする恐れがあります。アプリのコードはデバイス内にとどまります。ただし、根気強いフィッシャーはコードを読み上げるよう誘導できるため、コードの要求はすべて疑ってください。メール、銀行、パスワードマネージャーのアカウントには、最強の選択肢としてFIDO2ハードウェアキーを追加してください。

パスワードマネージャーを「カナリア」として使う

パスワードマネージャーは、保存された正確なドメインでのみ認証情報を自動入力します。類似サイトでは何も入力されません。自動入力されないことは危険信号と捉え、手動で入力する前にアドレスバーを確認してください。

コードを安全に保つための日常の習慣

どんなに強固な防御も、日常の習慣がおろそかになると破綻します。いくつかの習慣だけで、残りのほとんどの隙間を塞げます。

コードを絶対に共有しない。 正規のサービス、銀行、サポート担当者が、電話・メール・チャットで2FAコード、パスワード、「確認番号」を尋ねることは決してありません。尋ねてくる者は攻撃者です。コードは鍵であり、確認のためのパスワードではありません。

入力先を確認する。 認証情報を入力する前に、ページのロゴだけでなく、ブラウザのアドレスバーに表示された完全なアドレスを確認しましょう。さらに良いのは、確認自体を省くことです。重要なサイトはブックマークを使うか、アドレスを自分で入力しましょう。メールやメッセージ内のリンクこそが、偽ページへの流入経路です。

不審なページにコードを入力してしまった場合:

  1. そのアカウントのパスワードを直ちに変更してください。
  2. アカウントのセキュリティ設定で、他のすべてのセッションからサインアウトしてください。
  3. 正式なサポート窓口からプロバイダーに連絡し、報告してください。
  4. 同じパスワードを他でも使い回している場合は、そこでも変更してください。

スピードが重要です — 盗まれたコードは通常、数分以内に使用されます。

全6セクションを貫く原則はシンプルです。攻撃者がコードを狙うのは、コードがアカウントを解錠するからです。コードは自分だけのものにし、入力先を確認し、サービスがパスキーやハードウェアキーを提供していればそちらを優先しましょう。それができれば、フィッシングに盗めるものはほとんど残りません。

このガイドを共有

9分で読める

2FAの歴史:ハードウェアトークンからパスキーまで

クリップ式ハードウェアトークンやSMSコードから、今日のフィッシング耐性のあるパスキーへ。二要素認証がどのように進化し、なぜ各段階が起きたのかを解説します。

続きを読む