/ SECURITY INSIGHTS

パスキーによるフィッシング対策と、侵入後に被害を広げない設計

執筆佐川 悠希コンサルタント

10月14日、ビットフォレスト社は、国内のWebサイトでAIエージェントによるものと見られる攻撃を観測したと公表しました[1]。攻撃元の1つは8時間弱にわたり、ツールを切り替えながら、脆弱性の探索やログインの総当たりを続けました。不正アクセスと情報の漏えいが続くなか、IDとパスワードの組は攻撃者の手元にあると考えるべきです。

renueは、AIエージェントによる攻撃に備えて、IDを中心に守る設計にするべきだと考えています。

  • ログインの認証は、それ自体がMFAであり、フィッシングにも強いパスキーにする
  • 正規にログインした利用者でも、他の利用者のデータに触れられない作りにする
  • 認証を固めても侵入は防ぎきれないため、セッションの管理、異常の検知とIDの停止、鍵をなくしたときの再登録の手順を、侵入される前提で設計する

MFAを有効にするだけでアカウント侵害のリスクが99%以上下がるという研究があります(基本方針のAppendix Dにも記載しています)。本記事では、どの方式のMFAならAIエージェントによる攻撃にも効くのか、認証を強化した後に何を設計するべきかを、国内の観測と、証券口座の被害の推移をもとにまとめました。

何が観測されたか

ビットフォレスト社は、10月10日の夜から14日までに、AIエージェントによる攻撃と見られるアクセスを3つのIPアドレスから観測しました[1]。そのうち1つは8時間弱にわたり多くのツールを切り替え、最大で約1万件の高速なスキャン、約850件の既知の脆弱性を狙う攻撃、約250件のログインの総当たりを行いました。ビットフォレスト社は、ほぼすべての攻撃者がAIエージェントを使う段階に入ったとしたうえで、対策の基本は変わらないと述べています。

10月16日には、NRIセキュアテクノロジーズ社が、同じ送信元から複数の組織のAPIへの約3万件の攻撃と、攻撃用のアカウントを作ってログインした後にAPIを探る動きを観測したと公表しました[2]。この攻撃にAIが使われたかどうかは、NRIセキュアも確認できていません。

2つの観測からは、攻撃者がログインの認証と、ログインした後の操作の両方を狙っていると読み取れます。攻撃者はログインの画面でパスワードを試し、自分で作ったアカウントでログインした後は、他の利用者のデータを取り出せないかを探っています。

パスワードが破られると、SMSや認証アプリのMFAは実質1要素になる

攻撃者がIDとパスワードを持っている前提では、MFAで残る守りは2つ目の要素だけです。SMSで届くコードや認証アプリ(TOTP)が表示するコードは、利用者が偽のサイトに入力すれば、攻撃者がそのまま本物のサイトに入力できます。スマートフォンへのプッシュ通知も、攻撃者が本物のサイトでログインを始めた直後に利用者が承認すれば、攻撃者のログインが通ります。偽のサイトで受け取ったコードをその場で本物のサイトに中継するリアルタイム型のフィッシングは、こうした方式のMFAを突破するために広く使われている手口です。

攻撃者がパスワードを持っていなくても、失敗できる回数に上限のないシステムでは、パスワードもMFAのコードも総当たりで当てられます。6桁のコードは100万通りしかなく、コードを再送するたびや画面を読み込み直すたびに失敗の回数が0に戻る作りであれば、攻撃者は実質的に何度でも試せます。米国の国立標準技術研究所(NIST)は、認証のガイドラインSP 800-63B-4で、1つのアカウントで同じ認証器を使った連続した失敗を100回以内に制限し、超えたらその認証器を無効にするよう求めています[3]。AIエージェントは人が途中でやめる単調な試行を休まず続けられるため、失敗の回数をセッションや送ったコードごとではなく、アカウントごとに数えて止める作りにするべきです。

認証の強度を示すAAL

