针对影子栈难以兼顾安全性和性能,软件实现的前向CFI(control-flow integrity)技术性能开销过大、难以进行实际部署,提出基于软硬件结合的CFI(control-flow integrity based on the combination of software and hardware,SHCFI)技术。...针对影子栈难以兼顾安全性和性能,软件实现的前向CFI(control-flow integrity)技术性能开销过大、难以进行实际部署,提出基于软硬件结合的CFI(control-flow integrity based on the combination of software and hardware,SHCFI)技术。通过二进制重写器对程序反编译,生成中间语言,并判断转移指令类型。对于后向控制流的保护,提出基于返回地址加密的平行影子栈方案,使用随机数对栈上的返回地址进行异或加密,将加密结果备份到原始栈固定偏移处的影子栈中,在函数返回时对影子栈中的地址异或解密,将解密结果作为实际的返回地址。对于前向控制流的保护,使用硬件ENDBRANCH状态机指令标记间接转移指令的目标地址,在运行时对目标地址进行合法性检查,以降低性能开销。实验结果表明,SHCFI加固后的程序能够有效地防御代码重用攻击,且具有良好的运行开销。展开更多
基于内存篡改的攻击能够恶意地修改程序执行环境的关键数据,给程序提供一个安全可信的执行环境是抑制恶意软件的有效手段。本文提出了一种基于软硬件协同的解决方案,能够以函数调用为粒度,为程序执行提供相对隔离的安全执行环境。为了...基于内存篡改的攻击能够恶意地修改程序执行环境的关键数据,给程序提供一个安全可信的执行环境是抑制恶意软件的有效手段。本文提出了一种基于软硬件协同的解决方案,能够以函数调用为粒度,为程序执行提供相对隔离的安全执行环境。为了配合软件,在底层提供了2大硬件支撑:load/store指令在访存时都要进行地址检查,同时也设置了访问属性;在硬件页表上增加了函数调用隔离域(CFID),在TLB转换时进行安全隔离的检查。提供了2种不同场合的数据共享访问策略,在GEM5上实现了原型系统,通过运行安全测试集,能够有效地隔离非安全环境。相比于虚拟机和特权级切换的方法,本文的硬件实现几乎没有切换损耗。在SPEC CPU 2006的测试集中,本文提出的硬件隔离机制总体性能损耗低于3%。展开更多
文摘针对影子栈难以兼顾安全性和性能,软件实现的前向CFI(control-flow integrity)技术性能开销过大、难以进行实际部署,提出基于软硬件结合的CFI(control-flow integrity based on the combination of software and hardware,SHCFI)技术。通过二进制重写器对程序反编译,生成中间语言,并判断转移指令类型。对于后向控制流的保护,提出基于返回地址加密的平行影子栈方案,使用随机数对栈上的返回地址进行异或加密,将加密结果备份到原始栈固定偏移处的影子栈中,在函数返回时对影子栈中的地址异或解密,将解密结果作为实际的返回地址。对于前向控制流的保护,使用硬件ENDBRANCH状态机指令标记间接转移指令的目标地址,在运行时对目标地址进行合法性检查,以降低性能开销。实验结果表明,SHCFI加固后的程序能够有效地防御代码重用攻击,且具有良好的运行开销。
文摘基于内存篡改的攻击能够恶意地修改程序执行环境的关键数据,给程序提供一个安全可信的执行环境是抑制恶意软件的有效手段。本文提出了一种基于软硬件协同的解决方案,能够以函数调用为粒度,为程序执行提供相对隔离的安全执行环境。为了配合软件,在底层提供了2大硬件支撑:load/store指令在访存时都要进行地址检查,同时也设置了访问属性;在硬件页表上增加了函数调用隔离域(CFID),在TLB转换时进行安全隔离的检查。提供了2种不同场合的数据共享访问策略,在GEM5上实现了原型系统,通过运行安全测试集,能够有效地隔离非安全环境。相比于虚拟机和特权级切换的方法,本文的硬件实现几乎没有切换损耗。在SPEC CPU 2006的测试集中,本文提出的硬件隔离机制总体性能损耗低于3%。