Google的安全機(jī)制詳解

轉(zhuǎn)載于公眾號(hào):hackctf
題記:當(dāng)我想著Google安全機(jī)制這個(gè)話題該如何向大家陳述時(shí),腦海里自然地跳出了一段話——“你有權(quán)保持沉默,但你說的每一句話都將作為呈堂供詞”,這是司法領(lǐng)域著名的“米蘭達(dá)警告”,我想把它修改成一句話作為本文的開篇語(yǔ):“你有權(quán)不上網(wǎng),但你在網(wǎng)上的每個(gè)動(dòng)作都將成為機(jī)器的學(xué)習(xí)對(duì)象”。?????????在網(wǎng)絡(luò)安全領(lǐng)域,gmail郵箱的雙因子認(rèn)證被業(yè)內(nèi)奉為第一大難題,它讓多少網(wǎng)絡(luò)安全從業(yè)者捶胸頓足,垂頭喪氣。Google的安全機(jī)制也被全世界的網(wǎng)絡(luò)安全研究者專門研究,下面我將結(jié)合個(gè)人的經(jīng)歷談?wù)勎已壑械腉oogle的安全機(jī)制,因本人水平有限,若有不對(duì)之處,敬請(qǐng)斧正。
????????一、千呼萬喚始出來,猶抱谷歌半遮面????????從2014年以后,我開始接觸谷歌郵箱——Gmail。當(dāng)時(shí)的難題和現(xiàn)在一樣,當(dāng)你擁有Gmail的正確密碼,卻被Gmail要求輸入手機(jī)短信驗(yàn)證碼,無奈手機(jī)非你所有,只好望而卻步。????????我們發(fā)現(xiàn)Gmail會(huì)記錄登陸用戶的用戶設(shè)備與登錄IP地址,我們也發(fā)現(xiàn)Gmail判斷是否本人登錄的依據(jù)也正是它記錄下的上述兩個(gè)條件。那么這兩個(gè)條件的優(yōu)先級(jí)是什么?能否通過模擬條件繞過雙因子驗(yàn)證?
????????(一)經(jīng)過四年的不斷嘗試登錄,我們得出了兩個(gè)結(jié)論:????? ?
? ? ? ? 1、Gmail賬戶陸續(xù)都要求Gmail用戶同時(shí)綁定援助手機(jī)號(hào)和援助郵箱
??????? 2、Gmail對(duì)于安全策略是分等級(jí)的,安全等級(jí)從高至低依次為:????????(1)從移動(dòng)終端登陸過的Gmail個(gè)人或企業(yè)賬戶;??(2)未從移動(dòng)終端登陸過但設(shè)置了密保問題的Gmail個(gè)人或企業(yè)賬戶;?(3)未從移動(dòng)終端登陸過也未設(shè)置密保問題的Gmail個(gè)人或企業(yè)賬戶;????????
(二)針對(duì)上面的四種安全等級(jí)的賬戶,都有一些策略繞過:
????? ??1、針對(duì)“未從移動(dòng)終端登陸過也未設(shè)置密保問題的Gmail個(gè)人或企業(yè)賬戶”的繞過策略——調(diào)研該賬戶用戶的手機(jī)號(hào)或其他郵箱
????????登錄未從移動(dòng)終端登陸過也未設(shè)置密保問題的Gmail個(gè)人賬戶,當(dāng)密碼正確時(shí),Gmail要求提供該賬戶的綁定援助手機(jī)號(hào)或綁定援助郵箱,當(dāng)我們填充了正確的手機(jī)號(hào)或者郵箱賬戶之后,我們即可進(jìn)入該類郵箱。????????因此,我們只要對(duì)該類郵箱的用戶事前做好充分的網(wǎng)絡(luò)調(diào)研,掌握它的其他郵箱賬戶或手機(jī)號(hào),即可進(jìn)入。
????????但是進(jìn)入后,Gmail會(huì)同時(shí)向本Gmail郵箱和綁定援助郵箱發(fā)一封提醒郵件,告訴本人,該Gmail郵箱被一個(gè)未曾登陸過的新設(shè)備登陸了。
????????2、針對(duì)“未從移動(dòng)終端登陸過但設(shè)置密保問題的Gmail個(gè)人或企業(yè)賬戶”的繞過策略——充分的網(wǎng)絡(luò)調(diào)研????????登錄未從移動(dòng)終端登陸過但設(shè)置密保問題的Gmail個(gè)人賬戶,當(dāng)密碼正確時(shí),Gmail要求首先回答該賬戶設(shè)置的密保問題,一般有兩到三個(gè),當(dāng)我們回答的答案完全匹配(大小寫不敏感),我們就可進(jìn)入該類郵箱。這就需要我們掌握郵箱賬戶的出生城市、工作城市、生日、妻子姓名、小孩生日等盡可能多的信息。如果實(shí)在遇到變態(tài)的問題,請(qǐng)參照下點(diǎn)繞過。????????3、針對(duì)上述三者的超級(jí)繞過策略——模擬用戶的完全匹配Ip或使用相同歸屬國(guó)的ip與完全匹配的用戶終端設(shè)備標(biāo)識(shí)
????????·從移動(dòng)終端登陸過的Gmail賬戶,一定要通過模擬用戶的精準(zhǔn)使用過的完全匹配上的公網(wǎng)ip地址,方可直接跳過谷歌雙因子認(rèn)證;或者使用與用戶使用過的ip相同的歸屬國(guó)家的ip,并且與用戶使用過的移動(dòng)終端設(shè)備標(biāo)識(shí)完全匹配的終端標(biāo)識(shí)。????????未曾從移動(dòng)終端登陸過的gmail用戶,一是要模擬用戶精準(zhǔn)使用過的公網(wǎng)ip地址,或者與用戶使用過的ip相同的歸屬國(guó)家的ip,并且與用戶使用過的操作系統(tǒng)、默認(rèn)語(yǔ)言完全匹配的終端標(biāo)識(shí)。????????需要注意的是,瀏覽器的版本、型號(hào)并不重要,不是匹配的因素!
????????(三)2019之前的漏洞——可直接獲取gmail賬戶的移動(dòng)終端設(shè)備名稱????????在2019年之前,我們通過第一步輸入Gmail賬戶,第二步點(diǎn)擊忘記密碼,第三步點(diǎn)擊不記得常用密碼,跳過,第四步即使通過手機(jī)短信驗(yàn)證碼直接恢復(fù)密碼,在這第四步,我們可以直接獲取到該Gmail用戶使用過的所有的移動(dòng)終端設(shè)備名稱,諸如華為nova4,小米note4。(只可惜,在截至筆者發(fā)稿前,通過上述步驟,已經(jīng)無法獲取Gmail用戶的移動(dòng)終端設(shè)備名稱。)????????再根據(jù)這些設(shè)備名稱,我們?cè)诨ヂ?lián)網(wǎng)尋找該國(guó)使用該設(shè)備名稱的具體版本標(biāo)識(shí),接著通過修改http request的useragent信息,嘗試獲取的若干個(gè)具體設(shè)備名字版本的標(biāo)識(shí),一旦正確,即可繞過Gmail雙因子認(rèn)證,繞過后進(jìn)入的是Gmail的移動(dòng)終端界面,若看不習(xí)慣,我們可以再把useragent切換回來,此時(shí)Gmail版面也會(huì)切換回電腦版界面,但是依舊是登錄成功。
????????
????????二、夢(mèng)里尋他千百度,慕然回首,竟在燈火谷歌處????????谷歌總是能及時(shí)發(fā)現(xiàn)攻擊者使用的技巧,這到底是什么機(jī)制?如果第一段是筆者通過實(shí)踐帶來的感性認(rèn)識(shí),那么筆者開始了理性探索之旅。????????筆者通過搜索Gmail內(nèi)部員工參與各大會(huì)議的文章,終于在https://ai.googleblog.com/2016/03/lessons-learned-while-protecting-gmail.html看到了Gmail員工Elie Bursztein曾與2016年3月29日在enigma2016發(fā)布了一個(gè)講解Gmail內(nèi)部防范安全措施的pdf,但是上述網(wǎng)址提供的url已經(jīng)404,筆者并且有放棄,最后通過谷歌搜素引擎,找到了互聯(lián)網(wǎng)上唯一保留的最后一個(gè)url,https://elie.net/static/files/lessons-learned-while-protecting-gmail/lessons-learned-while-protecting-gmail.pdf。????????筆者開始閱讀這篇pdf,這個(gè)pdf的風(fēng)格很IT,pdf沒有文字,都是圖表化,簡(jiǎn)練而又形象。
????????三、谷歌也有涯,而知也無涯。谷歌對(duì)于安全的學(xué)習(xí)和提升,一直在路上。
??????? Gmail誕生于2004年,到2016年時(shí),已經(jīng)擁有了9億的Gmail用戶。Gmail提出了五大威脅:釣魚郵件、惡意代碼(附件識(shí)別)、賬戶劫持、網(wǎng)頁(yè)攻擊(XSS)與垃圾郵件。
????????(一)垃圾郵件處理
? ? ? ? 針對(duì)垃圾郵件識(shí)別,谷歌首先使用機(jī)器學(xué)習(xí)算法之大型線性分類模型,這使Gmail的垃圾郵件識(shí)別率達(dá)到了91.7%,然后加上基于規(guī)則的識(shí)別系統(tǒng),又增加了4.7%的識(shí)別率,近年來又嘗試使用了深度學(xué)習(xí)算法,在上述基礎(chǔ)上又增加了3.5%的準(zhǔn)確率,使Gmail目前的垃圾郵件準(zhǔn)確率達(dá)到了99.9%。(可以看出,谷歌與時(shí)俱進(jìn),總是用最新的IT技術(shù)武裝自己的產(chǎn)品。)
?網(wǎng)址https://www.quora.com/How-does-Google-use-machine-learning提到,谷歌通過深度學(xué)習(xí)將Gmail中的郵件分類為社交,促銷或主要郵件以及如何標(biāo)記電子郵件,這就是機(jī)器學(xué)習(xí)的用武之地。用戶干預(yù)用于調(diào)整其閾值。比如:當(dāng)用戶以一致的習(xí)慣標(biāo)記郵件時(shí),Gmail本身會(huì)實(shí)時(shí)增加其閾值,這就是Gmail將來學(xué)習(xí)的方式,然后將這些結(jié)果用于分類。
(二)郵件附件惡意代碼識(shí)別
對(duì)于郵件附件中的處理,谷歌建立分層識(shí)別模型。對(duì)于附件,第一步緩存,第二步針對(duì)緩存設(shè)置規(guī)則過濾,第三步多反病毒引擎同時(shí)識(shí)別,第四步動(dòng)態(tài)執(zhí)行,第五步建立最快規(guī)則,快速反應(yīng)。第二步設(shè)置規(guī)則過濾,谷歌不允許附件直接或壓縮打包(未加密)上傳exe可執(zhí)行文件,這就是設(shè)置規(guī)則,告訴Gmail用戶什么可以做,什么不可以做。特別是通過第四步動(dòng)態(tài)執(zhí)行,來捕獲未曾探測(cè)到的珍貴的、稀有的惡意代碼樣本。
最后在分層識(shí)別模型之外,還有一個(gè)應(yīng)急阻斷系統(tǒng),用以防范未知漏洞的風(fēng)險(xiǎn)。
(三)網(wǎng)頁(yè)攻擊如XSS的處理????????
Gmail使用Content Security Policy (CSP)——又稱內(nèi)容安全策略,CSP是W3C制定的一個(gè)Web標(biāo)準(zhǔn),主要是通過限制網(wǎng)頁(yè)對(duì)外部檔案的存取,用于防止在受信任的網(wǎng)頁(yè)上下文中執(zhí)行惡意內(nèi)容導(dǎo)致的跨站點(diǎn)腳本(XSS),點(diǎn)擊劫持和其他代碼注入攻擊。???Gmail通過CSP違規(guī)事件發(fā)現(xiàn)了源代碼中45.7%潛在的腳本XSS與54.3%的框架XSS。??總之,為了保證Gmail的安全,Gmail團(tuán)隊(duì)用上了安全審計(jì)、線性分類、靜態(tài)分析、反病毒、加密、深度學(xué)習(xí)、模糊測(cè)試、分布式拒絕服務(wù)防御、動(dòng)態(tài)執(zhí)行、內(nèi)容安全策略、自動(dòng)轉(zhuǎn)義。還有最后一招,獎(jiǎng)勵(lì)機(jī)制,通過獎(jiǎng)勵(lì)最優(yōu)秀的黑客、最優(yōu)秀的漏洞,來彌補(bǔ)自身。(it's worth it@!)
? ? ? ?筆者認(rèn)為:Gmail已經(jīng)開始,通過學(xué)習(xí)Gmail用戶登錄、使用等在谷歌網(wǎng)站上的一切網(wǎng)絡(luò)行為,來捕捉、探測(cè)、感知、學(xué)習(xí)、防御,而利用深度學(xué)習(xí)技術(shù),這些行為都將是自動(dòng)化的,也就是說,谷歌的安全策略是:一切從用戶中來,一切到用戶中去,一切都是自動(dòng)化轉(zhuǎn)變的過程。????????風(fēng)起于青萍之末,舞于松柏之下,止于草莽之間,信息革命正蓬勃發(fā)展,智能革命又方興未艾,科技作為第一是生產(chǎn)力,帶來的科技革命應(yīng)了那句話——運(yùn)動(dòng)是絕對(duì)的,變化是世界永恒的主題。人類只有不斷地深度學(xué)習(xí),才能夠永立潮頭。不學(xué)習(xí)本身是個(gè)偽命題,每個(gè)人都在用腦,用腦就是在學(xué)習(xí),當(dāng)代社會(huì),人與人之間比的不是誰學(xué)得更多,而是誰學(xué)的更深,誰學(xué)的效率更高。在這個(gè)信息爆炸的年代,填鴨式的學(xué)習(xí)只會(huì)令人反感,取而代之的將是主動(dòng)式、引導(dǎo)式、思考式的深度學(xué)習(xí)方式。