31個硬件/固件漏洞威脅指南
時間:2019-08-08
熔斷 (Meltdown) 和幽靈 (Spectre) 漏洞拉響了流行硬件及固件可利用漏洞的警報。本文即對其中代表重大威脅的那些做個盤點。
2018 年 1 月,名為熔斷和幽靈的兩個新型處理器漏洞令整個計算機行業(yè)嚴陣以待——這兩個漏洞可使攻擊者跨越操作系統(tǒng)隔離內(nèi)核和用戶空間內(nèi)存的基本安全防線?,F(xiàn)代 CPU 用以提升性能的預測執(zhí)行功能是這兩個漏洞誕生的溫床,漏洞緩解需要計算機史上最大型的協(xié)同修復工作,需 CPU 制造商、設備制造商和操作系統(tǒng)供應商通力合作。
幽靈和熔斷漏洞顯然不是硬件設計決策導致的第一批漏洞,但其廣泛影響點燃了安全研究界探索此類漏洞的興趣。自此,學術界和私營產(chǎn)業(yè)界的很多研究人員開始研究 CPU 及其他硬件的底層操作,不斷發(fā)現(xiàn)越來越多的問題。
有些硬件漏洞不發(fā)布新一代組件就無法完全緩解,有些則可在身為硬件芯片底層編程部件的固件中加以修復。無論哪種情況,修復都沒那么簡單,所以此類漏洞可在很長時間里持續(xù)影響現(xiàn)實世界中眾多設備。
熔斷漏洞出現(xiàn)之前和之后,安全人員都發(fā)現(xiàn)了一些硬件相關漏洞。下面我們就來盤點一下這些應引起注意的硬件漏洞:
CPU 邊信道攻擊
幽靈變種 1 - CVE-2017-5753
CVE-2017-5753 又名邊界檢查繞過漏洞,可供攻擊者利用現(xiàn)代 CPU 的分支預測功能,以 CPU 高速緩存為邊信道,從其他進程的內(nèi)存中抽取信息。利用該漏洞,進程可從另一進程的內(nèi)存中抽取敏感信息,還能繞過用戶/內(nèi)核內(nèi)存權限界限。英特爾、IBM 和一些 ARM CPU 均受此漏洞影響。
幽靈變種 2 - CVE-2017-5715
幽靈變種 2 與變種 1 效果類似,但采用了不用的漏洞利用技術——分支目標注入。更新受影響 CPU 微代碼可有效緩解該幽靈漏洞變種,通過 BIOS/UEFI 更新或在每次重啟時由操作系統(tǒng)更新均可。
熔斷變種 3 - CVE-2017-5754
亦稱流氓數(shù)據(jù)緩存加載 (RDCL) 或 CPU 預測執(zhí)行漏洞變種 3,利用的是現(xiàn)代英特爾 CPU 的亂序執(zhí)行功能。該漏洞可使用戶進程跨越安全邊界讀取受保護的內(nèi)核內(nèi)存。只需操作系統(tǒng)更新和實現(xiàn)更嚴格的內(nèi)核內(nèi)存隔離即可修復此漏洞。內(nèi)核內(nèi)存中通常存有敏感秘密,嚴格隔離可通過 Linux 內(nèi)核頁表隔離 (KPTI) 等機制實現(xiàn)。
熔斷-GP - CVE-2018-3640
屬于熔斷漏洞變種,亦稱變種 3a,利用系統(tǒng)寄存器預測讀取功能實現(xiàn)信息邊信道泄露。因此,該漏洞變種還有個名字叫流氓系統(tǒng)寄存器讀 (RSRE)。緩解該漏洞需進行微代碼更新。
熔斷-NM - CVE-2018-3665
與熔斷漏洞相關的預測執(zhí)行漏洞,又名 LazyFP,可用于泄露浮點運算單元 (FPU) 狀態(tài)。FPU 是英特爾現(xiàn)代 CPU 中的專用數(shù)學協(xié)處理器,用于加速浮點數(shù)算術運算的。FPU 狀態(tài)可能含有密碼運算敏感信息。在操作系統(tǒng)層級將 FPU 上下文切換模式由“lazy”改為“eager”即可緩解該漏洞。
幽靈-NG - CVE-2018-3639
亦稱幽靈變種 4 或預測存儲繞過 (SSB),可在確知上一內(nèi)存寫地址之前執(zhí)行內(nèi)存讀操作,用于跨進程信息泄露。需更新微代碼及操作系統(tǒng)方可緩解。
幽靈-PHT - CVE-2018-3693
也稱幽靈 1.1,使利用預測存儲引發(fā)預測緩沖區(qū)溢出的幽靈漏洞變種。能繞過之前某些基于軟件的幽靈漏洞緩解措施,修復該漏洞需更新操作系統(tǒng)。
熔斷-RW
亦稱幽靈 1.2,是利用預測存儲覆蓋只讀數(shù)據(jù)及代碼指針的變種。該變種與幽靈 1.1 相關,可用于突破軟件沙箱。緩解該漏洞需更新操作系統(tǒng)。
預兆 (Foreshadow) -OS - CVE-2018-3620
又名一級緩存終端故障 (L1 Terminal Fault),是針對英特爾 CPU 的預測執(zhí)行攻擊,可從處理器一級數(shù)據(jù)緩存 (L1) 中抽取信息。虛擬機通常將同一塊實體 CPU 分割成多塊虛擬 CPU,因為這些虛擬 CPU 共享同一塊 L1 高速緩存,該漏洞的影響尤為敏感。攻擊者可利用該漏洞從操作系統(tǒng)或系統(tǒng)管理模式 (SMM) 抽取信息。SMM 是 CPU 獨立于操作系統(tǒng)的一種可選運行模式,旨在為 BIOS/UEFI 或低級原始設備制造商 (OEM) 代碼所用。
預兆-VMM - CVE-2018-3646
影響虛擬機的預兆漏洞變種,可使虛擬機內(nèi)運行的客戶操作系統(tǒng)讀取其他客戶虛擬機或虛擬機管理器自身的敏感內(nèi)存。
預兆-SGX - CVE-2018-3615
預兆漏洞變種,可使攻擊者讀取英特爾軟件保護擴展 (SGX) 飛地內(nèi)存。SGX 英特爾某些型號 CPU 提供的可信執(zhí)行環(huán)境,可供開發(fā)者安全存儲數(shù)據(jù)和執(zhí)行代碼,即便操作系統(tǒng)自身被黑都不影響其安全性。
熔斷-PK 和 熔斷-BND
2018 年 11 月, 一支學術研究團隊在評估瞬時執(zhí)行攻擊時,發(fā)現(xiàn)了 熔斷-PK(保護密鑰繞過:Protection Key Bypass)和 熔斷-BND(邊界檢查繞過:Bounds Check Bypass),均為熔斷漏洞變種。熔斷-PK 影響英特爾 CPU,熔斷-BND 影響英特爾和 AMD。
幽靈-PHT-CA-OP、幽靈-PHT-CA-IP 和 幽靈-PHT-SA-OP
這三個漏洞是利用 CPU 模式歷史表 (PHT) 的幽靈漏洞變種。由發(fā)現(xiàn) 熔斷-PK 和 熔斷-BND 的同一支團隊在同一時間披露。
幽靈-BTB-SA-IP 和 幽靈-BTB-SA-OP
利用分支目標緩沖區(qū) (BTB) 的幽靈攻擊變種。同樣是 2018 年 11 月由發(fā)現(xiàn) 熔斷-PK 和 熔斷-BND 的同一支團隊披露。該團隊當時下結(jié)論稱:“大多數(shù)防御措施,包括已部署的那些,都無法完全緩解所有攻擊變種。”
輻射 (Fallout) - CVE-2018-12126
亦稱微架構(gòu)存儲緩沖區(qū)數(shù)據(jù)采樣 (MSBDS),與熔斷效果類似,都可用于跨越安全邊界從受保護內(nèi)存區(qū)域泄露敏感秘密。屬于新型 CPU 邊信道攻擊,也就是英特爾所謂微架構(gòu)數(shù)據(jù)采樣 (MDS) 攻擊的一部分。該漏洞影響操作系統(tǒng)和虛擬機管理器,緩解需更新 CPU 微代碼更新。
RIDL - CVE-2018-12127 和 CVE-2018-12130
另外兩個 MDS 攻擊變種,分別得名微架構(gòu)加載端口數(shù)據(jù)采樣 (MLPDS) 和微架構(gòu)填充緩沖區(qū)數(shù)據(jù)采樣 (MFBDS)。與輻射類似,緩解也需更新 CPU 微代碼。
僵尸負載 (Zombieload) - CVE-2019-11091
MDS 攻擊第四個變種,亦稱微架構(gòu)數(shù)據(jù)采樣不可緩存內(nèi)存 (MDSUM)。類似輻射與RIDL,該漏洞可用于泄露內(nèi)核或虛擬機管理器敏感內(nèi)存。
DRAM內(nèi)存行錘擊 (Rowhammer) 攻擊
行錘擊 (Rowhammer)
行錘擊是一種具安全影響的物理效應:SDRAM 芯片中,同一行內(nèi)存存儲單元在短時間內(nèi)被連續(xù)讀取很多次時(這種行為名為“錘擊 (hammering) ”),該行內(nèi)存單元中的電荷會泄露到相鄰的行,改變這些相鄰行中存儲單元的值。這種現(xiàn)象被稱為比特位翻轉(zhuǎn),可能是因為現(xiàn)代 SDRAM 芯片存儲單元密度增加造成的,尤其是 DDR3 和 DDR4。
盡管行錘擊效應早已為人所知,谷歌零日計劃 (Project Zero) 團隊成員仍是首先證明該效應具有安全影響的安全人員。他們在 2015 年 3 月 披露了基于該效應的兩個提權漏洞利用程序。
Rowhammer.js
Rowhammer.js 是通過 JavaScript 執(zhí)行的行錘擊攻擊,證明該漏洞可通過瀏覽器遠程利用,受害者只需訪問惡意網(wǎng)頁即中招。瀏覽器供應商已添加了針對該漏洞利用的緩解措施。
Drammer - CVE-2016-6728
Drammer 是 2016 年披露的行錘擊型漏洞利用,針對安卓設備。Drammer 披露之前,所有人都認為移動設備內(nèi)存芯片是不受行錘擊攻擊影響的。
風水翻轉(zhuǎn) (Flip Feng Shui)
風水翻轉(zhuǎn)是針對虛擬機的行錘擊攻擊。惡意客戶虛擬機可翻轉(zhuǎn)物理內(nèi)存中的比特位,以受控方式影響另一臺虛擬機。研究人員通過破解目標虛擬機上 OpenSSH 公鑰身份驗證演示了該漏洞利用攻擊方法。
ECCploit
ECCploit 證明了行錘擊類攻擊甚至對擁有錯誤檢查與糾正 (ECC) 功能的 SDRAM 芯片也有效。帶 ECC 功能的內(nèi)存通常用在服務器中,一直以來都被認為是對行錘擊攻擊免疫的。
Throwhammer
可經(jīng)由網(wǎng)絡遠程利用的行錘擊類攻擊,服務器所用快速網(wǎng)卡提供的遠程直接內(nèi)存訪問 (RDMA) 功能是該攻擊的利用點。
RAMBleed
RAMBleed 率先證明了可利用行錘擊效應盜取內(nèi)存單元中的數(shù)據(jù),而不僅僅是修改之。之前的行錘擊攻擊通過比特位翻轉(zhuǎn)破壞內(nèi)存完整性,觸發(fā)提權和其他攻擊條件。同時,RAMBleed 還利用行錘擊和邊信道推斷相鄰內(nèi)存單元信息,并最終從中抽取數(shù)據(jù)。從這個角度上看,該攻擊的效果類似熔斷和幽靈。
影響廣泛的固件漏洞
BlueBorne
2017 年曝出的一組藍牙漏洞,影響 Linux、安卓、Windows 和 macOS 藍牙技術棧實現(xiàn)。據(jù)估計約有超過 50 億臺設備受此漏洞影響。計算機上的漏洞可以通過操作系統(tǒng)更新加以修復,緩解操作相對簡單;但啟用藍牙的智能手表、電視、醫(yī)療設備、車載資訊娛樂系統(tǒng)、可穿戴設備及其他物聯(lián)網(wǎng)設備就需要固件更新才能修復此漏洞了。研究人員估計,在漏洞曝光一年之后的 2018 年里,仍有超過 20 億臺設備仍未修復。
KRACK
KRACK 又稱密鑰重裝攻擊 (Key Reinstallation Attack),于 2016 年披露,利用的是保護當今無線網(wǎng)絡的 WPA2 無線安全標準缺陷。由于缺陷存在于標準本身,家用路由器及其他物聯(lián)網(wǎng)設備的 WPA2 實現(xiàn)均受影響。修復該漏洞需更新固件,因此很多缺乏固件更新支持的設備至今仍面臨被利用風險。
BadUSB
2014 年演示的攻擊,可重編程 U 盤微控制器,假冒鍵盤等其他類型的設備,控制計算機或滲漏數(shù)據(jù)。時至今日,很多 U 盤仍舊受影響。
雷擊 (Thunderstrike) 和 雷擊 2
利用蘋果 Macbook 固件漏洞的兩個攻擊,可在惡意設備接入雷電 (Thunderbolt) 接口時安裝固件 rootkit。[雷擊 2 ](https://trmm.net/Thunderstrike2_details)還能感染新插入的雷電設備,形成類似蠕蟲的自傳播效應。
雷聲 (Thunderclap)
今年披露的又一個雷電接口攻擊,可在裝有雷電接口的計算機上執(zhí)行特權代碼。
銅匠的回擊 (ROCA)
銅匠的回擊 (ROCA) 針對英飛凌技術公司生產(chǎn)的可信平臺模塊 (TPM) 和安全元素 (SE)。幾千萬臺商用計算機、服務器、硬件身份驗證令牌和各種類型的智能卡都在用 TPM 和 SE,連居民身份證都在用。利用該漏洞,攻擊者就能更容易地因式分解這些部件生成的 RSA 密鑰,恢復出用戶所用密鑰。研究人員評估,恢復此類設備產(chǎn)生的單個 2048 位 RSA 密鑰大概要花費 2 萬美元,1024 位 RSA 密鑰僅需 40 美元。
英特爾管理引擎
英特爾管理引擎 (ME) 是很多英特爾 CPU 中的專用協(xié)處理器及子系統(tǒng),用于帶外管理任務。英特爾 ME 自身輕量級操作系統(tǒng)完全獨立于用戶操作系統(tǒng),所以常被安全界人士認為是個后門。多年來英特爾 ME 嚴重漏洞曝光不斷,且修復漏洞需安裝計算機制造商發(fā)布的固件更新。也就是說,很多已超出支持期限的老舊系統(tǒng)是接收不到此類更新的。
來源:安全牛