NISTは同じガイドラインで、認証の要素を知識、所持、生体の3種類とし、種類の異なる2つ以上の要素を求める認証をMFA(Multi-Factor Authentication、多要素認証)と定義しています[3]。パスキーは、鍵を保管した端末を持っていること(所持)と、端末の生体認証(生体)かPIN(知識)を1回の操作で確かめるため、それ自体がMFAです。

そのうえでNISTは、認証の強度をAAL(Authenticator Assurance Level、認証の保証レベル)という3段階で定めています[3]。

水準NISTが求めること認証方式の例
(AAL0)※
  • 認証の方式として認めていない
  • メールで届くコードだけの認証
  • 秘密の質問(初めて飼ったペットの名前など)
AAL1
  • 1つの要素だけでもよい
  • ID/パスワード
  • ID/パスワードと合言葉(どちらも知識の要素)
  • SMSのコードだけの認証
AAL2
  • 異なる2つの要素
  • フィッシング耐性のある方式を、少なくとも1つ選べるようにする
  • パスワードとSMSや認証アプリのコードの組み合わせ
  • 同期型のパスキー(Apple、Googleなど)
AAL3
  • フィッシング耐性のある方式に限る
  • 公開鍵暗号の鍵を持っていることを、2つの要素で示す
  • その鍵を端末から取り出せない
  • デバイス固定型のパスキー(セキュリティキーなど)

※ AAL0はNISTの定義にはなく、AAL1に届かない方式をまとめるために本記事で便宜上使う呼び方です。NISTが定めているのはAAL1からAAL3までです。

メールで届くコードは、パスワードだけで受信箱に入れることや、途中のメールサーバーで盗み見られるおそれがあることから、NISTは認証に使うことを禁じています[3]。秘密の質問のように、調べれば分かる事実を答えさせる方式も、NISTは身元の確認に使うことを禁じています[4]。SMSや認証アプリのコードはAAL2を満たしますが、フィッシング耐性はありません。本記事で「強度の弱い認証」と呼ぶのは、AAL0とAAL1の方式と、AAL2のうちフィッシング耐性のない方式です(基本方針のAppendix Dにも記載しています)。

フィッシング耐性とは

NISTは同じガイドラインで、フィッシング耐性を次のように定義しています[3]。

原文

The ability of the authentication protocol to prevent the disclosure of authentication secrets and valid authenticator outputs to an impostor verifier without reliance on the vigilance of the claimant.

和訳

認証プロトコルが、認証用の秘密情報や認証器が出力した有効な値を、検証者になりすました者に漏らさないようにする能力。ただし、認証を受ける本人の注意深さに頼らずに防げることを条件とする。

出典:NIST「SP 800-63B-4」の用語集「phishing resistance」

この定義は、利用者が偽のサイトに気づくことを守りの前提にしない、と読めます。利用者が本物そっくりのサイトに気づかずに操作しても、偽のサイトが本物のサイトで使える値を受け取れない方式だけが、フィッシング耐性のある方式です。

SMSや認証アプリのコードは、どのサイトのためのコードかという情報を持たないため、守れるかどうかは利用者が偽のサイトに気づけるかにかかっています。これに対してパスキーの鍵は、登録したサイトのドメインに結びつけて端末に保管され、ブラウザが開いているサイトのドメインと照合したうえでしか署名に使われません。偽のサイトは本物のサイトとドメインが違うため、利用者が気づかずに操作しても署名は返らず、攻撃者は本物のサイトに中継できるものを手に入れられません。

パスワードやワンタイムパスワードは、認証に使う値そのものをインターネット越しに送るため、偽のサイトに入力すれば、その値が攻撃者の手に渡ります。パスキーは秘密鍵を端末から出さず、送るのはそのサイトとその1回にしか通用しない署名だけで、サービス側にも公開鍵しか残りません。

図1SMSや認証アプリのコードは偽のサイトに渡るが、パスキーの署名は渡らない

1偽のサイトを開く

本物そっくりのshoken-login.exampleを開き、IDとパスワードを入力する。ここまでは、どちらの方式でも同じ。

22つ目の要素を求められる

SMS、認証アプリのコード

届いた6桁のコード「482913」を入力する。コードは、どのサイトのためのものかという情報を持たない。

