密碼外洩幾乎無法完全避免:釣魚網站、密碼重複使用、撞庫攻擊,都可能讓攻擊者拿到正確的帳密。多因素驗證(MFA)要求使用者再出示另一種類型的驗證因素(你知道的、你擁有的、你本身的特徵),讓單一密碼外洩不足以登入[1]。美國 CISA 一再呼籲所有使用者、所有服務都啟用 MFA,但也提醒並非每一種 MFA 都一樣安全:有些形式仍會被釣魚、推播轟炸、SS7 協定漏洞或 SIM 卡挾持(SIM swap)攻破[1]。

這篇寫給正在規劃或檢討 MFA 的 IT 人員與主管:先比較各種驗證方式的強弱,再說明攻擊者如何繞過 MFA,最後是「從哪裡開始」,以及帳號復原與例外管理的實務做法。

各種 MFA 方式:由弱到強

CISA 依照各種方式面對釣魚、推播轟炸、SS7 與 SIM swap 的抵抗力,排出強弱順序[1]。以下由弱到強整理:

  1. 簡訊或語音驗證碼:可能被釣魚頁面騙走,也可能因 SS7 漏洞或 SIM swap 被攔截;CISA 認為只應作為最後手段,或在轉換到更強方式之前的過渡方案[1]。NIST SP 800-63B-4 也把透過公眾電話網路(PSTN)傳送驗證碼列為「受限制」的驗證方式,使用時必須另外提供其他驗證器選項[2]。
  2. 只需按「核准」的推播:不受 SS7 與 SIM swap 影響,但容易遭推播轟炸,也容易誤按[1]。NIST SP 800-63B-4 指出,請使用者在第二管道比對後按下核准的做法已不再被接受,因為推播疲勞會讓使用者沒有真正比對就核准;規範改為要求使用者實際把代碼在兩個管道之間傳遞,例如把登入畫面上的數字輸入 App[2]。
  3. 驗證器 App 或硬體權杖產生的一次性密碼(OTP),以及具數字比對的推播:可以抵抗推播轟炸,但仍可能被釣魚網站即時轉送[1]。CISA 認為這是暫時無法導入抗釣魚 MFA 的中小企業最好的選擇[1]。
  4. 抗釣魚 MFA:FIDO2/WebAuthn(含通行金鑰)與 PKI 智慧卡:CISA 稱之為 MFA 的「黃金標準」[1]。

為什麼 FIDO2 能抗釣魚

NIST 對抗釣魚的定義是:驗證協定能防止驗證祕密洩漏給冒充的驗證方[2]。需要使用者手動輸入的方式,例如 OTP 與簡訊驗證碼,都不算抗釣魚,因為手動輸入的數字沒有綁定到當次登入的網站,冒牌網站可以原封不動轉送給真網站[2]。FIDO2/WebAuthn 則採「驗證方名稱綁定」,金鑰只會回應註冊時的那個網站,釣魚網站畫面做得再像,也拿不到可以用在真網站的回應[2]。

通行金鑰(Passkey)

通行金鑰是以 FIDO 標準為基礎的登入憑證,可以存放在手機、電腦或硬體安全金鑰上,用解鎖裝置的方式(指紋、臉部辨識或 PIN)使用[3]。它分為可在多台裝置間同步的「同步通行金鑰」,以及只存在單一裝置的「裝置綁定通行金鑰」;FIDO 聯盟指出,存放在硬體安全金鑰上的裝置綁定通行金鑰保證等級最高[3]。NIST 的規範中,可同步的驗證器因為私鑰可匯出,不得用於最高等級的 AAL3[2]。實務上,一般員工使用同步通行金鑰已能大幅提升安全性,網域管理員、雲端超級管理員等高權限帳號則建議使用硬體安全金鑰。

攻擊者如何繞過 MFA

推播轟炸(MFA 疲勞)

攻擊者取得密碼後,在短時間內反覆觸發登入,讓使用者的手機跳出大量推播,直到使用者因誤按或不耐煩而核准[4]。MITRE ATT&CK 將這類手法列為技術 T1621「多因素驗證請求產生」,建議的緩解方式包括:改用需要輸入登入畫面上代碼的驗證方式、限制一段時間內可發出的 MFA 請求數量,以及教育使用者只核准自己發起的請求、主動回報不明請求[5]。數字比對要求使用者把登入畫面上顯示的數字輸入 App 才能核准,攻擊者看不到使用者面前的登入畫面,就無法誘使使用者「順手按掉」[4]。NIST 也建議驗證方對推播的頻率或總數設定上限[2]。

