AMD出大事了。
德國人在年初就給AMD送了一份“驚喜”,或者說驚嚇,德國CISPA亥姆霍茲資訊安全中心的研究人員對外披露了一個關於AMD處理器的底層漏洞——StackWarp。從公佈的資訊來看,這個漏洞目前已經確定會影響從Zen 1到最新的Zen 5架構在內的所有AMD處理器。
而且,考慮到EPYC等伺服器處理器也是基於Zen架構設計的,那麼大機率也在受影響的範圍內。因為StackWarp並非軟體級的漏洞,而是直接涉及到底層硬體的設計缺陷,這也意味著通過簡單的韌體升級是無法解決的。
估計雷科技的讀者裡也有不少在用銳龍處理器的,那麼就讓小雷來和大家聊聊,這玩意對你到底會有什麼影響。
想瞭解StackWarp漏洞的危害,首先要瞭解這玩意的緣由,從查詢到的報告來看,這是一項針對AMD處理器堆疊引擎邏輯缺陷的漏洞,這個引擎原本是為了加速處理器處理堆疊操作而設計的性能最佳化元件,但研究人員發現可以通過操控特定的暫存器控制位來干擾其同步機制。
這麼說吧,你可以把整個CPU看做是一個生產線,CPU核心是負責操作的技術員,而堆疊引擎則是專門負責管理資料進出和擺放位置的記帳員,有堆疊引擎的幫助,CPU就可以專心負責生產,不用考慮資料的進出問題。
而StackWarp漏洞正是利用這一點,它通過欺騙記帳員的方式,把原本應該正常運行的自動計數器暫停,此時記帳員在前面不停清點資料,但是後面的計數器卻一直卡在初始數字上。
然後當記帳員清點到足夠的資料,準備把它們保存到安全區時,駭客突然把暫停的計數器打開,讓數字突然從1跳到640,等於把記帳員直接踢出清點序列,等他跑回來清點資料時,這批資料早就已經被駭客打包帶走。
更進一步的,駭客可以利用這個機制讓系統在驗證金鑰時,直接跳過對金鑰的“清點”,直接進入驗證通過的通道里,讓入侵者繞過OpenSSH身份驗證從虛擬機器進入到主系統中,甚至將普通使用者的權限提升至Root權限,獲取系統的全部控制權。
因為整個入侵過程都發生在CPU正式處理資料前的階段,所以入侵會變得非常隱秘,幾乎不會觸發任何安全機制。如果要舉個例子的話,就等於駭客把倉庫的建築和保安挪走,但是倉庫內的物質還留在原地,可以任意取用。
從小雷的描述中,我想多數人都能理解這個漏洞的危害是非常嚴重的,因為駭客可以用它直接繞過最終防線入侵系統,而且整個入侵鏈路也非常清晰,從網路安全事件定級的角度來說,估計能算作2026年的第一個重大危害漏洞了,唯一的好消息是並非0-day等級。
而且,這個漏洞最危險的地方就在於它不是用於“本地提權”(僅能夠入侵本地電腦或單一虛擬機器),而是可以從虛擬機器中逃逸。換言之,你可以通過雲服務商的任意一個虛擬機器去嘗試突破伺服器的安全機制,一旦成功,你就可以擁有整個伺服器的控制權。
當然了,在實際入侵時肯定不會這麼簡單,雲伺服器的防禦體系並不僅依賴於虛擬機器隔離這一道防線,即時運行的各種安全軟體和防禦機制都會成為入侵者需要克服的問題。但是其中最困難的從虛擬機器到主系統的防禦都已經被突破,後續的安全機制能否攔住入侵者就難說了。
說到這裡,小雷也是要對披露該漏洞的研究員表示敬佩,如果他偷偷將這個漏洞通過暗網等地下管道出售,有機會直接獲得上百萬美元的報酬。因為在2023年時,曾經有一個名為Zenbleed的漏洞被安全研究員提交給AMD,該漏洞僅針對Zen 2架構的處理器,但是當時已有傳聞稱曾有駭客組織叫價50萬美元購買該漏洞。
看到這裡,估計不少用著銳龍處理器的讀者都要心中一涼,不過大家不用擔心,從披露的文件來看,想要利用這個漏洞進行攻擊並不輕鬆,對於駭客來說如果沒有足夠的利益驅動是不可能去做的,所以大家的個人電腦基本都是安全的。
肯定還是有朋友擔心自己的電腦安全問題,那麼StackWarp漏洞是否可以修復呢?答案是不能,因為這個漏洞設計到硬體層面的設計缺陷,總不可能讓你把處理器拆了寄回廠返修吧?即使你願意等,目前也只有在實驗室裡才能實現對奈米級晶片的修復,成本能把你接下來一輩子的處理器都包圓了。
所以,AMD能做的只有通過更新微程式碼來引導CPU繞過故障區域,通過軟體來模擬故障區域的功能,維持CPU的正常運行。簡單來說,就是把給記帳員安排一個保安,檢查他稽核的資料材料,雖然慢是慢了點,但是至少不會被“賄賂”(入侵)。
事實上類似的事情在2018年也發生過,不過當時被披露的兩大漏洞:Meltdown(熔斷)與 Spectre(幽靈),直接影響全球幾乎所有處理器,英特爾、AMD和ARM都無法避開,也是現代電腦歷史中最具破壞性的漏洞,甚至可以說直到今天仍有許多裝置受到這些漏洞的威脅。
當時,幾大晶片廠商為了修復這兩個漏洞紛紛推出了微程式碼補丁,據安裝補丁後的使用者反饋,處理器在部分場景下性能會直接下降5%到30%不等,後續各大廠商又陸續發佈了迭代補丁,才最終把性能損失控制在可接受的範圍內。
聊回StackWarp漏洞,這玩意的問題根源來自堆疊引擎,該硬體區域的功能直接與超線程相關,如果想徹底杜絕基於該漏洞的攻擊,那麼就必須停用超線程技術。
簡單來說,如果你的處理器原本是16核32線程,那麼現在就變成16核16線程了,驚不驚喜?意不意外?雖然這對單核遊戲性能影響甚微,但在渲染、視訊剪輯等多線程平行的重度場景下,綜合性能損失理論上最高可達 50%。
當然,這是最極端和最安全的處理方式,AMD目前已經向合作夥伴推送了第一版微程式碼補丁,雖然軟體補丁不能從物理層面徹底切斷StackWarp漏洞的所有攻擊路徑,但是已經可以將攻擊方法收束到少數幾種方式上,這樣就讓合作夥伴(主要是雲服務商)能夠針對性部署防禦措施。
不過,對於那些必須聯網但是又有高等級保密需求的電腦系統來說,關閉超線程技術還是目前最徹底的解決方案,只不過這個方案對於雲服務商和資料中心來說影響實在太大,小雷估計大家都不會輕易啟用的。
最近幾年,關於CPU的嚴重漏洞報導比十幾二十年前多了不少,而且很多都是直接影響多代處理器的硬體架構性漏洞,實在是讓人忍不住吐槽:“整個網際網路世界的地基,居然是豆腐渣嗎?”
網際網路的地基是不是“豆腐渣”暫且不說,但是CPU的安全性確實在持續下降,最近10年來,CPU廠商為了壓榨核心的每一分性能,除了不斷更新製程工藝塞入更多的電晶體外,主要做的就是往裡面不停增加預測和快取機制。
你可以這麼理解,以前的CPU是需求和資料都到位後才開始進行計算,而現在的CPU則是提前收到下一階段的工作計畫,同時身邊還提前存放了部分未來能用到的資料,讓CPU可以在核心資料還沒到達前就開始處理部分工作,接下來只需要等核心資料到達後將兩者融合,就可以輸出結果。
隨著類似機制在CPU層面的運用越來越廣泛,也就給了駭客很大的利用空間,因為他們可以通過傳送特定程式碼,誤導處理器接下來使用者會需要訪問管理員密碼等區塊的資料,然後駭客再傳送攻擊指令,觸發處理器對密碼等區域的預快取。
雖然這個指令會因為入侵者不具備管理員權限而被終止,但是已經被預快取的資料仍然會在快取裡留下痕跡,這就給了駭客讀取金鑰等加密資料的機會,這也是近年來側通道攻擊越來越常見的原因。
說白了,效率和安全,兩者不可兼得,半導體廠商選擇擁抱更高的效率,那麼就必須要面對安全性下降的問題。不過,業內也在尋求解決的方法,如StackWarp漏洞這樣的側通道攻擊最大的問題在於,即使發現漏洞也無法直接修復,只能用微程式碼補丁來降低危害。
於是就有人提議在CPU設計階段就加入一塊專門的邏輯硬體區域,如果發現硬體架構層面的漏洞,就將補丁載入該區域,讓它直接替換出錯的區域維持處理器的正常運行。這個想法雖然看起來不錯,但是對於“寸土寸金”的CPU來說,預留修復區域就等於犧牲性能,所以大機率不會在消費級處理器上使用,頂多會用在需要高度安全性的企業級晶片上。
當然,這些安全性上的問題,對於多數普通人來說是不用太過擔心的,俗話說得好:“天塌下來有高個子頂著”,類似StackWarp這樣的高危漏洞,最該擔心的還是雲服務商,他們也會想盡辦法將問題控制在小範圍內。
所以,普通使用者該吃吃、該睡睡,而對於AMD來說,這個漏洞問題估計會讓他們的伺服器市場增長暫時剎車,而早已虎視眈眈的英特爾大機率不會放過這個機會。 (雷科技)