Recent IoT applications gradually adapt more complicated end systems with commodity software. Ensuring the runtime integrity of these software is a challenging task for the remote controller or cloud services. Popular enforcement is the runtime remote attestation which requires the end system (prover) to generate evidence for its runtime behavior and a remote trusted verifier to attest the evidence. Control-flow attestation is a kind of runtime attestation that provides diagnoses towards the remote control-flow hijacking at the prover. Most of these attestation approaches focus on small or embedded software. The recent advance to attesting complicated software depends on the source code and execution-profiling CFG to measure the subpaths, which may be incomplete and unavailable for commodity software. In this work, we propose a resilient control-flow attestation (ReCFA), which does not need the offline measurement of all legitimate control-flow paths, thus scalable to be used on complicated commodity software. Our main contribution is a multi-phase approach to condensing the runtime control-flow events; as a result, the vast amount of control-flow events are abstracted into a deliverable size. The condensing approach consists of filtering skippable call sites, folding program-structure related control-flow events, and a greedy compression. Our approach is implemented with binary-level static analysis and instrumentation. We employ a shadow stack mechanism at the verifier to enforce context-sensitive control-flow integrity and diagnose the compromised control-flow events violating the security policy. The experimental results on real-world benchmarks show both the efficiency of the control-flow condensing and the effectiveness of security enforcement.
翻译:最近的 IOT 应用程序将逐渐用商品软件调整更复杂的终端系统。 确保这些软件的运行时间完整性对于远程控制器或云层服务来说是一项艰巨的任务。 大众执法是一种运行时间远程验证,要求终端系统( 模拟) 为其运行时间行为生成证据,而远程信任核查者则证明证据。 控制流程验证是一种运行时间验证,为验证器的远程控制流程劫持提供诊断。 这些验证方法大多侧重于小型或嵌入软件。 测试复杂软件的最近进展取决于源代码和执行任务定位 CFG 来测量亚路径,而这可能不完整,而且商品软件也无法获得。 在这项工作中,我们提出一个具有弹性的控制流程证明(REFA ),它不需要对所有合法控制流程进行脱线测量,因此可以在复杂的商品软件中使用。 我们的主要贡献是多阶段方法, 将运行时间控制流程的事件压缩; 结果, 大量控制流程事件将抽象化成可交付的源代码, 而对于商品软件来说可能是不完整的。 在这项工作中,我们提出的控制流程弹性控制程序包括了我们安全稳定流程的递增流程的流程分析。