主页 / 安全论文每日读 / Code-Pointer Integrity
  • 作者
    GoSSIP @ LoCCS.Shanghai Jiao Tong University
  • 标签
  • 简介

    Code-Pointer Integrity是一篇发表在OSDI‘14会议上的论文 。文中提出了一种新的防御思想:CPI,保证所有代码指针(函数指针,保存的返回地址)的完整性,可以抵挡ROP等控制流劫持的攻击

    摘要

    文中提出了一种新的防御思想:CPI,保证所有代码指针(函数指针,保存的返回地址)的完整性。同样可以抵挡ROP等控制流劫持的攻击,并且针对于年初的几篇专门针对CFI的攻击,也能成功防御住。同时文中还提出了一种相对条件更宽松的CPS,更加高效,不过是通过放松了条件限制实现的,能达到类似的防御效果。CPI和CPS防御比CFI更加高效,可实践性更强,作者已经把原型放到网上,并集成到LLVM中作为一个编译选项,还计划将这个防御提交到llvm的upstream上去。

    CPI是精确的,对于程序中所有的代码指针都能确保内存的安全性。核心思想是将进程内存划分为安全区域和常规区域。通过静态分析的方法找出程序中所有需要保护的内存对象(所以这是需要在有源码的基础上,在编译时对指针访问进行插桩,尽管不需要对源码进行修改),借此来达成保证所有代码指针的内存安全的目的。

    • 安全区:只有编译时证明安全或者运行时经过动态安全监测的内存操作,才能对安全区域进行访问。
    • 常规区:无需任何运行时动态检查,只需像未添加保护时那样访问内存即可,故不会带来额外开销。
  • 援引
    http://www.securitygossip.com/blog/2016/03/30/2016-03-30/
  • 提示
    本站仅做资料的整理和索引,转载引用请注明出处
附件下载
  • Code.Pointer.Integrity.阅读笔记.pdf
    时间: 大小: 0.29 M 下载: 56
  • Code.Pointer.Integrity.pdf
    时间: 大小: 0.47 M 下载: 18