
Fortinet近日发布警告称,攻击者正利用一个三年前的老漏洞,仅需改变用户名大小写即可绕过FortiGate防火墙的双因素认证(2FA)保护。
该漏洞编号为FG-IR-19-283(即CVE-2020-12812),最初于2020年7月披露并修复。但最新监测发现,威胁分子正针对特定未修复配置的企业成功利用此漏洞。
漏洞成因:大小写处理差异
Fortinet分析报告指出:"我们监测到攻击者正在野外利用2020年7月披露的FG-IR-19-283/CVE-2020-12812漏洞,攻击目标为采用特定配置的系统。"
这个经典逻辑漏洞源于系统间文本处理方式的差异:FortiGate防火墙默认将用户名视为大小写敏感(如"User"与"user"不同),而多数LDAP目录(如微软Active Directory)则视为相同。
报告解释:"当LDAP目录不区分大小写时,FortiGate默认采用大小写敏感的用户名验证机制,导致了这一特殊认证行为。"
攻击原理:认证流程缺陷
这种差异形成了安全漏洞。当企业配置了2FA保护的本地用户,同时又设置了LDAP群组策略作为备用认证方式时,攻击者可完全绕过安全令牌。
攻击过程极为简单:假设存在受2FA保护的本地用户"jsmith",攻击者通过VPN或管理面板尝试使用"JSmith"或"JSMITH"等变体登录。由于FortiGate的本地用户数据库区分大小写,会判定"JSmith"与"jsmith"非同一用户,因此不要求2FA验证。
防火墙随后检查二级认证方式(如LDAP群组)。由于后端LDAP服务器不区分大小写,会将"JSmith"识别为有效用户,仅凭密码即可授予访问权限。
报告详细说明:"如果用户以'Jsmith'、'jSmith'、'JSmith'等任何非精确匹配'jsmith'的大小写组合登录,FortiGate将不会匹配本地用户。此时无论本地用户策略中的2FA设置如何,认证都会成功。"
严重风险与修复方案
该漏洞影响严重:"可能导致管理员或VPN用户在未通过2FA的情况下获得认证"。Fortinet敦促管理员将系统升级至6.0.10、6.2.4、6.4.1或更高版本。
对于无法立即升级的企业,可通过手动配置修复:强制防火墙忽略大小写差异。报告建议:"禁用用户名大小写敏感后,FortiGate会将jsmith、JSmith、JSMITH等所有组合视为相同用户,从而避免故障转移到其他配置不当的LDAP群组设置。"
管理员应对本地账户执行以下命令:
- 新版系统:
set username-sensitivity disable - 旧版系统:
set username-case-sensitivity disable
报告还建议审查认证策略:"若非必要,应移除备用LDAP群组设置"以缩小攻击面。
参考来源:
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)



