憑據填充攻擊 (撞庫)
1. 定義
憑據填充 (Credential Stuffing) 是暴力破解攻擊的一個子集。攻擊者將從第三方洩漏資料庫中獲得的用戶名和密碼對,自動注入到目標應用的登入表單中。
與傳統的暴力破解(如猜測 “password123”)不同,這種攻擊基於一個統計學事實:用戶通常會在多個服務中重複使用相同的密碼。如果用戶的 LinkedIn 密碼洩漏了,攻擊者就會將該憑據「填充」到銀行、醫療或零售網站中。
2. 技術原理
這屬於一種 自動化威脅 (Automated Threat) (OAT-008)。
- 來源: 攻擊者從暗網獲取「庫(Combolists)」(即 電子郵件:密碼 的洩漏名單)。
- 引擎: 使用 Sentry MBA 等工具或自定義腳本,通過住宅 IP 代理網路發送請求,以繞過簡單的 IP 封鎖。
- 執行: 機器人程式針對目標網站測試憑據。
- 結果: 有效的登入被分類為「Hits」,隨後被轉賣或直接用於欺詐。
3. 攻擊流程
flowchart TD
Breach[網站 A 發生洩漏] -->|洩漏數據| DB[(帳號密碼資料庫)]
DB --> Bot[自動化攻擊機器人]
Bot --"嘗試 user@email.com / P@ss123"--> Target[目標網站 B]
Target --"200 OK (登入成功)"--> Bot
Bot --> Hits[(有效帳號列表)]
Hits --> Takeover[帳號接管 / 欺詐]
Note right of Target: 用戶是真實的,<br/>密碼也是正確的。<br/>系統無法識別這是機器人。4. 真實案例:23andMe (2023)
目標: 23andMe (基因檢測服務)。 漏洞類別: 缺乏憑據填充保護(雙因素認證 MFA 僅為可選)。
事件經過: 2023 年底,攻擊者訪問了 690 萬用戶的帳號。值得注意的是,23andMe 的系統本身並未被入侵。 攻擊者利用從其他平台洩漏的有效憑據,登入了那些重複使用密碼的 23andMe 帳號。 進入帳號後,他們抓取了「DNA 親屬」數據。這意味著即使許多用戶本身並未被直接撞庫,但因為其親屬的帳號被盜,其基因隱私也遭到了洩漏。
影響: 引發了大規模的隱私訴訟。這證明了**「用戶錯誤」(重複使用密碼)也是系統問題**,如果平台不強制執行 MFA 或檢測撞庫行為,就必須承擔責任。
5. 深度防禦策略
A. 多因素認證 (MFA)
這是防禦撞庫的「銀彈」。即使攻擊者擁有從其他洩漏中獲得的正確密碼,他們也無法通過簡訊、TOTP 挑戰或硬體金鑰。
- 最佳實踐: 對所有用戶強制執行 MFA,或至少使用「自適應 MFA」(僅針對可疑登入發起挑戰)。
B. 已洩漏密碼檢查 (Breached Password Protection)
在登入或註冊時,檢查用戶密碼是否已存在於已知的洩漏資料庫中。
- 工具: 使用 Have I Been Pwned (HIBP) API 或類似服務。
- 機制: 如果用戶嘗試使用(或正在使用)已知的受損密碼,則強制其重置密碼。
- NIST 指南: NIST 800-63B 明確建議對照洩漏庫檢查用戶密碼。
C. 設備指紋與行為分析
識別登入請求是否來自腳本機器人。
- 信號:
- 無頭瀏覽器 (Headless Browser) 的 User-Agent 特徵。
- 不一致的 IP 地理位置(如 5 分鐘前在美國登入,現在在俄羅斯登入)。
- 滑鼠移動遙測(機器人通常以直線移動,或根本沒有移動軌跡)。
