谷歌雙因子認證漏洞:不需要令牌就可以禁用

若干天前,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,他們就能夠遠程攻擊會話,並使用passwords.google.com提取Chrome之前自動保存的密碼。Amos告訴InfoQ,他是一名1Password用戶,被Chrome截獲的密碼有些過時了,但有一些仍然有效,攻擊者用他的賬號訂購了一些硬件,還有其他一些賬單需要Amos支付。

事實上,直到有個使用了2FA的服務在午夜給Amos發送了通知,他才注意到事情有些不對勁。

Amos調查得出的另一個結果是,passwords.google.com似乎使用谷歌登錄密碼來加密其他密碼。任何知道你的密碼的人——比如,Safari自動爲你填充密碼——都可以解開被加密的密碼。這與蘋果的鑰匙串管理器有點類似,只要你知道鑰匙串的密碼,就可以解開鑰匙串裏的內容。Chrome通過雲端服務來同步密碼,任何Chrome實例都可以訪問並解開密碼。谷歌的密碼檢查服務也使用了這些密碼,它可以使用你的賬號密碼來解密賬號中的其他密碼,以確定它們是否已被黑客攻擊或者是否太過簡單。攻擊者可以通過控制計算機會話並使用在線密碼管理器輕鬆獲取密碼。用戶可以使用“choose as passphrase”加密密碼來禁用密碼檢查功能,阻止谷歌在線解開你的密碼。

這裏有一些結論:

  • 如果你用Chrome的記住密碼功能,並且它用你的默認賬號密碼加密其他密碼,那麼passwords.google.com就有可能是一個安全漏洞。最好使用真正的密碼管理器。如果你沒有使用真正的密碼管理器,並繼續在Chrome中使用passwords.google.com,至少要從當前賬號中選擇一個不一樣的密碼。
  • 如果你不確定是否有人在使用你的谷歌帳號,可以看一下這個頁面https://g.co/securityCheckup,看看最近有哪些設備在哪些地方使用了你的帳號,你可以撤銷它們。
  • 2FA的安全性並沒有問題,但爲了方便而臨時禁用它則可能是個問題。
  • 谷歌還提供了一個高級保護程序,雖然無法阻止這類攻擊,但讀者可能會感興趣:
    https://landing.google.com/advancedprotection/

Amos在“小心谷歌密碼管理器”這篇文章中詳細記錄了此次事件。

你對這種情況怎麼看?這是爲了方便消費者和爲用戶着想,還是一個需要修復的安全漏洞?

原文鏈接

Disabling Google 2FA Doesn’t Need 2FA

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章