以下文章转自InfoQ,作者:Alex Blewitt,译者:无名

若干天前,Amos(@fasterthanlime)遭遇了黑客的密码攻击,被偷了几百欧元。攻击者之所以可以得逞,是因为他可以关闭 password.google.com 的双因子身份验证,无需通过双因子身份验证机制来确认身份,导致双因子身份验证失去了意义。此外,随后的调查显示,存储在 password.google.com 中的密码很容易被提取,说明该服务在安全性方面存在很大的问题。InfoQ 已经联系了谷歌的安全工程师,他们做出了回应,在得到进一步信息后将更新本文。
这个漏洞的入口点是一个类似 VNC 的远程会话,这让攻击者能够访问当时正在被使用的 macOS 窗口系统。该服务使用的是 NoMachine,在没有认证的情况下直接将 4000 端口暴露了出来。正如 Amos 指出的,这是个错误。
然而,更大的问题出现了,因为 Amos 使用 macOS 的 Safari 登录账号,Safari“帮忙”记住了密码,并进行自动填充,这也让黑客随后得以获取 Amos 的详细信息。
由于 Amos 最近在那台机器上登录过,谷歌在机器上缓存了一个最近的会话令牌 (大概是用来配合 2FA)。攻击者在一段时间后通过 Safari 自动填充功能重用缓存的密码,刷新会话令牌,并使用它来禁用 2FA。这显然是有意这么设计的,也就是说,设计者默认如果你登录了一台电脑,并且知道密码,那么此刻你肯定就是电脑的主人。如果你最近登录过,并进行过会话,你只需要一个因子——密码——来刷新会话令牌,然后就可以开始后续的操作。
你不需要 2FA 令牌就可以禁用谷歌 2FA。
这似乎是一个很基本的安全问题,但很显然,为了方便用户,避免他们要经常输入 2FA 令牌,最好是先登录机器(只要你知道密码),然后就可以修改安全级别。换句话说,它就是 2FA。如果登录了,那就是 1FA 了。这种观点的理由是:你登录自己的机器,那它一定是安全的,不是吗?
@mrisher 对 @fasterthanlime 说:或许是术语上的不同?除了密码之外,不是还有指纹解锁和面部解锁吗?我承认屏幕锁存在一定的差别——比如耸肩膀、闭眼睛等——但这仍然是第二个验证因子,不是吗?
@mrisher 对 @fasterthanlime 说:在我们的模型中,设备锁是密码之外的第二个验证因子。你不这么认为吗?
是的,我不这么认为。2FA 的意义在于它应该是第二个因子身份验证。如果你可以只用一个密码来修改安全级别,那它就是 1FA。这是谷歌安全工程师提供的建议,而这让人更加感到担忧。
此外,一旦攻击者禁用了2FA,他们就能够远程攻击会话,并使用http://passwords.google.com提取Chrome 之前自动保存的密码。Amos 告诉InfoQ,他是一名1Password 用户,被Chrome 截获的密码有些过时了,但有一些仍然有效,攻击者用他的账号订购了一些硬件,还有其他一些账单需要Amos 支付。
事实上,直到有个使用了2FA 的服务在午夜给Amos 发送了通知,他才注意到事情有些不对劲。
Amos 调查得出的另一个结果是,http://passwords.google.com似乎使用谷歌登录密码来加密其他密码。任何知道你的密码的人——比如,Safari 自动为你填充密码——都可以解开被加密的密码。这与苹果的钥匙串管理器有点类似,只要你知道钥匙串的密码,就可以解开钥匙串里的内容。Chrome 通过云端服务来同步密码,任何 Chrome 实例都可以访问并解开密码。谷歌的密码检查服务也使用了这些密码,它可以使用你的账号密码来解密账号中的其他密码,以确定它们是否已被黑客攻击或者是否太过简单。攻击者可以通过控制计算机会话并使用在线密码管理器轻松获取密码。用户可以使用“choose as passphrase”加密密码来禁用密码检查功能,阻止谷歌在线解开你的密码。
这里有一些结论:
如果你用 Chrome 的记住密码功能,并且它用你的默认账号密码加密其他密码,那么 http://passwords.google.com就有可能是一个安全漏洞。最好使用真正的密码管理器。如果你没有使用真正的密码管理器,并继续在 Chrome 中使用 http://passwords.google.com,至少要从当前账号中选择一个不一样的密码。
如果你不确定是否有人在使用你的谷歌帐号,可以看一下这个页面https://g.co/securityCheckup ,看看最近有哪些设备在哪些地方使用了你的帐号,你可以撤销它们。
2FA 的安全性并没有问题,但为了方便而临时禁用它则可能是个问题。
谷歌还提供了一个高级保护程序,虽然无法阻止这类攻击,但读者可能会感兴趣:
https://landing.google.com/advancedprotection/ 。
Amos 在“小心谷歌密码管理器”这篇文章中详细记录了此次事件。
你对这种情况怎么看?这是为了方便消费者和为用户着想,还是一个需要修复的安全漏洞?
本文转自InfoQ,未经许可不得二次转载。
原文链接:https://www.infoq.cn/article/gUfTfcxhMpoL9cuTA7ND?utm_source=related_read&utm_medium=article

