现在很多企业远程接入都开启了VPN多因素认证机制,本意是避免单密码泄露导致的内网入侵风险,但不少运维人员配置或者普通用户日常使用时,很容易踩各种隐蔽的错误坑,轻则导致合法用户无法正常接入业务系统,重则反而让多因素认证的防护形同虚设。本文就梳理实际运维场景里高频出现的配置和使用错误,附带可落地的逐项排查方法,帮你避开常见的防护失效或者连接故障问题。
第一类错误:多因素认证触发范围配置遗漏
很多运维刚上线VPN多因素认证的时候,默认只给普通员工账号开了二次校验,却把管理员账号、第三方外包接入账号、测试专用免密账号排除在规则之外。你如果遇到普通员工接入VPN每次都要弹二次校验,但是核心运维账号输完密码直接就能登的现象,首先要去VPN后台的认证规则组里,检查所有账号的所属分组,有没有设置例外排除。
这里的检查步骤要覆盖所有账号类型,不要只看部门分组,还要单独搜有没有单独加白名单的账号,预期结果是所有具备内网高权限访问权限的账号,都必须触发多因素校验,不存在任何绕过二次验证的例外账号。很多入侵事件里攻击者就是拿到了被遗漏的外包账号密码,直接绕过VPN多因素认证进入内网。
第二类错误:二次校验因子和账号绑定逻辑松散
不少场景里管理员配置VPN多因素认证的时候,只要求用户首次接入的时候输入一次验证码绑定设备,后续用户换其他设备接入VPN,不需要重新校验身份就能直接把新设备设为信任设备。这种配置下如果用户的VPN密码泄露,攻击者拿到密码之后随便用自己的手机就能绑定新的校验因子,完全绕开了设备唯一性校验的作用。
排查这个问题的时候,你可以用自己的测试账号做模拟操作,在已经绑定过校验器的前提下,用一台从未登录过VPN的新设备输入账号密码,看系统会不会要求你提交工牌信息、或者原绑定设备的确认授权,才能添加新的多因素认证因子。如果系统直接允许你在新设备上绑定新的TOTP校验码,就说明当前的绑定逻辑存在漏洞,需要调整成新增因子必须经过原有已认证设备的二次确认,或者管理员后台人工审核通过才能生效。
第三类错误:多因素认证凭据的传输和存储配置不当
有些早期的VPN系统默认把多因素认证的临时验证码、绑定的校验器密钥,直接和普通密码一样用明文或者弱加密的方式存储在本地数据库里,一旦VPN后台被拖库,攻击者直接就能拿到所有用户的二次校验因子数据,多因素认证的防护效果完全失效。你如果遇到后台导出用户认证数据的时候,能直接看到完整的TOTP密钥或者历史验证码内容,就说明存储配置不符合安全要求。
对应的调整方法是开启VPN系统的认证凭据加盐哈希存储机制,同时多因素认证的动态校验过程要走独立的加密通道,不要和账号密码的传输链路共用未加密的接口,排查的时候可以抓包看二次校验验证码的传输内容,不能出现明文的验证码字段。
第四类错误:用户端日常使用的操作误区
很多普通用户开启VPN多因素认证之后,习惯把动态验证码截图存在本地相册,或者把二次校验的授权APP和VPN账号的明文密码存在同一个备忘录里,一旦手机设备丢失,拿到手机的人可以直接拿到两个认证因子的全部内容,多因素认证就失去了分层防护的意义。
日常使用的时候要注意,多因素认证的不同因子要分开存放,不要把密码、动态验证码、生物识别信息的对应记录存在同一个设备的同一个存储位置,每次接入VPN的时候,动态验证码要实时从授权APP获取,不要提前存好多个备用验证码放在本地。
第五类错误:故障 fallback 机制配置不合理
不少运维怕多因素认证服务器故障的时候所有员工都没法接入VPN办公,就直接配置了全局的“认证失败自动放行”的兜底规则,一旦多因素认证的服务挂掉,所有用户输完密码就能直接登录VPN,这种配置相当于给整个接入体系开了一个超大的后门,攻击者只要发起针对多因素认证服务的拒绝服务攻击,就能直接绕过所有二次校验。
正确的兜底配置应该是只有管理员账号能在本地控制台开启临时的免二次校验模式,而且这个模式的生效范围只能指定单个应急账号,不能全局放开,同时开启之后系统要自动给所有运维人员发告警通知,确保应急状态不会被攻击者恶意利用。
