

因著前幾天在一個(gè)群里看到有人說(shuō)Facebook的賬號(hào)被盜用了,損失了幾萬(wàn)美金,最后也不了了之。代理商同學(xué)提醒建議打開(kāi)雙重驗(yàn)證:為了提高 Facebook 平臺(tái)的安全性,我們建議廣告主必須打開(kāi)雙重驗(yàn)證才能訪(fǎng)問(wèn)商務(wù)管理平臺(tái)。這段時(shí)間因新冠疫情的蔓延,線(xiàn)上活動(dòng)的活躍度不斷上升,廣告主個(gè)人帳戶(hù)遭盜用的情況屢有發(fā)生,這給了網(wǎng)絡(luò)危險(xiǎn)分子可乘之機(jī),讓他們得以竊取商務(wù)管理平臺(tái)的訪(fǎng)問(wèn)權(quán)限,投放虛假或有誤導(dǎo)性的廣告。
看到這個(gè)事情,想到一篇古早的文章,分享給大家,以下為正文,內(nèi)容比較多,請(qǐng)耐心觀(guān)看:
我記得在兩年前,兩步驗(yàn)證(2-Factor-Authentication, 2FA)變得非常普及并且在各大主流網(wǎng)站(Google, Facebook, Yahoo 等)廣泛應(yīng)用。那時(shí)我十六歲,天真的我想不通為什么這么天才的想法之前沒(méi)有人想到過(guò)。在那時(shí),我認(rèn)為2FA就是一個(gè)可以保護(hù)自己的金色盾牌,它可以抵御那些最復(fù)雜的網(wǎng)絡(luò)欺詐。
兩步驗(yàn)證的分析,概念以及流程
兩步驗(yàn)證的分析
當(dāng)將兩步驗(yàn)證看做一個(gè)整體時(shí),從一個(gè)攻擊者的角度看來(lái)僅僅有這些東西。在我第一次對(duì)兩步驗(yàn)證的分析中,我經(jīng)常在想是否可能進(jìn)行以下的攻擊:
暴力搜索兩步驗(yàn)證的pin碼(有一些服務(wù),比如蘋(píng)果,只有四位的pin,并且?guī)缀鯖](méi)有任何頻率的限制)。
發(fā)現(xiàn)pin生成的漏洞。
通過(guò)某種方法竊取兩步驗(yàn)證后的session標(biāo)記,這樣攻擊者可以不用通過(guò)兩步驗(yàn)證就登錄賬戶(hù)。
以上技術(shù)都是攻擊的有效手段,但是通常沒(méi)有人會(huì)使用,因?yàn)檫@些手段太老套了,已經(jīng)有了相應(yīng)的防御。
概念及攻擊流程
被攻擊者的用戶(hù)名/郵箱和密碼。
被攻擊者關(guān)聯(lián)到兩步驗(yàn)證服務(wù)的手機(jī)號(hào)。
一個(gè)手機(jī)號(hào)欺詐服務(wù)。
手機(jī)語(yǔ)音信箱遠(yuǎn)程登錄的賬號(hào)。
攻擊者在支持兩步驗(yàn)證的網(wǎng)絡(luò)應(yīng)用上登錄被攻擊者的賬號(hào)。


