漏洞數量242:15,英特爾和AMD CPU誰更安全?
2019-11-05 13:03:16 EETOP(圖片來源:Shutterstock)
直到最近幾年,普通用戶和網絡安全研究人員都大多擔心過多的軟件漏洞,而這些漏洞似乎永遠不會消失。
隨著在2018年1月谷歌批露了Meltdown和Spectre CPU設計缺陷開始,許多用戶和安全研究人員意識到,為我們的電腦提供動力的CPU并不像我們以前想象的那樣安全。
這給我們留下了一個問題:哪個公司更安全?當我們認為英特爾目前有242個公開披露的漏洞,而AMD只有16個(對AMD有利的比例為15:1)時,這個問題似乎顯得很緊迫。
2018年1月,谷歌的零號項目安全專家以及其他獨立的安全研究人員披露了 Meltdown和Spectre CPU設計缺陷。這些漏洞的存在是由于大多數CPU體系結構團隊為了提高其芯片性能而做出的設計選擇。
Meltdown漏洞(也稱為Spectre變體3)專門影響Intel的CPU。它允許第三方代碼破壞通常由硬件實施的應用程序與操作系統之間的隔離。攻擊者可以使用它來訪問其他應用程序和操作系統的內存,從而使他們能夠竊取秘密。
Spectre漏洞打破了不同應用程序之間的安全邊界,甚至使那些遵循最佳編碼實踐的應用程序也變得容易受到利用PC側通道安全漏洞的攻擊者的攻擊。
Spectre幾乎影響所有使用預測執行來提高性能的亂序CPU,包括AMD和Arm的處理器。但是,Spectre家族新發現的側通道攻擊似乎比其他兩家供應商對英特爾的影響更大,這意味著英特爾可能比競爭對手擁有更多的CPU自由來保持性能優勢。
預測執行是一種CPU設計功能,它使CPU可以處理下一步可能需要或不需要的某些任務。如果需要這些任務,則在需要時可以更輕松地訪問它們,因此與沒有此功能的情況相比,CPU的性能得以提高。
這也是為什么盡管Spectre的特定變體可以通過軟件固定甚至可以在硬件中緩解的原因,但直到CPU制造商決定足夠的可能性并完全禁用預測執行功能,或者設計全新的架構。
這不僅是一種理論,而且自從首次披露Meltdown和Spectre缺陷(不到兩年)以來已經發生了好幾次。
在研究人員披露Spectre數月之后,另一組安全研究人員準備披露 “ Spectre Next Generation” 新的預測執行漏洞家族。據稱,英特爾試圖推遲披露,因為該公司在那年早些時候因《幽靈》的首次曝光而遭受了巨大的公關打擊。
預測性執行至少造成了三個其他錯誤,即TLBleed, Foreshadow 和Zombieload,這些錯誤實際上使英特爾的超線程技術不安全。OpenBSD創始人Theo de Raadt已 警告不要 一開始就在Intel計算機上啟用超線程。
直到最新的 Zombieload攻擊 ,其他操作系統供應商(例如Google甚至Apple)才加入了OpenBSD創始人的行列。Google 禁用了所有Chromebook上的超線程,而蘋果公司僅指出,要完全緩解Zombieload和其他微體系結構數據采樣(MDS)漏洞,就需要禁用超線程,這是用戶的一種 選擇。
英特爾本身也建議禁用超線程功能,但僅向“不能保證受信任的軟件在其系統上運行”的某些客戶禁用。不過什么是受信任的,什么不是?
絕大多數預測性執行攻擊不會影響到AMD的處理器,只有少數例外,例如Spectre變體1、1.1和4,后者被稱為 Speculative Store Bypass。
AMDCPU也受到PortSmash的影響,PortSmash是一個影響其同時多線程(SMT)功能的漏洞,該功能類似于英特爾的超線程。AMD處理器也容易受到NetSpectre和SplitSpectre的攻擊,因為這些漏洞影響了處理器,而這些處理器也容易受到Spectre v1的攻擊。
AMD的處理器容易受到Spectre變體2的影響,該公司對此進行了更新,但它表示, 與英特爾設計相比,其架構存在差異,“利用風險幾乎為零”。
AMD的芯片還受到新的Meltdown and Spectre攻擊中的 五種的攻擊,其中包括一些發現原始Spectre andMeltdown設計缺陷的原始研究人員。英特爾的芯片容易受到所有七個漏洞的影響。
AMD的CPU(包括最新的Ryzen和Epyc處理器) 不受 以下漏洞的影響:
Meltdown (Spectre v3)
Spectre v3a
LazyFPU
TLBleed
Spectre v1.2
L1TF/Foreshadow
SPOILER
SpectreRSB
MDS attacks (ZombieLoad, Fallout, RIDL)
SWAPGS
英特爾和AMD都針對上述所有缺陷發布了固件和軟件補丁,盡管如果更新過程取決于主板或設備制造商而不是英特爾/ AMD或操作系統供應商,則并非所有缺陷都已經到達用戶手中。例如Microsoft,Apple等。
獲勝者:AMD
根據最近的一份報告,英特爾必須提供的所有補丁程序 使用戶的PC 和服務器的速度降低了大約是AMD自己的補丁程序的五倍。這是一個很大的差距,主要是因為英特爾必須比AMD修復更多的安全漏洞。
也許由于Intel因Spectre級的安全漏洞不得不發布大量的固件和軟件緩解措施,該公司也改變了主意,不再向其處理器中添加基于硬件的緩解措施。最初,英特爾不太愿意這樣做,或者至少不愿對其架構進行重大更改。但是,它后來致力于 “安全第一”的原則。
在某些方面,該公司履行了這一承諾。英特爾在Meltdown和Foreshadow中包括了硬件緩解措施,從 Whiskey Lake和Cascade Lake處理器開始,在某些最新的CPU 中還包括了部分MDS硬件緩解措施,
英特爾還承諾將對Spectre v2進行硬件修復,并已實現使用內置硬件和軟件的部分修復。不過英特爾尚未承諾在硬件中修復最危險的推測執行攻擊Spectre v1。
在某些情況下,據稱英特爾還忽略或輕描淡寫了某些Spectre類漏洞的披露。就MDS攻擊而言,據稱英特爾呼吁漏洞 研究人員拼底MDS攻擊的嚴重性,不過這個提議被拒絕了
目前還不清楚英特爾是否有意避免修復Spectre v1和其他在硬件上的側通道攻擊,因為它很昂貴,可能會破壞太多東西,或者只是在等待時機,直到它準備好發布這樣的處理器。
有一點似乎很清楚,那就是用于投機性執行端側通道攻擊的軟件補丁不足以防止類似的新攻擊出現。漏洞研究者們表示懷疑,即試圖修補體系結構是否會因體系結構設計變更而帶來長期的安全利益。
因此,如果英特爾,AMD和其他芯片制造商不愿意改變其CPU架構的設計,我們將永遠被Spectre級的旁通道攻擊所困擾 。
同時,AMD尚未在其已經出貨的芯片中增加任何新的芯片緩解措施,盡管它正在將其應用于更新的型號中。但是,值得一提的是,AMD不需要像英特爾那樣進行太多改動來抵御漏洞,因此它不需要基于硬件的修補程序。
在Spectre漏洞被發現之前,甚至以后,英特爾芯片最大的與隱私或安全性相關的問題都圍繞著英特爾的內置管理引擎展開。但是,盡管其他漏洞可能同樣重要,但預測性執行側通道漏洞掩蓋了所有其他安全漏洞。
2017年, 英特爾確認了ME 中的一個安全漏洞,攻擊者可以利用該漏洞遠程利用固件并接管任何由英特爾支持的計算機。自2008年以來,該錯誤影響了所有處理器。
在2017年晚些時候,研究人員發現了另一個ME漏洞,從2015年的Skylake到2017年的Coffee Lake,都受到了影響。即使用戶可以通過正常方式禁用ME,或通過非官方方式禁用ME,該漏洞也可使ME保持活動狀態。
安全研究人員找到了一種方法, 可以通過英特爾為政府機構秘密實施的無證模式,在同一年禁用英特爾ME。據推測,英特爾這樣做是為了讓NSA和其他政府機構禁用ME的潛在易受攻擊的功能,從而影響PC市場上的其他所有人。
研究人員還在 2018年發現了 兩套新的 ME安全漏洞,而英特爾正在深入應對Spectre后果。
由于擔心ME可能是“官方”后門或可能被惡意團體使用,一些計算機制造商(例如 Purism, Systems 76甚至Dell)已開始提供默認情況下禁用ME的筆記本電腦。Google則在其某些內部設備禁用ME。
AMD平臺安全處理器(PSP),也稱為AMD安全處理器,使用Arm Cortex-A5處理器將某些芯片平臺功能與主處理器和主操作系統隔離。它與AMD的ME類似,并且與ME一樣,如果惡意方發現其中的錯誤,也有可能被利用來產生毀滅性的影響。
自2017年以來,至少發現了三個PSP漏洞。一位谷歌安全研究人員在2017年發現了一個漏洞可能使攻擊者能夠訪問密碼,證書和其他敏感信息。
在2018年發現了其他PSP錯誤,并披露了總共13個影響AMD基于Zen的處理器的安全漏洞。研究人員將它們分為四類: Ryzenfall,Chimera,Fallout和Masterkey。
根據研究人員的說法,Ryzenfall錯誤會使攻擊者完全控制AMD安全處理器。結合歸類為Masterkey的Bug,攻擊者還能夠在目標計算機上安裝持久性惡意軟件。
Chimera漏洞涉及兩個制造商ASMedia芯片組后門的存在 ,一個在固件中,另一個在芯片組的硬件(ASIC)中。后門程序允許將惡意代碼注入Ryzen芯片組。
Fallout漏洞使攻擊者可以讀寫受保護的內存區域,例如SRAM和Windows Credential Guard隔離內存。
AMD在很大程度上淡化了這些漏洞,稱在大多數情況下,攻擊者需要通過物理訪問來利用這些安全漏洞。然而,在CVE詳細信息數據庫中,我們可以看到,他們中的大多數都有一個非常高的嚴重性評級:
AMD已經向所有硬件受到這些漏洞影響的oem和odm發布了補丁,但和往常一樣,這取決于這些公司對用戶電腦的補丁,這使得支持參差不齊。
研究人員還發現, AMD 針對Epyc服務器芯片的安全加密虛擬化(SEV)功能有時是不安全的。第一個SEV漏洞是作為之前提到的Masterkey公開的一部分發布的。研究人員表示,可以利用Masterkey錯誤來篡改SEV和固件可信平臺模塊(fTPM)的安全性。
另一組研究人員披露了第二個SEV漏洞,即 SEVered,僅在幾個月后的2018年5月。該漏洞可能使攻擊者能夠遠程提取通常由SEV保護的虛擬機的內存內容。
一位Google研究人員在 今年初發現了 最新的SEV漏洞。再次,它涉及一個漏洞,該漏洞使攻擊者可以提取SEV功能使用的加密密鑰來加密受保護VM的內存內容。
換句話說,這是大約一年來第三次證明SEV無法完成其工作-保護VM內存。這并不一定會使英特爾的類似SGX功能處于更好的位置,因為它也發現有 一些 由Spectre系列旁通道CPU缺陷引起的 弱點。
對于現代處理器的安全性而言,這并不是一個壞消息。盡管這仍然是一個新興的計劃,但是在研究人員披露了第一個Spectre漏洞之后,英特爾承諾將安全性放在首位。
如前所述,該公司已承諾減輕硬件中Spectre漏洞的危害,其中許多已經當前時代的處理器中得到修正。
然而,最終這些只是一開始就不應該被破壞的問題的小規模修復,我們正在尋找修復破壞的架構之外的安全性。那么英特爾處理器在用戶安全方面還能提供什么呢?
軟件保護擴展(Software GuardeXtensions,簡稱:SGX)可能是英特爾近年來發布的最受歡迎和最先進的處理器安全特性。SGX允許應用程序將敏感數據(如密碼密鑰)存儲在硬件加密的RAM中的安全虛擬區域中,操作系統或其他第三方應用程序無法訪問這些數據。諸如端到端的加密信號信使之類的應用程序可以利用它,以便可以將用戶安全私密地配對。
英特爾最近還宣布了發展SGX的計劃,以便能夠提供全內存加密(TME),而不是像SGX那樣只加密一小部分內存。新特性實際上是兩個功能合一:TME為所有內存提供一個單一的加密密鑰,而另一個變體稱為多密鑰總內存加密,它提供全內存加密,支持多個密鑰,比如每個加密的VM一個密鑰。
MKTME允許在內存中進行加密、靜態加密和傳輸加密。由于英特爾的新功能發布的時間比AMD稍晚,或許該公司已經從其競爭對手在SEV和SGX上的失誤中吸取了教訓。
硬件內存加密將為用戶帶來重大的安全優勢,因為它會使應用程序將來更加難以從他人竊取數據(授予的操作系統也對允許應用程序共享數據的API進行了嚴格限制)。但是,目前尚不清楚英特爾和AMD是否打算將這項功能留給企業客戶使用,或者是否也將為主流用戶啟用。
AMD SME
SME功能通常在引導時在BIOS或其他固件中啟用。它使用通過硬件隨機數生成器生成的單個臨時128位AES加密密鑰提供頁面粒度內存加密支持。SME使應用程序可以標記用于加密的某些內存頁。
然后,當應用程序需要讀取或寫入數據時,將自動對這些頁面進行加密和解密。該功能可防止遭受旨在竊取仍駐留在純文本RAM中的敏感客戶數據的物理攻擊。
AMDTSME(Transparent SME)是SME的更嚴格的子集,默認情況下會加密所有內存,并且不需要應用程序以自己的代碼支持它。對于不再期望修改其代碼的舊應用程
AMD最近似乎將TSME重新命名為“Memory Guard”,并將其作為公司新推出的Ryzen Pro 3000 cpu的GuardMI的一部分。GuardMI是AMD對英特爾vPro的替代產品,它為企業客戶提供了可管理性和安全特性。目前AMD相對于英特爾的一個特點是內存保護,它可以保護系統的數據不受冷啟動攻擊。
AMD SEV
AMD的SEV是SME的擴展,它使用自己的臨時加密密鑰對每個虛擬機的內存進行加密。這樣,虛擬機可以保持彼此完全隔離。AMD在為索尼和微軟的游戲機開發安全功能時提出了這個想法 。
實際上,像英特爾SGX一樣,SEV仍然容易受到側通道攻擊或其他利用加密密鑰訪問的攻擊。在確保這些功能幾乎不受攻擊方面,AMD和Intel仍有許多工作要做。
獲勝者:AMD
其次,即使沒有人會試圖在網上以您的名字作為目標,您仍然可能是惡意軟件大規模感染的受害者,這些惡意軟件通過廣告網絡,您訪問的被黑站點,內部工作網絡等傳播。硬件漏洞利用可能是整個漏洞利用工具鏈的一部分,這些工具的主要目標是:竊取他們遇到的任何人的數據。
如果您不能保證設備中硬件的安全性,那么您喜歡的操作系統或應用程序的所有安全性功能基本上都是無關緊要的。例如,這就是為什么蘋果和谷歌已經開始 構建自己的服務器 或停止從不太值得信賴的服務器硬件提供商那里購買的原因。兩家公司都在軟件方面實現了一流的安全性,但是如果他們使用的硬件中存在后門,那么這些工作都是徒勞的了。
從短期來看,盡管兩家公司盡了最大的努力,但在AMD和Intel的處理器都變得更好之前,情況可能會變得更糟。是的,我們可能會獲得更多的硬件緩解措施-也許足以使大部分消費者和媒體安心,但由于扭轉主要處理器體系結構所涉及的所有困難和成本,還不足以解決所有問題。
在未來的幾年中,我們還將從英特爾和AMD那里獲得一些有趣的新安全功能。但是,隨著越來越多的研究人員開始更深入地研究他們的CPU微體系結構,未來幾年可能會被兩家公司的處理器中發現的更多安全漏洞報告所控制。
兩家公司也將花費數年的時間來修復研究人員在新架構設計中發現的缺陷。最后,一切都應該變得更好,因為它將迫使處理器變得更加成熟。
既然都不太安全,那么這兩家公司到底誰會更安全一些?我們分析如下:
1)英特爾目前有242個公開披露的漏洞,而AMD只有16個。這在AMD的偏愛中是15:1。差距太大了,不容忽視。
2)自2018年初以來,針對英特爾披露的投機性執行側通道攻擊似乎只有不到一半影響了AMD的Ryzen和Epyc CPU。確實,在某些漏洞被宣布影響英特爾的CPU的情況下,研究人員可能并未主要研究AMD的CPU。但是,即使到那時,AMD在仔細檢查漏洞如何影響其自身的處理器之后,仍然確認這些錯誤不會影響其處理器。實際上,AMD似乎在設計新的Ryzen微體系結構時考慮到比英特爾本質上基于Nehalem的微體系結構更好的安全性。為什么以Nehalem為基礎?因為至少從2008年Nehalem微體系結構問世以來,大多數推測性執行攻擊都會影響英特爾的CPU。
3)隨著新的Zen架構的發布,在支持新的硬件加密功能方面,AMD在支持新的硬件加密功能方面似乎也領先英特爾一步。AMD在安全方面是否會保持這樣的速度還有待觀察,因為英特爾試圖解決Spectre的所有問題并改善其在消費者心目中的形象,但至少目前來看,AMD似乎處于領先地位。即使不考慮與Spectre相關的補丁對新舊系統造成的所有各種性能下降,AMD的處理器似乎還是在近期和中期選擇的更安全,更安全的平臺。
即使不考慮與spectrep相關的補丁對新舊系統造成的各種性能下降,AMD的處理器在近期和中期看起來都是更安全、更可靠的選擇。