2021 Owasp Top 10 逐个击破之A07:认证及验证机制失效
字数 1665 2025-08-12 11:34:16

OWASP Top 10 2021 A07: 认证及验证机制失效详解

1. 漏洞概述

认证及验证机制失效(Identification and Authentication Failures)在2021年OWASP Top 10中排名第7位,指应用程序在用户身份确认、认证和会话管理方面的缺陷导致的安全问题。

1.1 关键统计数据

  • 相关CWE数量: 22个
  • 最大发生率: 14.84%
  • 平均发生率: 2.55%
  • 最大覆盖范围: 79.51%
  • 平均覆盖范围: 45.72%
  • 平均加权漏洞: 7.40
  • 平均加权影响: 6.50
  • 出现次数: 132,195次
  • 相关CVE数量: 3,897个

2. 漏洞表现形式

2.1 认证机制缺陷

  • 允许撞库自动化攻击(使用已知用户名密码列表尝试登录)
  • 允许暴力破解或其他自动化攻击
  • 允许使用默认、脆弱或常见密码(如"Password1"、"admin/admin")
  • 脆弱的密码找回机制(如不安全的"知识问答"方式)
  • 密码存储不安全(明文、弱加密或弱哈希存储)
  • 缺乏有效的多因素认证(MFA)

2.2 会话管理缺陷

  • URL中泄露会话ID(如URL重写)
  • 登录成功后未轮换会话ID
  • 未正确注销会话ID(登出或闲置时未失效)
  • 会话超时设置不当
  • 单点登录(SSO)令牌管理不当

3. 攻击场景示例

场景1: 撞库攻击

攻击者使用已知的用户名密码列表对目标系统进行自动化尝试,系统缺乏防护措施导致攻击成功。

场景2: 密码策略缺陷

系统强制密码复杂度要求导致用户使用易记但脆弱的密码,或重复使用密码,建议遵循NIST 800-63标准。

场景3: 会话超时不当

用户在公共电脑登录后未登出直接关闭浏览器,会话未超时导致后续使用者可直接访问账户。

场景4: URL会话ID泄露

机票预订系统在URL中包含会话ID,用户分享链接时无意泄露会话,导致他人可冒用身份和支付信息。

场景5: 密码数据库泄露

系统密码数据库被入侵,存储的密码未加密或使用弱哈希,导致所有用户密码泄露。

4. 防御措施

4.1 认证机制加固

  • 实施多因素认证(MFA): 防止自动化攻击和凭据重用
  • 禁用默认凭证: 特别是管理员账户
  • 密码策略:
    • 检查新密码是否在前10,000个最差密码列表中
    • 遵循NIST 800-63b标准(密码长度、复杂度、轮换政策)
  • 统一错误响应: 防止通过错误信息枚举有效账户
  • 限制登录尝试:
    • 增加失败尝试后的延迟
    • 记录失败日志并设置攻击告警

4.2 会话管理加固

  • 安全的会话ID生成:
    • 使用服务器端、安全的会话管理器
    • 登录后生成新的高熵随机会话ID
  • 会话ID保护:
    • 不在URL中传输
    • 安全存储(如HTTP-only, Secure Cookie)
  • 会话生命周期控制:
    • 登出后立即失效
    • 闲置超时后自动失效
    • 限制会话持续时间

4.3 其他安全措施

  • 密码存储安全:
    • 使用强哈希算法(如bcrypt, PBKDF2, Argon2)
    • 加盐处理
  • 传输安全:
    • 所有认证相关通信使用TLS/SSL
    • 身份验证cookie设置Secure和HttpOnly属性
  • 功能隔离:
    • 区分公共区域和受限区域
    • 受限区域实施更严格的安全控制

5. 验证方法

检查应用程序是否存在以下问题:

  1. 认证凭证是否使用强哈希或加密存储
  2. 认证凭证是否可猜测或通过弱账户管理功能重置
  3. 会话ID是否暴露在URL中
  4. 会话ID是否易受固定攻击
  5. 会话是否有超时机制,用户能否安全登出
  6. 成功登录后会话ID是否轮换
  7. 认证凭据是否仅通过TLS传输

6. 最佳实践总结

  1. 账户锁定策略: 多次失败尝试后锁定账户
  2. 密码有效期: 强制定期更换密码
  3. 账户禁用功能: 安全事件后可快速禁用账户
  4. 强密码要求:
    • 至少8位字符
    • 包含大小写字母、数字和特殊字符
  5. 加密传输: 不在网络中明文传输密码
  6. 会话保护:
    • 加密会话cookie内容
    • 限制会话寿命
    • 避免未经授权访问会话状态

