TOP7-Authentication Failures(身份验证失败)

938 字
0 浏览

OWASP Top 10:2025 里,Authentication Failures 排在 A07,也就是第 7 位。它和 2021 一样保持在第 7 位,只是名字从 “Identification and Authentication Failures” 略微调整为更直接的 “Authentication Failures”。它关注的是:系统把不该被当成合法用户的人,当成了合法身份,或者让攻击者过于容易地猜解、复用、接管、绕过身份认证。
来源:OWASP Top 10:2025 Introduction
来源:A07:2025 Authentication Failures

你可以把它和 A01 区分开来:

  • Authentication 是“你是谁”
  • Access Control 是“你能做什么”

也就是说,A07 是“身份识别阶段就出了问题”,而不是“识别对了人但授权给多了”。

常见表现

  • 允许撞库、密码喷洒、暴力破解等自动化攻击。
  • 继续允许默认口令、弱口令、众所周知的口令。
  • 注册或改密时允许使用已泄露密码。
  • 找回密码流程过弱,比如仍然依赖知识问答。
  • 没有 MFA,或者 MFA 的回退机制太弱。
  • Session ID 暴露在 URL、隐藏字段或其它客户端可控位置。
  • 登录后不更换 Session ID,导致 Session Fixation。
  • 注销、空闲超时、绝对超时没有正确让 Session/Token 失效。
  • JWT、SSO Token 等凭证没有校验 audiss、scope 等边界。

OWASP 官方典型场景

  • 攻击者拿泄露账号密码做撞库,或者在原密码基础上小改几个字符继续试,命中率会比传统暴力破解更高。
  • 系统仍把“复杂但人类会重复使用的密码”当成最佳实践,却没有启用 MFA,最后形成大规模账号接管。
  • 用户在公共电脑上登录后只关了浏览器标签,没有真正登出,而应用或 SSO 会话又没有正确失效,下一位使用者就能直接接管会话。

怎么防

  • 能启用 MFA 的地方尽量启用,并尽量强制化。
  • 不要发布或保留默认凭证,尤其是管理员账号。
  • 在注册和改密时检查弱口令和已泄露口令。
  • 口令策略参考 NIST 800-63b 这类现代建议,不要迷信频繁强制改密。
  • 登录失败要做节流、延迟、限制和告警,但同时注意别把自己做成 DoS 点。
  • 统一错误提示,避免通过差异消息进行账户枚举。
  • 使用服务端安全会话管理器,登录成功后重新签发高熵 Session ID。
  • Session 标识符不要放在 URL 中,应放在安全 Cookie 中,并在登出、空闲和绝对超时后失效。
  • 如果能采购或接入成熟身份系统,就不要自己实现整套认证体系。
  • 对 JWT、SSO 凭证校验预期用途和受众,避免“拿着别处发的票来你这里入场”。

一句话总结
Authentication Failures 的本质是:系统没有把“合法身份”这件事验证严实,导致攻击者能伪装、复用或接管用户身份。

Licensed under CC BY-NC-SA 4.0