熔毁 (安全漏洞)

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
漏洞圖標
中國大陸熔斷[1]
臺灣熔毀
港澳熔毀[2]

熔毀(英語:Meltdown),也譯崩潰[3],編號CVE-2017-5754,正式名稱爲「Rogue Data Cache Load」,常譯作「惡意數據緩存加載[4][5],是一個存在於英特爾大部分x86/x86-64微處理器、部分IBM POWER架構處理器以及部分ARM架構處理器中的關於推測執行機制的硬件設計缺陷及安全漏洞[6][7][8]。該缺陷使得低權限的進程無論是否取得特權,均可以獲取受高權限保護的內存空間中的資料,漏洞利用是基於時間的旁路攻擊。2018年1月,該缺陷隨另一個基於推測執行機制的重量級資訊安全漏洞、硬體缺陷「Spectre」(幽靈)在通用漏洞披露中公布。

由於英特爾處理器及IBM POWER處理器均在市場上佔據極大的份額(出現缺陷的ARM處理器在缺陷被發現時尚未正式面市),這種涉及資訊安全的硬體缺陷影響範圍甚廣,包括幾乎整個x86、POWER伺服器領域、幾乎整個小型主機大型主機市場、個人電腦市場等都無一倖免,[9]另外該缺陷的危險程度之高(無需特權即可存取敏感資料所在的記憶體空間),曾一度令資安人員及機構懷疑缺陷的真實性,而提前公佈這些缺陷還極有可能引發全球性的資安災難,因而選擇先與處理器廠商及核心客戶聯絡協商備妥修補方案再另行公佈。[10][11][12][13]目前該硬體缺陷可通過軟體實作規避,包括Linux系、Android、OS X/macOS、Windows等等都有相應的修復程式(像是Linux的內核頁表隔離技術)[14][15][16],但是軟體規避將導致處理器效能的顯著下降。[17]而從根本上修復該缺陷的方法(包括修復「幽靈」缺陷)是重新設計處理器的微架構,為此英特爾、IBM及ARM都將新處理器微架構的推出時程大幅押後。[18][19][20][21]

概述

熔毀缺陷是基於設計不良的數位電路設計中出現的競爭條件,再結合許多現代微處理器非依序執行推測執行特性而產生。[22]

在具備非依序執行及推測執行特性的處理器上,處理器會檢測指令的相依性,對無相依性的指令會進行預先執行,或者當處理器執行某一指令出現異常而面臨停頓時,處理器會先執行與異常指令無相依性的指令以跳過停頓,這兩類指令執行方式的執行結果都會保存到CPU快取上一段時間以備使用(超過時間即拋棄結果),這些預測執行的動作包括分支預測,預讀取,推測性內存訪問,緩存缺失的重疊/亂序處理(MSHR)等等。[23]

某行程的某條指令需要其指定某個記憶體位址的資料進行運算,基於CPU快取的機制,該筆資料會先載入至CPU快取上,而這個過程對於指令而言是透明的,因此其它行程是無法直接從CPU快取上得知該筆資料的內容,而又因資料未載入至CPU暫存器上,需要該資料的指令仍無法得知資料內容,在這裏,基於分級保護域機制,CPU將資料從CPU快取載入至CPU的暫存器前是需要經過資料權限檢查和記憶體位址合法性檢查,只有這些資料的存取權限被確認等於或低於該行程的權限、記憶體位址空間的存取權限符合該行程的權限時,方能被相應行程的指令存取,否則將資料丟棄並對該指令進行異常處理。但是,而從記憶體載入資料到CPU快取時,CPU是既沒有對這些資料進行權限檢查也沒有進行記憶體位址的合法性檢查的,而沒有被命中的CPU快取的資料也不會馬上被清空。如果CPU快取的資料內容無法被得知,那麼這種機制的處理邏輯並不會有問題,然而如果有方法可以從其它途徑「偷看」CPU快取的資料內容的話,那麼這種處理邏輯便存在缺陷。