Telstra不管是什么Caller ID或者是ANI都要求一個(gè)pin碼,因此對(duì)于我上文描述的破解來(lái)說(shuō)是安全的。
Vodafone在未設(shè)置pin碼的情況下,如果我通過(guò)欺詐服務(wù)冒充你的號(hào)碼撥打,會(huì)讓我設(shè)置pin碼或者是進(jìn)入你的語(yǔ)音信箱。
Virgin Mobile我并未測(cè)試,然而由于它是Optus網(wǎng)絡(luò)的一部分,因此它很有可能是易受攻擊的。
你如果不確定你現(xiàn)在使用的是哪種網(wǎng)絡(luò),或者你想檢查一下自己是否是易受攻擊的,我的一個(gè)朋友((Aleksa Sarai)寫(xiě)了一段程序通過(guò)你的手機(jī)號(hào)來(lái)確定你的在澳大利亞的移動(dòng)網(wǎng)絡(luò)。你只需輸入你的手機(jī)號(hào)然后點(diǎn)擊check就可以了。
你可以在Github上找到檢測(cè)移動(dòng)網(wǎng)絡(luò)的代碼。
向谷歌安全團(tuán)隊(duì)揭露
谷歌是兩步驗(yàn)證的早期使用者,它的全部服務(wù)都使用了兩步驗(yàn)證。如果你所選擇的電話(huà)公司在語(yǔ)音信箱安全方面管理非常嚴(yán)格的話(huà),谷歌現(xiàn)在使用的兩步驗(yàn)證系統(tǒng)還是非常安全的,但是谷歌所提供的兩步驗(yàn)證可以繞過(guò)的概率其實(shí)是非常高的。
語(yǔ)音信箱服務(wù)的安全并不由谷歌管理而是由電話(huà)商管理。
一旦兩步認(rèn)證的標(biāo)記或者OTP在語(yǔ)音信箱中,有許多可以攻擊的因素,可以撤銷(xiāo)標(biāo)記而不改動(dòng)谷歌端的數(shù)據(jù)。
如果你想看我和谷歌對(duì)話(huà)的全部郵件記錄,你可以點(diǎn)擊這里: google.pdf。
注意:通過(guò)這個(gè)繞過(guò)兩步驗(yàn)證的方法并不能不動(dòng)聲色地來(lái)盜取谷歌賬戶(hù),因?yàn)楹苡锌赡芤坏┑卿浀街С謨刹津?yàn)證的谷歌賬戶(hù)中就會(huì)自動(dòng)向用戶(hù)發(fā)送信息。在前面的步驟中你必須選擇撥打電話(huà)的方式然后繼續(xù)破解。這樣很可能會(huì)引起受害者的警覺(jué)。
他們對(duì)我最初的破解的回復(fù)如下:
嗨,
謝謝你的錯(cuò)誤報(bào)告。我們已經(jīng)看了你提交的數(shù)據(jù)并且確信這不是谷歌產(chǎn)品的安全缺陷。這個(gè)攻擊假設(shè)了一個(gè)易被盜取的密碼,并且實(shí)際的易被攻擊性是由于電話(huà)商提供的對(duì)語(yǔ)音信箱的保護(hù)不夠充分導(dǎo)致的。請(qǐng)直接向電話(huà)商報(bào)告這些。
Regrads,
Jeremy
雖然我知道語(yǔ)音信箱系統(tǒng)不夠安全這是電話(huà)商的錯(cuò)誤,我仍然覺(jué)得谷歌把兩步驗(yàn)證標(biāo)記發(fā)送到語(yǔ)音信箱這一做法有缺陷,這是個(gè)很危險(xiǎn)的做法,并且大部分2FA提供商都不這樣做。因此,我作出了以下回復(fù):
Hi, Jeremy,
當(dāng)我發(fā)現(xiàn)這些漏洞時(shí),我完全理解并且我也和電話(huà)商在不斷聯(lián)系。
澳大利亞和英國(guó)的大部分電話(huà)商都只要求一個(gè)并未鎖定的四位的pin碼。然而,使用VoIP服務(wù)以及Asterisk AGI(http://www.voip-info.org/wiki/view/Asterisk+AGI)的一些腳本就在一天內(nèi)可以進(jìn)入語(yǔ)音信箱的賬號(hào)。
實(shí)質(zhì)上,雖然你說(shuō)的“這一定是電話(huà)商的問(wèn)題”是對(duì)的。這不僅意味著在最近四年里(或更多),在澳大利亞使用Optus提供的服務(wù)的人(澳大利亞的大部分人)是非常容易受到繞過(guò)兩步驗(yàn)證攻擊的,這也意味著許多國(guó)家的電信商也非常容易受相同種類(lèi)的攻擊。
我覺(jué)得把這個(gè)問(wèn)題說(shuō)成是一個(gè)純粹的電話(huà)商的問(wèn)題,會(huì)有點(diǎn)忽略掉兩步驗(yàn)證并沒(méi)有很好的理由來(lái)發(fā)送到個(gè)人的語(yǔ)音信箱里這個(gè)事實(shí)。另外,先不考慮由于外部的易受攻擊性使得谷歌的兩步驗(yàn)證可以被繞過(guò)這件事,谷歌這樣做事實(shí)上還是會(huì)把敏感信息交給一個(gè)可能易受攻擊的終端。
另外,在做了一些調(diào)查后,我能夠跟Duosecurity 和Authy的專(zhuān)門(mén)負(fù)責(zé)兩步驗(yàn)證的工作人員交流了。當(dāng)我第一次發(fā)現(xiàn)谷歌發(fā)送兩步驗(yàn)證的標(biāo)記到語(yǔ)音信箱時(shí),我非常肯定像Duosecurity 和Authy這樣的兩步驗(yàn)證服務(wù)提供商也是易受攻擊的。但是我錯(cuò)了,他們并不會(huì)將兩步驗(yàn)證標(biāo)記發(fā)送到語(yǔ)音信箱。他們是這樣處理這個(gè)問(wèn)題的:
- 在通過(guò)語(yǔ)音發(fā)送PIN碼或者兩步驗(yàn)證標(biāo)記時(shí)要求用戶(hù)的某些交互行為。
- 在語(yǔ)音信箱留下一個(gè)空白信息而不是pin。
-要求用戶(hù)的交互作為驗(yàn)證的方式(接到兩步驗(yàn)證的電話(huà)->告訴用戶(hù)按下數(shù)字鍵”x”->如果正確按下=確認(rèn),如果沒(méi)有=未確認(rèn))
請(qǐng)讓我知道你對(duì)此有何看法以及谷歌是否有應(yīng)對(duì)這種情況的措施。十分顯然這個(gè)問(wèn)題是由于電話(huà)商的不安全的語(yǔ)音信箱服務(wù)造成的,然而這并不是谷歌或者是我可以控制的因此使得兩步驗(yàn)證在某種程度下易受攻擊。
兩步驗(yàn)證對(duì)于那些將Optus手機(jī)號(hào)和谷歌賬戶(hù)綁定到一起的澳大利亞人來(lái)說(shuō)是無(wú)效的,并且至少近四年是無(wú)效的(假設(shè)其他人已經(jīng)知道Optus語(yǔ)音信箱的漏洞了)。
謝謝,
Shubham
谷歌很快回復(fù)道:
嗨,
感謝你解釋這個(gè)問(wèn)題的潛在作用域。
由于這并不是我們2SV系統(tǒng)在技術(shù)上的缺陷,我不確定我們能夠做些什么來(lái)應(yīng)對(duì)這個(gè)問(wèn)題。但是我已經(jīng)把一個(gè)bug記錄下來(lái)并且會(huì)讓團(tuán)隊(duì)成員來(lái)看一看。
Jeremy
假設(shè)這個(gè)問(wèn)題不能修正,因此目前解決這個(gè)問(wèn)題的最好方法就是禁用通過(guò)短信或者電話(huà)的兩步驗(yàn)證,啟用谷歌的兩步驗(yàn)證,如果你綁定到手機(jī)就可能容易受到攻擊。
這個(gè)設(shè)置方法可以在下面找到:https://accounts.google.com/b/0/SmsAuthSettings

———————————————————————————————————————————————————–
向Facebook安全團(tuán)隊(duì)揭露
因?yàn)槲业囊粋€(gè)失誤,在這次揭露之前我剛剛意識(shí)到可以用攻擊谷歌的類(lèi)似方法來(lái)攻擊Facebook。Facebook稱(chēng)他們的兩步驗(yàn)證“Login Approvals”是一個(gè)類(lèi)似于登錄通知的特點(diǎn),但是有額外的安全步驟。
用和上述步驟相同的流程來(lái)破解,同樣可以繞過(guò)Facebook的兩步驗(yàn)證。

