針對知名漏洞 Meltdown 和 Spectre 的攻擊目前或許仍在概念驗證 (PoC) 階段,或者如某些報導所說,仍在實驗性階段。不過,歹徒總有一天會完全掌握這些漏洞,只是時間早晚的問題。Meltdown 和 Spectre 漏洞的影響非常深遠,它最早可追溯至 1995 年所生產的電腦。此問題對企業來說尤其棘手,特別是受到歐盟通用資料保護法 (GDPR) 所規範的企業。
企業除了修補和更新系統之外,還有一點也很重要,那就是採取主動策略來搜尋、偵測、回應威脅,尤其像 Meltdown 和 Spectre 這類影響深遠的威脅。
針對 Meltdown 和 Spectre 漏洞攻擊,趨勢科技研究了一種利用 Intel 處理器內建效能計數器 (Performance Counter) 的特殊偵測技巧。這些計數器會記錄快取失誤的次數 (也就是應用程式所要求的資料不在快取記憶體當中的情況),這些數據可用來偵測 Meltdown 和 Spectre 漏洞攻擊。
由於這兩個漏洞都是利用今日 CPU 在設計上會為了提高效率而預先載入並執行一些指令以免 CPU 陷入無事可做的狀態。
這篇文章的目的,是希望系統管理和資安人員除了妥善訂定修補政策之外,還有另一種防範之道,尤其是那些因可能影響穩定性或效能而無法套用修補更新的系統。
請注意,MeltdownPrime 和 SpectrePrime 也可以利用偵測快取旁道攻擊 (cache-side channel attack) 的方式來加以偵測。儘管參數有些不同,但此方法可偵測 Flush + Reload 以及 Prime 和 Probe 方式的攻擊。只是,此方法雖已在 Linux 系統實驗成功,但尚未在 Mac 系統上測試過。
Spectre SGX (SgxPectre) 的目的是用來洩漏記憶體安全區域 (secure enclave) 內的資料。根據 Intel 的 SGX 程式設計手冊的說法,效能計數器在 SGX 安全區域內可能會被停用。不過,由於快取時間差攻擊是在 SGX 安全區域之外的非信任程式碼中執行,因此效能計數器仍會有關於快取命中 (Hit) 和失誤 (Miss) 的數據,所以應該還是有辦法偵測。關於這點,我們並未完整測試,因此無法百分之百確認。至於參數 (也就是取樣率、門檻等等) 則應視環境而有所差異。
Meltdown 和 Spectre 如何利用處理器預測執行的特性?
Meltdown 漏洞是利用 CPU 在預測執行時會無視權限規定,將原本沒有權限存取的記憶體資料載入快取當中,使得歹徒能夠利用快取旁道攻擊的方式取得這些資料。接著 CPU 才會發現使用者沒有適當權限,進而將運算結果拋棄。但此時已經載入的資料還是會留在末階快取 (Last-Level Cache,簡稱 LLC) 當中,所以才會讓駭客有機會取得這些資料。 繼續閱讀