要利用熔毀缺陷,在指令處理期間,用異常的指令使得CPU進入對異常指令的異常處理當中,同時令CPU的推測執行去先執行一些非法指令,內存訪問和權限檢查或記憶體位址合法性檢查兩種操作在這裏發生競爭冒險,因為受影響的處理器中的指令流水線意味着在推測執行期間,來自未經授權地址的數據幾乎總是被臨時加載到CPU的緩存中,即使原始讀取指令由於特權檢查而最終失敗並且從不產生可讀結果,這個時候再利用旁道攻擊,利用存取CPU快取及存取記憶體的時間差,重建目標資料。這樣未經授權的進程就可從映射到當前進程的內存空間的任何地址讀取數據。[24]

由於許多操作系統將物理內存、內核進程和其他正在運行的用戶空間進程映射到每個進程的地址空間,並依靠特權檢查來防止未經授權的訪問,因此,熔毀缺陷有效地允許運行在用戶空間的惡意進程在不需要權限提升的情況下,讀取任何物理內核或其他進程的映射的內存,不管它是否應該能夠這樣做。若要防範這個缺陷所造成的危害,需要避免使用內存映射方式或使用內存分頁隔離(均是基於軟件的解決方案,後者是將用戶空間的內存地址與內核空間的內存地址相隔離,但這將增加內核態與用戶態之間的上下文交換開銷),或避免潛在的競爭條件(修改CPU的微代碼和/或執行路徑)。

惡意程式利用熔毀缺陷進行攻擊活動時也無法被偵測感知,是該資安漏洞的一大危險之處。[25][26]

受影響硬體

最初發現熔毀缺陷主要在英特爾的微處理器產品上出現,[27]但後來發現一些ARM架構的處理器也有該缺陷並被ARM確認[28],隨後IBM的POWER架構的處理器也被發現有此缺陷也得到了IBM的確認。[29]同為x86架構的AMD處理器則沒有被發現有熔毀缺陷。[30][31][32][33]而英特爾在處理器缺陷被發現公佈數天後,才發表聲明確認,除了使用依序執行的產品以外全系列的英特爾微處理器都有熔毀缺陷,並且在聲明中指所有非依序執行的x86微處理器都有該缺陷以暗示競爭對手也受熔毀缺陷影響,[34]不過另一家主要的x86微處理器供應商AMD則表示其處理器產品沒有熔毀缺陷,並指出「我們之所以認爲AMD的處理器不受缺陷影響,是因爲我們的分頁架構有特權級保護」。[35]

同時期的另一個硬體缺陷——幽靈,受影響的處理器產品遍及當今所有採用分支預測技術的處理器(包括英特爾、AMD、ARM、IBM POWER等等),雖然相比熔燬缺陷更難利用(視不同CPU的微架構有所不同)[36][37][38][39]

更爲具體的,有缺陷的CPU型號數量非常多,Google的Project Zero報告指出,除了安騰以及2013年前的Atom系列,英特爾自1995年發表基於P6微架構Pentium Pro開始所有具備非依序執行的CPU產品都有熔燬缺陷,[40]P6微架構是英特爾首款具備預測執行的x86(IA-32)微架構,首發產品便是Pentium Pro,而後續的英特爾x86微架構除Netburst(Pentuim 4)外都是以P6爲藍本。[41]

而ARM表示它們的主要處理器IP核不受影響,具體受影響的IP核型號已經公佈。ARM Cortex-A75除了有熔毀缺陷以外還受幽靈漏洞的影響,而其它型號則沒有熔毀缺陷。帶預測執行技術的Cortex-R7Cortex-R8Cortex-A8Cortex-A9Cortex-A15Cortex-A17Cortex-A57Cortex-A72Cortex-A73 IP核只受幽靈的影響。[28]ARM是在英特爾之後第二個被發現有熔毀缺陷的產品的,但與英特爾的不同,ARM唯一有熔燬缺陷的IP核產品Cortex-A75尚未有實作商用。[42]另外,不使用預測執行技術的ARM架構處理器,也是當前使用數量最多的ARM產品,不受任何影響,也沒有熔燬缺陷,這部分包括了大量使用在Android行動裝置上的Cortex-A53 IP核,以及即將有商用實作案的Cortex-A55。僅使用Cortex-A53、Cortex-A55的處理器產品包括高通驍龍630、626/625、400系列等、聯發科的MT6795等、樹莓派單板電腦使用的博通SoC等等。[43][44]