パスキー

ブラウザが、開いているドメインshoken-login.exampleを確かめる。鍵はshoken.exampleに登録したものなので、署名に使われない。

3偽のサイトが本物のサイトに中継する

SMS、認証アプリのコード

同じコードを本物のshoken.exampleに入力する。本物のサイトは、利用者本人の入力と区別できない。

パスキー

偽のサイトは署名を受け取っていないため、本物のサイトに出せるものがない。

4結果

SMS、認証アプリのコード

攻撃者がログインする

パスキー

攻撃者はログインできない

防いでいるもの

SMS、認証アプリのコード

利用者が偽のサイトに気づくこと。気づかなければ防げない。

パスキー

ブラウザによるドメインの照合。利用者が気づかなくても防げる。

フィッシング耐性とは、利用者の注意に頼らずに、偽のサイトへ認証の結果を渡さない性質のこと(NISTの定義)

ドメインは説明用の架空のものです。本物のサイトをshoken.example、偽のサイトをshoken-login.exampleとしています。

NISTは同じガイドラインで、パスワード、ワンタイムパスワード(OTP)、SMSやプッシュ通知のように別の経路で届く確認を、いずれもフィッシングに耐性がない方式と明記しています[3]。国内でも、トレンドマイクロ社が2025年6月に、証券口座の乗っ取りは多要素認証の必須化後も減っておらず、攻撃者がワンタイムパスワードをだまし取るなどして多要素認証を突破しようとしていると報告しました[5]。

Googleが2019年に公表した研究では、SMSのコードは自動のボットによる乗っ取りを100%、一括で送るフィッシングを96%防いだ一方で、特定の相手を狙う標的型の攻撃は76%しか防げませんでした[6]。標的型の攻撃を防ぎにくいのは、攻撃者が相手に合わせて偽のサイトや電話の台本を用意し、その場でコードを聞き出すためです。renueは、相手に合わせた偽のサイトや台本の準備をAIエージェントが低コストで行えるようになるため、SMSや認証アプリのMFAで防げる割合は下がっていくと見ています。

パスキーが広がった証券口座で、不正アクセスは1%未満に

米国のCISAは、広く使えるフィッシング耐性のある認証はFIDO(パスキーの基になる規格)とWebAuthnによる認証だけだとしています[7]。持ち歩くセキュリティキーも、鍵を端末の外に置くパスキーの一種です。社員と管理者のアカウントでは、スマートカードやクライアント証明書のような証明書による認証も、同じ水準の選択肢になります。

国内の証券口座の被害の推移を見ると、認証の方式によって防げる量が大きく変わることがわかります。金融庁によると、インターネット取引サービスへの不正アクセスは、2025年4月の5,490件をピークに、2026年9月には37件まで減りました[8]。不正取引は3,033件から2件です。金融庁は、各証券会社でパスキー認証などフィッシングに耐性のあるMFAの必須化が進んでいると説明しています[9]。

図2証券口座への不正アクセスは、ピークの5,490件から月に数十件まで減った

不正アクセス件数(件)

7〜9月は月に18〜43件

不正取引も、2025年4月の3,033件から2026年9月の2件まで減った

金融庁が各証券会社から報告を受けた発生日ベースの暫定値(2026年10月9日更新)。まだ判明していない不正アクセスが含まれていない可能性があります。

件数は2段階で減っています。2025年の後半には不正アクセスが月に数百件まで下がったものの、2026年6月までは月に100件を超える不正取引が続きました。7月以降は、不正アクセスが月に数十件、不正取引が月に2件から25件です。減った理由は1つに絞れず、数値も判明していない被害を含まない暫定値ですが、renueは、SMSや認証アプリを含むMFAでは月に数百件の不正アクセスが残り、フィッシングに強い方式に移る段階で月に数十件まで下がったと読んでいます。

IDごとに触れられる範囲を絞る

