CHERI 神话:CHERI 与安全关键系统不兼容

主要观点:有人称 CHERI 因捕获内存安全错误而不能用于安全关键系统,实则是误解。内存安全错误很糟糕,会导致“远距离幽灵行为”等问题,影响优化和机器指令生成,可能引发各种不确定行为。MISRA C 规则 1.3 禁止程序包含未定义行为,符合该规则的程序通常不会触发 CHERI 陷阱。CHERI 可在安全语言的不安全方言等情况下强化属性。对于内存安全错误的不同情况,CHERI 有不同影响,在某些情况下能提前捕获错误,改善情况。CHERIoT RTOS 提供三种处理 CHERI 失败的方式,对于无状态隔间,最后一种方式较合适,对于“良性”错误可通过第一种方式处理,中间方式常与longjmp结合使用,需注意相关规则和问题。CHERI 及 CHERIoT 为构建高可用性和混合完整性系统提供很多工具。

关键信息:

  • 内存安全错误的严重后果,如可导致特权提升等。
  • MISRA C 规则及与 CHERI 的关系。
  • CHERI 对不同内存安全错误情况的影响。
  • CHERIoT RTOS 的三种错误处理方式及适用场景。

重要细节:

  • 早期 UNIX 错误示例,说明逻辑错误与内存安全错误的区别。
  • 编译器对内存安全错误的假设及优化行为。
  • MISRA C 代码中存在豁免情况及示例。
  • CHERI 使确定性“良性”内存安全错误在生产中更易捕获。
  • CHERIoT 中不同错误处理方式的具体操作及注意事项。
  • 一些高保证系统的重置机制及 CHERIoT 的相关应用。
阅读 8
0 条评论