通过实施这些措施,可以显著降低认证和会话管理相关的安全风险,保护用户账户和系统安全。

OWASP Top 10 2021 A07: 认证及验证机制失效详解 1. 漏洞概述 认证及验证机制失效(Identification and Authentication Failures)在2021年OWASP Top 10中排名第7位,指应用程序在用户身份确认、认证和会话管理方面的缺陷导致的安全问题。 1.1 关键统计数据 相关CWE数量: 22个 最大发生率: 14.84% 平均发生率: 2.55% 最大覆盖范围: 79.51% 平均覆盖范围: 45.72% 平均加权漏洞: 7.40 平均加权影响: 6.50 出现次数: 132,195次 相关CVE数量: 3,897个 2. 漏洞表现形式 2.1 认证机制缺陷 允许撞库自动化攻击(使用已知用户名密码列表尝试登录) 允许暴力破解或其他自动化攻击 允许使用默认、脆弱或常见密码(如"Password1"、"admin/admin") 脆弱的密码找回机制(如不安全的"知识问答"方式) 密码存储不安全(明文、弱加密或弱哈希存储) 缺乏有效的多因素认证(MFA) 2.2 会话管理缺陷 URL中泄露会话ID(如URL重写) 登录成功后未轮换会话ID 未正确注销会话ID(登出或闲置时未失效) 会话超时设置不当 单点登录(SSO)令牌管理不当 3. 攻击场景示例 场景1: 撞库攻击 攻击者使用已知的用户名密码列表对目标系统进行自动化尝试,系统缺乏防护措施导致攻击成功。 场景2: 密码策略缺陷 系统强制密码复杂度要求导致用户使用易记但脆弱的密码,或重复使用密码,建议遵循NIST 800-63标准。 场景3: 会话超时不当 用户在公共电脑登录后未登出直接关闭浏览器,会话未超时导致后续使用者可直接访问账户。 场景4: URL会话ID泄露 机票预订系统在URL中包含会话ID,用户分享链接时无意泄露会话,导致他人可冒用身份和支付信息。 场景5: 密码数据库泄露 系统密码数据库被入侵,存储的密码未加密或使用弱哈希,导致所有用户密码泄露。 4. 防御措施 4.1 认证机制加固 实施多因素认证(MFA) : 防止自动化攻击和凭据重用 禁用默认凭证 : 特别是管理员账户 密码策略 : 检查新密码是否在前10,000个最差密码列表中 遵循NIST 800-63b标准(密码长度、复杂度、轮换政策) 统一错误响应 : 防止通过错误信息枚举有效账户 限制登录尝试 : 增加失败尝试后的延迟 记录失败日志并设置攻击告警 4.2 会话管理加固 安全的会话ID生成 : 使用服务器端、安全的会话管理器 登录后生成新的高熵随机会话ID 会话ID保护 : 不在URL中传输 安全存储(如HTTP-only, Secure Cookie) 会话生命周期控制 : 登出后立即失效 闲置超时后自动失效 限制会话持续时间 4.3 其他安全措施 密码存储安全 : 使用强哈希算法(如bcrypt, PBKDF2, Argon2) 加盐处理 传输安全 : 所有认证相关通信使用TLS/SSL 身份验证cookie设置Secure和HttpOnly属性 功能隔离 : 区分公共区域和受限区域 受限区域实施更严格的安全控制 5. 验证方法 检查应用程序是否存在以下问题: 认证凭证是否使用强哈希或加密存储 认证凭证是否可猜测或通过弱账户管理功能重置 会话ID是否暴露在URL中 会话ID是否易受固定攻击 会话是否有超时机制,用户能否安全登出 成功登录后会话ID是否轮换 认证凭据是否仅通过TLS传输 6. 最佳实践总结 账户锁定策略 : 多次失败尝试后锁定账户 密码有效期 : 强制定期更换密码 账户禁用功能 : 安全事件后可快速禁用账户 强密码要求 : 至少8位字符 包含大小写字母、数字和特殊字符 加密传输 : 不在网络中明文传输密码 会话保护 : 加密会话cookie内容 限制会话寿命 避免未经授权访问会话状态 通过实施这些措施,可以显著降低认证和会话管理相关的安全风险,保护用户账户和系统安全。