パスキーで守れるのは、他人のアカウントに入る攻撃です。NRIセキュアの観測のように攻撃者が自分のアカウントを正規に作れば、パスキーを登録して正規の手順でログインでき[2]、ログインした攻撃者は、APIのパラメータを書き換えて他の利用者のデータを取り出すといった、認可の不備を狙います。

当たり前の原則ですが、認証を強化したときこそ、認可に立ち返るべきです。認証は本当にその人かを確かめる仕組み、認可はその人が何を触れてよいかを決める仕組みです(基本方針の3章にも記載しています)。攻撃者が正規の手順でログインしてくる以上、どのIDでログインしても、そのIDに許した範囲の外には触れられないようにしておくことが欠かせません。具体的には、APIのサーバーで、要求されたデータの持ち主とログインしているIDを毎回照合し、画面に表示しない項目も返さないようにします。

利用者のIDだけでなく、APIキー、CI(自動でテストやデプロイを行う仕組み)の認証情報、業務を代行するAIエージェントといった人以外のIDも、同じ考え方で扱います。人以外のIDは、最小権限の原則(業務に必要な権限だけを与える考え方)に基づいて用途ごとに分け、触れられる範囲を絞ったうえで、何年も使い続ける固定のAPIキーやパスワードではなく、数十分から数時間で失効する短命トークンを使うべきです。CIであれば、OpenID Connect(OIDC)でクラウドと信頼関係を結び、実行のたびに短命トークンを発行させる方法があります。1つのIDが乗っ取られても、他のIDの権限やデータにはできる限り届かないように設計するべきです。

図3パスキーでログインした後も、IDごとに触れられる範囲を絞る
  • 利用者

    認証の方法
    パスキー
    APIのサーバー
    持ち主とIDを毎回照合する
    触れられる範囲
    • 利用者のデータ
  • 攻撃者アカウント

    認証の方法
    パスキー(正規の手順で登録)
    APIのサーバー
    持ち主とIDを毎回照合する
    触れられる範囲
    • 攻撃者のデータ

    他の利用者のデータを指定しても返さない

  • 人以外のID

    APIキー、CI、AIエージェント

    認証の方法
    短命トークン
    APIのサーバー
    持ち主とIDを毎回照合する
    触れられる範囲
    • 用途ごとに許した操作

1つのIDが乗っ取られても、他のIDの権限やデータにはできる限り届かない設計にする

認証を強化しても、侵入される前提で備える

パスキーを使っていても、ログインした後のセッションを盗まれれば、攻撃者は認証を経ずに利用者として振る舞えます。端末に入り込んだマルウェアがブラウザからセッションの情報を持ち出す手口は、認証の強さでは防げません。セッションの有効期限を短くしたうえで、出金先の変更、権限の付与、登録している鍵や連絡先の変更のような重要な操作の前には、ログイン済みでも、パスキーなどでの再認証を求めるべきです。攻撃者が盗んだセッションで利用者として振る舞えても、手元に利用者の鍵がないため、この再認証は通れません。それでも再認証まで突破された場合に備え、重要な操作が行われたら、メールなどで本人にすぐ通知し、身に覚えがなければ止められるようにしておきます。連絡先を変える操作では、攻撃者が通知先を差し替えている可能性があるため、変更前の連絡先にも通知するのが確実です。

攻撃者は、鍵をなくした利用者を装って、認証の復旧経路(鍵をなくしたときの再登録の手順)も狙います。米国のCISAとFBIは2023年、攻撃者グループがヘルプデスクに電話をかけ、社員を装ってパスワードやMFAの再設定をさせていると注意を呼びかけました[10]。パスキーを使っていても、本人の申告だけで鍵を再登録できれば、攻撃者はログインの認証を迂回できます。ログインの認証を強化するほど攻撃者は復旧経路を狙うため、復旧経路もログインと同じ強さで守るべきです。利用者には鍵を2つ以上登録してもらい、すべての鍵をなくしたときの再登録は、複数の人による承認やマイナンバーカードの公的個人認証[11]のように、そのアカウントで起こり得る被害に見合う強さで本人を確かめる手段に限るのが原則です。

