谷歌和微软可通过 Web 浏览器的拼写检查功能获取你的密码

2022-10-06

谷歌 Chrome 和微软 Edge 这两大 Web 浏览器中的扩展拼写检查功能可以将表单数据分别传输给谷歌和微软,包括个人身份信息(PII)和某些情况下的密码。

虽然这可能是这些 Web 浏览器的一项预料之中的已知功能,但它确实让人们对数据在传输后发生什么以及这种做法有多安全忧心忡忡,尤其是涉及密码字段。

Chrome 和 Edge 都默认启用了基本的拼写检查器。但是当用户手动启用 Chrome 的增强拼写检查或 Microsoft Editor(微软编辑器)等功能后,就会暴露这个在的隐私风险。

拼写劫持:拼写检查功能将 PII 发送给科技巨头

在使用 Chrome 和 Edge 等主流 Web 浏览器时,如果增强拼写检查功能开启,你的表单数据就分别传输给谷歌和微软。

表单数据本身可能包含 PII,包括但不限于社会安全号码(SSN)/ 社会保险号码(SIN)、姓名、地址、电子邮件、出生日期、联系信息、银行及支付信息等信息,具体视访问的网站而定。

JavaScript 安全公司 otto-js 的联合创始人兼首席技术官 Josh Summitt 在测试该公司的脚本行为检测时发现了这个问题。

在启用 Chrome 增强拼写检查或 Edge 的 Microsoft Editor(拼写检查器)的情况下,在这些浏览器的表单字段中输入的 " 几乎一切信息 " 都会传输给谷歌和微软。

otto-js 在一篇博文中解释道:" 此外,如果你点击‘显示密码’,增强拼写检查功能甚至会发送你的密码,实际上拼写劫持你的数据。"

" 当用户登录或填写表单时,世界上一些最大的网站可能会向谷歌和微软发送敏感的用户 PII,包括用户名、电子邮件和密码。对于公司企业来说,一个更让人担心的问题是,这给公司用来访问内部资产(比如数据库和云基础架构)的企业凭据带来了风险。"

图 1. 阿里巴巴登录表单字段," 显示密码 " 已启用(来源:otto-js)

图 2. Chrome 的增强拼写检查器将密码传输给谷歌(来源:otto-js)

比如说,用户可能常常在不允许复制粘贴密码的网站上或者怀疑自己输入错误时依赖 " 显示密码 " 选项。

为了演示,otto-js 举了用户在阿里云平台上往 Chrome Web 浏览器输入凭据的例子,不过任何网站都可以用于这个演示。

增强拼写检查启用后,假设用户点选了 " 显示密码 " 功能,包括用户名和密码在内的表单字段就传输给谷歌(googleapis.com)。

该公司还提供了视频演示:

BleepingComputer 还观察到,在使用 Chrome 访问以下几大网站的测试中,凭据被传输给了谷歌:

CNN ——使用 " 显示密码 " 后,用户名和密码都传输。

Facebook.com ——使用 " 显示密码 " 后,用户名和密码都传输。

SSA.gov(社会安全登录)——仅传输用户名字段。

美国银行——仅传输用户名字段。

Verizon ——仅传输用户名字段。

一种简单的 HTML 解决方案:’ spellcheck=false ’

虽然表单字段是通过 HTTPS 安全的传输的,但一旦用户数据到达第三方(本例中是谷歌的服务器),之后会发生什么情况可能还不是很清楚。

谷歌发言人向 BleepingComputer 证实:" 增强拼写检查功能需要用户选择加入(opt-in)。" 请注意,这与默认情况下 Chrome 中启用的基本拼写检查器形成了对照,后者不会将数据传输给谷歌。

若要查看你的 Chrome 浏览器中是否启用了增强拼写检查功能,将以下链接复制粘贴到你的地址栏中。然后,你可以选择打开或关闭它:

chrome://settings/?search=Enhanced+Spell+Check

图 3. Chrome 中的增强拼写检查设置需要用户选择加入(来源:BleepingComputer)

从屏幕截图可以看到,该功能的描述明确指出:增强拼写检查功能启用后," 你在浏览器中键入的文本将发送给谷歌。"

谷歌在发布的声明中继续称:" 用户输入的文本可能是敏感的个人信息,谷歌并不将其附加到任何用户身份上,只在服务器上临时处理。为了进一步确保用户隐私,我们将竭力从拼写检查中主动排除密码。"

" 我们感谢安全社区的合作,我们一直在寻找更好地保护用户隐私和敏感信息的方法。"

至于 Edge,Microsoft Editor Spelling & Grammar Checker 是一个浏览器插件,需要明确安装,才能发生这种行为。

BleepingComputer 在发稿之前事先联系了微软,被告知此事正在调查中,但尚未收到回复。

otto-js 将这个攻击途径称为 " 拼写劫持 ",对 Office 365、阿里云、谷歌云 Secret Manager、Amazon AWS - Secrets Manager 和 LastPass 等云服务的用户表示了担忧。

针对 otto-js 的报告,AWS 和 LastPass 都解决了这个问题。以 LastPass 为例,补救措施是为密码字段添加一个简单的 HTML 属性 spellcheck="false":

图 4. LastPass" 密码 " 字段现在包括 spellcheck=false HTML 属性(来源:BleepingComputer)

从表单文本输入字段中省略时,'spellcheck' HTML 属性通常被 Web 浏览器默认为 true。 'spellcheck' 明确设置为 false 的输入字段将不会通过 Web 浏览器的拼写检查器进行处理。

otto-js 解释:" 公司可以通过给所有输入字段添加 'spellcheck=false' 来降低共享客户 PII 的风险,不过这可能会给用户带来问题。" 用户现在再也无法通过拼写检查器运行所输入的文本。

" 或者,你可以将其添加到仅包含敏感数据的表单字段。公司企业还可以删除‘显示密码’的功能。这无法阻止拼写劫持,但可以阻止用户密码被发送出去。"

颇具讽刺意味的是,我们观察到 Twitter 的登录表单(带有 " 显示密码 " 选项)其密码字段的 "spellcheckk"HTML 属性被显式设置为 true:

图 5. Twitter 密码字段的 " 显示密码 " 和拼写检查被设置为 true(来源:BleepingComputer)

作为一项额外的保护措施,Chrome 用户和 Edge 用户可以暂时关闭增强拼写检查(只需按照上述步骤),或者从 Edge 删除 Microsoft Editor 插件,直到这两家公司都修改了扩展拼写检查器,对密码之类的敏感字段不作处理。