台湾省 1F
这也太危险了吧,都不用验证就能关2FA?
越南 B1
@ 拖地狂魔 这漏洞简直离谱,关2FA居然不用二次验证?
北京市 B1
@ 拖地狂魔 这漏洞简直离谱,关2FA居然不用二次验证?
中国 B1
@ 拖地狂魔 不光是危险,简直是把2FA当摆设了,主密码一破全完蛋
福建省厦门市 2F
这种漏洞企业IT看到得连夜加班排查吧
四川省内江市 3F
要是比特币跌回3万他们还能撑住不?
广东省深圳市罗湖区 4F
刚试了下关闭自动填充,感觉浏览器安全设置比想象中复杂
日本 5F
这漏洞企业IT看到得连夜加班吧,我们公司还在用谷歌全家桶😨
重庆市 6F
自动填充这功能确实该谨慎使用,现在都手动输入了
河南省郑州市 7F
所以关键问题在于信任设备和本人身份没区分清楚?
日本 8F
我早就转用1Password了,浏览器自带的密码管理真不敢信
日本 9F
要是手机丢了,指纹解锁在这种场景下也完全没用吧
台湾省 10F
所以用Chrome存密码也不安全啊
江苏省无锡市 11F
之前也被盗过号,现在都用独立密码管理器了
广东省广州市 12F
谷歌这个设计确实有问题,为了方便牺牲安全
韩国 13F
Safari自动填充功能也是个坑
新加坡 14F
这种漏洞企业用户怎么办啊
湖南省长沙市 B1
@ 寒江钓客 企业用户怕不是得集体换方案了,谷歌这波太拉胯
浙江省 15F
所以最后还是得靠独立密码管理工具
菲律宾 16F
有没有人试过谷歌的高级保护程序?
上海市 B1
@ 狂野的梦想家 高级保护程序试过,连Notion都登不上,日常用太折磨了
广西南宁市 17F
看来得赶紧去安全检查页面看看了
辽宁省锦州市 B1
@ 影子的低语 刚去g.co/securityCheckup看了下,吓一跳,赶紧清了一堆陌生设备
新加坡 18F
这个漏洞存在多久了?官方有回应吗?
中国 19F
我之前也踩过这坑,Safari自动填密码结果被钓鱼站拿走了
安徽省蚌埠市 20F
用1Password好多年了,Chrome存密码真的不敢信
山东省威海市 21F
那如果设备本身被物理接触了,是不是所有加密密码都白搭?
江苏省无锡市 22F
感觉谷歌把“信任设备”和“信任人”搞混了啊🤔
福建省漳州市 23F
前几天刚搞完这个,确实折腾了好久才把2FA重新开起来
山东省青岛市 24F
高级保护程序试过,但兼容性太差,很多第三方登不上
北京市 25F
Chrome密码管理器加密方式太依赖主密码了,风险太高
江苏省南京市 26F
Chrome密码同步这设计也太坑了吧,直接拿主密码解密其他密码😓
辽宁省铁岭市 27F
要是设备丢了或被入侵,2FA不就形同虚设了?
湖北省武汉市 B1
@ 绮梦 设备一丢就全完了,2FA等于摆设啊
江苏省南京市 28F
企业用谷歌全家桶的得注意了,这漏洞影响范围不小
浙江省 29F
我早就转用Bitwarden了,比谷歌自带的靠谱
天津市 30F
这个会话令牌机制是不是所有云服务都有类似问题?
四川省攀枝花市 31F
自动填充功能还是关掉比较安全,虽然麻烦点
湖北省武汉市 32F
所以关键问题在信任设备这个逻辑上?
山东省 33F
感觉谷歌安全团队得重新设计这套验证流程
日本 34F
有人试过关闭自动填充后还有没有这个问题?
江苏省徐州市 B1
@ 剑影刀光 关闭自动填充后确实安全多了,建议大家都关掉
广东省江门市新会区 B1
@ 剑影刀光 关了自动填充应该能缓解,但会话令牌那块还是有风险
江苏省常州市 35F
用指纹或面部解锁能避免这种情况吗?
日本 36F
这个漏洞也太吓人了,完全不需要验证就能关2FA?
日本 37F
谷歌这个信任设备逻辑明显有问题,把安全当儿戏
广东省佛山市顺德区 38F
之前用Safari自动填充也被坑过,现在都手动输入了
韩国 39F
所以关键问题在于会话令牌的刷新机制?
浙江省宁波市 40F
企业用谷歌服务的得赶紧检查下安全设置了
河北省保定市 41F
用独立密码管理器确实更靠谱,Chrome自带的太依赖主密码
浙江省 42F
要是设备被偷了,是不是所有密码都能被轻松破解?
日本 B1
@ Alex岚 被偷设备真能直接导出所有密码?细思极恐
马来西亚 43F
这个设计太危险了,为了省事把安全都丢了
日本 44F
有没有人知道其他云服务有没有类似问题?
澳大利亚 45F
去安全中心看了下,确实能看到最近登录设备
陕西省西安市 B1
@ 蜂蜜蝴蝶 安全检查页面确实挺有用的,定期看看没坏处
北京市 46F
刚去看了安全检查页,果然有陌生设备登录记录😓
北京市 47F
手动输入密码虽然麻烦,但比自动填充安心多了
印度 48F
我用Bitwarden三年了,Chrome密码管理器早不敢碰
日本 B1
@ 疾风掠影 Bitwarden确实比Chrome自带的好用多了
安徽省芜湖市 49F
企业账号要是中招,损失可不止几百欧吧
日本 50F
会话令牌刷新机制太宽松了,谷歌得改
北京市 51F
前几天重装系统后重新开2FA,折腾到半夜
江苏省 52F
指纹解锁在这种场景下根本没用,照样被绕过
韩国 53F
自动填充功能真是个坑,现在都不敢用了
上海市 54F
要是设备被偷,所有账号都得完蛋😨
日本 55F
企业IT看到这个得疯,赶紧排查去
辽宁省沈阳市 56F
所以浏览器记住密码功能反而最危险?
韩国 57F
指纹解锁在这种情况确实没用,亲身经历
韩国 58F
谷歌这个设计逻辑问题很大啊
香港 59F
赶紧去安全检查页看了一眼,还好没异常
江苏省常州市 60F
这种漏洞存在多久了?官方修复了吗🤔
泰国 61F
看来还是得用独立的密码管理器
浙江省杭州市 62F
要是被远程控制了,2FA就是个摆设
北京市 63F
这漏洞也太危险了吧,都不用验证就能关2FA?
日本 64F
自动填充功能确实该关掉,虽然麻烦但安全第一
江苏省南通市 65F
刚去安全检查页看了下,果然有陌生设备登录记录😓
韩国 66F
我之前也踩过这坑,Safari自动填完就被盗了俩小号
吉林省长春市 67F
手动输密码烦是烦,但至少心里踏实点
湖北省潜江市 68F
所以关键不是2FA本身,是谷歌默认“登录设备=本人”这逻辑太草率了🤔
安徽省芜湖市 69F
刚去安全检查页扫了一眼,居然有上周在巴西的登录记录,吓死了😓
越南 70F
企业账号要是被这么搞,估计得哭死,几百欧算啥
上海市 71F
指纹解锁在这种远程控制场景下完全没用,亲测无效
印度尼西亚 72F
Chrome存密码真不如Bitwarden,主密码一丢全军覆没
马来西亚 73F
刚去安全检查页看了下,发现两个陌生IP,赶紧全删了
上海市 74F
这漏洞企业IT看到得连夜加班排查吧
马来西亚 75F
所以关键问题在信任设备逻辑?要是手机丢了怎么办🤔
吉林省长春市 76F
我用LastPass好几年,浏览器存密码早就不敢用了
印度 77F
自动填充确实坑,上次被钓鱼网站坑过之后就关掉了
北京市 78F
企业用户损失可能比个人大得多,关键数据泄露就完了
日本 79F
指纹解锁在这种远程控制场景下确实没用,亲身经历
广东省广州市 80F
这个会话令牌刷新机制太宽松了,谷歌得赶紧修复
湖北省武汉市 81F
所以最后还是得靠独立密码管理工具更靠谱
北京市 82F
要是设备被偷了,所有账号都能被轻松破解?😨
韩国 83F
刚试了谷歌高级保护,结果连自家Gmail都登不上去了
安徽省合肥市 84F
刚去安全检查页看了下,果然有陌生设备登录😓
日本 85F
指纹解锁在这种远程控制场景下确实没用,亲测无效
韩国 86F
这安全逻辑有点迷啊
韩国 B1
@ 甜心果冻 我也这么觉得
湖南省益阳市 87F
浏览器存密码这习惯得改改了