官方解释
如果应用程序存在如下问题,那么可能存在身份验证的脆弱性:
- 允许凭证填充,这使得攻击者获得有效用户名和密码的列表。
- 允许暴力破解或其他自动攻击。
- 允许默认的、弱的或众所周知的密码,例如“Password1”或“admin/admin”。
- 使用弱的或失效的验证凭证,忘记密码程序,例如“基于知识的答案”,这是不安全的。
- 使用明文、加密或弱散列密码(参见:A3:2017-敏感数据泄露)。
- 缺少或失效的多因素身份验证。
- 暴露URL中的会话ID(例如URL重写)。
- 在成功登录后不会更新会话ID。
- 不正确地使会话ID失效。当用户不活跃的时候,用户会话或认证令牌(特别是单点登录(SSO)令牌)没有正确注销或失效。
如何防止?
- 在可能的情况下,实现多因素身份验证,以防止自动、凭证填充、暴力破解和被盗凭据再利用攻击。
- 不要使用发送或部署默认的凭证,特别是管理员用户。
- 执行弱密码检查,例如测试新或变更的密码,以纠正“排名前10000个弱密码” 列表。
- 将密码长度、复杂性和循环策略与NIST-800-63 B的指导方针的5.1.1章节-记住秘密,或其他现代的基于证据的密码策略相一致。
- 确认注册、凭据恢复和API路径,通过