In the existing software development ecosystem, security issues introduced by third-party code cannot be overlooked. Among these security concerns, memory access vulnerabilities stand out prominently, leading to risks such as the theft or tampering of sensitive data. To address this issue, software-based defense mechanisms have been established at the programming language, compiler, and operating system levels. However, as a trade-off, these mechanisms significantly reduce software execution efficiency. Hardware-software co-design approaches have sought to either construct entirely isolated trusted execution environments or attempt to partition security domains within the same address space. While such approaches enhance efficiency compared to pure software methods, they also encounter challenges related to granularity of protection, performance overhead, and portability. In response to these challenges, we present the DASICS (Dynamic in-Address-Space Isolation by Code Segments) secure processor design, which offers dynamic and flexible security protection across multiple privilege levels, addressing data flow protection, control flow protection, and secure system calls. We have implemented hardware FPGA prototypes and software QEMU simulator prototypes based on DASICS, along with necessary modifications to system software for adaptability. We illustrate the protective mechanisms and effectiveness of DASICS with two practical examples and provide potential real-world use cases where DASICS could be applied.
翻译:在现有软件开发生态系统中,第三方代码引入的安全问题不容忽视。其中,内存访问漏洞尤为突出,可能导致敏感数据窃取或篡改等风险。针对此问题,编程语言、编译器和操作系统层面已建立了基于软件的防御机制。然而,作为权衡,这些机制会显著降低软件执行效率。软硬件协同设计方法试图构建完全隔离的可信执行环境,或尝试在同一地址空间内划分安全域。虽然与纯软件方法相比,此类方法提升了效率,但也面临保护粒度、性能开销和可移植性方面的挑战。为应对这些挑战,我们提出了DASICS(基于代码段的动态地址空间内隔离)安全处理器设计方案,该方案在多个特权级提供动态灵活的安全保护,涵盖数据流保护、控制流保护及安全系统调用。我们基于DASICS实现了硬件FPGA原型和软件QEMU模拟器原型,并对系统软件进行了必要修改以实现适配。通过两个实际示例,我们展示了DASICS的保护机制及其有效性,并给出了DASICS可能应用的潜在现实场景。