Luke a Pro

Luke Sun

Developer & Marketer

🇺🇦
EN||

暴力破解攻击

| , 2 minutes reading.

1. 定义

暴力破解 (Brute Force) 是一种攻击方法,攻击者系统地检查所有可能的密码或短语,直到找到正确的那个。在 Web 应用的语境下,它通常指针对登录端点的 “在线暴力破解”

它与 凭据填充 (Credential Stuffing)(使用已泄露的账号密码对)和 字典攻击 (Dictionary Attacks)(使用常用词列表)有所不同,尽管“暴力破解”常被用作所有猜测类攻击的统称。

2. 技术原理

认证系统通过对比用户输入的哈希值与存储的哈希值来验证身份。

  • 在线攻击: 攻击者向 /login 发送 HTTP 请求。速度受到网络延迟和服务器响应时间的限制。
  • 反向暴力破解: 攻击者不是猜测一个用户的密码,而是针对数百万个用户名尝试一个常用密码(如 “password123”),这被称为 密码喷洒 (Password Spraying)

3. 攻击流程 (密码喷洒)

sequenceDiagram
    participant Bot as 攻击脚本
    participant Auth as 认证服务器
    participant DB as 用户数据库

    Bot->>Auth: 1. 尝试用户: "alice", 密码: "Winter2025!"
    Auth-->>Bot: 401 Unauthorized
    
    Bot->>Auth: 2. 尝试用户: "bob", 密码: "Winter2025!"
    Auth-->>Bot: 401 Unauthorized
    
    Bot->>Auth: 3. 尝试用户: "charlie", 密码: "Winter2025!"
    Auth->>DB: 验证哈希值... 匹配成功!
    Auth-->>Bot: 200 OK (返回 Session Token)
    
    Note right of Bot: 账号被入侵<br/>避开了“账号锁定”逻辑<br/>因为每次尝试的用户都不同。

4. 真实案例:iCloud 名人照片泄露事件 (2014)

目标: 苹果 iCloud “查找我的 iPhone” API。 漏洞类别: 无限制的暴力破解(频率限制失败)。

事件经过: 虽然常与钓鱼攻击联系在一起,但许多账号的最初切入点是针对 Find My iPhone (iBrute) API 的暴力破解攻击。 与 iCloud 的主登录界面不同,这个特定的 API 端点没有强制执行账号锁定或频率限制。 攻击者使用脚本 (iBrute) 针对名人的电子邮件地址尝试数千个常用密码。一旦密码匹配成功,他们就能访问完整的 iCloud 备份(照片、通讯录等)。

影响: 导致数百人的隐私遭到大规模严重侵犯。苹果随后在所有 API 中实施了严格的双因素认证 (2FA) 和频率限制。

5. 深度防御策略

A. 指数退避与频率限制

不要仅仅封锁 IP(攻击者可以旋转代理 IP)。

  • 账号锁定: 在 5 次尝试失败后锁定账号。(风险:可能导致针对用户的拒绝服务)。
  • 指数退避 (Exponential Backoff): 每次失败后增加响应延迟。
    • 失败 1 次:延迟 0s
    • 失败 2 次:延迟 2s
    • 失败 3 次:延迟 10s
  • 限流 (Throttling): 使用“令牌桶”等算法限制每个用户以及每个 IP 的尝试次数。

B. 多因素认证 (MFA)

MFA 让暴力破解几乎失效。即使攻击者猜中了密码,他们也无法提供 OTP(一次性密码)或硬件密钥。

  • 强制执行: 对所有用户强制执行 MFA,或至少针对管理员账号强制执行。

C. CAPTCHA / 工作量证明

在失败次数达到阈值后要求进行人工验证。

  • 工具: Cloudflare Turnstile, Google reCAPTCHA v3(隐式验证)。
  • 这使得自动化攻击的计算成本变得极高或技术上难以实现。

D. 泄露检测

监控“密码喷洒”模式(一个 IP 针对多个用户的大量失败尝试)。如果登录来自新设备/新位置,应及时提醒用户。

6. 参考资料