それでも侵入は起こり得るため、異常に気づいたらすぐにIDを止めて切り離せるようにしておきます(Next.jsの記事や多層防御の記事でも取り上げています)。1つのIDを止めても他のIDの業務が続く作りであれば、止める判断をためらわずに済みます。IDを止める基準、判断者、判断者が不在のときの代行者は、平時に決めておくべきです[2]。

図4認証の後に備える3つのこと
  • ログインした後

    重要な操作の前に再認証を求める

    出金先の変更や権限の付与の前には、ログイン済みでもパスキーなどで再認証する。セッションの有効期限も短くする。

    盗まれたセッションでは、重要な操作ができない。

  • 鍵をなくしたとき

    復旧経路の本人確認を固める

    鍵を2つ以上登録してもらい、すべてなくしたときの再登録は対面や公的個人認証に限る。

    本人を装った再登録で、認証を迂回されない。

  • 異常に気づいたとき

    IDを止めて切り離す

    止める基準、判断者、判断者が不在のときの代行者を平時に決めておく。

    1つのIDを止めても、他のIDの業務は続く。

認証を強化するほど、攻撃者はログインした後のセッションと、認証の復旧経路を狙う

強度の弱い認証と、本人確認の弱い復旧経路を残さない

パスキーを導入しても、パスワードだけのログインやSMSのコードが代替の手段として残っていれば、攻撃者はそちらを使います。2026年10月に証券会社が注意を呼びかけた「パスキーを設定していても不正ログインされた疑い」の事案でも、攻撃者が突いたのは、パスキーを預けたGoogleやAppleのアカウントや、残っていたパスワードでのログインといった、パスキーの外側でした(詳しくは基本方針のAppendix Dにまとめています)。

社員と管理者のアカウントには、次の経路を残すべきではありません。

  • パスワードだけでログインできる経路
  • SMSのコードで認証できる経路
  • 本人の申告だけで鍵を再登録できる経路

一般の利用者向けのサービスでは、SMSをパスキーに移るまでの手段と位置づけ、出金や個人情報の変更のような重要な操作からパスキーを必須にしていくのが現実的です。

すべての鍵をなくしたときの復旧経路は、アカウントが乗っ取られたときの被害の大きさから逆算して選ぶべきです。たとえば、次のような方法が考えられます。

  • 社内システムなら、上長と情報システム部門の複数人が承認したうえで、短時間だけ有効な一時的なトークンを発行し、そのトークンで新しい鍵を登録してもらう方法
  • 口座や契約を扱うサービスなら、認定を受けた本人確認サービスの事業者を通じて、マイナンバーカードの公的個人認証で本人を確かめる方法[12][13]
  • 影響の小さいサービスなら、登録済みの連絡先で確認したうえで数日の待機期間を置き、その間に本人へ通知して取り消せるようにする方法

今日確かめること

出典

  1. ビットフォレスト「AIエージェントによるWebサイトへの攻撃に関する注意喚起」(2026年10月14日)
  2. NRIセキュアテクノロジーズ「経営層が担当部門と確認したい4つのこと」(2026年10月16日)
  3. NIST「SP 800-63B-4 Digital Identity Guidelines: Authentication and Authenticator Management」
  4. NIST「SP 800-63A-4 Digital Identity Guidelines: Identity Proofing and Enrollment」
  5. トレンドマイクロ「多要素認証の必須化後も減っていない『証券口座乗っ取り』の現状」(2025年6月26日)
  6. Google Security Blog「New research: How effective is basic account hygiene at preventing hijacking」(2019年5月)
  7. CISA「Implementing Phishing-Resistant MFA」(2022年10月)
  8. 金融庁「インターネット取引サービスへの不正アクセス・不正取引の発生状況」(2026年10月9日更新)
  9. 金融庁「インターネット取引サービスでの不正アクセス・不正取引による被害が急増しています」
  10. CISA、FBI「Scattered Spider」(2023年11月16日)
  11. 地方公共団体情報システム機構「公的個人認証サービス ポータルサイト」
  12. デジタル庁「公的個人認証サービスの民間事業者による利用について」
  13. 金融庁「犯罪収益移転防止法に関するQ&A(令和9年4月1日以降の本人確認方法を含む)」