IBM的POWER架構是第三個被發現有熔燬缺陷、受幽靈的處理器微架構,紅帽公司在2018年1月3日公佈了受這些缺陷影響的處理器型號,涵蓋Z架構、POWER架構(包括最新的POWER8POWER9)的產品,並發表了適用於這些指令集架構編譯版本的RHEL之修復程式;IBM也立即公佈了受影響型號清單並發佈了相關的韌體修復程式和AIX、z/OS修復程式。[45]

甲骨文公司表示SPARC V9的系統(T5、M5、M6、S7、M7、M8、M10、M12處理器)沒有熔燬缺陷,但並未說明更老的、不再進行技術支援的處理器產品是否受這兩大硬體缺陷的衝擊。[46]

漏洞修復

2018年初,微軟發佈了Windows系統的安全性修正以修補漏洞。儘管Intel多次強調安全性修正並不會大幅影響處理器的性能,然而微軟的測試顯示了在安裝漏洞安全性修正的Windows 7Windows 8環境下,2015年(含)以前生產的Intel處理器會有性能下降,在某些測試下降幅甚至達到30%。[47][48]性能下降在較舊的微架構如Haswell上尤其明顯,在使用較新的微架構SkylakeKaby LakeWindows 10系統上,降幅則較微小。[49]

對於Intel的處置方式,Linux之父林納斯·托瓦茲強烈表達了他的不滿,稱Intel的修正方案是「全然的垃圾」並說Intel正在做瘋狂的、毫無道理的事情。以下節錄他在一則郵件中對於Intel修補方式的回應。[50][51][52][53]

The patches do things like add the garbage MSR writes to the kernel

entry/exit points. That's insane. That says "we're trying to protect

the kernel". We already have retpoline there, with less overhead.

So somebody isn't telling the truth here. Somebody is pushing complete

garbage for unclear reasons. Sorry for having to point that out.

If this was about flushing the BTB at actual context switches between

different users, I'd believe you. But that's not at all what the

patches do.

As it is, the patches are COMPLETE AND UTTER GARBAGE.

They do literally insane things. They do things that do not make

sense. That makes all your arguments questionable and suspicious. The

patches do things that are not sane.

WHAT THE F*CK IS GOING ON?

