MFA疲労攻撃
MFA Fatigue
概要(サマリー)
MFA疲労攻撃とは、多要素認証の承認通知を短時間に繰り返し送り、疲れや誤操作で承認させる攻撃である。
夜中にインターホンを鳴らし続け、眠い人が反射で鍵を開けてしまうようなものだ。
パスワードがすでに攻撃者の手にあるときに、スマホの「承認しますか」を押させてログインを完了させる。
二要素認証の設定そのものを壊す攻撃ではない。人の判断をすり減らすソーシャルエンジニアリングである。
詳細解説
承認ボタンを、何度も押させる
多要素認証の方式の一つに、スマホへ「このログインを許可しますか」と通知を送るものがある。
普段は、自分がログインした直後に一回届く。
MFA疲労攻撃では、その通知が数分のうちに何度も届く。
利用者は、通知を止めたい、または自分の操作の確認だと思い、「許可」を押してしまう。
CISA はこの手口を push bombing や push fatigue と呼び、プッシュ通知型の多要素認証の弱点として説明している。
MITRE ATT&CK では、多要素認証の要求を生成する技術として T1621 に整理されている。
よく知られた例が、2022年の Uber への侵入である。
Uber の説明によると、外部委託先の人の私用端末がマルウェアに感染してパスワードが漏れ、攻撃者はそのパスワードでログインを繰り返した。
委託先の人は最初は承認を拒んでいたが、やがて一つを許可してしまい、そこから社内のツールへ侵入された。
パスワードが先に揃っている
通知が届く前提として、攻撃者がそのアカウントのパスワードをすでに持っていることが多い。
漏えい、フィッシング、推測などでパスワードが先に通り、残った承認だけを利用者に押させる。
Uber の例のように、パソコンからログイン情報を盗むインフォスティーラーが、この最初の一歩になることもある。
したがって「多要素認証を入れたから、パスワードが漏れても通知は来ない」は正確ではない。
通知が来るのは、パスワードの段階を通過したサインでもある。
自分が今ログインしていないのに承認が何度も来る場合は、パスワードが知られている可能性を考える。
番号の一致と、フィッシングに強い方式
プッシュ通知だけだと、画面に「許可」と「拒否」しかなく、急いで押しやすい。
CISA は、フィッシングに強い方式へ移ることを優先し、すぐには移せない場合の緩和として number matching(番号の照合)を挙げている。
番号の照合では、ログインしようとしているパソコンの画面に、2桁ほどの番号が表示される。
スマホの通知を開くと番号の入力を求められ、その番号を打ち込んだときだけ承認される。
自分がログインしていなければ、パソコンの画面に番号は出ていない。攻撃者の画面にしか出ていない番号は分からないので、反射的に承認できない。
たとえば Microsoft Authenticator は、2023年5月からプッシュ通知に番号の照合を必須にした。
疲労攻撃への対策として、方式の側で「ボタンを押すだけ」をやめた例である。
さらに強いのは、偽サイトへパスワードと番号を入力させる型のフィッシングに耐える方式である。
パスキーは、その方向の選択肢として説明される。
SIMスワップは、SMS で届く番号の宛先をすり替える手口で、疲労攻撃とは別である。
どちらも多要素認証の弱い実装を突くが、利用者から見える現象が違う。疲労攻撃は承認通知の連打、SIMスワップは電話番号の支配である。
身に覚えのない承認は拒否する
ログインしていないのに承認通知が来たら、許可を押さない。
拒否できるなら拒否し、通知が続く場合はパスワードを変える。
会社のアカウントなら、定められた窓口へ「承認を自分で求めていない」と連絡する。
通知を消すことと、ログインを拒否することは、アプリによって同じ操作ではない。
どのボタンが許可かを、落ち着いてから読む。疲れているときほど、一度画面をロックして時間を置く。
組織での設定
全員にプッシュ通知型だけを配ると、夜間や会議中の連打が通りやすい。
管理者は、番号照合の導入、不審な承認の検知、フィッシングに強い方式への移行を検討する。
利用者教育だけでは、眠っている人の誤タップをゼロにはできない。設定側の対策とセットにする。
共有アカウントだと、誰の操作か分からない
家族やチームで一つのログインを共有していると、承認通知が自分の操作か他人の操作か判断しにくい。
「誰かが入っているのだろう」と思って許可すると、攻撃者のログインを通す。
重要なサービスは、人ごとにアカウントを分ける。
通知には、場所や端末名が表示される方式がある。
見慣れない国や、自分の端末でない名前なら許可しない。
表示がぼんやりして判断できないときも、許可ではなく拒否を選ぶ。あとから自分が入り直せばよい。
AIコーディングとの関係
AI に「二要素認証を追加して」と頼むと、SMS の番号か、許可ボタンだけの通知が提案されることがある。
AI には「プッシュ通知の連打で誤って許可しにくい方式を比較し、パスキーまたは番号照合を含む案にしてください」と頼む。
どの方式がフィッシングに強いかは、提案をそのまま採用せず、サービスの公式ドキュメントと照合する。
テスト用の承認通知を自分で確認するとき、本物の利用者の端末へ大量に送る実装を、AI の提案だからと実行しない。
認証の秘密や、バックアップコードを AI の会話に貼らない。
よくある勘違い
多要素認証をオンにしたから、この攻撃は関係ない?
この攻撃は、多要素認証の承認そのものを狙う。
オンにしたあと、方式が「ボタンを押すだけ」だと、疲れや誤操作で許可されうる。
方式の種類まで見る。
通知が来たら、早く許可しないとアカウントが止まる?
正規のログイン確認は、自分が今パスワードを入れたときに届く。
入れていないのに急かす通知は、許可する理由にならない。
拒否して、パスワード変更と窓口への連絡を優先する。
拒否を押すと、相手にパスワードが渡る?
拒否は、そのログインを通さない操作である。
パスワードは、通知が来る前の段階で既に試されている可能性がある。
拒否したうえで、パスワードを変える。
まとめ
- MFA疲労攻撃は、承認通知を連打し、疲れや誤操作で許可させる手口である。
- パスワードが先に攻撃者へ渡っていることが多い。
- ボタンだけの承認より、番号照合やパスキーの方が誤タップに強い。
- 自分のログインでない通知は許可せず、パスワード変更と連絡を行う。
情報ソース
- CISA:Implementing Phishing-Resistant MFA(英語)
- MITRE ATT&CK:Multi-Factor Authentication Request Generation(T1621、英語)
- Microsoft Learn:How number matching works in MFA push notifications for Authenticator(英語)
- Uber:Security update(2022年9月、米SEC提出資料、英語)
より詳しくAIに聞いてみよう
- MFA疲労攻撃を、夜中にインターホンを鳴らし続ける例で説明してください。
- プッシュ通知の承認、番号照合、パスキーの違いを初心者向けに整理してください。
- 自分がログインしていないのに承認通知が何度も来たときの行動を順番に教えてください。
- AI に二要素認証を追加させるとき、誤って許可しにくい方式を指定する指示文を書いてください。
- バックアップコードや認証の秘密を AI に貼らずに、方式の比較だけを聞く方法を教えてください。