登錄賬戶(hù)。
點(diǎn)擊“通過(guò)短信發(fā)送驗(yàn)證碼”。
會(huì)顯示出撥打電話(huà)的選項(xiàng)。
通過(guò)撥打被攻擊者電話(huà)或其他方法保證被攻擊者處于通話(huà)狀態(tài)。
點(diǎn)擊“電話(huà)通知驗(yàn)證碼”選項(xiàng)。
驗(yàn)證碼會(huì)被發(fā)送到語(yǔ)音信箱中。
另外,除了上述模式,也可以通過(guò)向”https://www.facebook.com/ajax/login/approvals/send_sms“發(fā)送表單數(shù)據(jù)為”method_requested=phone_requested”的請(qǐng)求。
這個(gè)方法是通過(guò)截取最初發(fā)送短信的請(qǐng)求,將”sms_requested”替換為”phone_requested”來(lái)實(shí)現(xiàn)的,它是最有效地方法。
你可以在這里找到我向facebook 披露這個(gè)漏洞的完整版本facebook.pdf.
然而,他們對(duì)此的回復(fù)如下:
Shubham 你好,
我們目前暫時(shí)禁用了通過(guò)電話(huà)來(lái)發(fā)送登錄驗(yàn)證碼的功能,未來(lái)還將進(jìn)一步研究。我們的計(jì)劃是當(dāng)可以實(shí)現(xiàn)用戶(hù)在通話(huà)中的交互時(shí)再重新啟用這一功能,這樣就可以防止我們將驗(yàn)證碼發(fā)送到語(yǔ)音信箱中。
Neal, Facebook 安全團(tuán)隊(duì)
Facebook在我繞過(guò)兩步驗(yàn)證之后迅速的禁用了部分功能,他們非常迅速地采取了措施,至少是臨時(shí)的措施。
狀態(tài): 不再會(huì)受攻擊| 揭露日期: Sun, May 11, 2014 at 10:28 AM
向 LinkedIn安全團(tuán)隊(duì)揭露
正如谷歌和Facebook一樣,當(dāng)被攻擊者沒(méi)有接到系統(tǒng)自動(dòng)來(lái)電或者占線(xiàn)時(shí)LinkedIn就會(huì)將兩步驗(yàn)證碼發(fā)送到被攻擊者的語(yǔ)音信箱中。
LinkedIn處理地很好,他們關(guān)閉了通過(guò)電話(huà)發(fā)送兩步驗(yàn)證碼這個(gè)功能,直到他們可以和第三方的兩步驗(yàn)證提供商來(lái)修復(fù)這個(gè)問(wèn)題。
你可以在這里看到我和LinkedIn發(fā)送的所有郵件linkedin.pdf.
他們對(duì)這一問(wèn)題的主要回復(fù)如下:
Shubham,你好
感謝你在公開(kāi)這個(gè)問(wèn)題之前告訴我們。
雖然這個(gè)問(wèn)題對(duì)我們的影響是有限的,但是我們暫時(shí)關(guān)閉了發(fā)送兩步驗(yàn)證碼的語(yǔ)音的功能。我們正在和第三方協(xié)商解決這個(gè)問(wèn)題。在問(wèn)題修復(fù)后,我們會(huì)考慮恢復(fù)語(yǔ)音功能。
謝謝,
David
狀態(tài): 不再會(huì)受攻擊| 揭露日期: Wed, Apr 30, 2014 at 4:15 AM
向雅虎團(tuán)隊(duì)揭露 (通過(guò)HackerOne)
雅虎支持兩步驗(yàn)證的主要服務(wù)也容易受到我上文中所說(shuō)的攻擊。事實(shí)上,對(duì)支持兩步驗(yàn)證的雅虎賬號(hào)的攻擊會(huì)更嚴(yán)重因?yàn)楣粽卟⒉挥脫?dān)心被攻擊者知道他的賬號(hào)已經(jīng)登錄。
通常支持兩步驗(yàn)證的網(wǎng)絡(luò)應(yīng)用會(huì)在有人登錄后發(fā)送短信通知。然而,當(dāng)?shù)卿浀窖呕①~號(hào)以后,并不會(huì)發(fā)送短信,并且可以選擇通過(guò)短信或者是電話(huà)來(lái)發(fā)送驗(yàn)證碼。


