近日,研究人員發現一種名為Platypus的新的攻擊活動,可以對Intel 處理器的RAPL接口進行攻擊。RAPL 表示運行平均功率限制(Running Average Power Limit)是一個允許固件或軟件應用監控CPU和DRAM 電量消耗的組件。RAPL 可以使固件和軟件APP 讀取CPU 執行任務所消耗的電量,被廣泛應用于追蹤和調試應用和硬件性能。
通過Intel RAPL 竊取加密密鑰
研究人員分析發現Platypus 攻擊可以通過 RAPL 接口的值來確定CPU 內處理的數據。使用PLATYPUS 研究人員證明了電量消耗的細微變化可以用來區分不同的指令和不同的內存加載等,以實現對加載值的干擾。
這些加載的值就是CPU 中加載的數據。這些數據可能是加密密鑰、口令、敏感文件或其他類型的數據。
訪問的這類數據一般是由KASLR (kernel地址空間布局隨機化,kernel address space layout randomization) 或TEE(硬件隔離的可信執行環境,hardware-isolated trusted execution environments)來保護的,比如Intel SGX。
但研究人員發現Platypus攻擊可以查看電量消耗值的變化來繞過這些安全機制。在測試中,研究人員在20秒內就通過查看RAPL 電量消耗值繞過了KASLR,并成功從Linux kernel中提取了數據。在另一個測試中,研究人員也成功從Intel SGX secure enclave中提取了數據。
要利用Platypus 攻擊從SGX enclave竊取RSA 私鑰,攻擊者需要監控RAPL 數據約100分鐘,而從SGX enclave的Linux kernel內存空間提取AES-NI 加密密鑰需要26個小時。
LINUX 系統更不安全
研究人員稱,Platypus 攻擊在Linux 系統上的效果最好。這是因為Linux kernel中有一個powercap 框架,該框架是與RAPL 接口和其他電控制 API的通用驅動,實現電量消耗值的輕松讀取。
對Windows和macOS 的攻擊也是可能的,但是這種情況下, Intel Power Gadget app必須安裝在被攻擊的設備上,攻擊者利用該app實現了與RAPL 接口的交互。
首次此類攻擊
其他團隊也發現可以通過連接示波器到CPU 來獲取CPU 電量讀數,Platypus 攻擊可以遠程實現。比如,攻擊者的代碼可以打包到安裝在目標設備上的惡意app中。這樣攻擊者就可以在無需物理訪問被攻擊系統的情況下發起攻擊。
補丁
研究人員稱Platypus 可以攻擊Intel 服務器、臺式機和筆記本CPU。Intel 也確認了一些移動和嵌入式CPU 也受到影響。Intel 也于11月10日發布了微代碼更新來攔截Platypus 攻擊。Linux kernel也發布了更新將對RAPL 接口的訪問只限于有更高權限的app。
該漏洞共獲得3個CVE編號,分別是CVE-2020-8694 (Linux+Intel), CVE-2020-8695 (Intel)和 CVE-2020-12912 (Linux+AMD)。
Intel 稱目前沒有發現關于該漏洞的在野利用。受Platypus攻擊影響的CPU 大多數是最近的型號,Intel和其他設備廠商都仍在支持,因此近期應該會再次發布相關的補丁。
部分受影響的CPU列表參見:https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00389.html
除了Intel 外,研究人員發現AMD 也受到該攻擊的影響。AMD也發布了Linux 驅動的更新。
更多關于Platypus攻擊的細節參見:https://platypusattack.com/
Platypus攻擊的學術文章下載地址:https://platypusattack.com/platypus.pdf
本文翻譯自:https://www.zdnet.com/article/new-platypus-attack-can-steal-data-from-intel-cpus/如若轉載,請注明原文地址。