文章总结: 本文系统梳理了处理器安全研究的基础知识,重点对比x86、ARM、RISC-V等主流指令集架构的安全特性,并详细分析高通、苹果、英特尔等商用处理器的微架构设计与安全机制。文档指出开源RISC-V架构在安全审计方面的优势,同时揭示各平台存在的侧信道漏洞、可信执行环境差异等关键风险,为安全研究人员提供架构级攻防视角的实用参考。 综合评分: 87 文章分类: 二进制安全,处理器安全,IoT安全,云安全,移动安全
面向网络空间安全方向的处理器安全入门指南
原创
喜吾安璇 喜吾安璇
攻防SRC
2026年3月23日 17:48 陕西
在小说阅读器读本章
去阅读
面向网络空间安全方向的处理器安全入门指南 聚焦开源处理器(RISC-V)安全研究
一、处理器指令集架构概览
1.1 什么是指令集架构(ISA)
指令集架构(Instruction Set Architecture,ISA) 是处理器硬件与软件之间的接口规范,定义了:
- 处理器可执行的指令及其编码格式
- 寄存器的数量、类型与宽度
- 内存访问模型(字节序、对齐要求)
- 特权级别(异常/中断处理模型)
- 地址空间布局
ISA 是处理器安全研究的基础——理解 ISA 才能理解攻击者如何利用架构特性进行攻击。
1.2 主流 ISA 分类
x86 / x86-64(AMD64)
-
起源:Intel 1978年(8086),AMD 2000年扩展至64位
-
架构类型:CISC(复杂指令集计算)
-
特点:
-
变长指令(1~15字节)
-
寄存器数量少(通用寄存器仅16个)
-
向后兼容性强(从16位代码到64位应用)
-
大量微操作(μop)在内部将 CISC 指令分解为 RISC 风格操作
-
高度乱序执行、深度流水线、激进分支预测
-
安全含义:复杂的微架构是 Spectre/Meltdown 等漏洞的温床
ARM(AArch32 / AArch64)
-
起源:Acorn Computers 1983年
-
架构类型:RISC(精简指令集计算)
-
特点:
-
固定长度32位指令(AArch32),AArch64同样为32位指令
-
Thumb / Thumb-2 压缩指令集(16/32位混合)
-
31个通用整数寄存器(x0-x30);x31 在不同指令上下文中为 XZR(零寄存器)或 SP(栈指针)
-
TrustZone 安全扩展(EL0~EL3特权级)
-
广泛应用于移动设备、嵌入式系统
-
安全含义:TrustZone 是研究热点,Spectre 变体同样影响 ARM
RISC-V
-
起源:UC Berkeley 2010年(Krste Asanović 团队)
-
架构类型:RISC,开放标准
-
特点:
-
模块化设计,基础指令集 + 可选扩展
-
完全开放、无需授权
-
简洁的特权架构(M/S/U 三级)
-
支持从嵌入式到服务器的全场景
-
安全含义:开源性使安全研究者能深入硬件层面研究
MIPS
- 起源:Stanford / MIPS Computer Systems 1981年
- 架构类型:RISC
- 应用:路由器、网络设备、部分嵌入式设备
- 现状:市场份额持续下降,Wave Computing 已将其开源
LoongArch
- 起源:龙芯中科 2021年
- 架构类型:RISC(自研,借鉴 MIPS/RISC-V 思想)
- 应用:国产自主可控领域
SPARC / PowerPC
- SPARC:Sun Microsystems(现 Oracle),服务器领域
- PowerPC:IBM/Apple/Motorola 联合开发,现主要用于嵌入式(汽车、工控)
1.3 ISA 安全特性对比
| 特性 | x86-64 | AArch64 | RISC-V | | — | — | — | — | | 特权级数量 | Ring 0-3 + SMM | EL0-EL3 | U/S/M | | 内存保护 | 分段+分页 | MMU+分页 | PMP + 分页(可选) | | 可信执行 | SGX / TDX | TrustZone / CCA | 无标准(Keystone/PENGLAI等方案) | | 侧信道缓解 | IBRS/STIBP/SSBD | CSV2/SSBS | 无标准(尚在制定) | | 硬件随机数 | RDRAND | RNDR | Zkr 扩展 | | 内存标记 | 无 | MTE(v8.5+) | 无标准 | | 指令可见性 | 闭源微码 | 闭源 | 开源可审计 |
二、主流商用处理器方案
1. 高通 Qualcomm
指令集与架构
- CPU:基于 ARM AArch64(Armv8/v9),自研微架构(Kryo 系列)
- GPU:自研 Adreno GPU(最初来自 ATI 收购的 Imageon GPU 技术)
- DSP:自研 Hexagon DSP(VLIW 架构),拥有独立安全隔离域
- NPU:Hexagon Tensor Processor(AI 加速)
代表产品
| 系列 | 制程 | CPU 核心 | 主要特点 | | — | — | — | — | | Snapdragon 8 Gen 3 | 4nm TSMC | 1+5+2 Kryo | 旗舰移动 SoC | | Snapdragon X Elite | 4nm TSMC | 12x Oryon | PC 平台,基于收购的 Nuvia | | Snapdragon 888 | 5nm Samsung | Cortex-X1+A78+A55 | 过热问题严重 |
安全架构
- Qualcomm SPU(Security Processing Unit):独立安全处理器,存储生物特征、设备密钥
- QTEE(Qualcomm Trusted Execution Environment):基于 ARM TrustZone 实现
- Secure Boot:多级签名验证链
- Hexagon DSP:独立内存域,但历史上是严重漏洞的来源
2. 苹果 Apple
指令集与架构
-
ISA:ARM AArch64(Armv8.x / Armv9),完全自研微架构(Firestorm、Icestorm、Everest、Sawtooth 等)
-
Apple Silicon 特性:
-
统一内存架构(UMA):CPU/GPU/NPU 共享同一物理内存
-
超宽乱序执行窗口(前端 8 路解码,ROB 630+ 条目)
-
Data Memory-Dependent Prefetcher(DMP):GoFetch 漏洞来源
-
AMX(Apple Matrix eXtensions):矩阵计算加速
-
Secure Enclave(SEP):独立安全处理器
代表产品
| 芯片 | 发布年份 | CPU 核心 | 工艺 | | — | — | — | — | | M1 | 2020 | 4P+4E | TSMC 5nm | | M2 | 2022 | 4P+4E | TSMC 4nm | | M3 | 2023 | 4P+4E | TSMC 3nm | | M4 | 2024 | 4P+6E | TSMC 3nm | | A18 Pro | 2024 | 2P+4E | TSMC 3nm |
安全架构
- Secure Enclave Processor(SEP):独立 CPU + RAM + ROM,运行 sepOS,管理密钥、Face ID/Touch ID
- Memory Tagging Extension(MTE):部分型号支持
- Pointer Authentication Codes(PAC):防止控制流劫持(Armv8.3-A)
- 硬件加密加速器:AES、SHA,内置于 SoC
- Boot ROM:只读固件,不可更新(也不可修复)
3. 联发科 MediaTek
指令集与架构
- CPU:ARM 公版核心(Cortex-X/A 系列),无自研微架构(部分型号使用 ARM Cortex 直接授权)
- GPU:Mali(ARM 授权)或 Immortalis(Armv9 旗舰)
- DSP:自研 Audio DSP(APU)
- NPU:自研 APU(AI Processing Unit)
代表产品
| 系列 | 定位 | 制程 | | — | — | — | | Dimensity 9300 | 旗舰 | TSMC 4nm | | Dimensity 8300 | 中高端 | TSMC 4nm | | MT6739 | 入门 | 28nm | | Helio G99 | 游戏中端 | TSMC 6nm |
安全架构
- 基于 ARM TrustZone 实现 TEE
- MTEE(MediaTek Trusted Execution Environment):基于 Trusty OS 或 OP-TEE
- Boot ROM 保护、安全存储
4. 英特尔 Intel
指令集与架构
-
ISA:x86-64(Intel 64),兼容 32 位 x86
-
微架构演进(近代主线):
-
Skylake(2015)→ Kaby Lake → Coffee Lake → Ice Lake → Tiger Lake
-
Alder Lake(2021,大小核混合架构)→ Raptor Lake → Meteor Lake(2023,Tile 架构)
-
Arrow Lake(2024)→ Lunar Lake
-
自研扩展:
-
AVX-512(高性能向量计算)
-
AMX(矩阵运算加速)
-
TSX(事务内存,已在多代产品中禁用或移除)
安全架构
- Intel SGX(Software Guard Extensions):用户态可信执行环境,已在部分新平台上弃用
- Intel TDX(Trust Domain Extensions):虚拟机级别可信执行(数据中心)
- Intel VT-x:硬件虚拟化
- Control-flow Enforcement Technology(CET):Shadow Stack + IBT
- 微码更新(Microcode Update):软件可修复部分硬件漏洞(Meltdown、MDS 等)
5. AMD
指令集与架构
-
ISA:x86-64(AMD64,由 AMD 定义并推广)
-
微架构演进(Zen 系列):
-
Zen(2017)→ Zen+ → Zen 2(2019)→ Zen 3(2020)→ Zen 4(2022)→ Zen 5(2024)
-
Chiplet 架构:AMD 首创将 CPU 核心(CCD)与 IO Die 分离的 Chiplet 设计
-
GPU:RDNA 架构(GCN → RDNA 1/2/3/4)
安全架构
- AMD SEV(Secure Encrypted Virtualization):内存加密虚拟化,SEV / SEV-ES / SEV-SNP 三个级别
- PSP(Platform Security Processor):ARM Cortex-A5 安全核心,类似 Intel ME
- SME(Secure Memory Encryption):全内存透明加密
- 无 SGX 等同物:AMD 的安全策略以虚拟化隔离为主
6. 英伟达 NVIDIA
指令集与架构
-
CPU(Grace):ARM Neoverse V2,AArch64,面向数据中心(Grace Hopper Superchip)
-
GPU 计算架构:专有 SASS(Shader Assembly)指令集,对外不完全公开
-
Turing(2018)→ Ampere(2020)→ Hopper(2022)→ Ada Lovelace(2022)→ Blackwell(2024)
-
GPU 并行编程模型:CUDA PTX(Parallel Thread eXecution)—— 虚拟 ISA,编译器前端目标
安全架构
- Hopper 架构机密计算:H100 Confidential Computing,GPU TEE,内存加密
- MIG(Multi-Instance GPU):硬件级 GPU 分区隔离
- NVLink / NVSwitch:GPU 互联,新研究表明存在侧信道风险
7. 平头哥(T-Head)
平头哥半导体是阿里巴巴达摩院旗下的芯片部门,主要设计 RISC-V 处理器,是国内 RISC-V 商用最成熟的厂商之一。
指令集与架构
- ISA:RISC-V(RV64GCV,含向量扩展)
- 自定义扩展:T-Head 在标准 RISC-V 上添加了大量非标准扩展指令(如缓存操作指令),这些指令是 GhostWrite 漏洞的根源
- 主要核心:
| 核心 | 特点 | 应用 | | — | — | — | | XuanTie C906 | 中端,RV64GCV | D1 芯片(全志),哪吒开发板 | | XuanTie C910 | 高端,乱序执行,1.2GHz+ | 进阶应用,ThunderSoft SoC | | XuanTie C908 | C906 升级版 | 嵌入式 | | XuanTie C920 | 最新旗舰,RV64GCV | 数据中心 RISC-V | | XuanTie E902/E907 | 微控制器级别 | IoT |
生态系统
- 开源:所有 XuanTie IP 核已在 GitHub 开源(https://github.com/T-head-Semi)
- Alibaba Cloud 提供基于 C910 的云端 RISC-V 实例(免费体验)
- OpenAnole Linux 发行版专门针对 T-Head 平台
8. 海思 HiSilicon
华为旗下的芯片设计部门,由于美国制裁,目前新品研发受限。
指令集与架构
-
ISA:ARM AArch64(Armv8.x)
-
自研 CPU 核心:泰山(TaiShan)V110/V120,应用于鲲鹏服务器系列
-
移动端 SoC:麒麟(Kirin)系列
-
Kirin 970(2017):首款集成 NPU 的移动 SoC(ARM Cortex-A73/A53)
-
Kirin 980(2018):Cortex-A76(台积电7nm)
-
Kirin 990 5G(2019):集成 5G Balong 基带
-
Kirin 9000(2020):A77 核心,台积电5nm,Mate 40 Pro
-
Kirin 9000s(2023):自主研发(受制裁背景下的国产突破),华为 Mate 60 Pro
-
NPU:达芬奇架构(Da Vinci Architecture),自研神经网络处理器
安全架构
- 基于 ARM TrustZone,海思实现了自研 TEE OS(iTrustee)
- 麒麟芯片在 Hexacon 等安全会议上被深度逆向研究
三、RISC-V 深度解析
3.1 架构概述
RISC-V(发音 “RISC Five”)是由加州大学伯克利分校于2010年设计的开放指令集架构。其核心设计原则:
- 简洁性:基础整数指令集(RV32I/RV64I)仅有约40条指令
- 模块化:通过字母扩展代码组合功能(如
RV64IMAFDC) - 开放性:无专利限制,任何人可免费实现
- 稳定性:已冻结的基础规范保证永久向后兼容
规范文档:
- 非特权级规范:RISC-V ISA Spec Volume I
- 特权级规范:RISC-V ISA Spec Volume II
3.2 基础指令集
RV32I — 32位基础整数指令集
- 32个通用寄存器(
x0~x31,其中x0恒为0) - 32位地址空间
- 6种指令格式:R、I、S、B、U、J
指令编码位域布局(安全研究必知,用于分析未定义编码和指令注入):
31 25 24 20 19 15 14 12 11 7 6 0
┌─────────┬──────┬──────┬──────┬──────┬────────┐
│ funct7 │ rs2 │ rs1 │funct3│ rd │ opcode │ R-type
├─────────┴──────┴──────┼──────┼──────┼────────┤
│ imm[11:0] │funct3│ rd │ opcode │ I-type
├──────────────┬────────┼──────┼──────┼────────┤
│ imm[11:5] │ rs2 │ rs1 │funct3│imm[4:0]│ opcode │ S-type
├─────────────┴─────────┴──────┴──────┴────────┤
│ (B-type: imm 分散存储,最低位永远为0) │ B-type
├────────────────────────────┬──────┬──────── │
│ imm[31:12] │ rd │ opcode │ U-type
└────────────────────────────┴──────┴──────── ┘
opcode 字段(bits[6:0])低2位恒为 11,这是区分32位与16位(C扩展)指令的标志。
安全研究含义:
- 未定义 opcode/funct 组合在不同实现上行为不同,是差分测试(RISCVuzz)发现漏洞的核心手段
- T-Head 的自定义指令使用标准 opcode 空间的”自定义”区域(
custom-0/1/2/3,opcode=0001011/0101011/1011011/1111011),GhostWrite 的问题向量指令即通过这类机制加入
| 格式 | 含义 | 代表指令 |
| — | — | — |
| R-type | 寄存器-寄存器运算 | add , sub, and, or |
| I-type | 立即数运算/加载 | addi , lw, jalr |
| S-type | 存储 | sw , sb, sh |
| B-type | 分支 | beq , bne, blt |
| U-type | 大立即数 | lui , auipc |
| J-type | 无条件跳转 | jal |
RV64I — 64位基础整数指令集
在 RV32I 基础上增加:
- 64位寄存器宽度
- 新增
ld/sd(64位加载/存储) - 新增
addw/subw等32位字操作指令(保持低32位语义)
寄存器 ABI 命名约定
| 寄存器 | ABI 名 | 用途 | | — | — | — | | x0 | zero | 恒为0 | | x1 | ra | 返回地址 | | x2 | sp | 栈指针 | | x3 | gp | 全局指针 | | x4 | tp | 线程指针 | | x5-x7 | t0-t2 | 临时寄存器 | | x8-x9 | s0-s1 | 保存寄存器(跨调用保留) | | x10-x17 | a0-a7 | 函数参数/返回值 | | x18-x27 | s2-s11 | 保存寄存器 | | x28-x31 | t3-t6 | 临时寄存器 |
3.3 标准扩展
RISC-V 通过单字母代码标识扩展,常见组合 IMAFDCV 代表了完整的通用处理器:
| 扩展代码 | 全称 | 内容 |
| — | — | — |
| I | Integer | 基础整数(必须) |
| M | Multiply/Divide | 整数乘除法 |
| A | Atomic | 原子操作(lr.w, sc.w, amo*) |
| F | Float (Single) | 单精度浮点(32个 f 寄存器) |
| D | Double | 双精度浮点 |
| Q | Quad | 四精度浮点 |
| C | Compressed | 16位压缩指令(提升代码密度) |
| V | Vector | SIMD 向量运算(GhostWrite 漏洞涉及此扩展) |
| G | General | IMAFD 的简写 |
| B | Bit Manipulation | 位操作(zbkb/zbkc/zbkx 密码学子集) |
| H | Hypervisor | 虚拟化支持 |
| J | JIT | 动态翻译(草案) |
| N | User-level Interrupts | 用户态中断 |
| P | Packed-SIMD | 打包 SIMD |
| S | Supervisor | 监督者模式(特权架构) |
| T | Transactional Memory | 事务内存(草案) |
| Zicsr | CSR Instructions | 控制状态寄存器访问 |
| Zifencei | Instruction Fence | 指令缓存同步 |
| Zkr | Entropy Source | 硬件随机数(安全相关) |
| Smepmp | Enhanced PMP | 增强型物理内存保护 |
3.4 特权架构与安全机制
特权级别
RISC-V 定义三个特权级(从低到高):
┌─────────────────────────────────────────┐
│ U-mode(用户模式,权限最低) │ ← 应用程序
├─────────────────────────────────────────┤
│ S-mode(监督者模式) │ ← 操作系统内核
├─────────────────────────────────────────┤
│ M-mode(机器模式,权限最高) │ ← 固件/SBI/M模式OS
└─────────────────────────────────────────┘
嵌入式系统可以只实现 M-mode(无 OS 场景); 带 OS 的系统通常实现 M+S+U(Linux 运行在 S-mode); 带虚拟化的系统则在 S-mode 和 U-mode 之间添加 VS/VU(H 扩展)。
控制状态寄存器(CSR)
安全相关的核心 CSR:
| CSR | 特权级 | 功能 |
| — | — | — |
| mstatus | M | 全局中断使能、特权级设置 |
| medeleg / mideleg | M | 异常/中断委托到 S-mode |
| mepc | M | M-mode 异常返回地址 |
| mcause | M | 异常原因 |
| mtval | M | 异常附加信息(出错地址/指令) |
| pmpaddr0-15 | M | 物理内存保护地址寄存器 |
| pmpcfg0/2 (RV64)或 pmpcfg0-3(RV32) | M | PMP 配置寄存器(R/W/X/模式);RV64 仅偶数编号有效,每个 64 位寄存器存8个条目 |
| satp | S | 地址转换和保护(页表基地址 + ASID + 模式) |
| sepc | S | S-mode 异常返回地址 |
| stvec | S | S-mode 异常向量地址 |
物理内存保护(PMP)
PMP 是 RISC-V 的核心安全机制,由 M-mode 配置,限制低特权级(S/U)的内存访问范围:
pmpcfg 配置位:
┌────┬────┬────┬────┬──────┬──────┐
│ L │ -- │ -- │ A │ X │ W │ R │
└────┴────┴────┴────┴──────┴──────┘
Lock 模式 执行 写 读
- A 字段:
OFF(禁用)、TOR(区间上界)、NA4(4字节自然对齐)、NAPOT(2^n对齐区间) - L 字段(Lock):置1后 M-mode 自身也受此 PMP 项约束,且不可修改——这一特性是部分漏洞的研究对象
安全漏洞研究要点:PMP 是 RISC-V TEE(如 Keystone、PENGLAI)的核心隔离机制,PMP 的旁路或瞬态执行泄漏是研究热点。
虚拟内存(Sv32/Sv39/Sv48/Sv57)
| 模式 | 地址宽度 | 页大小 | 级数 | 适用场景 | | — | — | — | — | — | | Sv32 | 32位 | 4KB | 2 | RV32 + OS | | Sv39 | 39位(512GB) | 4KB | 3 | RV64 主流 Linux | | Sv48 | 48位(256TB) | 4KB | 4 | 大内存服务器 | | Sv57 | 57位(128PB) | 4KB | 5 | 未来 |
satp CSR 控制当前模式的页表基地址和 ASID(地址空间标识符),ASID 是防止 TLB flush 攻击的重要参数。
中断与异常处理(安全研究关键点)
RISC-V 的中断/异常机制是安全研究中的重要攻击面:
异常委托(Delegation)机制:
- 默认所有异常/中断由 M-mode 处理
medeleg/mideleg可将特定异常委托给 S-mode 处理- 安全含义:委托配置错误可导致权限绕过(低特权级可干预更高特权级的异常处理)
中断控制器:
- CLINT(Core Local INTerrupts):提供
msip(软件中断)、mtimecmp/mtime(计时器中断),地址映射 I/O - ACLINT(Advanced CLINT):CLINT 的标准化继任者,拆分为 MTIMER 和 MSWI 两个独立设备,支持更多 hart;规范:https://github.com/riscv/riscv-aclint
- PLIC(Platform-Level Interrupt Controller):管理外部中断优先级与分发
- APLIC(Advanced PLIC):AIA 框架下的新标准中断控制器,支持 MSI(消息信号中断)和虚拟化
- 安全含义:CLINT/ACLINT 的
mtime可被 S-mode 读取(时序侧信道基础),PLIC 配置错误可允许低权限域处理高权限外设中断
RISC-V AIA(Advanced Interrupt Architecture):
原先的 N 扩展(用户级中断) 已在新版 RISC-V 特权规范中被废弃,由 AIA(高级中断架构) 取代。AIA 提供:
- APLIC:支持 MSI(消息信号中断),与 PCIe 设备直接集成
- IMSIC(Incoming MSI Controller):每个 hart 的 MSI 收件箱,支持客户 VM 中断直通
- 用户级中断(Suicfg):在 AIA 框架下安全地允许 U-mode 软件接收中断,无需经过 S-mode
安全研究意义:AIA 的 IMSIC 直通机制(绕过 Hypervisor 的中断路径)需要对 VS/VU mode 的隔离语义进行仔细分析,是机密 VM(CoVE)安全研究的新方向。
AIA 规范:https://github.com/riscv/riscv-aia
异常向量(mtvec/stvec):
mtvec 格式:
┌──────────────────────────┬──┐
│ BASE(4字节对齐地址) │MODE│
└──────────────────────────┴──┘
MODE=0: 直接模式(所有异常跳转到 BASE)
MODE=1: 向量模式(中断跳转到 BASE + 4×cause)
安全含义:mtvec 写入错误目标可劫持 M-mode 控制流;RISC-V 形式化验证重点检测 mtvec 的特权写入约束。
性能计数器与侧信道
RISC-V 的性能计数器设计天然存在侧信道风险:
| CSR | 特权 | 功能 | 安全风险 |
| — | — | — | — |
| cycle | U(可被 M 禁用) | 周期计数 | 高精度时序侧信道 |
| instret | U(可被 M 禁用) | 已退休指令数 | CycleDrift 攻击来源 |
| hpmcounterN | U(可被 M 禁用) | 自定义性能事件 | 微架构状态泄漏 |
| mcountinhibit | M | 禁用特定计数器 | 缓解控制 |
| scounteren | M→S | 控制 S-mode 访问 | 分级控制 |
| mcounteren | M | 控制 U-mode 访问 | 分级控制 |
关键发现:标准 RISC-V 允许 U-mode 直接读取 instret,这是 “A Security RISC”(IEEE S&P 2023)中 CycleDrift 攻击的根本来源。Linux 默认未禁用这些计数器。
RISC-V 调试规范(Debug Specification)安全
RISC-V 调试接口基于专用调试模块(DM),通过 JTAG 或 DMI 访问:
关键调试 CSR:
| CSR | 功能 | 安全风险 |
| — | — | — |
| dcsr | 调试控制/状态(特权级、单步、停止原因) | 调试时特权级可设置为任意值 |
| dpc | 调试 PC | 重置后目标地址 |
| dscratch0/1 | 调试临时寄存器 | — |
| tselect | 触发器选择 | — |
| tdata1/2/3 | 触发器数据(地址断点) | 可监控任意内存访问 |
已发现的调试安全漏洞:
- Ibex 调试绕过(MEMOCODE 2023):外部调试器触发特定交互序列可绕过特权检查,在非调试状态下执行任意指令
- 调试模式特权提升:部分实现中调试模式(D-mode)默认拥有 M-mode 权限,但调试触发条件可从 U-mode 设置
规范:RISC-V External Debug Support Specification v1.0 https://github.com/riscv/riscv-debug-spec
RISC-V H 扩展(虚拟化)安全含义
H 扩展在 S/U-mode 之上增加了两个嵌套特权级 VS-mode(Virtual Supervisor) 和 VU-mode(Virtual User),构成二级虚拟化层次(类似 x86 VMX 的 Ring0/Ring3 嵌套):
(带 H 扩展的特权级层次)
M-mode ← 硬件信任根,运行 Machine Firmware / RustSBI
HS-mode ← 宿主 Hypervisor(KVM/seL4 Hypervisor)
VS-mode ← 客户 OS(Guest Linux)
VU-mode ← 客户用户进程
安全关键 CSR(H 扩展新增):
| CSR | 功能 | 安全含义 |
| — | — | — |
| hgatp | 客户物理地址 → 宿主物理地址的 G-stage 页表基址 | 控制 VM 内存可见范围 |
| hstatus | 客户模式状态(VTSR/VTW/VTVM 位) | VTSR=1 禁止客户执行 sret;VTVM=1 禁止客户访问 satp |
| hvip | 虚拟中断待处理位 | Hypervisor 向客户注入中断 |
| htinst | 陷阱指令辅助信息 | 加速 MMIO 模拟 |
安全研究重点:
- CoVE(RISC-V 机密 VM 扩展):基于 H+Smmtt 实现类似 AMD SEV 的机密 VM,由 Hypervisor 无法访问客户内存
- G-stage 页表攻击:类似 x86 的 EPT 攻击(EPTP Switching),如何在 H 扩展上重现
- IOMMU 缺失问题:RISC-V 尚无标准 IOMMU 规范(RISC-V IOMMU 规范仍在草案阶段),DMA 设备可绕过 H 扩展内存隔离
RISC-V IOMMU 规范(草案):https://github.com/riscv-non-isa/riscv-iommu
RISC-V 内存一致性模型(RVWMO)安全含义
RISC-V 采用 RVWMO(RISC-V Weak Memory Order),比 x86 的 TSO(Total Store Order)更弱:
- 允许 load/store 在不改变程序语义的前提下重排序
- 需要显式
fence指令保证顺序(fence r,r、fence w,w、fence rw,rw等) - 原子操作(A 扩展)提供额外的顺序保证(aq/rl 位)
安全含义:
- 推测竞争条件(GhostRace):弱内存模型使临界区更容易在推测执行下产生竞争
- 密码学实现风险:若不正确使用 fence,密钥清除操作可能被编译器/硬件重排序
- 锁协议正确性:错误的 fence 使用可导致锁失效,进而引发竞争条件
RISC-V 安全可信执行环境方案
由于 RISC-V 无官方 TEE 标准,学术界与产业界提出了多个方案:
| 方案 | 机构 | 隔离机制 | 特点 | 论文/链接 | | — | — | — | — | — | | Keystone | UC Berkeley | PMP | 开源,学术界标准参考,已有故障注入攻击 | EuroSys 2020 | | PENGLAI | 复旦大学 | Merkle Tree + PMP | 支持大量动态 Enclave,可扩展 | OSDI 2021 | | Sanctum | MIT | PMP + 缓存分区 | 抗侧信道设计,学术研究基准 | USENIX Sec 2016 | | MultiZone | Hex Five Security | PMP | 商用,轻量 RTOS 级别隔离 | 商用产品 | | CURE | 多机构 | PMP + 定制硬件 | 硬件辅助的细粒度隔离 | USENIX Sec 2021 | | CoVE | RISC-V 基金会 | Smmtt + H 扩展 | 官方机密 VM 扩展草案 | 规范草案 | | OpenTitan | lowRISC + Google | Ibex + 专用 ROM | 开源硅信任根(RoT),非 TEE 是 RoT | https://opentitan.org/ | | WorldGuard | SiFive | 扩展 PMP(WG 标记) | 商用多安全域隔离,兼容 RISC-V | SiFive 专有 |
OpenTitan:开源硅信任根(RoT)
OpenTitan 是由 Google 联合 lowRISC 等机构推进的开源可信执行芯片项目,目标是提供完全透明、可审计的硅级信任根,彻底替代传统”安全即闭源”的设计理念。
| 组件 | 说明 | | — | — | | CPU 核心 | Ibex(RV32IMC,2级流水线,OpenHW Group 维护) | | Flash 加密 | OTBN(OpenTitan Big Number Accelerator)负责 RSA/ECC;AES-256/HMAC 硬件加速器 | | TRNG | CSRNG(Cryptographically Secure RNG),符合 NIST SP 800-90 | | 密钥管理 | KeyMgr(支持派生密钥树),LifeCycle 控制器管理芯片制造到部署流程 | | 安全存储 | OTP(One-Time Programmable)控制器,存储设备标识和密钥素材 | | Pinmux/Alert | 硬件 Alert 总线,外设安全事件实时上报 ROM Controller |
与普通 TEE 的区别:OpenTitan 是 Root of Trust,不运行用户代码;其职责是验证更高层软件(Bootloader、OS)的完整性,为其提供可信度量链(Secure Boot)。
安全研究价值:
- 完整 RTL 开源,可直接在 riscv-formal 或 Jasper 中进行属性验证
- OTBN 的 ISA 可进行符号执行分析(独立于主 Ibex 核)
- Alert 机制研究:如何在硬件层面实现安全事件传播
官网:https://opentitan.org/GitHub:https://github.com/lowRISC/opentitan技术参考手册(TRM):https://opentitan.org/book/hw/
SiFive WorldGuard:商用多安全域隔离
WorldGuard 是 SiFive 为其商用 RISC-V 芯片定义的安全域隔离扩展,已部署在 SiFive Intelligence X 系列和部分 AI SoC 中。
核心机制:
WorldGuard 标记(WG Tag)扩展 PMP 的"谁可以访问"维度:
传统 PMP: 地址范围 × {R, W, X}
WorldGuard:地址范围 × {R, W, X} × 世界 ID(World ID, 4位)
- 每个总线事务携带世界 ID(WID),由 M-mode 的
mwidCSR 控制 - WorldGuard 检查器(Checker)部署在总线互联网络中,根据 WID + 地址拦截非法访问
- 支持在无 MMU 的 M/S/U 模式之间隔离多个安全域,比 PMP 更适合 RTOS 和 MCU 场景
与 PMP 的关键区别:
- PMP 只能由 M-mode 配置,隔离 M 与 S/U;WorldGuard 支持多域横向隔离
- 总线级检查使 DMA/外设侧信道攻击更难以绕过(PMP 只保护 CPU 访问)
规范:https://sifive.com/security(WorldGuard 规范为 SiFive 专有,未公开 GitHub 仓库)相关论文:Richard Russo et al., “WorldGuard: Multi-Domain Isolation for RISC-V”, SiFive Technical Brief
3.5 主要开源实现
Rocket(UC Berkeley)
- 类型:有序(In-Order)标量流水线,5级
- 地址:https://github.com/chipsalliance/rocket-chip
- 特点:参考实现,可综合,包含完整 SoC 框架(Rocket Chip Generator)
- 安全研究:相对简单,侧信道攻击面较小
BOOM(Berkeley Out-of-Order Machine)
- 类型:乱序超标量(OoO Superscalar)
- 地址:https://github.com/riscv-boom/riscv-boom
- 特点:具备分支预测器、ROB、保留站——最接近商用高性能处理器结构
- 安全研究:Spectre 漏洞在 BOOM 上被复现(CARRV 2019 论文)
CVA6 / Ariane(ETH Zurich)
- 类型:6级流水线(顺序发射,记分板式乱序完成;Application-class)
- 地址:https://github.com/openhwgroup/cva6
- 特点:完整 MMU、缓存、AXI 总线,可在 FPGA 上运行 Linux
- 安全研究:多篇论文在此平台上实现侧信道攻击(CVA6 Prime+Probe、CCALK)
PicoRV32
- 类型:极简有序处理器
- 地址:https://github.com/YosysHQ/picorv32
- 特点:代码量极小,易于形式化验证
- 安全研究:riscv-formal 框架默认支持,用于特权提升漏洞研究
Ibex(lowRISC / OpenHW Group)
- 类型:小面积2级流水线,RV32IMC
- 地址:https://github.com/lowRISC/ibex
- 特点:工业级开源,Google OpenTitan 的 CPU 核心
- 安全研究:形式化验证发现调试模式权限绕过漏洞(MEMOCODE 2023)
SiFive 商用核心
| 核心 | 类型 | 特点 | | — | — | — | | E21/E31 | 嵌入式,有序 | MCU 级别 | | U54/U74 | 应用级,有序 | 可运行 Linux,存在侧信道漏洞 | | P670 | 高性能乱序 | 接近 Cortex-A78 性能 |
3.6 生态与应用
主要 SBC 与开发板
| 开发板 | 芯片 | CPU 核心 | 特点 | | — | — | — | — | | SiFive HiFive Unmatched | SiFive FU740 | SiFive U74×4 | 最成熟的 Linux RISC-V 板 | | StarFive VisionFive 2 | StarFive JH7110 | SiFive U74×4 | 低成本,带 GPU | | Sipeed LicheePi 4A | T-Head TH1520 | XuanTie C910×4 | GhostWrite 漏洞硬件 | | BeagleV-Ahead | T-Head TH1520 | XuanTie C910×4 | GhostWrite 漏洞硬件 | | Milk-V Pioneer | SpacemiT K1/M1 | XuanTie C910 兼容 | 旗舰 RISC-V 桌面 |
RISC-V 软件生态
- Linux 内核:官方主线支持 RISC-V(5.x+),完整 SMP、KVM;6.14 起新增 CFI 扩展支持
- 工具链:GCC / LLVM 全面支持,GCC 14+ 支持 Zicfilp/Zicfiss CFI 扩展
- Spike ISS:官方 RISC-V 指令集模拟器,是差分测试的黄金参考(所有 CPU fuzzing 的基准)
- QEMU:支持 RISC-V 全系统仿真,含 KVM 加速
- OpenSBI:M-mode 固件(相当于 x86 的 BIOS 层),负责 PMP 初始配置
- Chipyard:UC Berkeley 的 RISC-V SoC 设计框架,集成 Rocket/BOOM/CVA6,是微架构安全研究的标准平台
- FireSim:基于 AWS FPGA 的 RISC-V 全系统仿真,可精确模拟微架构行为(性能计数器、缓存)
- GEM5:支持 RISC-V 的精确微架构模拟器,侧信道研究常用
安全研究常用开发板对比(攻击面分析)
| 开发板 | CPU 特征 | 缓存结构 | 主要漏洞已验证 | 适合研究方向 | | — | — | — | — | — | | LicheePi 4A | C910(乱序,1.8GHz) | L1/L2/L3 | GhostWrite、Cache+Time | 微架构攻击、向量漏洞 | | SiFive Unmatched | U74(有序,1.4GHz) | L1/L2 | CycleDrift | 有序流水线侧信道 | | VisionFive 2 | U74(有序) | L1/L2 | 同上 | 低成本研究平台 | | FPGA(CVA6) | CVA6(乱序,RTL 可改) | L1 | Prime+Probe、CCALK | RTL 级安全研究 | | QEMU(BOOM) | BOOM(仿真) | 可配置 | Spectre v1/v2 | 无硬件的初步研究 |
四、处理器历史漏洞与学术论文
4.1 英特尔漏洞
Meltdown(熔断)
- CVE:CVE-2017-5754
- 影响:几乎所有 Intel 处理器(1995年后);部分 ARM 核心(Cortex-A75)
- 原理:乱序执行导致用户态代码可通过 Flush+Reload 缓存侧信道读取内核内存
- 修复:KPTI(Kernel Page Table Isolation)——将内核页表与用户态页表分离,性能损失约5-30%
论文:Moritz Lipp et al., “Meltdown: Reading Kernel Memory from User Space”, USENIX Security 2018 arXiv: https://arxiv.org/abs/1801.01207 USENIX: https://www.usenix.org/conference/usenixsecurity18/presentation/lipp ACM CACM: https://dl.acm.org/doi/10.1145/3357033
Spectre(幽灵)及其变体完整分类
- 原始论文影响:Intel、AMD、ARM(本质上影响所有乱序执行 CPU)
- 根本原因:推测执行 + 缓存时序侧信道的组合,无法彻底修复
论文:Paul Kocher et al., “Spectre Attacks: Exploiting Speculative Execution”, IEEE S&P 2019 arXiv: https://arxiv.org/abs/1801.01203 官方网站: https://spectreattack.com/spectre.pdf ACM CACM: https://dl.acm.org/doi/10.1145/3399742
Spectre 变体完整分类表:
| 变体 | 别名 | CVE | 利用原理 | 缓解措施 | | — | — | — | — | — | | v1 | Bounds Check Bypass | CVE-2017-5753 | 越界数组访问推测执行 | 编译器插入 lfence/array_index_mask | | v1.1 | Bounds Check Bypass Store | — | 推测越界写(代码注入) | 编译器缓解 | | v1.2 | Read-only Protection Bypass | — | 推测写只读页 | 编译器缓解 | | v2 | Branch Target Injection | CVE-2017-5715 | 污染 BTB/IBPB,重定向 indirect branch | retpoline / IBRS / eIBRS | | v3 / Meltdown | Rogue Data Cache Load | CVE-2017-5754 | 乱序执行加载不可访问内存 | KPTI | | v3a | Rogue System Register Read | CVE-2018-3640 | 推测读系统寄存器 | 微码更新 | | v4 | Speculative Store Bypass | CVE-2018-3639 | 推测绕过 store-to-load forwarding,读旧值 | SSBD(禁用 SSB) | | v5 / SpectreRSB | Return Stack Buffer Poisoning | — | 毒化 RSB,控制 ret 目标 | RSB 填充 / IBPB on context switch | | SWAPGS | SWAPGS Gadget | CVE-2019-1125 | Windows x64 内核 SWAPGS 指令 gadget 泄漏 | 软件屏障 | | TAA | TSX Asynchronous Abort | CVE-2019-11135 | TSX 事务中止泄漏 MDS 数据 | 禁用 TSX / 微码更新 | | RETBLEED | Return Instruction | CVE-2022-29900/01 | ret 在 Zen1/2 和旧 Intel 上行为如 indirect branch | IBPB-on-entry | | BHI | Branch History Injection | CVE-2022-0001/0002 | 污染全局 BHB,绕过 eIBRS | BHI_DIS_S MSR / syscall 前刷新 | | Inception | Training in Transient Exec | CVE-2023-20569 | AMD Zen RSB 溢出 + TTE | IBPB-on-VMEXIT |
SoK 综述:Claudio Canella et al., “A Systematic Evaluation of Transient Execution Attacks and Defenses”, USENIX Security 2019 arXiv: https://arxiv.org/abs/1811.05441
Spectre v4(推测存储旁路)
- CVE:CVE-2018-3639,CVSS 5.5
- 影响:Intel、AMD、ARM(广泛影响)
- 原理:CPU 为优化性能,在 store 地址尚未计算完成时推测性地让后续 load 读取”旧值”(绕过 store-to-load forwarding)。攻击者可以利用这一窗口读取已被覆盖的敏感数据
- 缓解:SSBD(Speculative Store Bypass Disable)MSR 位,但会带来~10%性能损失
ARM 技术分析:https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/speculative-store-bypass
SpectreRSB(返回栈缓冲区投毒)
- 原理:毒化 RSB(Return Stack Buffer),当 RSB 预测的返回地址与实际不符时,CPU 会推测性地执行攻击者控制的地址处的代码
- 缓解:上下文切换时填充 RSB(
FILL_RSB宏),IBPB(间接分支预测屏障)
论文:Esmaeil Mohammadian Koruyeh et al., “Spectre Returns! Speculation Attacks using the Return Stack Buffer”, USENIX WOOT 2018 PDF: https://www.usenix.org/system/files/conference/woot18/woot18-paper-koruyeh.pdf
SWAPGS Attack
- CVE:CVE-2019-1125
- 影响:所有 x86-64 系统(Windows 最初修复,Linux 后续修复)
- 原理:Linux/Windows 内核入口点处的
SWAPGS指令序列形成推测执行 gadget,可绕过 KPTI 泄漏内核内存
披露:Bitdefender Research,Black Hat USA 2019 https://businessresources.bitdefender.com/hubfs/noindex/Bitdefender-WhitePaper-SWAPGS.pdf
TAA(TSX 异步中止)
- CVE:CVE-2019-11135
- 影响:支持 Intel TSX 的处理器
- 原理:TSX 事务被异步中止时,正在飞行的数据通过 MDS 风格的侧信道泄漏(TAA 与 MDS 共享微架构缓冲区)
- 修复:禁用 TSX(微码更新)或通过 VERW 刷新 MDS 缓冲区
MDS 系列攻击(Microarchitectural Data Sampling)
MDS 攻击利用 Intel 乱序执行时临时使用的内部微架构缓冲区,从这些飞行中(in-flight) 的数据中采样泄漏,可跨特权级读取任意进程或内核的数据。
| 漏洞名 | CVE | 攻击目标 | 论文来源 | | — | — | — | — | | RIDL | CVE-2018-12127/12130/19-11091 | Line Fill Buffer / Load Port | IEEE S&P 2019 | | Fallout | CVE-2018-12126 | Store Buffer(MSBDS) | ACM CCS 2019 | | ZombieLoad | CVE-2018-12130 | Fill Buffer(MFBDS) | ACM CCS 2019 | | CacheOut | CVE-2020-0549 | L1D Cache(TAA 变体) | USENIX Security 2021 |
RIDL 论文:Stephan van Schaik, Alyssa Milburn, Sebastian Österlund et al., “RIDL: Rogue In-Flight Data Load”, IEEE S&P 2019 PDF: https://mdsattacks.com/files/ridl.pdf
ZombieLoad 论文:Michael Schwarz, Moritz Lipp, Daniel Moghimi et al., “ZombieLoad: Cross-Privilege-Boundary Data Sampling”, ACM CCS 2019 PDF: https://zombieloadattack.com/zombieload.pdf
Fallout 论文:Claudio Canella, Daniel Genkin, Lukas Giner et al., “Fallout: Leaking Data on Meltdown-resistant Current CPUs”, ACM CCS 2019 PDF: https://mdsattacks.com/files/fallout.pdf
缓解:Intel 微码更新 + OS/Hypervisor 在上下文切换时执行 VERW 指令刷新 MDS 缓冲区;AMD 处理器不受 MDS 影响(不使用相同的内部缓冲区结构)。
LVI(Load Value Injection)
论文:Jo Van Bulck et al., “LVI: Hijacking Transient Execution through Microarchitectural Load Value Injection”, IEEE S&P 2020 https://lviattack.eu/
SGX 相关攻击
论文:Jo Van Bulck et al., “Foreshadow: Extracting the Keys to the Intel SGX Kingdom with Transient Out-of-Order Execution”, USENIX Security 2018 CVE-2018-3615/3620/3646 https://foreshadowattack.eu/
Downfall(下坠)
- CVE:CVE-2022-40982,CVSS 6.5
- 影响:Intel 第6代(Skylake)至第11代(Ice Lake)Core 处理器
- 原理:滥用 AVX2/AVX-512 GATHER 指令,将过时的 SIMD 寄存器缓冲区数据暴露给攻击者。两种技术:GDS(Gather Data Sampling,直接泄漏数据)和 GVI(Gather Value Injection,注入数据)。可从其他虚拟机中窃取 AES-128/256 密钥
- 修复:微码更新,但在 AVX-gather 密集型负载下性能下降约50%
论文:Daniel Moghimi, “Downfall: Exploiting Speculative Data Gathering”, USENIX Security 2023 USENIX: https://www.usenix.org/conference/usenixsecurity23/presentation/moghimi PDF: https://downfall.page/media/downfall.pdf 官方网站: https://downfall.page/
CrossTalk / SRBDS(特殊寄存器缓冲区数据采样)
- CVE:CVE-2020-0543
- 原理:Intel CPU 中存在一个所有核心共享的暂存缓冲区(staging buffer),
RDRAND、RDSEED和EGETKEY等特殊指令通过此缓冲区传递数据。攻击者在另一个核心上通过瞬态执行读取缓冲区内容。首个跨物理核心的瞬态执行攻击,绕过所有已有的核内缓解措施
论文:Hany Ragab et al., “CrossTalk: Speculative Data Leaks Across Cores Are Real”, IEEE S&P 2021 PDF: https://download.vusec.net/papers/crosstalk_sp21.pdf VUSec: https://www.vusec.net/projects/crosstalk/
PLATYPUS(软件功耗侧信道)
- CVE:Intel CVE-2020-8694/8695;AMD CVE-2020-12912
- 原理:利用 Intel RAPL(Running Average Power Limit)能耗接口——该接口无需特权即可读取。通过观测精细的功耗差异,可泄漏 AES-NI 密钥、破坏 SGX 隔离、破解 KASLR。无需物理接触,软件攻击
论文:Moritz Lipp et al., “PLATYPUS: Software-based Power Side-Channel Attacks on x86”, IEEE S&P 2021 PDF: https://platypusattack.com/platypus.pdf 官方网站: https://platypusattack.com/
SGX-Step(SGX 单步执行框架)
精细控制 SGX enclave 执行的开源攻击框架,通过 APIC 计时器中断实现 enclave 的单步执行,是大量 SGX 攻击论文的基础设施。
论文:Jo Van Bulck et al., “SGX-Step: A Practical Attack Framework for Precise Enclave Execution Control”, SysTEX 2017(SOSP Workshop) PDF: https://vanbulck.net/files/systex17-sgxstep.pdf GitHub: https://github.com/jovanbulck/sgx-step
Reptar(冗余前缀漏洞)
- CVE:CVE-2023-23583,CVSS 8.8
- 影响:Intel Alder Lake、Raptor Lake、Sapphire Rapids
- 原理:REX 前缀对 REP MOVSB 指令的冗余编码导致不可预期的微架构行为。在多租户虚拟化场景中,恶意 Guest 可崩溃宿主机(DoS)或可能从 CPL3 提升至 CPL0
- 修复:微码更新(2023年11月)
链接:https://cloud.google.com/blog/products/identity-security/google-researchers-discover-reptar-a-new-cpu-vulnerability
4.2 AMD 漏洞
Zenbleed
- CVE:CVE-2023-20593
- 发现者:Tavis Ormandy(Google Project Zero)
- 影响:AMD Zen 2(Ryzen 3000/4000/5000 系列,EPYC Rome)
- 原理:
vzeroupper指令在推测执行中的错误处理,导致 YMM 寄存器数据跨进程泄漏,速率约30KB/核/秒 - 修复:需要微码更新;临时缓解:在 /proc/sys/cpu/chicken_bits 设置 DE_CFG 位
链接:https://lock.cmpxchg8b.com/zenbleed.html(无正式学术论文,技术细节见此处)
INCEPTION(幽灵前身)
- CVE:CVE-2023-20569
- 影响:AMD Zen 1/2/3/4 全系列
- 原理:结合 TTE(Training in Transient Execution)技术,在推测执行期间造成 RSB(Return Stack Buffer)溢出,产生幽灵调用栈,绕过所有已知 Spectre-v2 缓解措施包括 IBRS
论文:Daniël Trujillo, Johannes Wikner, Kaveh Razavi, “Inception: Exposing New Attack Surfaces with Training in Transient Execution”, USENIX Security 2023 USENIX: https://www.usenix.org/conference/usenixsecurity23/presentation/trujillo PDF: https://comsec.ethz.ch/wp-content/files/inception_sec23.pdf
RETBLEED
- CVE:CVE-2022-29900(AMD)、CVE-2022-29901(Intel)
- 影响:AMD Zen 1/2;Intel Coffee Lake 及更早
- 原理:证明 retpoline(标准 Spectre-v2 缓解方案)在上述平台上失效——
ret指令在特定条件下表现为间接跳转
论文:Johannes Wikner, Kaveh Razavi, “RETBLEED: Arbitrary Speculative Code Execution with Return Instructions”, USENIX Security 2022 https://www.usenix.org/conference/usenixsecurity22/presentation/wikner
Hertzbleed
- CVE:Intel CVE-2022-24436;AMD CVE-2022-23823
- 影响:Intel 和 AMD 所有 x86 处理器(凡支持 DVFS 动态频率调节)
- 原理:DVFS(动态电压频率调节)导致数据相关的频率变化,将功耗侧信道转化为远程可利用的时序攻击,无需物理接触
论文:Yingchen Wang et al., “Hertzbleed: Turning Power Side-Channel Attacks Into Remote Timing Attacks on x86”, USENIX Security 2022 https://www.hertzbleed.com/ PDF: https://www.hertzbleed.com/hertzbleed.pdf
EntryBleed(KASLR 通用破解)
- CVE:CVE-2022-4543
- 影响:Intel(KPTI 实现缺陷);初版仅影响 Intel,后续研究扩展至部分 AMD
- 原理:返回用户态之前,蹦床页(trampoline page)的地址转换被缓存在 TLB 中。用户态通过 prefetch 指令时序侧信道泄漏该地址,从而破解 KASLR。单次迭代成功率100%,不到1秒
论文:willsroot, “EntryBleed: A Universal KASLR Bypass against KPTI on Linux”, HASP 2023(Best Paper) ACM DL: https://dl.acm.org/doi/10.1145/3623652.3623669 Blog: https://www.willsroot.io/2022/12/entrybleed.html
AMD Prefetch 攻击
针对 AMD 处理器的 prefetch 指令时序差异,实现全平台 KASLR 破解,无需 KPTI 侧信道,0.15秒100%可靠。
论文:Moritz Lipp et al., “AMD Prefetch Attacks through Power and Time”, USENIX Security 2022 USENIX: https://www.usenix.org/conference/usenixsecurity22/presentation/lipp PDF: https://www.usenix.org/system/files/sec22summer_lipp.pdf
4.3 苹果 Apple Silicon 漏洞
GoFetch
- 影响:Apple M1、M2、M3(及 A14/A15/A16/A17 Pro)
- 原理:Apple M 系列芯片的 DMP(Data Memory-Dependent Prefetcher,数据内存依赖预取器)会扫描内存中的”类指针”值并主动预取,从而泄漏密码学计算中的密钥相关数据。在常数时间(constant-time)密码实现中,DMP 使数据访问模式变得可观测
- 破解目标:OpenSSL DH 密钥交换、Go RSA、CRYSTALS-Kyber(后量子密码)、CRYSTALS-Dilithium
- 修复:硬件缺陷,无法修补;软件层面需在加密操作期间禁用 DMP(性能损失巨大)或使用 blinding 技术
论文:Boru Chen et al., “GoFetch: Breaking Constant-Time Cryptographic Implementations Using Data Memory-Dependent Prefetchers”, USENIX Security 2024 官方网站: https://gofetch.fail/ GitHub PoC: https://github.com/FPSG-UIUC/GoFetch
iLeakage
- 影响:所有 Apple Silicon(M 系列)和 A 系列(iPhone/iPad)
- 原理:利用 Safari 浏览器的推测执行泄漏,跨站读取其他 Safari 标签页内容(包括 Gmail 邮件、密码管理器内容)
论文:Jason Kim et al., “iLeakage: Browser-based Timerless Speculative Execution Attacks on Apple Devices”, ACM CCS 2023 官方网站: https://ileakage.com/
PACMAN
- 影响:Apple M1(所有配备 PAC 的 AArch64 设备)
- 原理:通过微架构侧信道暴力破解 Pointer Authentication Code(PAC),绕过 Armv8.3 引入的 CFI 保护
论文:Joseph Ravichandran et al., “PACMAN: Attacking ARM Pointer Authentication with Speculative Execution”, ISCA 2022 https://pacmanattack.com/
Branch Different(Spectre on Apple Silicon)
论文:Michael Schwarz et al., “Branch Different – Spectre Attacks on Apple Silicon”, DIMVA 2022 PDF: https://misc0110.net/files/applespectre_dimva22.pdf
4.4 ARM 漏洞
BHI(Branch History Injection)
- CVE:CVE-2022-0001(Intel),同样影响 ARM Cortex-A 系列
- 原理:证明 Intel eIBRS 和 ARM CSV2 等硬件缓解措施不足以防止跨特权 Spectre-v2 攻击,利用全局分支历史记录表(BHB/GHB)进行攻击
论文:Enrico Barberis et al., “Branch History Injection: On the Effectiveness of Hardware Mitigations Against Cross-Privilege Spectre-v2 Attacks”, USENIX Security 2022 USENIX: https://www.usenix.org/conference/usenixsecurity22/presentation/barberis VUSec: https://www.vusec.net/projects/bhi-spectre-bhb/
TrustZone 侧信道攻击
论文:Zhang et al., “TruSpy: Cache Side-Channel Information Leakage from the Secure World on ARM Devices”, IACR ePrint 2016 https://eprint.iacr.org/2016/980.pdf
论文:Godfrey et al., “Cache-Attacks on the ARM TrustZone Implementations”, IACR ePrint 2018 https://eprint.iacr.org/2018/621.pdf
Straight-Line Speculation(SLS,直线推测执行)
- CVE:CVE-2020-13844
- 影响:广泛影响 ARM Cortex-A 系列;AMD Zen 1/2 亦有变体
- 原理:ARM 处理器在无条件分支(
B/BL/RET/ERET)之后会推测性地沿线性地址继续取指,若线性后继指令中存在 Spectre 泄漏 gadget,则可泄漏机密数据 - 缓解:编译器在无条件分支后插入屏障指令(
SB/DSB),GCC/Clang 增加了-mharden-sls标志
ARM 白皮书:https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Security%20Update%2008%20June%202020/Straight-line_Speculation-v1.0.pdf
TIKTAG(MTE 标签绕过)
-
影响:ARM 内存标记扩展(MTE,Armv8.5-A),在 Pixel 8/8 Pro 上验证
-
原理:两种 gadget 通过推测执行泄漏 MTE 内存标签:
-
TikTag-v1:利用分支预测 + 数据预取器
-
TikTag-v2:利用 Store-to-Load Forwarding
-
成功率 >95%,不到4秒,使内存破坏漏洞利用成功率接近100%
-
已演示:在 Google Chrome 和 Linux 内核上破解 MTE 保护
论文:Juhee Kim et al., “TikTag: Breaking ARM’s Memory Tagging Extension with Speculative Execution”, IEEE S&P 2025 arXiv: https://arxiv.org/abs/2406.08719 GitHub: https://github.com/compsec-snu/tiktag
Spectre-BHB(ARM 平台分支历史注入)
- CVE:CVE-2022-23960
- 影响:Cortex-A15/A57/A72/A73/A75/A76/A77/A78/X1/X2/A710,Neoverse N1/N2/V1 等
- 原理:即使 CSV2(ARM 的 eIBRS 等效缓解)存在,全局分支历史缓冲区(BHB)仍可被低特权代码污染,实现跨特权 Spectre-v2 攻击(与 Intel BHI 同源)
ARM 白皮书:https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Security%20Update%2008%20March%202022/Spectre-BHB%20White%20Paper%20v1.6.pdf
4.5 英伟达 NVIDIA GPU 漏洞
GPU 侧信道攻击
论文:Hoda Naghibijouybari et al., “Rendered Insecure: GPU Side Channel Attacks are Practical”, ACM CCS 2018 ACM DL: https://dl.acm.org/doi/10.1145/3243734.3243831 PDF: https://www.cs.ucr.edu/~nael/pubs/ccs18.pdf
论文:Ajay Zander et al., “Spy in the GPU-box: Covert and Side Channel Attacks on Multi-GPU Systems”, ISCA 2023 ACM DL: https://dl.acm.org/doi/abs/10.1145/3579371.3589080
LeftoverLocals(GPU 本地内存未清零)
- 影响:Apple、Qualcomm Adreno、AMD、Imagination GPU(NVIDIA 不受影响)
- 原理:GPU 计算完毕后不清零本地内存,后续进程可读取前进程残留数据;可用于窃听同机器上运行的 LLM 推理输出
论文:Tyler Sorensen, Heidy Khlaaf, “LeftoverLocals: Listening to LLM Responses Through Leaked GPU Local Memory”, arXiv 2024 arXiv: https://arxiv.org/html/2401.16603v1 Trail of Bits Blog: https://blog.trailofbits.com/2024/01/16/leftoverlocals-listening-to-llm-responses-through-leaked-gpu-local-memory/
NVBleed(NVLink 侧信道)
论文:Yiche Zhang et al., “NVBleed: Covert and Side-Channel Attacks on NVIDIA Multi-GPU Interconnect”, arXiv 2025 arXiv: https://arxiv.org/abs/2503.17847
GPUHammer(GPU Rowhammer)
- 影响:NVIDIA A6000(GDDR6)
- 首次:在 NVIDIA GPU 上实现 Rowhammer 攻击,成功注入位翻转,可使 ML 模型精度降低80%
论文:Chris S. Lin et al., “GPUHammer: Rowhammer Attacks on GPU Memories are Practical”, USENIX Security 2025 arXiv: https://arxiv.org/abs/2507.08166 官方网站: https://gpuhammer.com/
4.6 高通 Qualcomm 漏洞
DSPGate(Hexagon DSP 漏洞)
- CVE:CVE-2020-11201 等(共6个 CVE)
- 发现:Check Point Research,DEF CON 28(2020)
- 原理:Snapdragon DSP 的 400+ 个代码段存在漏洞,可从 Android 用户空间远程利用,获取 DSP 完整控制权;DSP 可访问麦克风、摄像头、GPS 等敏感外设
链接:https://research.checkpoint.com/2021/pwn2own-qualcomm-dsp/
CVE-2024-43047(DSP 驱动 Use-After-Free)
- 发现:Seth Jenkins(Google Project Zero)
- 已在野外利用:是目标性攻击的组成部分
- 原理:
adsprpc驱动中的 Use-After-Free 漏洞
分析:https://projectzero.google/2024/12/qualcomm-dsp-driver-unexpectedly-excavating-exploit.html
4.7 联发科 MediaTek 漏洞
音频 DSP 漏洞
- CVE:CVE-2021-0661/0662/0663/0673
- 发现:Check Point Research
- 原理:逆向工程 MediaTek 音频 DSP 固件(占全球37%智能手机),通过 Android 用户空间触发多个漏洞,配合 OEM 库漏洞实现本地提权
链接:https://research.checkpoint.com/2021/looking-for-vulnerabilities-in-mediatek-audio-dsp/
电磁故障注入(CVE-2024-20154 系列)
- 发现:Ledger Donjon 团队
- 原理:针对 MediaTek Dimensity 7300 的 Boot ROM 进行电磁故障注入(EMFI),在45秒内完全绕过安全启动并提取 PIN
4.8 海思/华为 Kirin 漏洞
Black Hat 2021:如何驯服 Unicorn
- 影响:Kirin 970/980/990
- 原理:逆向 Kirin SoC 安全启动架构,发现 SoC 互联总线中的远程可利用漏洞;通过6条不同的利用链获得 EL3(最高特权级)代码执行,完全绕过安全启动
演讲:*”How to Tame Your Unicorn: Exploring and Exploiting Zero-Click Remote Interfaces on the Kirin SoC”*, Black Hat USA 2021 PDF: https://i.blackhat.com/USA21/Wednesday-Handouts/US-21-Komaromy-How-To-Tame-Your-Unicorn-wp.pdf
Hexacon 2022:Kirin 特权组件分析
演讲:*”Kirin: Dissecting the Privileged Components of Huawei Mobile Devices”*, Hexacon 2022 PDF: https://2022.hexacon.fr/slides/22-Hexacon-Hara-Kirin_Dissecting_the_Privileged_Components_of_Huawei_Mobile_Devices.pdf
达芬奇 NPU 驱动漏洞
研究:*”Da Vinci Hits a Nerve: Exploiting Huawei’s NPU Driver”*, TASZK Labs https://labs.taszk.io/articles/post/exploiting_huaweis_npu_driver/
4.9 平头哥 T-Head 漏洞
详见第五章 RISC-V 安全漏洞部分的 GhostWrite。
五、RISC-V 安全漏洞与学术研究
5.1 微架构攻击综合研究
A Security RISC:硬件 RISC-V 处理器上的微架构攻击
这是 RISC-V 微架构攻击研究的里程碑论文,首次系统性地在真实商用 RISC-V 硬件上研究微架构侧信道。
- 攻击目标:T-Head C906/C908/C910(LicheePi4A 等板卡)、SiFive U74
- 三种新型攻击原语:
- Cache+Time:无需共享内存的缓存行粒度攻击
- Flush+Fault:利用 RISC-V 特有 Fence.I 指令实现 Harvard 架构缓存刷新,在指令缓存上实现类 Flush+Reload
- CycleDrift:利用 RISC-V 无特权访问
instret(已退休指令计数器)的特性,实现微架构状态推断
- 6项攻击案例:包括首个 RISC-V 架构的 KASLR 破解
论文:Lukas Gerlach, Daniel Weber, Ruiyi Zhang, Michael Schwarz, “A Security RISC: Microarchitectural Attacks on Hardware RISC-V CPUs”, IEEE S&P 2023 IEEE Xplore: https://ieeexplore.ieee.org/document/10179399/ PDF: https://misc0110.net/web/files/riscv_attacks_sp23.pdf GitHub: https://github.com/cispa/Security-RISC
5.2 侧信道攻击
CVA6 上的 Prime+Probe 隐蔽信道
首次在运行 Linux 的开源 RISC-V 处理器(CVA6/Ariane)上实现 Prime+Probe 隐蔽信道。
论文:*”Recovering Information on the CVA6 RISC-V CPU with a Baremetal Micro-Architectural Covert Channel”*, IEEE ICCAD 2022 IEEE Xplore: https://ieeexplore.ieee.org/iel7/9897157/9897171/09897297.pdf
CCALK:CVA6 缓存关联性密钥泄漏
研究 CVA6 缓存关联性(Set Associativity)如何泄漏密码学密钥。
论文:*”CCALK: (When) CVA6 Cache Associativity Leaks the Key”*, MDPI JLPEA 2023 MDPI: https://www.mdpi.com/2079-9268/13/1/1
针对 RISC-V 处理器缓存时序漏洞的系统性评估
论文:Austa, Muhlberg et al., “Systematic Assessment of Cache Timing Vulnerabilities on RISC-V Processors”, Springer 2024/2025 Springer: https://link.springer.com/chapter/10.1007/978-3-032-07894-0_2 arXiv: https://arxiv.org/pdf/2510.08272
RISC-V 处理器侧信道攻击综述
论文:*”Side-Channel Attacks on RISC-V Processors: Current Progress, Challenges, and Opportunities”*, arXiv 2021 arXiv: https://arxiv.org/abs/2106.08877
RISC-V IoT 设备运行时安全综述
论文:*”Attacks, Defenses and Perspectives for the Runtime Security of RISC-V IoT Devices: A Review”*, Computers & Security 2025 ScienceDirect: https://www.sciencedirect.com/science/article/abs/pii/S0167404825005061
5.3 瞬态执行攻击
在开源 RISC-V 微架构(BOOM)上复现 Spectre
首次在 BOOM RISC-V 处理器(FPGA 实现)上复现 Spectre 变体1(越界读取)和变体2(分支目标注入),并评估缓解措施。
论文:Abraham Gonzalez et al., “Replicating and Mitigating Spectre Attacks on an Open Source RISC-V Microarchitecture”, CARRV 2019(ISCA Workshop) PDF: https://boom-core.org/docs/replicating_mitigating_spectre_carrv19.pdf
RISC-V TEE 上的跨进程 Spectre 攻击
在运行 TEE 的 RISC-V 处理器上演示跨进程 Spectre 攻击,突破 TEE 保护边界。
论文:*”A cross-process Spectre attack via cache on RISC-V processor with trusted execution environment”*, Computers & Electrical Engineering 2022 ScienceDirect: https://www.sciencedirect.com/science/article/abs/pii/S0045790622007613
综合侧信道与瞬态执行攻击
发现一个此前未知的基于 PMP(物理内存保护)的瞬态执行漏洞,并在6个真实 RISC-V 处理器上实现,97.52% 准确率,每次攻击约60秒。
论文:*”A combined side-channel and transient execution attack scheme on RISC-V processors”*, Computers & Security 2024 ScienceDirect: https://www.sciencedirect.com/science/article/abs/pii/S0167404824006035
5.4 符号执行与形式化验证
这一方向是您重点关注的领域,以下按重要性排列。
基于符号执行的处理器验证:RISC-V 案例研究
将 KLEE 符号执行引擎应用于 RISC-V RTL 设计验证,使用 RISC-V VP(虚拟原型)作为参考模型进行协同仿真,搜索功能不匹配。这是将符号执行用于 RISC-V 安全分析的代表性工作。
- 目标处理器:MicroRV32
- 方法:KLEE + RTL 协同仿真,将 RTL 行为符号化
- 贡献:建立了一套 RTL 级别的符号执行验证框架
论文:Niels Bartholomäus et al., “Processor Verification using Symbolic Execution: A RISC-V Case-Study”, DATE 2023 IEEE Xplore: https://ieeexplore.ieee.org/document/10137202 PDF: https://agra.informatik.uni-bremen.de/doc/konf/2023_DATE_NB.pdf
RISC-V 处理器安全属性的形式化验证
使用模型检测(Jasper 形式验证工具)对商用 RISC-V 处理器进行安全属性验证,发现了真实漏洞:
- Ibex 核心漏洞:外部调试交互导致意外指令执行
- CV32E40P 特权提升漏洞:CVSS 评分7.9
论文:Chuah, Appold et al., “Formal Verification of Security Properties on RISC-V Processors”, MEMOCODE 2023 ACM DL: https://dl.acm.org/doi/10.1145/3610579.3611085 IEEE Xplore: https://ieeexplore.ieee.org/document/10316213/
RISC-V 处理器中特权正确性验证与特权提升漏洞的自动化利用
定义5类特权提升漏洞,结合形式方法与符号执行分析 OR1200、Ibex、PicoRV32、PULPino 等核心,发现未记录的特权缺陷。这是直接与您研究方向高度相关的论文。
论文:*”Verification of Privilege Correctness and Automated Exploitation of Privilege Escalation Vulnerabilities in RISC-V Processors”*, JEIT(电子与信息学报)2025 JEIT: https://jeit.ac.cn/article/doi/10.11999/JEIT250362?pageType=en
riscv-formal:RISC-V 形式化验证框架
开源工具框架,基于 SymbiYosys 形式验证工具,提供 ISA 级别的属性检查,已在多个开源 RISC-V 实现中发现正确性和安全性缺陷。
项目:YosysHQ / riscv-formal GitHub: https://github.com/YosysHQ/riscv-formal
DIFUZZRTL:差分模糊测试发现 CPU 缺陷
以 RISC-V Spike ISS 作为黄金参考模型,对 RISC-V RTL 硬件设计进行基于覆盖率引导的差分模糊测试。符号执行与模糊测试的结合是近年热点。
论文:Jaewon Hur et al., “DIFUZZRTL: Differential Fuzz Testing to Find CPU Bugs”, IEEE S&P 2021 PDF: https://lifeasageek.github.io/papers/jaewon-difuzzrtl.pdf
RISC-V 处理器验证综述
论文:*”Survey of Verification of RISC-V Processors”*, Journal of Electronic Testing, Springer Nature 2025 Springer: https://link.springer.com/article/10.1007/s10836-025-06169-3
5.5 硬件模糊测试
SpecDoctor:自动检测瞬态执行漏洞
与 RISC-V 高度相关:在 Rocket Chip 和 BOOM 的 RTL 上直接运行,发现了 RISC-V 处理器中的 Spectre-v1、Spectre-v4 和新型瞬态执行漏洞,是专门面向处理器 RTL 瞬态执行漏洞的差分模糊测试工具。
- 方法:引入”推测原语”(speculation primitive)系统性地控制分支预测器、存储缓冲区等微架构状态,在 RTL 仿真中监测缓存侧信道信息泄漏
- 测试平台:Rocket Chip(RISC-V 有序)、BOOM(RISC-V 乱序)、GEM5 x86
- 发现:BOOM 中的 Spectre-v1/v4 变体,Rocket Chip 中与内存访问排序相关的新型瞬态执行 bug
论文:Jaewon Hur et al., “SpecDoctor: Differential Fuzz Testing to Find Transient Execution Vulnerabilities”, ACM CCS 2022 ACM DL: https://dl.acm.org/doi/10.1145/3548606.3560578 GitHub: https://github.com/compsec-snu/specdoctor
TheHuzz:基于黄金参考模型的处理器指令模糊测试
应用于 CVA6 和 Rocket Chip,使用 Spike ISS 作为黄金参考,通过覆盖率引导的指令序列生成发现软件可利用漏洞。
论文:Aakash Tyagi et al., “TheHuzz: Instruction Fuzzing of Processors Using Golden-Reference Models for Finding Software-Exploitable Vulnerabilities”, USENIX Security 2022 USENIX: https://www.usenix.org/conference/usenixsecurity22/presentation/tyagi
Cascade:基于精细程序生成的 CPU 模糊测试
最新最全面的 RISC-V CPU 模糊测试工具(2024),由 ETH Zurich 开发,在 CVA6、Rocket Chip 和 BOOM 上发现多个 bug。
论文:Flavien Solt, Katharina Ceesay-Seitz, Kaveh Razavi, “Cascade: CPU Fuzzing via Intricate Program Generation”, USENIX Security 2024 USENIX: https://www.usenix.org/conference/usenixsecurity24/presentation/solt
ProcessorFuzz:基于 CSR 状态的处理器模糊测试
使用 CSR(控制状态寄存器)值作为覆盖率反馈信号,针对 RISC-V 处理器(Rocket Chip、CVA6)进行覆盖率引导的模糊测试。
论文:Sadullah Canakci et al., “ProcessorFuzz: Processor Fuzzing using Control and Status Registers”, ISCA 2023 ACM DL: https://dl.acm.org/doi/10.1145/3579371.3589052
DirectFuzz:面向 RTL 的定向灰盒模糊测试
将定向模糊测试(目标特定代码路径)应用于 RTL 设计,在 Rocket Chip 上验证。
论文:Sadullah Canakci et al., “DirectFuzz: Automated Test Generation for RTL Designs using Directed Graybox Fuzzing”, DAC 2021 ACM DL: https://dl.acm.org/doi/10.1109/DAC18074.2021.9586289
Osiris:微架构侧信道自动发现
架构无关的微架构侧信道自动发现工具,通过随机指令序列的差分执行检测隐蔽信道,方法论适用于 RISC-V 平台。
论文:Daniel Weber et al., “Osiris: Automated Discovery of Microarchitectural Side Channels”, USENIX Security 2021 USENIX: https://www.usenix.org/conference/usenixsecurity21/presentation/weber
RISCVuzz:差分硬件模糊测试发现架构 CPU 漏洞
CISPA 团队开发的差分模糊测试框架,针对 RISC-V CPU 进行自动化漏洞挖掘:通过在多个 CPU 上并行运行指令序列并检测行为分歧来发现漏洞。GhostWrite 漏洞即通过此框架发现。
论文:Fabian Thomas et al., “RISCVuzz: Discovering Architectural CPU Vulnerabilities via Differential Hardware Fuzzing”, Black Hat USA 2024(预印本);论文录用于 ACM CCS 2025 PDF: https://ghostwriteattack.com/riscvuzz.pdf
RISCover:自动发现闭源 RISC-V CPU 中的用户可利用架构漏洞
论文:CISPA 团队, “RISCover: Automatic Discovery of User-exploitable Architectural Security Vulnerabilities in Closed-Source RISC-V CPUs”, ACM CCS 2025 ACM DL: https://dl.acm.org/doi/10.1145/3719027.3765141 PDF: https://ghostwriteattack.com/riscover_ccs25.pdf GitHub: https://github.com/cispa/RISCover
GhostWrite:T-Head XuanTie 向量指令硬件漏洞
这是目前 RISC-V 领域最严重的已公开硬件漏洞。
-
CVE:CVE-2024-44067
-
影响:T-Head XuanTie C906/C908/C910/C920(广泛应用于 LicheePi4A、BeagleV-Ahead 等开发板)
-
原理:C910 的特定向量指令(非标准 T-Head 扩展)在虚拟内存启用(MMU 开启)时,绕过地址翻译直接操作物理内存,完全绕过 MMU 和 OS 进程隔离。任何非特权用户可:
-
读写任意物理内存
-
注入代码到内核
-
控制任意外设(DMA、串口、网卡)
-
特点:
-
100% 确定性,无需爆破
-
微秒级完成
-
硬件缺陷,无法通过软件完全修复
-
Linux 6.14+ 通过禁用向量扩展缓解(损失约50%性能)
-
根本原因:T-Head 自定义向量指令规范设计缺陷
项目网站:https://ghostwriteattack.com/CISPA 新闻:https://cispa.de/en/ghostwriteGitHub PoC:https://github.com/cispa/ghostwrite关联论文:见 RISCVuzz 条目
5.6 综合调研论文
RISC-V 安全综述:硬件与架构
论文:*”A Survey on RISC-V Security: Hardware and Architecture”*, arXiv 2021 arXiv: https://arxiv.org/abs/2107.04175
RISC-V 开源处理器面临的安全挑战及其安全特性综述
论文:*”Security Challenges Faced by RISC-V Open-Source Processors and its Security Features: A Survey”*, IEEE 2024 IEEE Xplore: https://ieeexplore.ieee.org/document/10465851/
RISC-V 缓存侧信道漏洞评估指标综述
论文:*”Towards a metrics suite for evaluating cache side-channel vulnerability: Case studies on an open-source RISC-V processor”*, Computers & Security 2023 ScienceDirect: https://www.sciencedirect.com/science/article/abs/pii/S0167404823003905
保护 RISC-V 免受侧信道攻击
论文:*”Protecting RISC-V against Side-Channel Attacks”*, DAC 2019(受邀论文) ACM DL: https://dl.acm.org/doi/10.1145/3316781.3323485
5.7 RISC-V TEE 安全攻击
Keystone TEE 故障注入绕过
通过电压毛刺(voltage glitching)跳过 PMP 配置指令,绕过 Keystone 的隔离机制,完整读取 enclave 中的机密数据。是第一个针对 RISC-V TEE 的物理攻击研究,在真实 RISC-V 硬件上验证。附带提出了 JAM(Jump Address Masking)缓解措施。
论文:Shoei Nashimoto et al., “Bypassing Isolated Execution on RISC-V using Side-Channel-Assisted Fault-Injection and Its Countermeasure”, IACR TCHES 2022(1): 28–68 TCHES: https://tches.iacr.org/index.php/TCHES/article/view/9289 ePrint 预印本: https://eprint.iacr.org/2020/1193 缓解方案 GitHub: https://github.com/pyth0n14n/Keystone-JAM
PMP 物理内存别名攻击
通过修改 DIMM 物理内存元数据创建地址别名,绕过 PMP 隔离实现对 Keystone enclave 内存的完整读取,并可破坏远程证明(remote attestation)。
论文:Antonis Louka et al., “Physical Memory Please: Practical Memory-Aliasing Attacks on RISC-V PMP”, uASC 2026 PDF: https://vanbulck.net/files/uasc26-pmplease.pdf
DORAMI:RISC-V TEE 安全监视器权限分离
指出当前 RISC-V TEE 的根本性设计缺陷:与安全监视器(Security Monitor)同驻 M-mode 的固件可修改 PMP 配置,颠覆 TEE 隔离。提出基于 Smepmp 扩展将安全监视器与固件在 M-mode 内进行权限分离的方案。
论文:Mark Kuhne et al., “DORAMI: Privilege Separating Security Monitor on RISC-V TEEs”, USENIX Security 2025 USENIX: https://www.usenix.org/conference/usenixsecurity25/presentation/kuhne PDF: https://www.usenix.org/system/files/usenixsecurity25-kuhne.pdf
Sanctum:抗侧信道的 RISC-V TEE 设计
MIT 提出的最小化硬件扩展方案,在 RISC-V Rocket Chip 上实现 SGX 级别的隔离同时具备抗缓存侧信道能力。通过缓存分区和严格的内存布局隔离避免 enclave 间缓存争用,是研究 RISC-V TEE 设计的基础论文。
论文:Victor Costan et al., “Sanctum: Minimal Hardware Extensions for Strong Software Isolation”, USENIX Security 2016 USENIX: https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/costan ePrint: https://eprint.iacr.org/2015/564.pdf
TEE 设计选择与缺陷系统化研究(SoK)
系统分析 Keystone、Sanctum、CURE、PENGLAI 等多个 RISC-V TEE 及商用 TEE 的设计选择,引入 TEE 运行时架构框架(TRAF),识别出包括 M-mode 信任假设在内的多类共同设计缺陷。
论文:Mengyuan Li et al., “SoK: Understanding Design Choices and Pitfalls of Trusted Execution Environments”, AsiaCCS 2024 ACM DL: https://dl.acm.org/doi/10.1145/3634737.3644993
RISC-V TEE 综合调研(2025)
论文:*”A Survey of RISC-V Secure Enclaves and Trusted Execution Environments”*, MDPI Electronics 2025 MDPI: https://www.mdpi.com/2079-9292/14/21/4171
5.8 硬件木马检测
硬件木马(Hardware Trojan,HT)是指在 IC 设计或制造过程中恶意植入的电路修改,可在特定触发条件下泄漏信息、降低性能或造成故障。开源 RISC-V 的开放性在降低验证门槛的同时,也带来了供应链安全问题。
RISC-V 芯片流片中的硬件木马案例研究
在包含后量子密码加速器的 RISC-V 微控制器芯片上物理流片四种不同类型的硬件木马(DoS 型、性能退化型、秘密外泄型等),评估现有 EDA 工具的检测能力。
论文:Alexander Hepp, Georg Sigl, “Tapeout of a RISC-V Crypto Chip with Hardware Trojans: A Case-Study on Trojan Design and Pre-Silicon Detectability”, ACM Computing Frontiers 2021 ACM DL: https://dl.acm.org/doi/10.1145/3457388.3458869
Trojan-D2:后版图级隐蔽木马
在 28nm 工艺下于 RISC-V 核心的后版图阶段植入极低触发概率的隐蔽硬件木马,提出非接触式光学探针检测方法,并发布开源木马库。
论文:Sajjad Parvin et al., “Trojan-D2: Post-Layout Design and Detection of Stealthy Hardware Trojans – A RISC-V Case Study”, ASP-DAC 2023 IEEE Xplore: https://ieeexplore.ieee.org/document/10044782 PDF: https://agra.informatik.uni-bremen.de/doc/konf/ASP-DAC2023-1032-4.pdf
基于机器学习的硬件木马检测
使用 NLP + 机器学习方法(TF-IDF + 决策树准确率97.26%;LLM 方法召回率99%)对 RISC-V 等开源硬件设计进行木马检测,数据集包含3808个实例。
论文:Victor Takashi Hayashi et al., “Hardware Trojan Detection in Open-Source Hardware Designs Using Machine Learning”, IEEE 2025 IEEE Xplore: https://ieeexplore.ieee.org/abstract/document/10904479
基于形式化方法的无木马 RISC-V 处理器验证
将 RISC-V ISA 形式化为 SVA(SystemVerilog Assertions),通过 Jasper 等工具进行完整形式验证,同时覆盖功能 RTL bug 和硬件木马检测。
参考:*”Complete Formal Verification of RISC-V Processor IPs for Trojan-Free Trusted ICs”*, Semiconductor Engineering 2019 https://semiengineering.com/complete-formal-verification-of-risc-v-processor-ips-for-trojan-free-trusted-ics/
5.9 物理侧信道与故障注入
RISC-V 功耗侧信道防护
将掩码(masking)技术集成到 RISC-V 微控制器,对抗一阶 DPA/EM 攻击。将泄漏分为三类:直接数值泄漏、数据覆写泄漏和电路级泄漏,针对性应用软件掩码消除直接数值泄漏。
论文:Elke De Mulder et al., “Protecting RISC-V against Side-Channel Attacks”, DAC 2019(Invited) ACM DL: https://dl.acm.org/doi/10.1145/3316781.3323485
CryptRISC:抗功耗侧信道的 RISC-V 密码处理器
在 CVA6 核心上集成 AES/SHA 标量密码加速(Zkne/Zknd/Zknh 扩展)并配合 ISA 驱动的操作数掩码,统计测试 p 值全部 >0.05(无泄漏)。在正确的指令调度下零性能开销。
论文:*”CryptRISC: A Secure RISC-V Processor for High-Performance Cryptography with Power Side-Channel Protection”*, arXiv 2025 arXiv: https://arxiv.org/abs/2602.20285
RISC-V 标量密码扩展的安全实现
对 CV32E40S 核心上的 Zkne/Zknd AES 标量扩展应用 DOM(Domain-Oriented Masking)方案,面积开销仅0.39%,零性能开销,在 Xilinx Artix7 FPGA 上评估。
论文:*”Secure Implementation of RISC-V’s Scalar Cryptography Extension Set”*, MDPI Cryptography 2025 MDPI: https://www.mdpi.com/2410-387X/10/1/6
六、处理器安全研究方法论
6.1 研究分类体系
处理器安全研究
├── 被动攻击(观测型)
│ ├── 侧信道攻击(Side-Channel Attacks)
│ │ ├── 缓存时序(Cache Timing):Flush+Reload, Prime+Probe
│ │ ├── 功耗(Power Analysis):SPA, DPA, DEMA
│ │ ├── 电磁(EM)
│ │ ├── 声学(Acoustic)
│ │ └── 频率侧信道(Frequency Side-Channel):Hertzbleed
│ └── 隐蔽信道(Covert Channel):跨进程秘密通信
│
├── 主动攻击(干扰型)
│ ├── 故障注入(Fault Injection)
│ │ ├── 电压故障(Voltage Glitch)
│ │ ├── 时钟故障(Clock Glitch)
│ │ ├── 电磁故障(EMFI)
│ │ └── 激光故障(Laser FI)
│ └── Rowhammer(内存行锤攻击)
│
├── 微架构攻击(Microarchitectural Attacks)
│ ├── 瞬态执行攻击(Transient Execution Attacks)
│ │ ├── 推测执行(Speculative Execution):Spectre 系列
│ │ ├── 乱序执行(Out-of-Order Execution):Meltdown
│ │ └── 预取器攻击(Prefetcher Attacks):GoFetch
│ └── 微架构数据采样(MDS)
│
└── 验证与分析(Verification & Analysis)
├── 形式化验证(Formal Verification)
│ ├── 模型检测(Model Checking)
│ ├── 定理证明(Theorem Proving)
│ └── 等价性检查(Equivalence Checking)
├── 符号执行(Symbolic Execution)
│ ├── RTL 级别符号执行
│ ├── LLVM IR 级别符号执行(KLEE)
│ ├── 二进制级别符号执行(angr)
│ └── 混合执行(Concolic Execution)
└── 模糊测试(Fuzzing)
├── 差分测试(Differential Testing)
├── 覆盖率引导(Coverage-guided Fuzzing)
└── 硬件模糊测试(Hardware Fuzzing)
6.2 符号执行在处理器安全中的应用
符号执行(Symbolic Execution)是您特别关注的方向,在处理器安全研究中有以下几种核心应用:
核心概念:符号执行 vs 混合执行 vs 抽象解释
| 方法 | 原理 | 优势 | 劣势 | 代表工具 | | — | — | — | — | — | | 纯符号执行 | 所有输入符号化,枚举路径 | 完整覆盖 | 路径爆炸 | KLEE | | 混合执行(Concolic) | 具体执行 + 符号约束 | 避免大量路径 | 仍受约束求解瓶颈 | angr、SAGE | | 有界模型检测(BMC) | 展开至深度 k,用 SAT/SMT | 完整验证 k 步 | 深度受限 | SymbiYosys | | 抽象解释 | 过近似程序行为 | 不漏报(无假负例,over-approx 保证健全性) | 可能误报(假正例) | CacheAudit |
路径爆炸问题与解决方案(处理器验证的核心难点):
问题:处理器 RTL 状态空间指数级增长
解决策略:
1. 有界展开(Bounded Unrolling):只验证 k 个时钟周期
2. 抽象(Abstraction):将复杂数据路径抽象为非确定值
3. 组合验证(Compositional):分模块验证后组合
4. 归纳证明(k-Induction):找到不变式后无限验证
5. 覆盖率引导(Coverage-guided):结合 fuzzing 只探索未覆盖路径
应用1:RTL 级别处理器验证
目标:证明处理器实现符合 ISA 规范,检测安全属性违反
方法:
- 将 RTL(Verilog/VHDL/Chisel)编译为可分析的形式
- 对输入(寄存器值、内存内容)进行符号化
- 使用 SAT/SMT 求解器验证安全属性(如权限不能提升、PMP 隔离不能被绕过)
工具链:
- SymbiYosys(sby):基于 Yosys 的形式验证前端
- KLEE:LLVM 级别符号执行引擎(可用于处理器软件模拟验证)
- BTOR2:硬件形式验证标准格式
- JasperGold:商用形式验证 EDA 工具(Cadence)
代表论文:DATE 2023(MicroRV32)、MEMOCODE 2023(Ibex, CV32E40P)
应用2:漏洞自动化利用生成
目标:给定已知漏洞类型,自动生成利用载荷
方法:
- 对漏洞触发条件进行约束建模
- 通过符号执行探索处理器状态空间
- 自动求解满足漏洞触发和权限提升条件的指令序列
代表论文:JEIT 2025(特权提升漏洞自动化利用)
应用3:差分测试与 ISA 一致性验证
目标:检测处理器实现与 ISA 规范的偏差
方法:
- 使用符号执行生成覆盖边界条件的测试向量
- 在被测处理器和参考模拟器(Spike)上分别执行
- 比较状态差异(寄存器值、内存值、CSR 状态)
代表工具:
- riscv-formal:形式化方法的 RISC-V ISA 一致性验证框架
- DIFUZZRTL:覆盖率引导的差分模糊测试
应用3b:RTL → 符号执行工具链(完整流程)
RISC-V RTL (Verilog/Chisel/CIRCT)
↓ Verilator --cc
C++ 模型
↓ clang -emit-llvm
LLVM IR
↓ KLEE
符号执行(路径探索 + SMT 约束)
↓
反例(具体指令序列)或证明(无反例)
替代路径(纯硬件形式验证):
RISC-V RTL → Yosys → AIGER/BTOR2 → SymbiYosys → Boolector/Yices2
关键实践注意事项:
- Verilator 生成的 C++ 模型是 cycle-accurate 的,符号输入需在时钟边界注入
- KLEE 需要 POSIX 运行时环境,RTL C++ 通常需要适配器(shim)
- 对于大型处理器(如 CVA6),直接符号执行代价过高;实践中通常只对特定模块(如 PMP 检查单元)进行符号执行
应用4:侧信道信息流分析
目标:检测处理器中存在的信息泄漏路径(用于发现侧信道漏洞)
方法:
- 对密钥等机密数据进行污点标记(Taint Analysis)
- 通过符号执行追踪机密数据是否影响可观测的侧信道(缓存状态、时序、功耗)
- 如存在从机密到侧信道的路径,则报告潜在侧信道漏洞
工具:
- KLEESpectre:基于 KLEE 的 Spectre 侧信道符号执行检测工具,专门检测推测执行信息泄漏路径
- Chalice(学术工具):针对 RISC-V 的符号化侧信道分析
- CacheAudit:基于抽象解释的缓存侧信道分析,可量化泄漏上界
- Binsec/Rel:二进制级别非干扰性属性验证
- ct-verif:常数时间实现验证工具(USENIX Security 2016)
- dudect:统计方法检测时序泄漏,支持任意平台包括 RISC-V
KLEESpectre 论文:Guanhua Wang et al., “KLEESpectre: Detecting Information Leakage Through Speculative Cache Side-Channel via Symbolic Execution”, ACM TOSEM 2020 ACM DL: https://dl.acm.org/doi/10.1145/3385897
ct-verif 论文:Jose Bacelar Almeida et al., “Verifying Constant-Time Implementations”, USENIX Security 2016 USENIX: https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/almeida
6.3 攻击面分析框架
研究 RISC-V 处理器安全时,建议按以下维度组织攻击面:
| 层次 | 攻击面 | 研究工具/方法 | | — | — | — | | ISA 层 | 指令语义歧义、未定义行为 | 差分测试、形式验证 | | 微架构层 | 缓存、分支预测器、执行单元、预取器 | 微架构侧信道分析 | | 特权层 | PMP、CSR 访问控制、特权级转换 | 形式验证、符号执行 | | 固件层 | OpenSBI、U-Boot、BootROM | 逆向工程、模糊测试 | | TEE 层 | Keystone/PENGLAI 等 TEE 实现 | 侧信道、瞬态执行 | | 扩展层 | 厂商自定义扩展(如 T-Head 非标准指令) | 差分测试 |
七、推荐学习路径
7.1 入门阶段
- 理解 RISC-V ISA
- 阅读 RISC-V ISA 规范 Volume I(非特权级)
- 在 QEMU 或 Spike 上运行 RISC-V Linux
- 学习汇编:RISC-V Assembly Programmer’s Manual
- 理解处理器微架构基础
- Patterson & Hennessy《Computer Organization and Design RISC-V Edition》(权威教材)
- 理解流水线、乱序执行、缓存层次、分支预测
- 掌握侧信道基础
- Osvik et al. 2006《Cache Attacks and Countermeasures》
- 理解 Flush+Reload、Prime+Probe 两种基础缓存攻击原语
7.2 进阶阶段
- 阅读里程碑论文:Meltdown、Spectre、GoFetch 原文
- 复现攻击:在 CVA6 或 BOOM 上复现 Prime+Probe(FPGA 或 QEMU 辅助)
- 学习形式化验证:
- 安装 SymbiYosys,运行 riscv-formal 对 PicoRV32 进行验证
- 学习 SMT 求解器(Z3)基础
- 熟悉工具链:Spike、GEM5(微架构模拟)、KLEE(符号执行)
7.3 研究阶段
- 聚焦方向(按兴趣选择):
- 方向A:RISC-V 处理器形式化验证 + 符号执行(与 DATE/MEMOCODE/DAC 顶会对齐)
- 方向B:开源 RISC-V 微架构侧信道攻击(与 IEEE S&P/USENIX Security 对齐)
- 方向C:RISC-V TEE 安全(Keystone/PENGLAI 的新漏洞)
- 方向D:RISC-V 差分测试与硬件模糊测试(与 ACM CCS/IEEE S&P 对齐)
- 关注顶级会议:
- 安全:IEEE S&P / USENIX Security / ACM CCS / NDSS
- 体系结构:ISCA / MICRO / HPCA / ASPLOS
- 设计自动化:DAC / DATE / ICCAD
- 开源社区参与:
- RISC-V 国际基金会:https://riscv.org/
- OpenHW Group(CVA6/Ibex 维护方):https://www.openhwgroup.org/
- CISPA 平头哥漏洞研究团队关注:https://cispa.de/
7.4 核心工具清单
| 工具 | 类别 | 用途 | | — | — | — | | Spike | ISS 模拟器 | 黄金参考,差分测试基准 | | QEMU RISC-V | 全系统模拟器 | 快速软件测试环境 | | GEM5 | 微架构模拟器 | 精确微架构行为研究 | | Verilator | RTL 仿真器 | 将 RTL 编译为 C++ 快速仿真 | | Yosys | 逻辑综合 | RTL 分析与形式验证前端 | | SymbiYosys | 形式验证 | riscv-formal 依赖 | | KLEE | 符号执行 | LLVM IR 级别符号执行 | | angr | 二进制分析 | 二进制符号执行,支持 RISC-V | | Z3 | SMT 求解器 | 约束求解,支撑符号执行 | | riscv-formal | 形式验证框架 | RISC-V ISA 符合性验证 | | DIFUZZRTL | 硬件模糊测试 | RISC-V RTL 差分模糊测试 | | Chipyard | SoC 设计框架 | 集成 Rocket/BOOM,安全研究标准平台 | | FireSim | FPGA 仿真 | 精确微架构仿真,含性能计数器 | | Ghidra | 反汇编/逆向 | 支持 RISC-V,NSA 开源 | | OpenOCD | 调试接口 | RISC-V JTAG 调试,调试安全研究必备 | | sail-riscv | ISA 形式语义 | 官方 RISC-V Sail 形式规范 | | Serval | 系统代码验证 | 发现 Keystone 中的 bug,SOSP 2019 | | ct-verif | 常数时间验证 | 验证密码实现是否为常数时间(USENIX Sec 2016) | | dudect | 时序泄漏检测 | 统计方法检测侧信道,支持 RISC-V | | CacheAudit | 缓存侧信道分析 | 基于抽象解释量化缓存泄漏 |
八、缓存侧信道攻击原语详解
缓存侧信道攻击的基础是不同的内存访问模式会在 CPU 缓存中留下可观测的痕迹。理解这些基础原语是研究微架构安全的必备知识。
8.1 攻击原语分类
缓存侧信道攻击原语
├── 基于 Flush(缓存刷新)
│ ├── Flush+Reload 需要共享内存(同一物理页),颗粒度:缓存行(64B)
│ ├── Flush+Flush 仅依赖 CLFLUSH 执行时间差异,无缓存 miss,隐蔽性极高
│ └── Flush+Fault RISC-V 变体,利用 Fence.I 刷新指令缓存(见 A Security RISC)
├── 基于 Prime(缓存占用)
│ ├── Prime+Probe 无需共享内存,适用于跨进程/跨虚拟机,颗粒度:缓存组
│ └── Prime+Scope Prime+Probe 增强版,消除观测者效应,仅需单次内存访问测量
├── 基于微架构状态
│ ├── CycleDrift RISC-V 特有,利用无特权指令退休计数器(instret CSR)
│ ├── TLBleed 基于 TLB 争用,可绕过 CAT 缓存隔离
│ └── DRAMA 基于 DRAM bank 地址映射的行级别争用
└── 基于硬件预取器
├── Prefetch 攻击 利用 x86 PREFETCH 指令探测地址是否在 TLB/缓存中
└── GoFetch / DMP Apple M 系列 DMP 将类指针数据预取,泄漏密钥
8.2 核心原语详解
Flush+Reload(F+R)
适用条件:攻击者与受害者共享同一物理内存页(如共享库、mmap 共享内存)
攻击步骤:
clflush:从缓存中逐出目标缓存行- 等待受害者运行
- 测量重新加载该缓存行的时间:缓存 hit(~50周期)表明受害者访问了该行;缓存 miss(~200周期)表明未访问
典型应用:AES T-table 攻击、RSA 密钥恢复
奠基论文:Yuval Yarom, Katrina Falkner, “FLUSH+RELOAD: A High Resolution, Low Noise, L3 Cache Side-Channel Attack”, USENIX Security 2014 PDF: https://www.usenix.org/system/files/conference/usenixsecurity14/sec14-paper-yarom.pdf
Flush+Flush(F+F)
特点:完全不产生缓存 miss,比 F+R 隐蔽约6.7倍,可绕过基于缓存缺失计数器的检测
原理:clflush 对已在缓存中的数据(缓存 hit)执行更快,对不在缓存中的数据(缓存 miss)执行更慢,通过这一时序差异进行区分
论文:Daniel Gruss et al., “Flush+Flush: A Fast and Stealthy Cache Attack”, DIMVA 2016(最具影响力论文奖) arXiv: https://arxiv.org/abs/1511.04594 PDF: https://gruss.cc/files/flushflush.pdf
Prime+Probe(P+P)
适用条件:无需共享内存,适用于跨进程、跨 VM、跨特权级场景,RISC-V 平台首选原语
攻击步骤:
- Prime:用攻击者数据填充目标缓存组(cache set)的所有路(way)
- 等待受害者运行
- Probe:测量重新访问自己数据的时间——若某路时间变长,说明受害者访问了该缓存组
在 RISC-V 上的实现:需要逆向工程缓存索引函数(见 CVA6 Prime+Probe 论文)
奠基论文:Osvik, Shamir, Tromer, “Cache Attacks and Countermeasures: the Case of AES”, CT-RSA 2006
Prime+Scope(P+S)
消除 Prime+Probe 的观测者效应问题(自身探测会污染缓存状态),通过将探测阶段压缩为单次内存访问实现高精度测量,支持跨核 LLC 攻击。
论文:Antoon Purnal et al., “Prime+Scope: Overcoming the Observer Effect for High-Precision Cache Contention Attacks”, ACM CCS 2021 PDF: https://antoonpurnal.github.io/files/pdf/PrimeScope.pdf
TLBleed(基于 TLB 的侧信道)
利用 Intel 超线程的 TLB 争用而非缓存争用,可绕过 Intel CAT(Cache Allocation Technology)缓存隔离和 TSX 保护。17秒内从单次捕获恢复256位 EdDSA 密钥,92% RSA 密钥恢复率。
论文:Ben Gras et al., “Translation Leak-aside Buffer: Defeating Cache Side-channel Protections with TLB Attacks”, USENIX Security 2018 USENIX: https://www.usenix.org/conference/usenixsecurity18/presentation/gras VUSec: https://www.vusec.net/projects/tlbleed/
DRAMA(DRAM 寻址侧信道)
逆向工程未公开的 DRAM bank 地址映射,构建无需共享内存的跨 CPU 隐蔽信道(2Mbps),比此前快3-4个数量级。同时为 DDR4 Rowhammer 提供了行寻址基础。
论文:Peter Pessl et al., “DRAMA: Exploiting DRAM Addressing for Cross-CPU Attacks”, USENIX Security 2016 USENIX: https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/pessl
Prefetch 侧信道攻击
x86 PREFETCH 指令会预取特权级不可访问的地址,通过执行时间差异可重建内核完整页表结构,破解 SMAP 并绕过内核 ASLR。是 EntryBleed 等后续 KASLR 破解工作的基础。
论文:Daniel Gruss et al., “Prefetch Side-Channel Attacks: Bypassing SMAP and Kernel ASLR”, ACM CCS 2016 ACM DL: https://dl.acm.org/doi/10.1145/2976749.2978356
九、DRAM 与内存安全
9.1 Rowhammer 攻击体系
Rowhammer 是一类利用 DRAM 物理特性的攻击:反复读取同一内存行(aggressor row)会因电磁耦合导致相邻行(victim row)产生位翻转,进而实现权限提升、密钥伪造等攻击效果。
原始发现
论文:Yoongu Kim et al., “Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors”, ISCA 2014 PDF: https://sites.coecis.cornell.edu/isca50retrospective/files/2023/06/Kim_2014_Flipping.pdf
测试三大主流厂商80%以上 DDR3 模块,均存在可利用的位翻转。
9.2 Rowhammer 利用演进
Drammer(Android ARM 上的确定性利用)
首个在 Android/ARM 平台上无需软件漏洞的确定性 Rowhammer root exploit,利用 ION 内存分配器的可预测物理内存复用模式。
论文:Victor van der Veen et al., “Drammer: Deterministic Rowhammer Attacks on Mobile Platforms”, ACM CCS 2016 ACM DL: https://dl.acm.org/doi/10.1145/2976749.2978406 PDF: https://vvdveen.com/publications/drammer.pdf GitHub: https://github.com/vusec/drammer
RAMpage(Android 应用-OS 边界突破)
- CVE:CVE-2018-9442
- 通过 Android ION 分配器进行 Rowhammer,突破应用与操作系统之间的安全边界,影响2012年以来所有 Android 设备
官方网站:https://rampageattack.com/
TRRespass(绕过 DDR4 TRR 防护)
揭示 DDR4 内置的 TRR(Target Row Refresh)防护机制的根本局限性——TRR 无法同时监控所有可能的 aggressor 行,通过多方向 Rowhammer(最多19个 aggressor)绕过 TRR,测试的42块 DDR4 模块中13块仍可被攻击。提供了首个 Rowhammer fuzzer。
论文:Pietro Frigo et al., “TRRespass: Exploiting the Many Sides of Target Row Refresh”, IEEE S&P 2020 PDF: https://download.vusec.net/papers/trrespass_sp20.pdf GitHub: https://github.com/vusec/trrespass
Half-Double(两行距离的锤击)
发现一种全新锤击模式:高频率锤击 A 行 + 数十次锤击 B 行(A 和 B 相隔一行),可导致 C 行(距 B 一行)产生位翻转。两行距离依然有效,完全绕过 TRR。这是 DRAM 几何尺寸缩小导致耦合增强的本质效应,无法通过 TRR 修复。
来源:Google Security Blog 2021 https://security.googleblog.com/2021/05/introducing-half-double-new-hammering.html
9.3 与 RISC-V 的关联
- RISC-V 平台(如 LicheePi4A 使用的 LPDDR4)同样存在 Rowhammer 风险
- GPUHammer(USENIX Security 2025)证明 Rowhammer 已扩展至 GPU GDDR6 显存
- RISC-V 无类似 x86 的
clflush指令,需依赖fence.i或缓存别名方式驱逐缓存行,Rowhammer 工具链需适配
十、RISC-V 安全扩展标准化进展
RISC-V 的安全扩展正在快速标准化中,以下是与处理器安全研究最直接相关的进展:
10.1 Smepmp(增强型物理内存保护,已批准)
-
规范:https://docs.riscv.org/reference/isa/priv/smepmp.html
-
新增 CSR:
mseccfg,含三个关键标志位: -
MML(Machine Mode Lockdown):允许创建仅 M-mode 可访问或仅 S/U-mode 可访问的 PMP 区域
-
MMWP(Machine Mode Whitelist Policy):默认拒绝 M-mode 访问未匹配 PMP 区域的内存(彻底移除 M-mode 的默认全访问权限)
-
RLB(Rule Locking Bypass):控制锁定规则的修改策略
-
安全意义:解决了 M-mode 对所有物理内存有完全访问权的设计缺陷,是 DORAMI 等 TEE 权限分离方案的基础
10.2 Zicfilp / Zicfiss(控制流完整性,已批准)
-
规范:https://docs.riscv.org/reference/isa/priv/priv-cfi.html
-
Zicfilp(前向 CFI via 落地指令):
-
在有效间接调用/跳转目标处需要
LPAD(Landing Pad)指令 -
缺少
LPAD的目标执行将触发异常 -
使用
x7寄存器传递 label 值进行精细化匹配 -
Zicfiss(后向 CFI via 影子栈):
-
新增影子栈指令:
sspush、sspopchk、ssrdp、ssamoswap -
返回地址同时保存在影子栈,
ret时自动比对 -
安全意义:等价于 Intel CET(Shadow Stack + IBT),防止 ROP/JOP 攻击
论文:Emanuele Parisi et al., “CVA6-CFI: A First Glance at RISC-V Control-Flow Integrity Extensions”, arXiv 2025 arXiv: https://arxiv.org/abs/2602.04991
10.3 指针掩码(Ssnpm / Smnpm / Smmpm,已批准)
- 规范:https://docs.riscv.org/reference/isa/priv/zpm.html
- 功能:忽略有效地址的高位比特,允许软件在指针高位存储元数据(类似 ARM MTE 的 Top Byte Ignore)
- Linux 支持:6.13 版本合并用户态标记地址 ABI(通过
prctl启用) - 安全意义:为 RISC-V 提供内存标记的基础设施,可用于 HWASan 类工具和 use-after-free 检测
10.4 Smmtt(内存追踪表,开发中)
- GitHub:https://github.com/riscv/riscv-smmtt
- 功能:为机密计算提供 M-mode 管理的、按页粒度的内存访问权限结构,替代 PMP 在大规模 Enclave 场景中的应用
- 用途:CoVE(RISC-V Confidential VM Extensions)的基础组件,支持类似 AMD SEV 的虚拟机内存加密隔离
10.5 Zkr / Zk* 密码学扩展(已批准)
RISC-V 密码学扩展 Zk* 系列(规范 v1.0,2021年批准)为安全实现提供硬件加速支持,消除软件实现中常见的时序侧信道:
| 扩展 | 功能 | 安全意义 |
| — | — | — |
| Zkr | 硬件熵源(pollentropy / getnoise 指令) | 提供密码学安全随机数,消除对软件 PRNG 的依赖 |
| Zkn | NIST 密码学套件(AES + SHA-2) | 硬件 AES 单轮指令(aes32esmi 等)无 T-table 时序泄漏 |
| Zks | ShangMi 套件(SM3 + SM4) | 国密算法硬件加速,符合中国密码标准 |
| Zknd/Zkne | AES 解密/加密单轮指令 | 指令级 AES,单指令固定延迟,防 AES 时序攻击 |
| Zknh | SHA-2 压缩函数辅助指令 | sha512sig0 等加速 SHA-512 |
| Zbkb/Zbkc/Zbkx | 位操作(位内置/进位无 carry/XEX) | 为 GCM、Poly1305 提供无时序泄漏的位操作 |
安全研究重点:pollentropy 的熵源质量验证——RISC-V 规范定义了接口但未规定实现,不同芯片的熵质量可能差异巨大,是硬件安全审计的重要对象。
规范 GitHub:https://github.com/riscv/riscv-crypto规范 PDF:https://github.com/riscv/riscv-crypto/releases
10.6 Smstateen(状态启用扩展,已批准)
Smstateen 允许更高特权级(M/S-mode)通过状态启用 CSR(mstateen0-3、sstateen0-3)禁用低特权级访问尚未被软件明确使用的新扩展状态,防止信息泄漏:
- 问题背景:每次 RISC-V 规范添加新扩展(如 Zfinx、Hypervisor),低特权级软件若访问对应 CSR 会引发异常;但若新扩展静默保留了旧的微架构状态,攻击者可借此侧信道泄漏高特权状态
- 机制:每个
stateenCSR 有64个比特,每位控制一个扩展的状态访问权;M-mode 可选择性开放哪些扩展对 S/U 可见 - 安全意义:结合 Zicfiss(影子栈)和 Zicfilp(落地指令)后,M-mode 可防止 U-mode 通过 SSP/ELPC CSR 窥探 CFI 状态
规范:https://github.com/riscv/riscv-state-enable
10.7 安全扩展总览
| 扩展 | 状态 | 功能 | 安全意义 | | — | — | — | — | | Smepmp | 已批准 | M-mode 内存访问控制增强 | 修复 M-mode 全访问缺陷 | | Zicfilp | 已批准 | 前向 CFI 落地指令 | 防 JOP/call gadget | | Zicfiss | 已批准 | 后向 CFI 影子栈 | 防 ROP | | Ssnpm/Smnpm/Smmpm | 已批准 | 指针掩码 | 内存标记基础设施 | | Zkr | 已批准 | 硬件熵源(TRNG 接口) | 安全随机数 | | Zkn/Zks | 已批准 | AES/SHA-2/SM3/SM4 硬件加速 | 消除 T-table 时序侧信道 | | Smstateen | 已批准 | 扩展状态访问控制 | 防止新扩展状态信息泄漏 | | Smmtt | 开发中 | 机密计算内存追踪表 | 类 AMD SEV 隔离 | | Sdext | 已批准 | 外部调试规范 | 调试权限控制(已有漏洞) | | H(虚拟化) | 已批准 | Hypervisor 扩展 | VS/VU mode 隔离,CoVE 基础 | | IOMMU | 草案 | DMA 地址转换与权限控制 | 填补 H 扩展 DMA 绕过漏洞 |
十一、形式化验证工具与 ISA 语义框架
本章系统介绍用于处理器安全研究的形式化验证工具,尤其是与 RISC-V 相关的工具链。
11.1 ISA 形式语义层
Sail(官方 RISC-V 形式模型)
RISC-V 国际基金会的官方 ISA 形式规范使用 Sail DSL 编写。Sail 是一种专为 ISA 语义设计的轻量依赖类型语言,可自动生成:C/OCaml 模拟器、Isabelle/HOL4/Coq 的证明辅助定义。完整到可启动 Linux、FreeBSD 和 seL4。
论文:Alasdair Armstrong et al., “ISA Semantics for ARMv8-A, RISC-V, and CHERI-MIPS”, POPL 2019(PACMPL) ACM DL: https://dl.acm.org/doi/10.1145/3290384 官方 RISC-V Sail 模型: https://github.com/riscv/sail-riscv
安全研究价值:可作为差分测试的精确参考模型;用于推导允许的内存访问行为;生成的 Coq 定义可用于形式化安全证明。
K 框架(K Framework)
通用语义框架,已为多种处理器 ISA 和编程语言定义语义,支持直接从语义生成解释器、模型检测器和符号执行引擎。
应用:*”K-CIRCT: A Layered, Composable, and Executable Formal Semantics for CIRCT Hardware IRs”*, arXiv 2024 arXiv: https://arxiv.org/html/2404.18756
11.2 RTL 形式验证层
SymbiYosys + riscv-formal
riscv-formal 是专为 RISC-V 处理器核心设计的开源形式化验证框架,基于 Yosys 逻辑综合工具和 SymbiYosys 形式验证前端:
- 验证方式:将 ISA 规范编码为 SVA 属性,对 RTL 进行有界模型检测(BMC)
- 支持核心:PicoRV32、Ibex、Serv、FWRISC 等
- 可检测的安全属性:寄存器写入正确性、PC 推进正确性、CSR 访问权限、异常处理、内存访问权限
# 典型使用流程
cd riscv-formal/cores/picorv32
make verify # 对 PicoRV32 进行完整 ISA 验证
项目:https://github.com/YosysHQ/riscv-formal
Jasper(Cadence)/ VC Formal(Synopsys)
商用 EDA 形式验证工具,工业界标准。MEMOCODE 2023 论文(Ibex/CV32E40P)即使用 Jasper 发现真实安全漏洞。通常与 SystemVerilog Assertions 和 Formal Property Verification(FPV)联合使用。
11.3 系统软件形式验证层
Serval(系统代码自动化验证)
SOSP 2019 最佳论文。通过对语言解释器的符号求值构建自动化验证器,对系统代码进行验证。已构建针对 RISC-V、x86-32、LLVM IR 和 BPF 的验证器。在 Keystone 中发现了此前未知的 bug,并验证了 Linux 内核 BPF 验证器的正确性。
论文:Luke Nelson et al., “Scaling Symbolic Evaluation for Automated Verification of Systems Code with Serval”, SOSP 2019(Best Paper + Distinguished Artifact) ACM DL: https://dl.acm.org/doi/abs/10.1145/3341301.3359641 PDF: https://unsat.cs.washington.edu/papers/nelson-serval.pdf GitHub: https://github.com/uw-unsat/serval
UCLID5(多模态形式建模与验证)
支持公理化 + 操作语义、一阶公式、时序逻辑、超属性(hyperproperties)、k-归纳、有界模型检测和语法制导合成的多模态验证工具。用于硬件-软件接口安全和 TEE 验证。
论文:Pramod Subramanyan et al., “UCLID5: Multi-modal Formal Modeling, Verification, and Synthesis”, CAV 2022 Springer: https://link.springer.com/chapter/10.1007/978-3-031-13185-1_27 GitHub: https://github.com/uclid-org/uclid
Kami(Coq 中的硬件验证)
在 Coq 证明辅助系统中构建完整、可提取的硬件规范。已实现并完整验证了 Bluespec 风格的多核 RISC-V 处理器(含流水线核心与缓存一致性共享内存),可提取到 FPGA 可综合实现。
论文:Joonwon Choi et al., “Kami: A Platform for High-Level Parametric Hardware Specification and Its Modular Verification”, ICFP 2017(PACMPL) ACM DL: https://dl.acm.org/doi/10.1145/3110268 GitHub: http://plv.csail.mit.edu/kami/
11.4 工具链定位总结
RISC-V 形式化验证工具栈(从抽象到具体)
ISA 语义层 Sail(官方)/ K Framework
↓
RTL 验证层 riscv-formal(开源)/ Jasper / VC Formal(商用)
↓ ↓
BTOR2 SystemVerilog Assertions
↓
求解器层 Boolector / Yices2 / Z3(SMT)
↓
系统代码层 Serval / UCLID5(固件/OS安全属性)
↓
定理证明层 Kami(Coq)/ Isabelle(seL4风格完整验证)
十二、CHERI 能力硬件架构与 RISC-V
CHERI(Capability Hardware Enhanced RISC Instructions)是剑桥大学开发的内存安全硬件扩展,通过在 ISA 层面引入”能力(Capability)”指针从根本上解决内存破坏漏洞,与 RISC-V 的结合是当前处理器安全研究的重要方向。
12.1 CHERI 基础概念
能力指针(Capability) 是一种带有边界和权限的胖指针(fat pointer):
传统指针(64位):
┌────────────────────────────────────────────────────────┐
│ 地址(64bit) │
└────────────────────────────────────────────────────────┘
CHERI 能力(128位+1 tag位):
┌──────────────┬──────────────┬──────────┬──────────┬────┐
│ 权限(Perms) │ 对象类型 │ 上界 │ 地址 │ T │
└──────────────┴──────────────┴──────────┴──────────┴────┘
Tag(内存中不可伪造)
- Tag 位:硬件维护的有效性位,存储于内存标记 SRAM 中,无法通过普通写操作设置
- 不可伪造性:能力只能通过从现有能力派生(收紧边界/权限)获得,不能凭空创建
- 防止的攻击类型:缓冲区溢出、堆溢出、Use-After-Free、类型混淆、任意代码执行
12.2 核心论文
原始 CHERI 论文:Jonathan Woodruff et al., “CHERI: A Hybrid Capability-System Architecture for Scalable Software Compartmentalization”, IEEE S&P 2015 IEEE: https://ieeexplore.ieee.org/document/7163016 PDF: https://www.cl.cam.ac.uk/research/security/ctsrd/pdfs/201505-oakland2015-cheri-compartmentalization.pdf
CHERI-RISC-V 规范:Robert N.M. Watson et al., “CHERI-RISC-V”, Cambridge Technical Report UCAM-CL-TR-951, 2020 PDF: https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-951.pdf CHERI 项目主页: https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/ GitHub 组织: https://github.com/CTSRD-CHERI
CHERI 入门介绍:Watson et al., “An Introduction to CHERI”, Cambridge TR UCAM-CL-TR-941, 2019 PDF: https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-941.pdf
12.3 CHERI 与 RISC-V 的关系
| 对比项 | RISC-V(标准) | RISC-V + CHERI | | — | — | — | | 指针宽度 | 64位 | 128位(能力) | | 内存安全 | 无硬件保证 | 空间+时间安全 | | 隔离机制 | PMP(M-mode 配置) | 细粒度能力隔离(任意粒度) | | 兼容性 | 完全兼容标准 | 需要 ABI 变更 | | 性能开销 | 基准 | ~2× 内存带宽(胖指针) | | 关键优势 | 简洁开放 | 从根本消除内存安全漏洞 |
与 RISC-V Zicfilp/Zicfiss(CFI 扩展)的互补:CFI 防御控制流劫持(ROP/JOP),CHERI 防御任意内存访问——两者结合提供完整防护层次。
12.4 CHERI 时间内存安全(Temporal Safety)
标准 CHERI 提供空间内存安全(防止越界),但 Use-After-Free 等时间内存安全问题需要额外机制:
Cornucopia:通过基于能力撤销(revocation)的垃圾回收机制实现堆的时间内存安全。核心思想:释放内存时不立即清除能力,是周期性地”扫描”内存中所有能力并撤销指向已释放区域的能力——利用 CHERI tag 位可在硬件层做到高效扫描。
论文:Nathaniel Wesley Filardo et al., “Cornucopia: Temporal Safety for CHERI Heaps”, IEEE S&P 2020 IEEE: https://ieeexplore.ieee.org/document/9152613
对 RISC-V 安全研究的启示:CHERI-RISC-V 是研究内存安全的重要参照系,即使在不部署 CHERI 的场景中,其能力模型也为评估 RISC-V PMP/MPU 等隔离机制提供了理论基础。
十三、瞬态执行攻击防御综述
本章系统整理学术界提出的硬件/软件防御方案,帮助理解攻防博弈的全貌。
13.1 防御分类框架
瞬态执行攻击防御方案
├── 软件缓解
│ ├── retpoline(Spectre-v2)
│ ├── KPTI(Meltdown)
│ ├── SSBD / IBRS / STIBP(MSR 控制)
│ ├── RSB 填充(SpectreRSB)
│ └── 常数时间编程(防止泄漏 gadget)
│
├── 硬件微码缓解
│ ├── eIBRS(Intel)/ CSV2(ARM)
│ ├── TSX 禁用(TAA)
│ └── VERW 刷新(MDS)
│
└── 架构级硬件防御方案(学术)
├── 安全推测(推测状态隔离)
├── 无推测架构(STT、NDA)
└── 硬件信息流控制(DAWG、InvisiSpec)
13.2 重要防御论文
安全推测隔离
论文:Dmitry Evtyushkin et al., “SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation”, DAC 2019 ACM DL: https://dl.acm.org/doi/10.1145/3316781.3317903
论文:Mengjia Yan et al., “InvisiSpec: Making Speculative Execution Invisible in the Cache Hierarchy”, MICRO 2018 IEEE: https://ieeexplore.ieee.org/document/8574547
缓存分区隔离(DAWG)
通过动态分区最后一级缓存防止 Prime+Probe 等缓存侧信道,是 Intel CAT 技术的安全强化版。
论文:Vladimir Kiriansky et al., “DAWG: A Defense Against Cache Timing Attacks in Speculative Execution Processors”, MICRO 2018 IEEE: https://ieeexplore.ieee.org/document/8574600
幽灵攻击系统化评估(SoK)
最完整的瞬态执行攻击与防御分类论文,建立了统一的分析框架,是理解整个攻防生态的必读综述。
论文:Claudio Canella et al., “A Systematic Evaluation of Transient Execution Attacks and Defenses”, USENIX Security 2019 arXiv: https://arxiv.org/abs/1811.05441 USENIX: https://www.usenix.org/conference/usenixsecurity19/presentation/canella
STT(推测污点追踪)
在推测执行路径中为所有数据流添加污点标记,推测状态下不允许将污点数据传播到可观测的微架构状态(缓存、TLB 等),直至指令提交(retire)后才解除污点。兼顾安全性与性能——比完全禁用推测执行快得多,且对合法的非秘密数据推测无影响。
论文:Jiyong Yu et al., “Speculative Taint Tracking (STT): A Comprehensive Protection for Speculatively Accessed Data”, MICRO 2019 ACM DL: https://dl.acm.org/doi/10.1145/3352460.3358274
NDA(非干扰性数据访问)
NDA 定义了一种更严格的安全推测执行语义:推测执行产生的微架构副作用必须不干扰(non-interfering)最终提交的程序行为所允许观测到的状态。通过在流水线中传播和强制执行”推测保密性”标签实现,可防御所有已知的 Spectre 类攻击变体。
论文:Ofir Weisse et al., “NDA: Preventing Speculative Execution Attacks at Their Source”, MICRO 2019 ACM DL: https://dl.acm.org/doi/10.1145/3352460.3358306
SpecShield / CleanupSpec(定向清除推测状态)
CleanupSpec 主张仅在错误推测被发现时清除(undo)对缓存的推测性访问,而不阻止推测写入缓存——性能开销比 InvisiSpec 低,但依赖”如果发生错误推测才清除”的假设,仍有窗口期风险。
论文:Gururaj Saileshwar, Moinuddin K. Qureshi, “CleanupSpec: An Undo Approach to Safe Speculation”, MICRO 2019 ACM DL: https://dl.acm.org/doi/10.1145/3352460.3358314
MicroScope(微架构重放攻击)
证明基于重放的微架构攻击可以放大弱侧信道信号,对 OoO RISC-V 处理器(如 C910)同样适用。
论文:Dimitrios Skarlatos et al., “MicroScope: Enabling Microarchitectural Replay Attacks”, ISCA 2019 ACM DL: https://dl.acm.org/doi/10.1145/3307650.3322228
13.3 RISC-V 平台防御现状
| 缓解措施 | x86-64 | AArch64 | RISC-V(当前) | | — | — | — | — | | Spectre-v1 gadget 消除 | 编译器 lfence | 编译器屏障 | 无标准(需手动) | | Spectre-v2 | retpoline + IBRS | CSV2 + BR 刷新 | 无等效机制 (RISC-V 无 IBRS) | | Meltdown | KPTI | 不影响(大多数) | 不影响(大多数) | | Spectre-v4 | SSBD | SSBS | 无标准缓解 (RISC-V 规范未定义 SSB 行为) | | 缓存时序 | Intel CAT + 微码 | — | 无硬件缓存分区 (研究方向) | | 性能计数器侧信道 | PERF 权限控制 | PMU 权限控制 | mcounteren/scounteren (但默认开放) |
关键研究机会:RISC-V 缺乏完整的侧信道防御生态系统,上表中”无标准”的项目均是高价值研究方向。
十四、新型瞬态执行攻击(2022–2025)
本章补充近三年发表的重要新型攻击,聚焦已有缓解措施失效的场景。
14.1 GhostRace(推测性竞争条件)
- CVE:CVE-2024-2193
- 影响:Intel、AMD、ARM、IBM(所有具备推测执行的主流 ISA)
- 原理:依赖条件分支的同步原语(mutex、spinlock 等)可被分支预测器绕过,所有无竞争临界区均可变为”推测性竞争条件”(SRC)。演示了推测性并发 Use-After-Free(SCUAF),在 Linux 内核中找到1283个可利用 gadget,泄漏速率12KB/s
论文:Hany Ragab et al., “GhostRace: Exploiting and Mitigating Speculative Race Conditions”, USENIX Security 2024 USENIX: https://www.usenix.org/conference/usenixsecurity24/presentation/ragab PDF: https://download.vusec.net/papers/ghostrace_sec24.pdf
14.2 Pathfinder(分支历史精细控制)
-
影响:Intel(利用路径历史寄存器 PHR)
-
原理:逆向工程 Intel 条件分支预测器的 PHR(Path History Register),实现两类攻击:
-
演示从 libjpeg 提取秘密图像,从 AES 实现恢复密钥
- 完整程序控制流历史重建
- 高精度 Spectre 攻击(不再依赖随机 gadget,可精确目标化)
论文:Hosein Yavarzadeh et al., “Pathfinder: High-Resolution Control-Flow Attacks Exploiting the Conditional Branch Predictor”, ASPLOS 2024 PDF: https://cseweb.ucsd.edu/~dstefan/pubs/yavarzadeh:2024:pathfinder.pdf GitHub: https://github.com/hoseinyavarzadeh/Pathfinder_Attack
14.3 Inception(AMD Zen 全系列)
已在第四章 AMD 节详述。核心要点:首个绕过 Auto-IBRS 的 AMD 攻击,影响 Zen 1-4 全系列。
论文:Daniël Trujillo et al., “Inception: Exposing New Attack Surfaces with Training in Transient Execution”, USENIX Security 2023 PDF: https://comsec.ethz.ch/wp-content/files/inception_sec23.pdf
12.4 跨 ISA 影响分析
| 攻击 | Intel | AMD | ARM | RISC-V | | — | — | — | — | — | | Spectre v1 | ✓ | ✓ | ✓ | ✓(乱序核) | | Spectre v2 | ✓ | ✓ | ✓ | 部分(有分支预测器的核) | | Meltdown | ✓ | ✗ | 部分 | 未报告 | | MDS | ✓ | ✗ | ✗ | ✗ | | Downfall | ✓(6-11代) | ✗ | ✗ | ✗ | | Inception | ✗ | ✓(Zen全系) | ✗ | ✗ | | GhostRace | ✓ | ✓ | ✓ | 理论上受影响 | | GhostWrite | ✗ | ✗ | ✗ | ✓(T-Head 特定) | | GoFetch | ✗ | ✗ | 部分(Apple实现) | ✗ |
参考资料汇总
规范文档
- RISC-V ISA 规范(官方):https://github.com/riscv/riscv-isa-manual
- RISC-V 特权架构规范:https://github.com/riscv/riscv-isa-manual
关键论文链接索引
| 漏洞/研究 | 来源 | 链接 | | — | — | — | | Meltdown | USENIX Security 2018 | https://arxiv.org/abs/1801.01207 | | Spectre | IEEE S&P 2019 | https://arxiv.org/abs/1801.01203 | | GoFetch | USENIX Security 2024 | https://gofetch.fail/ | | GhostWrite(T-Head C910) | Black Hat 2024 | https://ghostwriteattack.com/ | | A Security RISC(RISC-V 微架构攻击) | IEEE S&P 2023 | https://misc0110.net/web/files/riscv_attacks_sp23.pdf | | RISCVuzz(硬件模糊测试) | ACM CCS 2025 | https://ghostwriteattack.com/riscvuzz.pdf | | RISCover(闭源 RISC-V 漏洞挖掘) | ACM CCS 2025 | https://dl.acm.org/doi/10.1145/3719027.3765141 | | Spectre on BOOM | CARRV 2019 | https://boom-core.org/docs/replicating_mitigating_spectre_carrv19.pdf | | 符号执行验证 RISC-V(DATE 2023) | DATE 2023 | https://ieeexplore.ieee.org/document/10137202 | | RISC-V 安全属性形式化验证(MEMOCODE 2023) | MEMOCODE 2023 | https://dl.acm.org/doi/10.1145/3610579.3611085 | | 特权提升漏洞自动化利用 | JEIT 2025 | https://jeit.ac.cn/article/doi/10.11999/JEIT250362 | | DIFUZZRTL | IEEE S&P 2021 | https://lifeasageek.github.io/papers/jaewon-difuzzrtl.pdf | | INCEPTION(AMD Zen) | USENIX Security 2023 | https://comsec.ethz.ch/wp-content/files/inception_sec23.pdf | | RETBLEED | USENIX Security 2022 | https://comsec.ethz.ch/research/microarch/ | | Hertzbleed | USENIX Security 2022 | https://www.hertzbleed.com/ | | BHI(ARM/Intel) | USENIX Security 2022 | https://www.vusec.net/projects/bhi-spectre-bhb/ | | GPU 侧信道 | ACM CCS 2018 | https://dl.acm.org/doi/10.1145/3243734.3243831 | | LeftoverLocals(GPU 内存泄漏) | Trail of Bits 2024 | https://arxiv.org/html/2401.16603v1 | | RISC-V 侧信道综述 | arXiv 2021 | https://arxiv.org/abs/2106.08877 | | RISC-V 安全综述 | arXiv 2021 | https://arxiv.org/abs/2107.04175 | | MDS 系列攻击 | | | | RIDL(Rogue In-Flight Data Load) | IEEE S&P 2019 | https://mdsattacks.com/files/ridl.pdf | | ZombieLoad(Fill Buffer 泄漏) | ACM CCS 2019 | https://zombieloadattack.com/zombieload.pdf | | Fallout(Store Buffer 泄漏) | ACM CCS 2019 | https://mdsattacks.com/files/fallout.pdf | | Intel/AMD/ARM 漏洞 | | | | Downfall(Intel AVX GDS) | USENIX Security 2023 | https://downfall.page/ | | CrossTalk / SRBDS(跨核泄漏) | IEEE S&P 2021 | https://download.vusec.net/papers/crosstalk_sp21.pdf | | PLATYPUS(RAPL 功耗侧信道) | IEEE S&P 2021 | https://platypusattack.com/ | | SGX-Step(SGX 攻击框架) | SysTEX 2017 | https://github.com/jovanbulck/sgx-step | | Reptar(Intel 冗余前缀) | Intel Advisory 2023 | https://cloud.google.com/blog/products/identity-security/google-researchers-discover-reptar-a-new-cpu-vulnerability | | EntryBleed(KASLR 通用破解) | HASP 2023 | https://www.willsroot.io/2022/12/entrybleed.html | | AMD Prefetch 攻击 | USENIX Security 2022 | https://www.usenix.org/conference/usenixsecurity22/presentation/lipp | | TIKTAG(ARM MTE 绕过) | IEEE S&P 2025 | https://arxiv.org/abs/2406.08719 | | GhostRace(推测性竞争条件) | USENIX Security 2024 | https://download.vusec.net/papers/ghostrace_sec24.pdf | | Pathfinder(PHR 控制流攻击) | ASPLOS 2024 | https://cseweb.ucsd.edu/~dstefan/pubs/yavarzadeh:2024:pathfinder.pdf | | RISC-V TEE 攻击 | | | | Keystone 故障注入绕过 | TCHES 2022 | https://tches.iacr.org/index.php/TCHES/article/view/9289 | | PMP 物理内存别名攻击 | uASC 2026 | https://vanbulck.net/files/uasc26-pmplease.pdf | | DORAMI(TEE 权限分离) | USENIX Security 2025 | https://www.usenix.org/conference/usenixsecurity25/presentation/kuhne | | Sanctum(RISC-V TEE 设计) | USENIX Security 2016 | https://eprint.iacr.org/2015/564.pdf | | SoK: TEE 设计选择与缺陷 | AsiaCCS 2024 | https://dl.acm.org/doi/10.1145/3634737.3644993 | | DRAM 安全 | | | | Rowhammer 原始发现 | ISCA 2014 | https://sites.coecis.cornell.edu/isca50retrospective/files/2023/06/Kim_2014_Flipping.pdf | | Drammer(Android ARM) | ACM CCS 2016 | https://vvdveen.com/publications/drammer.pdf | | TRRespass(TRR 绕过) | IEEE S&P 2020 | https://download.vusec.net/papers/trrespass_sp20.pdf | | Half-Double(两行距离锤击) | Google Blog 2021 | https://security.googleblog.com/2021/05/introducing-half-double-new-hammering.html | | 缓存原语 | | | | Flush+Reload(F+R) | USENIX Security 2014 | https://www.usenix.org/system/files/conference/usenixsecurity14/sec14-paper-yarom.pdf | | Flush+Flush(F+F) | DIMVA 2016 | https://arxiv.org/abs/1511.04594 | | Prime+Scope | ACM CCS 2021 | https://antoonpurnal.github.io/files/pdf/PrimeScope.pdf | | TLBleed(TLB 侧信道) | USENIX Security 2018 | https://www.vusec.net/projects/tlbleed/ | | DRAMA(DRAM 寻址) | USENIX Security 2016 | https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/pessl | | 形式化验证工具 | | | | Sail ISA 语义 | POPL 2019 | https://dl.acm.org/doi/10.1145/3290384 | | Serval(系统代码验证) | SOSP 2019 | https://dl.acm.org/doi/abs/10.1145/3341301.3359641 | | UCLID5 | CAV 2022 | https://link.springer.com/chapter/10.1007/978-3-031-13185-1_27 | | Kami(Coq 硬件验证) | ICFP 2017 | https://dl.acm.org/doi/10.1145/3110268 | | 硬件木马 | | | | RISC-V 硬件木马流片研究 | ACM CF 2021 | https://dl.acm.org/doi/10.1145/3457388.3458869 | | Trojan-D2(后版图木马) | ASP-DAC 2023 | https://ieeexplore.ieee.org/document/10044782 | | 功耗侧信道 RISC-V | | | | CryptRISC(抗 DPA RISC-V) | arXiv 2025 | https://arxiv.org/abs/2602.20285 | | RISC-V 标量密码安全实现 | MDPI Cryptography 2025 | https://www.mdpi.com/2410-387X/10/1/6 | | CVA6-CFI(RISC-V CFI 扩展) | arXiv 2025 | https://arxiv.org/abs/2602.04991 | | RISC-V 模糊测试 | | | | SpecDoctor(瞬态执行 RTL 模糊测试) | ACM CCS 2022 | https://dl.acm.org/doi/10.1145/3548606.3560578 | | TheHuzz(指令模糊测试) | USENIX Security 2022 | https://www.usenix.org/conference/usenixsecurity22/presentation/tyagi | | Cascade(精细程序生成 CPU fuzzer) | USENIX Security 2024 | https://www.usenix.org/conference/usenixsecurity24/presentation/solt | | ProcessorFuzz(基于 CSR 的 fuzzer) | ISCA 2023 | https://dl.acm.org/doi/10.1145/3579371.3589052 | | DirectFuzz(定向 RTL 灰盒 fuzzing) | DAC 2021 | https://dl.acm.org/doi/10.1109/DAC18074.2021.9586289 | | Osiris(侧信道自动发现) | USENIX Security 2021 | https://www.usenix.org/conference/usenixsecurity21/presentation/weber | | Spectre 变体 | | | | SpectreRSB(RSB 投毒,WOOT 2018) | USENIX WOOT 2018 | https://www.usenix.org/system/files/conference/woot18/woot18-paper-koruyeh.pdf | | ret2spec(RSB 独立发现,CCS 2018) | ACM CCS 2018 | https://dl.acm.org/doi/10.1145/3243734.3243761 | | Spectre 系统化评估 SoK(USENIX 2019) | USENIX Security 2019 | https://arxiv.org/abs/1811.05441 | | SoK: Spectre Side Channels(S&P 2021) | IEEE S&P 2021 | https://arxiv.org/abs/2004.01002 | | Cornucopia(CHERI 时间内存安全) | IEEE S&P 2020 | https://ieeexplore.ieee.org/document/9152613 | | 符号执行工具 | | | | KLEESpectre(Spectre 符号执行检测) | ACM TOSEM 2020 | https://dl.acm.org/doi/10.1145/3385897 | | ct-verif(常数时间验证) | USENIX Security 2016 | https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/almeida | | CHERI 架构 | | | | CHERI(能力硬件架构) | IEEE S&P 2015 | https://ieeexplore.ieee.org/document/7163016 | | CHERI-RISC-V 规范 | Cambridge TR 2020 | https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-951.pdf | | 防御方案 | | | | SafeSpec(无泄漏推测执行) | DAC 2019 | https://dl.acm.org/doi/10.1145/3316781.3317903 | | InvisiSpec(不可见推测执行) | MICRO 2018 | https://ieeexplore.ieee.org/document/8574547 | | DAWG(缓存分区防御) | MICRO 2018 | https://ieeexplore.ieee.org/document/8574600 | | MicroScope(微架构重放攻击) | ISCA 2019 | https://dl.acm.org/doi/10.1145/3307650.3322228 | | STT(推测污点追踪) | MICRO 2019 | https://dl.acm.org/doi/10.1145/3352460.3358274 | | NDA(非干扰性数据访问) | MICRO 2019 | https://dl.acm.org/doi/10.1145/3352460.3358306 | | CleanupSpec(撤销推测状态) | MICRO 2019 | https://dl.acm.org/doi/10.1145/3352460.3358314 |
规范文档补充
- RISC-V Debug Specification v1.0: https://github.com/riscv/riscv-debug-spec
- SiFive WorldGuard(专有规范,未公开): https://sifive.com/security
- CHERI 项目主页: https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/
- RISC-V 密码学扩展规范 (Zk*): https://github.com/riscv/riscv-crypto
- OpenTitan(开源硅信任根): https://opentitan.org/
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:攻防SRC 喜吾安璇 喜吾安璇《面向网络空间安全方向的处理器安全入门指南》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论