黑客可以迫使iOS和macOS瀏覽器泄露密碼及更多的大量信息
研究人員已設(shè)計(jì)出了一種攻擊方法,可以利用現(xiàn)代iOS和macOS設(shè)備搭載的A系列和M系列CPU中的側(cè)信道漏洞,迫使蘋果的Safari瀏覽器泄露密碼、Gmail郵件內(nèi)容及其他秘密信息。
學(xué)術(shù)研究人員將這種攻擊命名為“iLeakage”,這是一種切實(shí)可行的攻擊,只需極少的物理資源。然而,它確實(shí)需要對蘋果硬件進(jìn)行深入的逆向工程,還需要在利用側(cè)信道(side channel)這類漏洞方面擁有豐富的專業(yè)知識。
側(cè)信道可以根據(jù)電磁輻射、數(shù)據(jù)緩存或目標(biāo)系統(tǒng)的其他表現(xiàn)形式中留下的線索泄露秘密信息。這里的側(cè)信道是推測執(zhí)行,這是現(xiàn)代CPU中提升性能的一項(xiàng)功能,近年來卻成為了一大批攻擊的來源,幾乎源源不斷的漏洞變種使得芯片制造商(主要是英特爾,其次是AMD)競相制定緩解措施。
利用蘋果芯片上的WebKit
研究人員將iLeakage實(shí)施成了一個網(wǎng)站,被易受攻擊的macOS或iOS設(shè)備訪問時,該網(wǎng)站使用JavaScript秘密打開攻擊者選擇的不同網(wǎng)站,并恢復(fù)在彈出窗口中渲染/呈現(xiàn)的網(wǎng)站內(nèi)容。研究人員成功地利用iLeakage恢復(fù)了YouTube的觀看歷史內(nèi)容、Gmail收件箱的內(nèi)容(目標(biāo)登錄期間)以及由憑據(jù)管理器自動填充的密碼。一旦被訪問,iLeakage網(wǎng)站需要大約5分鐘來分析目標(biāo)機(jī)器,另外平均需要大約30秒來提取一個512位的秘密信息,比如64個字符的字符串。
圖1. 上圖:Gmail的Web視圖中顯示的電子郵件。下圖:恢復(fù)的發(fā)件人地址、主題和內(nèi)容。
研究人員在相關(guān)信息網(wǎng)站上寫道:“我們展示了攻擊者如何誘使Safari呈現(xiàn)任意網(wǎng)頁,隨后使用推測執(zhí)行恢復(fù)網(wǎng)頁中存在的敏感信息。特別是,我們演示了Safari如何允許惡意網(wǎng)頁從流行的高價值目標(biāo)中恢復(fù)秘密信息,比如Gmail收件箱內(nèi)容。最后,我們演示了密碼的恢復(fù),以防這些密碼被憑據(jù)管理器自動填充。”
圖2. 上圖:谷歌的帳戶頁面被密碼管理器自動填寫,其中密碼是googlepassword。下圖:泄露的頁面數(shù)據(jù),憑據(jù)高亮顯示。
雖然iLeakage只在目標(biāo)運(yùn)行Safari時攻擊Mac,但iPhone和iPad在運(yùn)行任何瀏覽器時都可能受到攻擊,因?yàn)樗鼈兌蓟谔O果的WebKit瀏覽器引擎。
蘋果代表聲稱,iLeaka已意識到這個漏洞,計(jì)劃在即將發(fā)布的軟件版本中解決這個問題,沒有指定CVE編號來跟蹤該漏洞。
獨(dú)特的WebKit屬性是這種攻擊的一個關(guān)鍵因素。A系列和M系列芯片(蘋果分別為iOS和macOS設(shè)備設(shè)計(jì)的第一代CPU)是另一種設(shè)計(jì),這兩種芯片都含有防護(hù)措施,旨在防止推測執(zhí)行攻擊,實(shí)施這些防護(hù)措施的方式存在缺陷,最終讓iLeakage得以變成現(xiàn)實(shí)。
推測執(zhí)行:不斷搗鼓的黑客手法
2018年初,兩個相互獨(dú)立的研究團(tuán)隊(duì)披露了兩種攻擊,一種名為Spectre,另一種名為Meltdown,兩者都能夠通過探索推測執(zhí)行這項(xiàng)提升性能的功能中一個新發(fā)現(xiàn)的側(cè)信道來恢復(fù)機(jī)密信息,且這項(xiàng)功能內(nèi)置在幾乎所有的現(xiàn)代CPU中。將數(shù)據(jù)從主系統(tǒng)內(nèi)存移到CPU中很耗費(fèi)時間,為了縮短等待時間,現(xiàn)代CPU在所需數(shù)據(jù)可用時立即執(zhí)行指令,而不是按順序執(zhí)行。
這種亂序模式的一個關(guān)鍵要素是預(yù)測CPU可能經(jīng)過的路徑,如果預(yù)測正確,任務(wù)就會比沒有預(yù)測的情況下更快地完成;如果不正確,CPU將放棄錯誤預(yù)測的路徑,采用一條新的正確的路徑。Spectre和Meltdown的研究人員發(fā)現(xiàn),無法恢復(fù)微架構(gòu)層面的某些工件,包括緩存和預(yù)測器狀態(tài)。這使得研究人員能夠設(shè)計(jì)出攻擊手法,誘騙英特爾和AMD的CPU錯誤地預(yù)測敏感指令,將秘密信息從一個應(yīng)用程序泄露到另一個獨(dú)立的、不相關(guān)的應(yīng)用程序中,這嚴(yán)重突破了核心安全邊界。
在此后的幾年里,CPU制造商和軟件開發(fā)商想出了許多方法來緩解推測執(zhí)行攻擊。一個關(guān)鍵的緩解措施是限制瀏覽器或其他應(yīng)用程序測量CPU執(zhí)行特定操作所需的精確時間的功能。在瀏覽器中,更多的緩解措施以名為壓縮35位尋址和值中毒的防御形式出現(xiàn)。
圖3. 推測類型混淆小工具的偽代碼。
iLeakage代表了幾項(xiàng)突破。首先,它能夠利用類型混淆漏洞,在搭載A系列和M系列芯片的Safari瀏覽器上擊敗這些防御措施。其次,它是一種不依賴時間的變種,而是依賴所謂的競態(tài)條件。第三個關(guān)鍵因素是WebKit的獨(dú)特功能:使用常見的JavaScript方法window.open,將來自不同域的網(wǎng)站整合到同一個渲染器進(jìn)程中。
圖4. 該圖概述了基于競爭條件的小工具如何運(yùn)行以區(qū)分緩存命中和緩存未命中。
研究人員在信息網(wǎng)站上寫道:為了構(gòu)建iLeakage,我們先對蘋果 Silicon CPU上的緩存拓?fù)浣Y(jié)構(gòu)進(jìn)行了逆向工程分析。然后我們使用一個新的基于推測的小工具克服了蘋果的計(jì)時器限制,我們因而可以區(qū)分單個緩存命中和緩存未命中,盡管只能訪問低分辨率計(jì)時器。我們還演示了這個小工具的一個變種,它不使用計(jì)時器,而是利用競爭條件,在使用基于推測的小工具構(gòu)建驅(qū)逐集(eviction set)之后,我們進(jìn)而分析Safari的側(cè)信道彈性。這里,我們繞過了Safari的35位尋址和值中毒對策,創(chuàng)建了一個可以在Safari的頁面呈現(xiàn)過程中推測讀取和泄漏任何64位指針的原語。再結(jié)合一種將來自不同域的網(wǎng)站整合到同一地址空間的新方法,我們能夠發(fā)動一種泄漏敏感信息的類似推測的混淆攻擊。
研究人員在一篇附帶的研究論文中這樣描述這種不受時間影響的變種:我們將所有上述構(gòu)造的原語組合到一個不受時間影響的Spectre v1小工具概念驗(yàn)證(PoC)。大體上而言,我們通過以下方法來做到這一點(diǎn),即把泄露所推測的秘密信息的基于緩存時間的方法換成不受時間影響地區(qū)分緩存未命中和緩存命中的小工具。在這里,我們展示了我們的攻擊在Safari、Firefox和Tor上擁有近乎完美的準(zhǔn)確性。
萬事俱備
攻擊要想成功,一臺易受攻擊的計(jì)算機(jī)必須先訪問iLeakage網(wǎng)站,對于涉及YouTube、Gmail或任何其他特定Web資產(chǎn)的攻擊,用戶應(yīng)該在攻擊網(wǎng)站打開的同時登錄到其帳戶。如前所述,攻擊者網(wǎng)站需要花大約5分鐘來探測訪問設(shè)備。然后,使用window.open JavaScript方法,iLeakage可以導(dǎo)致瀏覽器打開任何其他網(wǎng)站,開始以每秒24位到34位的速度竊取某些數(shù)據(jù)。
正如研究論文解釋的那樣:
我們先回顧一下,雖然Safari通常遵循嚴(yán)格的每個選項(xiàng)卡進(jìn)程模式,但由window.open函數(shù)打開的頁面與父頁面共享渲染/呈現(xiàn)過程。因此,我們創(chuàng)建了一個將window.open綁定到onmouseover事件偵聽器的攻擊者頁面,以便我們在我們的地址空間打開任何網(wǎng)頁,只要目標(biāo)的鼠標(biāo)光標(biāo)在頁面上。
我們注意到,即使目標(biāo)關(guān)閉了打開的頁面,內(nèi)存中的內(nèi)容也不會立即被清除,從而使我們的攻擊得以繼續(xù)泄露秘密信息。最后,由于window.open執(zhí)行整合,無論父網(wǎng)頁和打開網(wǎng)頁的來源是什么,我們將我們攻擊者的網(wǎng)頁托管在一個非公開訪問的Web服務(wù)器上,同時使用window.open整合來自其他域的頁面。
許多目標(biāo)很可能會識別出iLeakage生成的彈出窗口并關(guān)閉它。即使這樣,攻擊也會得逞,因?yàn)閮?nèi)容在內(nèi)存中仍然完好無損,使iLeakage得以繼續(xù)泄露秘密信息。
可以恢復(fù)的數(shù)據(jù)類型包括:
?由憑據(jù)管理器自動填寫的密碼
?Gmail收件箱內(nèi)容
?YouTube觀看歷史記錄
iLeakage是一種切實(shí)可行的攻擊,只需要很少的物理資源就可以實(shí)施,最大的挑戰(zhàn)是需要高超的技術(shù)專長。攻擊者不僅要有利用推測執(zhí)行漏洞方面的多年經(jīng)驗(yàn),還要對A系列和M系列芯片進(jìn)行全面的逆向工程處理,以深入了解它們含有的側(cè)信道。沒有跡象表明這個漏洞以前被發(fā)現(xiàn)過,更不用說在外面被大肆利用了,這意味著這個漏洞很快被用于實(shí)際攻擊的可能性很小。
蘋果計(jì)劃推出的補(bǔ)丁,很可能會在iLeakage式的攻擊網(wǎng)站變得切實(shí)可行之前,早早實(shí)施到位。