向 Authy & Duosecurity揭露
我很快假設(shè)那些提供兩步驗(yàn)證的服務(wù)都一定是易受攻擊的。然而,我是錯(cuò)誤的—因?yàn)樗麄冎肋@個(gè)事實(shí)并且對(duì)發(fā)送pin碼到語(yǔ)音信箱這個(gè)問(wèn)題有著長(zhǎng)遠(yuǎn)考慮。
你可以閱讀我和Authy 及 Duosecurity的來(lái)往郵件 authy.pdf and duosecurity.pdf
這兩個(gè)服務(wù)提供商都在24小時(shí)內(nèi)給了我回復(fù),并且他們對(duì)此都非常熱心。
Authy | 狀態(tài):不易受攻擊 | 揭露日期: Wed, Apr 30, 2014 at 1:27 AMDuosecurity | 狀態(tài):不易受攻擊 | 揭露日期: 2014-04-29 13:46:16 UTC
Authy會(huì)發(fā)送空白的語(yǔ)音信息,Duosecurity會(huì)在驗(yàn)證前要求用戶(hù)的交互操作。
感謝Authy 和Duosecurity!

緩解技術(shù)和向電話(huà)商 Telco 揭露:
廣大的讀者你們好,我校對(duì)了上面的一些信息,包括世界各地各種移動(dòng)網(wǎng)絡(luò)的終端。
由于我不能查對(duì) Telco 的海外電話(huà)商,我 知道世界各地的人都關(guān)心他們的電話(huà)商是否是易受攻擊的。
要看你是否可以通過(guò)欺詐服務(wù)不用pin碼就進(jìn)入語(yǔ)音信箱,僅需要跟著上午所說(shuō)的流程來(lái),將終端號(hào)碼改為你的電話(huà)商用的。
如果你的電話(huà)商也容易受到攻擊請(qǐng)通過(guò)郵件或者是評(píng)論來(lái)告訴我。
應(yīng)對(duì)這個(gè)問(wèn)題并沒(méi)有想象中的那么簡(jiǎn)單,這要求重新構(gòu)造兩步驗(yàn)證的電話(huà)通知。這里是一些建議的解決方法(在給那些公司的郵件里都提到過(guò)):
要求用戶(hù)的交互作為驗(yàn)證(推薦)
以語(yǔ)音信箱檢測(cè)結(jié)束通話(huà)(不可靠)
最后也是最重要的:
去除語(yǔ)音通話(huà)發(fā)送驗(yàn)證碼的功能(減少了用戶(hù)體驗(yàn))
向 Optus揭露
我和Ben Grubb一起工作很愉快(The Sydney Morning Herald and The Age的編輯),他幫助我把這些問(wèn)題反映給Optus并且在此過(guò)程中非常熱心也很有合作精神。
當(dāng)我第一次發(fā)現(xiàn)Optus是易受攻擊的時(shí)候,我的研究讓我注意到這篇文章thisIs your Voicemail Hackable? Optus, Telstra and Vodafone respond
Optus很?chē)?yán)肅認(rèn)真地對(duì)待顧客的隱私。顧客必須設(shè)置一個(gè)獨(dú)一無(wú)二的PIN碼來(lái)激活他們的語(yǔ)音信箱系統(tǒng)。當(dāng)他們的PIN碼被用戶(hù)服務(wù)重新設(shè)置時(shí),Optus會(huì)建議他們重新設(shè)置一個(gè)只有他們自己知道的PIN碼。
至于欺詐服務(wù),我們正在尋求多種方式來(lái)強(qiáng)調(diào)這一正在出現(xiàn)的整個(gè)工業(yè)界的威脅,包括技術(shù)上的解決途徑以及進(jìn)行對(duì)顧客的教育。
這篇文章的日期是2011年7月22號(hào),距今已經(jīng)三年了,令人驚訝的是這個(gè)問(wèn)題依然存在并且是一個(gè)關(guān)于隱私的巨大隱患!
我和Ben在2014年3月2日將這個(gè)問(wèn)題告訴了Optus,從那以后七天左右Optus修復(fù)了這個(gè)問(wèn)題。
然而,在修復(fù)以后幾個(gè)小時(shí)之內(nèi),我能夠又一次找出不用pin就可以進(jìn)入任何Optus顧客語(yǔ)音信箱的方法。Optus正在研究這樣的繞過(guò)方法,但是在沒(méi)有其他公告之前,如果你使用Optus或者其他使用他們網(wǎng)絡(luò)的代理商的服務(wù),請(qǐng)假設(shè)你的語(yǔ)音信箱是不安全的,比如Vaya, LiveConnected, Amaysim, Exetel, Yatango 等等。
備注
正如同我之前對(duì)于captchas, SSRF和 rate limiting的迷戀一樣,我認(rèn)為語(yǔ)音信箱和移動(dòng)網(wǎng)絡(luò)的安全會(huì)占用我未來(lái)的許多時(shí)間。
每個(gè)人都知道移動(dòng)網(wǎng)絡(luò)的安全性很差,但是都沒(méi)有做出什么改變,直到我們因此受到侵害才能意識(shí)到這件事情的重要性。
END
做一個(gè)不斷成長(zhǎng)的公眾號(hào)
我在這里等你,一起成長(zhǎng),一起學(xué)習(xí)。

我就知道你“在看”

作者:小馬哥 來(lái)源:小馬哥
本文為作者獨(dú)立觀(guān)點(diǎn),不代表出海筆記立場(chǎng),如若轉(zhuǎn)載請(qǐng)聯(lián)系原作者。