FAQ

よくある質問

AIエージェントがSMSや認証アプリのコードを突破したと確認できる公的な発表は、10月19日時点で見つかっていません。一方で、偽のサイトでコードを中継する手口は以前から広く使われ、NISTもワンタイムパスワードやSMSをフィッシングに耐性がない方式に分類しています。中継は自動化しやすいため、AIエージェントで規模を出しやすい攻撃だというのがrenueの見方です。

パスワードの総当たりや使い回しを狙う攻撃は、どの方式のMFAでも大きく減らせますが、偽のサイトでコードを中継する攻撃は、SMSや認証アプリのMFAでは防げません。中継に強いのは、パスキーのようにドメインに結びついた方式です。

認証アプリはSMSより安全ですが、表示されたコードを利用者が偽のサイトに入力すれば、攻撃者はそのコードを中継できます。NISTも、ワンタイムパスワードをフィッシングに耐性がない方式としています。社員や管理者のアカウントには、パスキーを使うべきです。

なくなりません。攻撃者が自分のアカウントを正規に作れば、パスキーでもログインできます。ログインした後のセッションの窃取や、鍵の再登録の悪用も残るため、IDごとに触れられる範囲を絞り、侵入される前提で検知と停止の仕組みを備えます。

ログインした後のセッションは、端末に入り込んだマルウェアなどに盗まれることがあり、盗んだ攻撃者は認証を経ずに利用者として振る舞えます。出金先の変更や権限の付与の前にパスキーなどでの再認証を求めれば、利用者の鍵を持たない攻撃者は先に進めません。

鍵を2つ以上登録してもらうのが基本です。すべての鍵をなくした場合の復旧経路は、そのアカウントが乗っ取られたときの被害の大きさに合わせて設計し、複数の人による承認や公的個人認証のように、被害に見合う強さで本人を確かめてから再登録します。本人の申告だけで再登録できる経路は、攻撃者が使います。

すぐにすべてをなくすのが難しい場合もありますが、その場合も、出金や個人情報の変更のような重要な操作にはパスキーを必須にし、SMSは移行までの手段として扱います。鍵をなくした利用者の復旧経路も、被害の大きさに合わせて設計すべきもので、口座を扱うなら公的個人認証、影響が小さいサービスなら待機期間と本人への通知が候補です。

スマートカードやクライアント証明書のように、証明書を使う認証もフィッシングに強い方式ですが、配布と管理の手間が大きいため、主に社員と管理者のアカウントで使われています。一般の利用者向けのサービスで現実的に選べる方式は、パスキーだけです。

パスワードとSMSを組み合わせても、両方を偽のサイトで中継されれば同じように突破されます。パスキーは登録したドメインでしか使えず、サービス側に残るのも公開鍵だけなので、悪用や漏えいがあっても被害はそのサービスの中にとどまります。現実に狙われるのはパスキーを同期しているアカウントや鍵の再登録の手順であり、備えとなるのは重要な操作の前の再認証と本人への通知です。

ログインするときの生体認証やPINによる確認と署名は、同期型でも端末の中で完結し、クラウドには問い合わせません。クラウドが関わるのは、鍵を端末間で同期するときと、新しい端末に鍵を復元するときで、鍵はエンドツーエンドで暗号化して預けられます。攻撃者が狙うのは、AppleやGoogleのアカウントや、新しい端末に鍵を復元する手順のほうなので、同期先のアカウントにも強い認証をかけておく必要があります。

APIキー、CIの認証情報、業務を代行するAIエージェントのように、人以外がシステムにアクセスするときに使うIDを指します。人のIDと同じように用途ごとに分けて触れられる範囲を絞り、固定の鍵ではなく、短い時間で失効する短命トークンを使います。

AI導入・DXの悩みをプロに相談してみませんか?

AIやDXに関する悩みがありましたら、お気軽にrenueの無料相談をご利用ください。renueのAI支援実績、コンサルティングの方針や進め方をご紹介します。

無料資料をダウンロード