推測執(zhí)行 (speculative execution) 是當今主流處理器(包括 AMD、ARM 和 Intel)中廣泛采用的一項優(yōu)化技術。其基本思路是利用處理器的空閑時間提前執(zhí)行一些將來 “可能用得上,但也可能被放棄” 的計算(包括分支預測、預讀內存和文件數(shù)據(jù)),從而極大提升系統(tǒng)的整體運行速度。然而我們發(fā)現(xiàn)這項優(yōu)化技術可能存在漏洞,進而威脅用戶數(shù)據(jù)安全。本文將為大家介紹事件脈絡,并闡述我們至今為保護大家的數(shù)據(jù)安全所做的努力和成果。
背景
去年,我們的 Project Zero 團隊發(fā)現(xiàn)了由 “推測執(zhí)行” 引起的嚴重安全漏洞,這是大多數(shù)現(xiàn)代處理器 (CPU) 用來優(yōu)化性能的技術。
Project Zero 的研究人員 Jann Horn 展示了一些可能的進攻場景:惡意行為者可以利用推測執(zhí)行來讀取本應無法被訪問的系統(tǒng)內存。例如,未經(jīng)授權方可能會讀取系統(tǒng)內存中的敏感信息,如密碼、加密密鑰或是在應用中打開的敏感信息。測試還表明,在虛擬機上運行的攻擊能夠訪問主機的物理內存,并通過這種方式獲得同一物理主機上其他虛擬機的內存讀取權限。
這些漏洞會影響許多 CPU,包括來自 AMD、ARM 和 Intel 的 CPU,以及運行在其上的設備和操作系統(tǒng)。
在得知了這個新的攻擊類型后,我們的安全和產(chǎn)品開發(fā)團隊便立即行動起來,捍衛(wèi) Google 的系統(tǒng)安全和用戶數(shù)據(jù)。我們已經(jīng)更新了受影響的系統(tǒng)和產(chǎn)品,以阻止這種新型的攻擊。我們還與整個行業(yè)內的硬件和軟件制造商合作,幫助保護用戶和更廣義的網(wǎng)絡安全。這些努力包括協(xié)作分析和開發(fā)全新的應對方法。
由于現(xiàn)有的公開報道以及新聞和安全研究領域對這個問題的猜測越來越多,這可能會導致這種新型的攻擊方法被更多人惡意利用,因此我們沒有在原定計劃的 2018 年 1 月 9 日,而是提前了一些時間進行發(fā)布(本文原文在 2018 年 1 月 3 日發(fā)表于 Google Security Blog,本文結尾處有完整鏈接)。
Google 產(chǎn)品的應對狀態(tài)
下面我們列出了受影響的 Google 產(chǎn)品列表及其對此攻擊的應對狀態(tài)。由于這是一種新的攻擊類型,我們的補丁狀態(tài)指的是我們?yōu)榉婪赌壳耙阎娜毕莺瓦M攻方式所采取的措施。這些措施已經(jīng)在很多產(chǎn)品中起到了顯著效果(甚至某些產(chǎn)品中從一開始就不存在推測執(zhí)行漏洞)。在某些情況下,用戶和客戶可能需要采取額外的操作步驟來確保他們使用的是安全的產(chǎn)品版本。這個列表和其中的產(chǎn)品狀態(tài)可能會隨著新的進展而變化。屆時我們也會更新這個列表,并告知大家。
以下未明確列出的 所有 Google 產(chǎn)品都不需要用戶或客戶進行操作。
Android:
1.擁有最新安全更新的設備已受保護。雖然這個漏洞可能造成基于 ARM 的 Android 設備信息泄露,但在我們的更新后未發(fā)現(xiàn)這個漏洞再次出現(xiàn)。
2.安裝了最新安全更新的受支持的 Nexus 和 Pixel 設備已受保護。
3.更多信息請見:
https://support.google.com/faqs/answer/7622138#android
Google Apps / G Suite ( Gmail, Calendar, Drive, Site 等 ) :
1.無需額外的用戶或客戶操作。
Google Chrome:
1.一些用戶或客戶需要采取操作。更多信息請見:https://support.google.com/faqs/answer/7622138#chrome
Google Chrome OS ( 如 Chromebook ) :
1.需要一些額外的用戶或客戶操作。更多信息請見:https://support.google.com/faqs/answer/7622138#chromeos
Google Cloud Platform:
1.Google App Engine:無需額外的客戶操作。
2.Google Compute Engine:需要一些額外的客戶操作。更多信息請見:https://support.google.com/faqs/answer/7622138#gce
3.Google Kubernetes 引擎:需要一些額外的客戶操作。更多信息請見:https://support.google.com/faqs/answer/7622138#gke
4.Google Cloud Dataflow:需要一些額外的客戶操作。更多信息請見:https://support.google.com/faqs/answer/7622138#clouddataflow
5.Google Cloud Dataproc:需要一些額外的客戶操作。更多信息請見:https://support.google.com/faqs/answer/7622138#clouddataproc
6.所有其他 Google Cloud 產(chǎn)品和服務:無需其他操作。
Google Home / Chromecast:
1.無需額外的用戶操作。
Google Wifi / OnHub:
1.無需額外的用戶操作。
漏洞的攻擊方法及對策
要利用此漏洞,攻擊者首先必須能夠在目標系統(tǒng)上運行惡意代碼。
Project Zero 的研究人員發(fā)現(xiàn)了三種在不同條件下有效的攻擊方法(即 “變種” )。所有這三種攻擊方式都可以允許擁有普通用戶權限的進程執(zhí)行未經(jīng)授權的內存數(shù)據(jù)讀取,這些數(shù)據(jù)可能包含密碼、密鑰資料等敏感信息。
為了提高系統(tǒng)的運行性能,許多 CPU 可能會選擇基于被認為可能成立的假設來推測性地提前執(zhí)行指令。在推測執(zhí)行期間,處理器也會驗證這些假設:如果它們成立,則繼續(xù)之前執(zhí)行的操作;如果它們不成立,則回滾之前執(zhí)行的操作,并根據(jù)實際情況轉向正確的執(zhí)行路徑。這種運行機制可能存在分支解除時沒有回滾 CPU 狀態(tài)而產(chǎn)生副作用,并且導致信息泄露。
對于三個攻擊變種沒有單一的解決方案:每個變種都需要獨立的保護措施。許多供應商都提供了補丁,可用于應對一種或多種的此類攻擊。
我們將繼續(xù)應對此漏洞,并會在發(fā)布進一步措施時更新我們的產(chǎn)品支持頁面。同時,感謝所有合作伙伴和 Google 工程師,在過去幾個月里不知疲倦地為我們的用戶和客戶提供了安全支持。