Intel

開始正視硬件防護,Intel將在Tiger Lake處理器新增安全防護措施CET

很多時候,黑客的攻擊往往比較難以在軟件層面預防的,就例如之前我們報導過Intel服務器的兩 個側信道攻擊漏洞 ,其中一個漏洞CrossTalk就需要Intel花費將近一年多的時間才解決掉。

而為了應對像這種在軟件層面難以解決的攻擊方法,也為了提供更好的硬件層面保護,Intel將會在今年稍晚時間推出的新一代Tiger Lake處理器上添加一種新的安全防護措施,控制流執行(Control-Flow Enforcement,下稱CET)。雖然Intel沒説,但這個新功能或許可以在硬件層面上阻擋類似Spectre以及Meltdown的攻擊。

CET的作用是專門防止黑客以面向返回編程(Return-oriented Programming,下稱ROP)技術來發起攻擊。ROP是黑客為應對AMD以及Intel的數據執行保護功能(Data Execution Prevention,簡稱DEP)而發明的一種攻擊。

DEP是通過把用户可尋址內存標記為不可執行來阻止黑客發起緩衝區溢出攻擊。而黑客為此就改變攻擊方式,從嘗試把惡意指令加載到用户可執行內存,轉變為透過在內存堆棧內改變現存指令來攻擊。而Intel的CET就是通過建立影子堆棧以及實行間接分支跟蹤來防止這種攻擊。


圖片來源: 微軟

通過生成第二個堆棧,這個新生成的影子堆棧可以保護內存堆棧的原始控制流。影子堆棧會保存在內存堆棧中引用的原始內存地址,一旦檢測到它們有任何改變就會將它們恢復為默認值。由於影子堆棧只是存儲內存地址,所以只需要非常少量的額外內存就可運作。

而間接分支跟蹤則是用來防止面向跳轉編程(Jump-oriented Programming)以及面向調用編程(Call-oriented Programming)攻擊,而這兩種方法與ROP比較相似的。

Windows 10 2004版本是已經支持Intel CET的,因此Tiger Lake處理器一出來就可以馬上啟用這個功能。要注意的是CET本質上與IME以及SGX都是有點不同的,後兩者都是在處理器上面建立一個安全區域,而CET則是改變處理器在執行特定代碼時會發生什麼。

對於Intel終於開始把安全性放在設計處理器的首要任務還是喜聞樂見的,畢竟Spectre和Meltdown就已經要讓之前的Intel處理器被逼降低不少性能來獲得足夠的保護。