缺陷:
1,允许凭证填充,这使得攻击者获得有效用户名和密码的列表;
2,允许暴力破解或其他自动攻击;
3,允许默认的、弱的或众所周知的密码,例如“admin/admin“;
4,使用弱地或失效的验证凭证,忘记密码程序,例如“基于知识的答案“,这是不安全的;
5,使用明文、加密或弱散列密码,允许使用GPU破解或暴力破解工具开素恢复密码;
6,缺少或失效的多因素身份验证。
如何防止:
1,不要使用发送或部署默认的凭证,特别是管理员用户;
2,使用非过时的哈希技术来存储密码,比如Argon2等,并使用充分的工作因素来防止GPU破解攻击;
3,执行弱密码检查;
4,将密码长度、复杂性和其他现代的基于证据的密码策略相一致;
5,确认注册、凭据恢复和API路径,通过对所有输出结果使用相同的消息,用以抵御账户枚举攻击;
6,在尽可能的地方,实现多因素身份验证,以防止凭据的填充,暴力破解,自动化和凭据窃取攻击;
7,当凭证填充、蛮力和其他攻击被检测到,日志记录身份验证失败并警告管理员。
常见案例:
1,凭证填充,使用已知密码的列表,是常见的攻击;
2,大多数身份验证攻击都是由于使用密码作为唯一的因素;
3,不安全的密码存储(包括明文、可逆加密的密码和弱散列密码)可能导致泄漏。