熔断 (Meltdown) 和幽灵 (Spectre) 漏洞拉响了流行硬件及固件可利用漏洞的警报。本文即对其中代表重大威胁的那些做个盘点。
2018 年 1 月,名为熔断和幽灵的两个新型处理器漏洞令整个计算机行业严阵以待——这两个漏洞可使攻击者跨越操作系统隔离内核和用户空间内存的基本安全防线。现代 CPU 用以提升性能的预测执行功能是这两个漏洞诞生的温床,漏洞缓解需要计算机史上最大型的协同修复工作,需 CPU 制造商、设备制造商和操作系统供应商通力合作。
幽灵和熔断漏洞显然不是硬件设计决策导致的第一批漏洞,但其广泛影响点燃了安全研究界探索此类漏洞的兴趣。自此,学术界和私营产业界的很多研究人员开始研究 CPU 及其他硬件的底层操作,不断发现越来越多的问题。
有些硬件漏洞不发布新一代组件就无法完全缓解,有些则可在身为硬件芯片底层编程部件的固件中加以修复。无论哪种情况,修复都没那么简单,所以此类漏洞可在很长时间里持续影响现实世界中众多设备。
熔断漏洞出现之前和之后,安全人员都发现了一些硬件相关漏洞。下面我们就来盘点一下这些应引起注意的硬件漏洞:
CPU 边信道攻击
幽灵变种 1 – CVE-2017-5753
CVE-2017-5753 又名边界检查绕过漏洞,可供攻击者利用现代 CPU 的分支预测功能,以 CPU 高速缓存为边信道,从其他进程的内存中抽取信息。利用该漏洞,进程可从另一进程的内存中抽取敏感信息,还能绕过用户/内核内存权限界限。英特尔、IBM 和一些 ARM CPU 均受此漏洞影响。
幽灵变种 2 – CVE-2017-5715
幽灵变种 2 与变种 1 效果类似,但采用了不用的漏洞利用技术——分支目标注入。更新受影响 CPU 微代码可有效缓解该幽灵漏洞变种,通过 BIOS/UEFI 更新或在每次重启时由操作系统更新均可。
熔断变种 3 – CVE-2017-5754
亦称流氓数据缓存加载 (RDCL) 或 CPU 预测执行漏洞变种 3,利用的是现代英特尔 CPU 的乱序执行功能。该漏洞可使用户进程跨越安全边界读取受保护的内核内存。只需操作系统更新和实现更严格的内核内存隔离即可修复此漏洞。内核内存中通常存有敏感秘密,严格隔离可通过 Linux 内核页表隔离 (KPTI) 等机制实现。
熔断-GP – CVE-2018-3640
属于熔断漏洞变种,亦称变种 3a,利用系统寄存器预测读取功能实现信息边信道泄露。因此,该漏洞变种还有个名字叫流氓系统寄存器读 (RSRE)。缓解该漏洞需进行微代码更新。
熔断-NM – CVE-2018-3665
与熔断漏洞相关的预测执行漏洞,又名 LazyFP,可用于泄露浮点运算单元 (FPU) 状态。FPU 是英特尔现代 CPU 中的专用数学协处理器,用于加速浮点数算术运算的。FPU 状态可能含有密码运算敏感信息。在操作系统层级将 FPU 上下文切换模式由“lazy”改为“eager”即可缓解该漏洞。
幽灵-NG – CVE-2018-3639
亦称幽灵变种 4 或预测存储绕过 (SSB),可在确知上一内存写地址之前执行内存读操作,用于跨进程信息泄露。需更新微代码及操作系统方可缓解。
幽灵-PHT – CVE-2018-3693
也称幽灵 1.1,使利用预测存储引发预测缓冲区溢出的幽灵漏洞变种。能绕过之前某些基于软件的幽灵漏洞缓解措施,修复该漏洞需更新操作系统。
熔断-RW
亦称幽灵 1.2,是利用预测存储覆盖只读数据及代码指针的变种。该变种与幽灵 1.1 相关,可用于突破软件沙箱。缓解该漏洞需更新操作系统。
预兆 (Foreshadow) -OS – CVE-2018-3620
又名一级缓存终端故障 (L1 Terminal Fault),是针对英特尔 CPU 的预测执行攻击,可从处理器一级数据缓存 (L1) 中抽取信息。虚拟机通常将同一块实体 CPU 分割成多块虚拟 CPU,因为这些虚拟 CPU 共享同一块 L1 高速缓存,该漏洞的影响尤为敏感。攻击者可利用该漏洞从操作系统或系统管理模式 (SMM) 抽取信息。SMM 是 CPU 独立于操作系统的一种可选运行模式,旨在为 BIOS/UEFI 或低级原始设备制造商 (OEM) 代码所用。
预兆-VMM – CVE-2018-3646
影响虚拟机的预兆漏洞变种,可使虚拟机内运行的客户操作系统读取其他客户虚拟机或虚拟机管理器自身的敏感内存。
预兆-SGX – CVE-2018-3615
预兆漏洞变种,可使攻击者读取英特尔软件保护扩展 (SGX) 飞地内存。SGX 英特尔某些型号 CPU 提供的可信执行环境,可供开发者安全存储数据和执行代码,即便操作系统自身被黑都不影响其安全性。
熔断-PK 和 熔断-BND
2018 年 11 月, 一支学术研究团队在评估瞬时执行攻击时,发现了 熔断-PK(保护密钥绕过:Protection Key Bypass)和 熔断-BND(边界检查绕过:Bounds Check Bypass),均为熔断漏洞变种。熔断-PK 影响英特尔 CPU,熔断-BND 影响英特尔和 AMD。
幽灵-PHT-CA-OP、幽灵-PHT-CA-IP 和 幽灵-PHT-SA-OP
这三个漏洞是利用 CPU 模式历史表 (PHT) 的幽灵漏洞变种。由发现 熔断-PK 和 熔断-BND 的同一支团队在同一时间披露。
幽灵-BTB-SA-IP 和 幽灵-BTB-SA-OP
利用分支目标缓冲区 (BTB) 的幽灵攻击变种。同样是 2018 年 11 月由发现 熔断-PK 和 熔断-BND 的同一支团队披露。该团队当时下结论称:“大多数防御措施,包括已部署的那些,都无法完全缓解所有攻击变种。”
辐射 (Fallout) – CVE-2018-12126
亦称微架构存储缓冲区数据采样 (MSBDS),与熔断效果类似,都可用于跨越安全边界从受保护内存区域泄露敏感秘密。属于新型 CPU 边信道攻击,也就是英特尔所谓微架构数据采样 (MDS) 攻击的一部分。该漏洞影响操作系统和虚拟机管理器,缓解需更新 CPU 微代码更新。
RIDL – CVE-2018-12127 和 CVE-2018-12130
另外两个 MDS 攻击变种,分别得名微架构加载端口数据采样 (MLPDS) 和微架构填充缓冲区数据采样 (MFBDS)。与辐射类似,缓解也需更新 CPU 微代码。
僵尸负载 (Zombieload) – CVE-2019-11091
MDS 攻击第四个变种,亦称微架构数据采样不可缓存内存 (MDSUM)。类似辐射与RIDL,该漏洞可用于泄露内核或虚拟机管理器敏感内存。
DRAM内存行锤击 (Rowhammer) 攻击
行锤击 (Rowhammer)
行锤击是一种具安全影响的物理效应:SDRAM 芯片中,同一行内存存储单元在短时间内被连续读取很多次时(这种行为名为“锤击 (hammering) ”),该行内存单元中的电荷会泄露到相邻的行,改变这些相邻行中存储单元的值。这种现象被称为比特位翻转,可能是因为现代 SDRAM 芯片存储单元密度增加造成的,尤其是 DDR3 和 DDR4。
尽管行锤击效应早已为人所知,谷歌零日计划 (Project Zero) 团队成员仍是首先证明该效应具有安全影响的安全人员。他们在 2015 年 3 月 披露了基于该效应的两个提权漏洞利用程序。
Rowhammer.js
Rowhammer.js 是通过 JavaScript 执行的行锤击攻击,证明该漏洞可通过浏览器远程利用,受害者只需访问恶意网页即中招。浏览器供应商已添加了针对该漏洞利用的缓解措施。
Drammer – CVE-2016-6728
Drammer 是 2016 年披露的行锤击型漏洞利用,针对安卓设备。Drammer 披露之前,所有人都认为移动设备内存芯片是不受行锤击攻击影响的。
风水翻转 (Flip Feng Shui)
风水翻转是针对虚拟机的行锤击攻击。恶意客户虚拟机可翻转物理内存中的比特位,以受控方式影响另一台虚拟机。研究人员通过破解目标虚拟机上 OpenSSH 公钥身份验证演示了该漏洞利用攻击方法。
ECCploit
ECCploit 证明了行锤击类攻击甚至对拥有错误检查与纠正 (ECC) 功能的 SDRAM 芯片也有效。带 ECC 功能的内存通常用在服务器中,一直以来都被认为是对行锤击攻击免疫的。
Throwhammer
可经由网络远程利用的行锤击类攻击,服务器所用快速网卡提供的远程直接内存访问 (RDMA) 功能是该攻击的利用点。
RAMBleed
RAMBleed 率先证明了可利用行锤击效应盗取内存单元中的数据,而不仅仅是修改之。之前的行锤击攻击通过比特位翻转破坏内存完整性,触发提权和其他攻击条件。同时,RAMBleed 还利用行锤击和边信道推断相邻内存单元信息,并最终从中抽取数据。从这个角度上看,该攻击的效果类似熔断和幽灵。
影响广泛的固件漏洞
BlueBorne
2017 年曝出的一组蓝牙漏洞,影响 Linux、安卓、Windows 和 macOS 蓝牙技术栈实现。据估计约有超过 50 亿台设备受此漏洞影响。计算机上的漏洞可以通过操作系统更新加以修复,缓解操作相对简单;但启用蓝牙的智能手表、电视、医疗设备、车载资讯娱乐系统、可穿戴设备及其他物联网设备就需要固件更新才能修复此漏洞了。研究人员估计,在漏洞曝光一年之后的 2018 年里,仍有超过 20 亿台设备仍未修复。
KRACK
KRACK 又称密钥重装攻击 (Key Reinstallation Attack),于 2016 年披露,利用的是保护当今无线网络的 WPA2 无线安全标准缺陷。由于缺陷存在于标准本身,家用路由器及其他物联网设备的 WPA2 实现均受影响。修复该漏洞需更新固件,因此很多缺乏固件更新支持的设备至今仍面临被利用风险。
BadUSB
2014 年演示的攻击,可重编程 U 盘微控制器,假冒键盘等其他类型的设备,控制计算机或渗漏数据。时至今日,很多 U 盘仍旧受影响。
雷击 (Thunderstrike) 和 雷击 2
利用苹果 Macbook 固件漏洞的两个攻击,可在恶意设备接入雷电 (Thunderbolt) 接口时安装固件 rootkit。[雷击 2 ](https://trmm.net/Thunderstrike2_details)还能感染新插入的雷电设备,形成类似蠕虫的自传播效应。
雷声 (Thunderclap)
今年披露的又一个雷电接口攻击,可在装有雷电接口的计算机上执行特权代码。
铜匠的回击 (ROCA)
铜匠的回击 (ROCA) 针对英飞凌技术公司生产的可信平台模块 (TPM) 和安全元素 (SE)。几千万台商用计算机、服务器、硬件身份验证令牌和各种类型的智能卡都在用 TPM 和 SE,连居民身份证都在用。利用该漏洞,攻击者就能更容易地因式分解这些部件生成的 RSA 密钥,恢复出用户所用密钥。研究人员评估,恢复此类设备产生的单个 2048 位 RSA 密钥大概要花费 2 万美元,1024 位 RSA 密钥仅需 40 美元。
英特尔管理引擎
英特尔管理引擎 (ME) 是很多英特尔 CPU 中的专用协处理器及子系统,用于带外管理任务。英特尔 ME 自身轻量级操作系统完全独立于用户操作系统,所以常被安全界人士认为是个后门。多年来英特尔 ME 严重漏洞曝光不断,且修复漏洞需安装计算机制造商发布的固件更新。也就是说,很多已超出支持期限的老旧系统是接收不到此类更新的。