CSP 大作业选题 – 体系结构支撑的系统安全增强
主流处理器硬件,如ARM、AMD、Intel、RISC-V都分别提出了自己的安全硬件特性,即TrustZone、SEV、SGX和PMP。本作业要求大家理解现有硬件安全扩展特性(必选),提出自己的硬件扩展并进行分析和模拟实现(可选),从而能够真正地理解硬件架构与操作系统间的互相支撑和关联。具体来说,完成该作业包括如下三个步骤和一个可选步骤:
- 对AMD SEV-SNP和Intel TDX两种技术进行横向的比较和分析。需要包含:
- 各自的威胁模型和保护粒度(例如SEV和TDX均为保护虚拟机)
- 保证的安全属性和能够防御的一些具体攻击
- 性能、可扩展性(scalability)、灵活性等分析
- 各自的优势和不足(至少包含两点)
- 基于RISC-V架构的PMP方案(见参考资料[2]),提出自己的架构扩展来优化在上述分析中的不足点,可以考虑的思路包括(可以选择其他方向,但是必须结合分析的不足点来设计):
- 在IoT场景中,没有页表情况下,只有PMP是否足够隔离?
- 现有如页表的隔离,允许在某些情况下阻止特权软件对于用户的访问,如 x86下的SMAP (Supervisor Mode Access Prevention)技术。如何在PMP方案或者类似方案下支持SMAP或者类似的SMEP?
- PMP只能保证内存隔离,如何保证如DMA这样的IO相关的访问?(参考Intel IOMMU方案)
- 隔离无法防御代码本身的Bug,考虑硬件支持的CFI(control-flow-integrity),DFI(data-flow-integrity)等保护?
- 基于缓存的旁路攻击(Cache-based side channel attacks)是现在硬件安全扩展系统的主要问题,如何缓解?
- 上述方案与Keystone相比有哪些优势和不足?
- (可选)选择模拟器或者FPGA进行模拟实现,并且分析其安全性和性能。RISC-V是一个开源的指令集推荐,拥有良好的生态允许架构扩展,在RISC-V架构下可以选择的模拟器如Spike[4]、Qemu[5]、Verilator,FPGA可以基于RocketChip[6]进行。其他模拟方式(如GEM5[7]),或者其他架构(如x86)也可以。注意:尽量控制自己的实现在500LoC内。
参考资料:
- KeyStone:https://arxiv.org/pdf/1907.10119.pdf, https://keystone-enclave.org/
- RISC-V specification:https://riscv.org/specifications/
- Intel IOMMU: https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt
- Spike: https://github.com/riscv/riscv-isa-sim
- Qemu: https://www.qemu.org/
- RocketChip: https://github.com/chipsalliance/rocket-chip
- GEM5: http://gem5.org/Main_Page
- AMD SEV-SNP: https://www.amd.com/system/files/TechDocs/SEV-SNP-strengthening-vm-isolation-with-integrity-protection-and-more.pdf
- Intel TDX: https://software.intel.com/content/dam/develop/external/us/en/documents/tdx-whitepaper-final9-17.pdf
- 参考论文1:Sanctum: Minimal Hardware Extensions for Strong Software Isolation, USENIX
- 参考论文2:Regaining lost cycles with HotCalls: A fast interface for SGX secure enclaves, ISCA
- 参考论文3:SANCTUARY: ARMing TrustZone with User-space Enclaves