【環(huán)球網(wǎng)科技綜合報(bào)道】年初公開的CPU史詩(shī)級(jí)漏洞危機(jī)仍在持續(xù)發(fā)酵,近日有安全人員再次發(fā)現(xiàn)漏洞的變種,并因此獲得英特爾10萬美元獎(jiǎng)勵(lì)。但不少用戶對(duì)該漏洞卻產(chǎn)生“狼來了”的錯(cuò)覺:第一,盡管"Spectre"影響了大量的用戶,但它能否在實(shí)際的攻擊中產(chǎn)生危害?第二,截至目前仍然沒有一例利用該漏洞發(fā)起攻擊的事件匯報(bào)。
騰訊安全玄武實(shí)驗(yàn)室打破了這個(gè)錯(cuò)覺。在7月21日“2018看雪峰會(huì)”上,實(shí)驗(yàn)室高級(jí)研究員宋凱首度分享了如何在瀏覽器中利用"Spectre"漏洞,并如何通過JS 觸發(fā)"Spectre"漏洞并且生成可以穩(wěn)定刷新緩存的匯編指令。除此之外,宋凱還分享了在瀏覽器中,通過"Spectre" 漏洞可能造成的實(shí)際危害,及相關(guān)的緩解措施。
2018安全開發(fā)者峰會(huì)由行業(yè)老牌安全技術(shù)社區(qū)——看雪學(xué)院主辦,會(huì)議面向開發(fā)者、安全人員及高端技術(shù)從業(yè)人員,是國(guó)內(nèi)開發(fā)者與安全人才的年度盛事。騰訊安全作為本次峰會(huì)的鉆石級(jí)贊助單位,攜四大業(yè)務(wù)矩陣亮相現(xiàn)場(chǎng),展現(xiàn)了以騰訊安全聯(lián)合實(shí)驗(yàn)室七大國(guó)際頂尖白帽黑客為能力核心構(gòu)建的人才+技術(shù)的業(yè)務(wù)模式,受到在場(chǎng)行業(yè)人士的廣泛關(guān)注。
(騰訊安全玄武實(shí)驗(yàn)室高級(jí)研究員宋凱)
小工具的大收獲
毫無疑問,"Spectre" 是一個(gè)嚴(yán)重的CPU漏洞,打破了不同應(yīng)用程序之間的隔離,影響了大部分的主流架構(gòu)。它允許攻擊者欺騙無錯(cuò)程序,且攻擊者可以通過緩存來利用這個(gè)漏洞,泄漏用戶級(jí)進(jìn)程中的敏感數(shù)據(jù)。大部分公開的攻擊,都是本地攻擊。如果可以通過瀏覽器進(jìn)行漏洞利用,那么對(duì)用戶的大規(guī)模攻擊將成為可能。由于瀏覽器用戶量龐大,若攻擊成功,結(jié)果將不堪設(shè)想。
“理論上,這個(gè)漏洞對(duì)個(gè)人用戶最主要的危害相當(dāng)于一個(gè)跨平臺(tái)跨瀏覽器的超級(jí)UXSS。但實(shí)際能否實(shí)現(xiàn)?能多大程度上實(shí)現(xiàn)?大家心里都沒數(shù)!盋PU漏洞公開的第五天,騰訊安全玄武實(shí)驗(yàn)室負(fù)責(zé)人于旸(TK教主)在微博上公開了實(shí)驗(yàn)室這段時(shí)間“沉寂”的成果——研發(fā)了一個(gè)可以檢測(cè)用戶瀏覽器是否易遭受攻擊的在線檢測(cè)工具。
(宋凱介紹實(shí)驗(yàn)室研發(fā)的“Spectre”漏洞在線檢測(cè)工具)
企業(yè)用戶可借助該工具實(shí)時(shí)檢測(cè)瀏覽器安全狀態(tài)。若檢測(cè)結(jié)果表明瀏覽器易于遭受攻擊,則說明風(fēng)險(xiǎn)真實(shí)存在。宋凱在現(xiàn)場(chǎng)還分享了這個(gè)工具上線后的“意外”,“當(dāng)時(shí)這個(gè)漏洞工具發(fā)布之后也算是全球首發(fā)的在線檢測(cè)工具,為數(shù)以千計(jì)的用戶檢查出了自己設(shè)備中的問題。比較出乎意料的是,因?yàn)槲覀冏铋_始的測(cè)試環(huán)境有限,只在一些Windows機(jī)器上測(cè)試了Chrome瀏覽器相關(guān)的漏洞,發(fā)布了之后發(fā)現(xiàn)竟然不同的設(shè)備都會(huì)被影響,比如SurfacePro、MacOS、iPhoneX、Pixel 2等!
解決兩個(gè)核心問題
在線檢測(cè)工具只是開始!拔粗,焉知防”,摸清利用“Spectre”漏洞發(fā)起攻擊的方式才是騰訊安全玄武實(shí)驗(yàn)室這群白帽黑客的研究重點(diǎn)。
宋凱在演講中表示,這個(gè)漏洞的根本原因是因?yàn)橥茰y(cè)執(zhí)行中的代碼可以影響CPU的緩存,而這個(gè)緩存的影響又可以用一些技術(shù)手段探測(cè)出來。分支邏輯在這種實(shí)踐上是不可靠的,因?yàn)榫彺姹挥绊懥,它可以讓攻擊者推測(cè)出預(yù)測(cè)執(zhí)行中所訪問數(shù)據(jù)的內(nèi)容,并且這個(gè)數(shù)據(jù)是可以測(cè)量的,就可以進(jìn)一步的泄露了。
于是如何穩(wěn)定的刷新緩存,以及如何保證在利用過程中特定的數(shù)據(jù)不出現(xiàn)在緩存中,是在瀏覽器其實(shí)現(xiàn)漏洞攻擊首先需要解決的問題。
騰訊安全玄武實(shí)驗(yàn)室的做法是,先訪問大量不同的地址來強(qiáng)制刷新緩存,實(shí)現(xiàn)緩存刷新的功能,再通過將變量放在不同的內(nèi)存中來遍歷的方式,保證每一次遍歷的變量都不在緩存中。同時(shí),通過Worker+SharedArrayBuffer可以做到相對(duì)預(yù)測(cè)內(nèi)存訪問時(shí)間的精度計(jì)時(shí)器,通過動(dòng)態(tài)遍歷緩存大小的方式用來適配不同的設(shè)備也是整套攻擊方案中必不可少的部分。
值得一提的是,騰訊安全玄武實(shí)驗(yàn)室在研究實(shí)現(xiàn)過程時(shí),對(duì)CPU“分支預(yù)測(cè)”功能的利用頗具有利用人工智能局限性的意味——通過五次訓(xùn)練讓執(zhí)行效果反饋為true,最終可以讓CPU比較穩(wěn)定的出現(xiàn)進(jìn)入到分支內(nèi)的推測(cè)邏輯。
“通過javascript想實(shí)現(xiàn)整套攻擊需要解決很多問題”,宋凱最后總結(jié)道,包括如何穩(wěn)定刷行緩存、確保特定的數(shù)據(jù)不出現(xiàn)在緩存中、高精度時(shí)間計(jì)時(shí)器、動(dòng)態(tài)探測(cè)緩存大小。想要造成實(shí)際的危害,主要需要解決的問題是內(nèi)存布局。
本次研究?jī)H僅是騰訊安全玄武實(shí)驗(yàn)室部分的能力體現(xiàn)。在本次峰會(huì)上分享的宋凱曾代表騰訊安全玄武實(shí)驗(yàn)室贏得Pwn2Own 2017 Edge 瀏覽器項(xiàng)目;曾連續(xù)三年入選微軟MSRC 全球Top 100 貢獻(xiàn)者榜單,最高排名第12位;更曾贏得2016年微軟Mitigation Bypass Bounty 項(xiàng)目,以及2015年和2016年的Edge Bounty 項(xiàng)目。
實(shí)驗(yàn)室成員對(duì)于信息安全技術(shù)的深耕,也直接通過騰訊安全輸出為技術(shù)能力,保衛(wèi)廣大用戶的網(wǎng)絡(luò)安全。在年初CPU漏洞爆發(fā)之后,除騰訊安全玄武實(shí)驗(yàn)室研發(fā)的在線檢測(cè)工具之外,騰訊安全反病毒實(shí)驗(yàn)室和騰訊電腦管家也迅速上線相應(yīng)的漏洞修復(fù)工具和檢測(cè)工具,幫助用戶快速方便的完成漏洞探測(cè),及時(shí)發(fā)現(xiàn)隱患,將風(fēng)險(xiǎn)降到最低。