
一位安全研究员 @L1v1ng0ffTh3L4N 于 4 月 29 日在 BigBiteOfTech 披露了一则发现:微软 Edge 浏览器在启动瞬间,会将你保存过的所有密码一股脑解密并加载到进程内存里——更麻烦的是,这些密码全程以明文形式驻留,不管你有没有打开过对应的网站。
这个发现源于他对主流 Chromium 浏览器凭证内存处理机制的一次系统性测试。测试结果揭示了一个比想象中更严峻的现实:这与谷歌 Chrome 按需解密、用完即锁的设计理念截然不同。
对比分析:两个 Chromium 浏览器的安全差距
在这项测试中,Edge 是唯一一个表现出此类行为的浏览器。它不光在启动时把整个密码库以明文形式丢进内存,而且在整个会话期间都不会清理。反观 Chrome,防护思路截然不同:
- 按需解密:Chrome 只在自动填充或你主动查看密码的那一刻,才对凭证进行解密操作,用完即收。
- 应用绑定加密:Chrome 采用 App-Bound Encryption 技术,将解密密钥与经过验证的 Chrome 进程进行密码学绑定,确保其他外部进程即便潜入也无法直接复刻密钥来读取凭证。
这不仅仅是实现方式的差异,而是安全模型的根本分野。
安全风险:访问控制的虚假面具
Edge 缺失了上述关键的防护机制。从浏览器图标被双击的那一刻起,你所有站点的明文凭证就在进程内存里开了一场“全天候派对”。这对那些能读取进程内存的攻击者来说,目标明确,收获颇丰。
更令人啼笑皆非的矛盾之处在于:
- 在 Edge 的密码管理器界面里,你依然需要输入系统认证才能“窥见”密码。
- 但实际上,浏览器进程早已将全部凭证以明文形式捏在手心里,只要你有办法查询进程内存,就能轻松把它们全部拿走。
这就是所谓的重新认证机制——它只是在表面上营造出一种访问控制的错觉,对于基于内存的凭证提取,它根本无能为力。尤其在远程桌面服务或终端服务器这样的多用户环境里,风险会被迅速放大。试想一下,一个拥有管理员权限的攻击者,可以同时读取所有登录用户进程的内存,这无异于一场凭证大丰收。
概念验证:单点沦陷引发全局泄露
随披露一起发布的概念验证视频,直观地展示了这种攻击路径:攻击者仅仅通过一个受控的管理员账户,就成功地从另外两名已登录用户的 Edge 进程内存中提取到了存储的凭证——哪怕其中一名用户的会话已经断开,但只要进程还在后台活跃,密码就仍在其中。
这完美演绎了单点管理员账户沦陷如何演变为整个多用户环境的凭证全面泄露。在 MITRE ATT&CK 攻击框架中,这正好对应了 T1555.003 技术(从 Web 浏览器获取凭证)。对于关注渗透测试的安全人员来说,这是一个极其生动的现实案例。
厂商回应与应对建议
面对漏洞报告,微软的回应轻描淡写,称这一行为“符合设计”。其公开文档也承认,在本地攻击场景下,浏览器内存中的凭证确实可能被读取,但他们却将此类场景划归为“超出浏览器威胁模型”。
这种设计逻辑,实在让人难以认同。安全不应只是表面上的合规,而应深入到底层架构。
目前,BigBiteOfTech 同期发布了一款小型验证工具,供用户自行检查 Edge 是否也存在明文凭证内存驻留的现象。
对于企业安全团队,以下两点需要特别关注:
- 所有部署了 Edge 的 Windows 终端服务器、虚拟桌面等共享访问系统,都应立刻将此问题视作高优先级配置风险。
- 在微软真正修正这项设计之前,建议将浏览器策略迁移到具备按需解密和应用绑定加密机制的浏览器上。
参考来源:
Microsoft Edge Stores All Saved Passwords in Cleartext Process Memory at Launch
https://cybersecuritynews.com/microsoft-edge-passwords-cleartext/
|