
因著前幾天在一個群里看到有人說Facebook的賬號被盜用了,損失了幾萬美金,最后也不了了之。代理商同學提醒建議打開雙重驗證:為了提高 Facebook 平臺的安全性,我們建議廣告主必須打開雙重驗證才能訪問商務管理平臺。這段時間因新冠疫情的蔓延,線上活動的活躍度不斷上升,廣告主個人帳戶遭盜用的情況屢有發生,這給了網絡危險分子可乘之機,讓他們得以竊取商務管理平臺的訪問權限,投放虛假或有誤導性的廣告。
看到這個事情,想到一篇古早的文章,分享給大家,以下為正文,內容比較多,請耐心觀看:
我記得在兩年前,兩步驗證(2-Factor-Authentication, 2FA)變得非常普及并且在各大主流網站(Google, Facebook, Yahoo 等)廣泛應用。那時我十六歲,天真的我想不通為什么這么天才的想法之前沒有人想到過。在那時,我認為2FA就是一個可以保護自己的金色盾牌,它可以抵御那些最復雜的網絡欺詐。
兩步驗證的分析,概念以及流程
兩步驗證的分析
當將兩步驗證看做一個整體時,從一個攻擊者的角度看來僅僅有這些東西。在我第一次對兩步驗證的分析中,我經常在想是否可能進行以下的攻擊:
暴力搜索兩步驗證的pin碼(有一些服務,比如蘋果,只有四位的pin,并且幾乎沒有任何頻率的限制)。
發現pin生成的漏洞。
通過某種方法竊取兩步驗證后的session標記,這樣攻擊者可以不用通過兩步驗證就登錄賬戶。
以上技術都是攻擊的有效手段,但是通常沒有人會使用,因為這些手段太老套了,已經有了相應的防御。
概念及攻擊流程
被攻擊者的用戶名/郵箱和密碼。
被攻擊者關聯到兩步驗證服務的手機號。
一個手機號欺詐服務。
手機語音信箱遠程登錄的賬號。
攻擊者在支持兩步驗證的網絡應用上登錄被攻擊者的賬號。
Telstra不管是什么Caller ID或者是ANI都要求一個pin碼,因此對于我上文描述的破解來說是安全的。
Vodafone在未設置pin碼的情況下,如果我通過欺詐服務冒充你的號碼撥打,會讓我設置pin碼或者是進入你的語音信箱。
Virgin Mobile我并未測試,然而由于它是Optus網絡的一部分,因此它很有可能是易受攻擊的。
你如果不確定你現在使用的是哪種網絡,或者你想檢查一下自己是否是易受攻擊的,我的一個朋友((Aleksa Sarai)寫了一段程序通過你的手機號來確定你的在澳大利亞的移動網絡。你只需輸入你的手機號然后點擊check就可以了。
你可以在Github上找到檢測移動網絡的代碼。
向谷歌安全團隊揭露
谷歌是兩步驗證的早期使用者,它的全部服務都使用了兩步驗證。如果你所選擇的電話公司在語音信箱安全方面管理非常嚴格的話,谷歌現在使用的兩步驗證系統還是非常安全的,但是谷歌所提供的兩步驗證可以繞過的概率其實是非常高的。
語音信箱服務的安全并不由谷歌管理而是由電話商管理。
一旦兩步認證的標記或者OTP在語音信箱中,有許多可以攻擊的因素,可以撤銷標記而不改動谷歌端的數據。
如果你想看我和谷歌對話的全部郵件記錄,你可以點擊這里: google.pdf。
注意:通過這個繞過兩步驗證的方法并不能不動聲色地來盜取谷歌賬戶,因為很有可能一旦登錄到支持兩步驗證的谷歌賬戶中就會自動向用戶發送信息。在前面的步驟中你必須選擇撥打電話的方式然后繼續破解。這樣很可能會引起受害者的警覺。
他們對我最初的破解的回復如下:
嗨,
謝謝你的錯誤報告。我們已經看了你提交的數據并且確信這不是谷歌產品的安全缺陷。這個攻擊假設了一個易被盜取的密碼,并且實際的易被攻擊性是由于電話商提供的對語音信箱的保護不夠充分導致的。請直接向電話商報告這些。
Regrads,
Jeremy
雖然我知道語音信箱系統不夠安全這是電話商的錯誤,我仍然覺得谷歌把兩步驗證標記發送到語音信箱這一做法有缺陷,這是個很危險的做法,并且大部分2FA提供商都不這樣做。因此,我作出了以下回復:
Hi, Jeremy,
當我發現這些漏洞時,我完全理解并且我也和電話商在不斷聯系。
澳大利亞和英國的大部分電話商都只要求一個并未鎖定的四位的pin碼。然而,使用VoIP服務以及Asterisk AGI(http://www.voip-info.org/wiki/view/Asterisk+AGI)的一些腳本就在一天內可以進入語音信箱的賬號。
實質上,雖然你說的“這一定是電話商的問題”是對的。這不僅意味著在最近四年里(或更多),在澳大利亞使用Optus提供的服務的人(澳大利亞的大部分人)是非常容易受到繞過兩步驗證攻擊的,這也意味著許多國家的電信商也非常容易受相同種類的攻擊。
我覺得把這個問題說成是一個純粹的電話商的問題,會有點忽略掉兩步驗證并沒有很好的理由來發送到個人的語音信箱里這個事實。另外,先不考慮由于外部的易受攻擊性使得谷歌的兩步驗證可以被繞過這件事,谷歌這樣做事實上還是會把敏感信息交給一個可能易受攻擊的終端。
另外,在做了一些調查后,我能夠跟Duosecurity 和Authy的專門負責兩步驗證的工作人員交流了。當我第一次發現谷歌發送兩步驗證的標記到語音信箱時,我非常肯定像Duosecurity 和Authy這樣的兩步驗證服務提供商也是易受攻擊的。但是我錯了,他們并不會將兩步驗證標記發送到語音信箱。他們是這樣處理這個問題的:
- 在通過語音發送PIN碼或者兩步驗證標記時要求用戶的某些交互行為。
- 在語音信箱留下一個空白信息而不是pin。
-要求用戶的交互作為驗證的方式(接到兩步驗證的電話->告訴用戶按下數字鍵”x”->如果正確按下=確認,如果沒有=未確認)
請讓我知道你對此有何看法以及谷歌是否有應對這種情況的措施。十分顯然這個問題是由于電話商的不安全的語音信箱服務造成的,然而這并不是谷歌或者是我可以控制的因此使得兩步驗證在某種程度下易受攻擊。
兩步驗證對于那些將Optus手機號和谷歌賬戶綁定到一起的澳大利亞人來說是無效的,并且至少近四年是無效的(假設其他人已經知道Optus語音信箱的漏洞了)。
謝謝,
Shubham
谷歌很快回復道:
嗨,
感謝你解釋這個問題的潛在作用域。
由于這并不是我們2SV系統在技術上的缺陷,我不確定我們能夠做些什么來應對這個問題。但是我已經把一個bug記錄下來并且會讓團隊成員來看一看。
Jeremy
假設這個問題不能修正,因此目前解決這個問題的最好方法就是禁用通過短信或者電話的兩步驗證,啟用谷歌的兩步驗證,如果你綁定到手機就可能容易受到攻擊。
這個設置方法可以在下面找到:https://accounts.google.com/b/0/SmsAuthSettings
———————————————————————————————————————————————————–
向Facebook安全團隊揭露
因為我的一個失誤,在這次揭露之前我剛剛意識到可以用攻擊谷歌的類似方法來攻擊Facebook。Facebook稱他們的兩步驗證“Login Approvals”是一個類似于登錄通知的特點,但是有額外的安全步驟。
用和上述步驟相同的流程來破解,同樣可以繞過Facebook的兩步驗證。
登錄賬戶。
點擊“通過短信發送驗證碼”。
會顯示出撥打電話的選項。
通過撥打被攻擊者電話或其他方法保證被攻擊者處于通話狀態。
點擊“電話通知驗證碼”選項。
驗證碼會被發送到語音信箱中。
另外,除了上述模式,也可以通過向”https://www.facebook.com/ajax/login/approvals/send_sms“發送表單數據為”method_requested=phone_requested”的請求。
這個方法是通過截取最初發送短信的請求,將”sms_requested”替換為”phone_requested”來實現的,它是最有效地方法。
你可以在這里找到我向facebook 披露這個漏洞的完整版本facebook.pdf.
然而,他們對此的回復如下:
Shubham 你好,
我們目前暫時禁用了通過電話來發送登錄驗證碼的功能,未來還將進一步研究。我們的計劃是當可以實現用戶在通話中的交互時再重新啟用這一功能,這樣就可以防止我們將驗證碼發送到語音信箱中。
Neal, Facebook 安全團隊
Facebook在我繞過兩步驗證之后迅速的禁用了部分功能,他們非常迅速地采取了措施,至少是臨時的措施。
狀態: 不再會受攻擊| 揭露日期: Sun, May 11, 2014 at 10:28 AM
向 LinkedIn安全團隊揭露
正如谷歌和Facebook一樣,當被攻擊者沒有接到系統自動來電或者占線時LinkedIn就會將兩步驗證碼發送到被攻擊者的語音信箱中。
LinkedIn處理地很好,他們關閉了通過電話發送兩步驗證碼這個功能,直到他們可以和第三方的兩步驗證提供商來修復這個問題。
你可以在這里看到我和LinkedIn發送的所有郵件linkedin.pdf.
他們對這一問題的主要回復如下:
Shubham,你好
感謝你在公開這個問題之前告訴我們。
雖然這個問題對我們的影響是有限的,但是我們暫時關閉了發送兩步驗證碼的語音的功能。我們正在和第三方協商解決這個問題。在問題修復后,我們會考慮恢復語音功能。
謝謝,
David
狀態: 不再會受攻擊| 揭露日期: Wed, Apr 30, 2014 at 4:15 AM
向雅虎團隊揭露 (通過HackerOne)
雅虎支持兩步驗證的主要服務也容易受到我上文中所說的攻擊。事實上,對支持兩步驗證的雅虎賬號的攻擊會更嚴重因為攻擊者并不用擔心被攻擊者知道他的賬號已經登錄。
通常支持兩步驗證的網絡應用會在有人登錄后發送短信通知。然而,當登錄到雅虎賬號以后,并不會發送短信,并且可以選擇通過短信或者是電話來發送驗證碼。
向 Authy & Duosecurity揭露
我很快假設那些提供兩步驗證的服務都一定是易受攻擊的。然而,我是錯誤的—因為他們知道這個事實并且對發送pin碼到語音信箱這個問題有著長遠考慮。
你可以閱讀我和Authy 及 Duosecurity的來往郵件 authy.pdf and duosecurity.pdf
這兩個服務提供商都在24小時內給了我回復,并且他們對此都非常熱心。
Authy | 狀態:不易受攻擊 | 揭露日期: Wed, Apr 30, 2014 at 1:27 AMDuosecurity | 狀態:不易受攻擊 | 揭露日期: 2014-04-29 13:46:16 UTC
Authy會發送空白的語音信息,Duosecurity會在驗證前要求用戶的交互操作。
感謝Authy 和Duosecurity!
緩解技術和向電話商 Telco 揭露:
廣大的讀者你們好,我校對了上面的一些信息,包括世界各地各種移動網絡的終端。
由于我不能查對 Telco 的海外電話商,我 知道世界各地的人都關心他們的電話商是否是易受攻擊的。
要看你是否可以通過欺詐服務不用pin碼就進入語音信箱,僅需要跟著上午所說的流程來,將終端號碼改為你的電話商用的。
如果你的電話商也容易受到攻擊請通過郵件或者是評論來告訴我。
應對這個問題并沒有想象中的那么簡單,這要求重新構造兩步驗證的電話通知。這里是一些建議的解決方法(在給那些公司的郵件里都提到過):
要求用戶的交互作為驗證(推薦)
以語音信箱檢測結束通話(不可靠)
最后也是最重要的:
去除語音通話發送驗證碼的功能(減少了用戶體驗)
向 Optus揭露
我和Ben Grubb一起工作很愉快(The Sydney Morning Herald and The Age的編輯),他幫助我把這些問題反映給Optus并且在此過程中非常熱心也很有合作精神。
當我第一次發現Optus是易受攻擊的時候,我的研究讓我注意到這篇文章thisIs your Voicemail Hackable? Optus, Telstra and Vodafone respond
Optus很嚴肅認真地對待顧客的隱私。顧客必須設置一個獨一無二的PIN碼來激活他們的語音信箱系統。當他們的PIN碼被用戶服務重新設置時,Optus會建議他們重新設置一個只有他們自己知道的PIN碼。
至于欺詐服務,我們正在尋求多種方式來強調這一正在出現的整個工業界的威脅,包括技術上的解決途徑以及進行對顧客的教育。
這篇文章的日期是2011年7月22號,距今已經三年了,令人驚訝的是這個問題依然存在并且是一個關于隱私的巨大隱患!
我和Ben在2014年3月2日將這個問題告訴了Optus,從那以后七天左右Optus修復了這個問題。
然而,在修復以后幾個小時之內,我能夠又一次找出不用pin就可以進入任何Optus顧客語音信箱的方法。Optus正在研究這樣的繞過方法,但是在沒有其他公告之前,如果你使用Optus或者其他使用他們網絡的代理商的服務,請假設你的語音信箱是不安全的,比如Vaya, LiveConnected, Amaysim, Exetel, Yatango 等等。
備注
正如同我之前對于captchas, SSRF和 rate limiting的迷戀一樣,我認為語音信箱和移動網絡的安全會占用我未來的許多時間。
每個人都知道移動網絡的安全性很差,但是都沒有做出什么改變,直到我們因此受到侵害才能意識到這件事情的重要性。
END
做一個不斷成長的公眾號
我在這里等你,一起成長,一起學習。
我就知道你“在看”

作者:小馬哥 來源:小馬哥
本文為作者獨立觀點,不代表出海筆記立場,如若轉載請聯系原作者。