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