CSP 大作业选题 – 体系结构支撑的系统安全增强

主流处理器硬件,如ARM、AMD、Intel、RISC-V都分别提出了自己的安全硬件特性,即TrustZone、SEV、SGX和PMP。本作业要求大家理解现有硬件安全扩展特性(必选),提出自己的硬件扩展并进行分析和模拟实现(可选),从而能够真正地理解硬件架构与操作系统间的互相支撑和关联。具体来说,完成该作业包括如下三个步骤和一个可选步骤:

  1. 对AMD SEV-SNP和Intel TDX两种技术进行横向的比较和分析。需要包含:
  2. 基于RISC-V架构的PMP方案(见参考资料[2]),提出自己的架构扩展来优化在上述分析中的不足点,可以考虑的思路包括(可以选择其他方向,但是必须结合分析的不足点来设计):
    1. 在IoT场景中,没有页表情况下,只有PMP是否足够隔离?
    2. 现有如页表的隔离,允许在某些情况下阻止特权软件对于用户的访问,如 x86下的SMAP (Supervisor Mode Access Prevention)技术。如何在PMP方案或者类似方案下支持SMAP或者类似的SMEP?
    3. PMP只能保证内存隔离,如何保证如DMA这样的IO相关的访问?(参考Intel IOMMU方案)
    4. 隔离无法防御代码本身的Bug,考虑硬件支持的CFI(control-flow-integrity),DFI(data-flow-integrity)等保护?
    5. 基于缓存的旁路攻击(Cache-based side channel attacks)是现在硬件安全扩展系统的主要问题,如何缓解?
    6. 上述方案与Keystone相比有哪些优势和不足?
  3. (可选)选择模拟器或者FPGA进行模拟实现,并且分析其安全性和性能。RISC-V是一个开源的指令集推荐,拥有良好的生态允许架构扩展,在RISC-V架构下可以选择的模拟器如Spike[4]、Qemu[5]、Verilator,FPGA可以基于RocketChip[6]进行。其他模拟方式(如GEM5[7]),或者其他架构(如x86)也可以。注意:尽量控制自己的实现在500LoC内。

参考资料:

  1. KeyStone:https://arxiv.org/pdf/1907.10119.pdf, https://keystone-enclave.org/
  2. RISC-V specification:https://riscv.org/specifications/
  3. Intel IOMMU: https://www.kernel.org/doc/Documentation/Intel-IOMMU.txt
  4. Spike: https://github.com/riscv/riscv-isa-sim
  5. Qemu: https://www.qemu.org/
  6. RocketChip: https://github.com/chipsalliance/rocket-chip
  7. GEM5: http://gem5.org/Main_Page
  8. AMD SEV-SNP: https://www.amd.com/system/files/TechDocs/SEV-SNP-strengthening-vm-isolation-with-integrity-protection-and-more.pdf
  9. Intel TDX: https://software.intel.com/content/dam/develop/external/us/en/documents/tdx-whitepaper-final9-17.pdf
  10. 参考论文1:Sanctum: Minimal Hardware Extensions for Strong Software Isolation, USENIX
  11. 参考论文2:Regaining lost cycles with HotCalls: A fast interface for SGX secure enclaves, ISCA
  12. 参考论文3:SANCTUARY: ARMing TrustZone with User-space Enclaves