參考文獻

  1. ^ 全國信息安全標準化技術委員會秘書處. 关于发布《网络安全实践指南—CPU熔断和幽灵漏洞防范指引》的通知. 全國信息安全標準化技術委員會. 2018-01-16 [2019-01-12]. (原始內容存檔於2019-01-12) (中文(中國大陸)). 
  2. ^ 高源樺. 英特爾推更新修復晶片安全隱患 或致運算速度減慢. 香港01. 2018-01-06 [2018-01-07]. (原始內容存檔於2020-08-08) (中文(香港)). 
  3. ^ 英特尔芯片存漏洞?苹果微软纷纷中招紧急打补丁-寰球立方体-新华网. [2018-01-07]. (原始內容存檔於2020-08-10). 
  4. ^ CVE-2017-5754. [2017-02-01]. (原始內容存檔於2022-08-07). 
  5. ^ CVE-2017-5754. [2018-01-01]. (原始內容存檔於2022-08-07). 
  6. ^ About speculative execution vulnerabilities in ARM-based and Intel CPUs. [2018-04-26]. (原始內容存檔於2021-03-27). 
  7. ^ Arm Ltd. Arm Processor Security Update. ARM Developer. [2018-04-08]. (原始內容存檔於2018-04-04). 
  8. ^ Bright, Peter. Meltdown and Spectre: Here's what Intel, Apple, Microsoft, others are doing about it. Ars Technica. January 5, 2018 [January 6, 2018]. (原始內容存檔於2018-05-27). 
  9. ^ CERT: "Meltdown and Spectre" CPU Security Flaw Can Only Be Fixed by Hardware Replacement – WinBuzzer. January 4, 2018 [2018-04-26]. (原始內容存檔於2021-05-08). 
  10. ^ ‘It Can’t Be True.’ Inside the Semiconductor Industry’s Meltdown. [2018-01-10]. (原始內容存檔於2022-08-07). 
  11. ^ Schneier, Bruce. Spectre and Meltdown Attacks Against Microprocessors - Schneier on Security. www.schneier.com. [January 9, 2018]. (原始內容存檔於2021-04-12). 
  12. ^ This Week in Security: Internet Meltdown Over Spectre of CPU Bug. Cylance.com. 2018-01-05 [2018-01-30]. (原始內容存檔於2018-01-09). 
  13. ^ Meltdown, Spectre: here's what you should know. Rudebaguette.com. 2018-01-08 [2018-01-30]. (原始內容存檔於2018-07-05). 
  14. ^ Vaughan-Nichols, Steven J. Major Linux distros have Meltdown patches, but that's only part of the fix. ZDNet. January 11, 2018 [January 16, 2018]. (原始內容存檔於2020-11-09) (英語). 
  15. ^ CVE-2017-5754. security-tracker.debian.org. [January 16, 2018]. (原始內容存檔於2021-04-12). 
  16. ^ Apple Confirms 'Meltdown' and 'Spectre' Vulnerabilities Impact All Macs and iOS Devices, Some Fixes Already Released. [2018-04-26]. (原始內容存檔於2020-12-05). 
  17. ^ Industry Testing Shows Recently Released Security Updates Not Impacting Performance in Real-World Deployments. Intel newsroom. January 4, 2018 [January 5, 2018]. (原始內容存檔於2021-10-06). 
  18. ^ Warren, Tom. Intel processors are being redesigned to protect against Spectre - New hardware coming later this year. The Verge. March 15, 2018 [March 20, 2018]. (原始內容存檔於2018-04-21). 
  19. ^ Shankland, Stephen. Intel will block Spectre attacks with new chips this year - Cascade Lake processors for servers, coming this year, will fight back against a new class of vulnerabilities, says CEO Brian Krzanich.. CNET. March 15, 2018 [March 20, 2018]. (原始內容存檔於2018-04-23). 
  20. ^ Smith, Ryan. Intel Publishes Spectre & Meltdown Hardware Plans: Fixed Gear Later This Year. AnandTech. March 15, 2018 [March 20, 2018]. (原始內容存檔於2018-05-04). 
  21. ^ Coldewey, Devin. Intel announces hardware fixes for Spectre and Meltdown on upcoming chips. TechCrunch. March 15, 2018 [March 28, 2018]. (原始內容存檔於2018-04-12). 
  22. ^ Ben Thomposn:「幽靈」與「熔毀」漏洞映射出了科技行業的現狀. 香港矽谷. 2018-01-10 [2018-05-28] (中文(香港)). 
  23. ^ 开年惊吓!Intel承认CPU安全漏洞存在,厂商们一夜回到20年前. 2018-01-08 [2018-05-28]. (原始內容存檔於2020-02-01). 
  24. ^ 处理器A级漏洞Meltdown(熔毁)和Spectre(幽灵)分析报告. [2018-05-28]. (原始內容存檔於2020-08-09). 
  25. ^ Meltdown and Spectre. Spectreattack.com. [2018-01-30]. (原始內容存檔於2018-01-03). 
  26. ^ 存档副本. [2018-05-28]. (原始內容存檔於2021-01-16). 
  27. ^ A Critical Intel Flaw Breaks Basic Security for Most Computers. Wired. January 3, 2018 [2018-04-08]. (原始內容存檔於2018-01-03). 
  28. ^ 28.0 28.1 Arm Processor Security Update. ARM Developer. ARM Ltd. January 3, 2018 [January 5, 2018]. (原始內容存檔於2018-04-04). 
  29. ^ Ibm Psirt Blog. Potential Impact on Processors in the POWER Family - IBM PSIRT Blog. Ibm.com. 2018-01-25 [2018-01-30]. (原始內容存檔於2018-04-03). 
  30. ^ Metz, Cade; Perlroth, Nicole. Researchers Discover Two Major Flaws in the World's Computers. The New York Times. January 3, 2018 [January 3, 2018]. ISSN 0362-4331. (原始內容存檔於2018-01-03). 
  31. ^ Intel's processors have a security bug and the fix could slow down PCs. The Verge. [January 3, 2018]. (原始內容存檔於2018-01-03). 
  32. ^ Linux Gaming Performance Doesn't Appear Affected By The x86 PTI Work – Phoronix. www.phoronix.com. [January 3, 2018]. (原始內容存檔於2021-02-20). 
  33. ^ Lendacky, Tom. [tip:x86/pti] x86/cpu, x86/pti: Do not enable PTI on AMD processors. lkml.org. [January 3, 2018]. (原始內容存檔於2020-08-03). 
  34. ^ Patches arrive for Intel's 'Meltdown' flaw — here's how to protect your device. January 4, 2018 [2018-04-08]. (原始內容存檔於2018-01-09). 
  35. ^ An Update on AMD Processor Security. [2018-04-08]. (原始內容存檔於2018-03-17). 
  36. ^ Who's affected by computer chip security flaw. (原始內容存檔於2018-01-04). 
  37. ^ Kernel-memory-leaking Intel processor design flaw forces Linux, Windows redesign. [2018-04-08]. (原始內容存檔於2018-04-07). 
  38. ^ Staff. Meltdown and Spectre-faq-systems-spectre. Graz University of Technology. 2018 [January 3, 2018]. (原始內容存檔於2018-01-03). 
  39. ^ Busvine, Douglas; Nellis, Stephen. Security flaws put virtually all phones, computers at risk. Reuters. Thomson-Reuters. January 3, 2018 [January 8, 2018]. (原始內容存檔於2018-01-03). 
  40. ^ Google: Almost All CPUs Since 1995 Vulnerable To "Meltdown" And "Spectre" Flaws. [2018-04-08]. (原始內容存檔於2021-04-20). 
  41. ^ P6 family microarchitecture. www.jaist.ac.jp. [2018-04-08]. (原始內容存檔於2020-01-03). 
  42. ^ Understanding Those Alarming Computer Chip Security Holes: 'Meltdown' and 'Spectre'. [2018-04-08]. (原始內容存檔於2021-03-08). 
  43. ^ 'Spectre' and 'Meltdown': New CPU vulnerabilities affect most smartphones and computers. January 4, 2018 [2018-04-08]. (原始內容存檔於2020-09-27). 
  44. ^ Why Raspberry Pi isn't vulnerable to Spectre or Meltdown. Raspberry Pi. 2018-01-05 [2018-01-30]. (原始內容存檔於2021-04-09). 
  45. ^ Tung, Liam. Meltdown-Spectre: IBM preps firmware and OS fixes for vulnerable Power CPUs. ZDNet. 2018-01-10 [2018-01-30]. (原始內容存檔於2020-08-03). 
  46. ^ Solaris+SPARC is Meltdown (CVE-2017-5754) free - Tales from the Datacenter. Tales from the Datacenter. January 22, 2018 [January 23, 2018]. (原始內容存檔於2021-07-09) (美國英語). 
  47. ^ Intel 64 處理器硬體全部中招,軟體修復漏洞最高導致 30% 效能下滑 | T客邦. PCADV 電腦王 - 狂操、硬幹、玩真的. 2018-01-04 [2020-02-02]. (原始內容存檔於2020-12-01) (中文(臺灣)). 
  48. ^ Williams, Chris. Kernel-memory-leaking Intel processor design flaw forces Linux, Windows redesign. www.theregister.co.uk. [2020-02-02]. (原始內容存檔於2018-04-07) (英語). 
  49. ^ 安全漏洞作祟、微軟:更新會拖慢電腦. [2018-01-10]. (原始內容存檔於2018-01-10). 
  50. ^ Linux-Kernel Archive: Re: [RFC 09/10] x86/enter: Create macros to restrict/unrestrict Indirect Branch Speculation. lkml.iu.edu. [2020-02-02]. (原始內容存檔於2020-11-09). 
  51. ^ Linus Torvalds declares Intel fix for Meltdown/Spectre ‘COMPLETE AND UTTER GARBAGE’. TechCrunch. [2020-02-02] (美國英語). 
  52. ^ Ranger, Steve. Spectre and Meltdown: Linux creator Linus Torvalds criticises Intel's 'garbage' patches. ZDNet. [2020-02-02]. (原始內容存檔於2020-12-25) (英語). 
  53. ^ Patrizio, Andy. Linus Torvalds blasts Intel’s Meltdown fixes as ‘garbage’. Network World. 2018-01-24 [2020-02-02]. (原始內容存檔於2020-09-24) (英語). 

外部連結

參見