中間人(AiTM)釣魚

另一種繞過方式完全不需要騷擾使用者:釣魚網站在使用者與真正的登入頁之間即時轉送,使用者照常輸入密碼與驗證碼、甚至核准推播,攻擊者則竊取登入完成後的工作階段 Cookie,直接接管已通過 MFA 的連線[6]。在微軟調查的案例中,攻擊者竊得工作階段後最快 5 分鐘就開始進行付款詐騙[6]。對策是改用抗釣魚 MFA,並搭配條件式存取(依裝置合規狀態、地點、IP 等條件判斷)與異常登入監控[6]。手法細節與商業郵件詐騙的關聯見網路釣魚與商業郵件詐騙。

從帳號復原流程下手

如果「手機遺失」時只要打電話給服務台就能重設 MFA,冒充員工的攻擊者也能走同一條路。MFA 的實際強度,取決於最弱的那條登入或復原路徑,因此復原流程必須和登入一樣嚴謹(見後文)。

從哪裡開始:優先順序

CISA 建議用兩個問題排序:哪些資源最需要保護?哪些使用者是高價值目標[1]?攻擊者經常鎖定電子郵件、檔案伺服器、遠端存取系統,以及 Active Directory 等身分伺服器;系統管理員、可調閱信件的法務人員與掌握人事資料的人資人員,則是典型的高價值帳號[1]。依此可以排出:

  1. 電子郵件與 SSO/身分平台:信箱是商業郵件詐騙與密碼重設的樞紐;多數雲端郵件與 SSO 服務已支援 FIDO,是很好的起點[1]。
  2. VPN 與所有遠端存取:包括 SSL VPN、遠端桌面閘道、廠商遠端維護帳號。邊界設備的其他強化項目見VPN、防火牆與邊界設備的安全強化清單。
  3. 管理者與特權帳號:網域管理員、防火牆與虛擬化平台管理介面、備份系統。CISA 等機關建議優先讓管理者與特權帳號使用抗釣魚 MFA[7]。
  4. 雲端主控台與 SaaS 管理後台:雲端服務的超級管理員帳號一旦被盜,影響範圍往往是整個租戶。
  5. 高價值使用者:財務、人資、法務、高階主管及其秘書。
  6. 其他所有使用者與服務。

推行時,可以先讓服務台與 IT 系統管理員試行,累積經驗再逐步擴大[1]。若有系統不支援 MFA,CISA 建議規劃升級或改用支援的系統,並把這項風險上報高階主管[1]。

帳號復原與例外管理

  • 每人至少登記兩種驗證器:例如手機上的通行金鑰加一把備用硬體金鑰,避免換手機或遺失時被鎖在門外。
  • 設計復原方式:NIST 認可的帳號復原方式包括事先保存的復原碼、另行核發的復原碼、預先指定的復原聯絡人,以及重新進行身分驗證;每次帳號復原都必須通知使用者,以便及早發現冒用[2]。
  • 服務台重設 MFA 要嚴格驗證身分:例如視訊比對證件或由主管確認,重設後同時通知本人與資安人員,並記錄在案。
  • 例外要有期限與補償控制:舊系統、共用帳號或產線設備不支援 MFA 時,以網段隔離、跳板機、限制來源 IP 等方式補強,列冊並定期檢討。
  • 監控與告警:檢視 MFA 鎖定與告警設定,追蹤被拒絕的 MFA 登入嘗試[7],並留意短時間大量推播、異常地點登入與新註冊的驗證器。

行動清單

  • 盤點所有對外登入入口(郵件、SSO、VPN、遠端桌面、雲端主控台、SaaS 管理後台)與目前使用的 MFA 方式。
  • 任何一個入口還沒有 MFA,先啟用;即使暫時只能用 OTP,也比沒有好。
  • 停用只需按「核准」的推播,改為數字比對,並設定推播次數上限與告警。
  • 管理者與特權帳號優先改用 FIDO2 硬體金鑰或通行金鑰;簡訊驗證碼只作為過渡。
  • 啟用條件式存取,限制管理介面的登入來源並要求合規裝置。
  • 寫下 MFA 重設與帳號復原的作業程序,並實際演練一次「員工手機遺失」。
  • 每季檢視例外清單與尚未啟用 MFA 的帳號,向主管報告進度。
  • 關注資安通報與資安事件中與帳號入侵相關的案例,作為教育訓練素材。