用于控制流完整性的哨兵

主要观点:CHERI 平台有密封入口(sentry)能力,CHERIoT 对此进行了扩展,包括使能和禁用中断的 sentry。但存在可能的攻击,即通过将中断禁用的 sentry 放入返回寄存器并跳转到该 sentry 来形成无限循环。后来 Murali Vijayaraghavan 提出扩展以区分前后向 sentry,经测试大部分工作正常,仅在加载器启动时的一个技巧处需修改,新行为已添加到 CHERIoT Ibex 核心,但在 Arty A7 上出现固件不工作的情况,经检查是加载固件后 ROM 加载器错误使用了 sentry,简单修改后 CFI 方案得以正常工作。
关键信息

  • CHERI 平台的 sealed entry 及相关机制。
  • CHERIoT 对 sentry 的扩展及作用。
  • 可能的攻击方式及影响。
  • Murali Vijayaraghavan 的扩展提议及解释。
  • 测试情况及在 Arty A7 上的问题及解决。
    重要细节
  • 跳转到密封能力会解封该能力,中断禁用遵循结构化编程模式等。
  • 不同指令对 sentry 的使用规定,如cjr用于返回等。
  • 加载器在 Arty A7 上的错误操作及导致的问题。
阅读 30
0 条评论