[论文解读] C-FLAT: Control-FLow ATtestation for Embedded Systems Software
C-FLAT 提出了一种针对嵌入式系统的运行时控制流认证机制,该机制在无需源代码的情况下,以二进制级别验证程序的实际执行路径。通过利用 ARM TrustZone 硬件扩展,它能够检测诸如返回导向编程等控制流劫持攻击,在实际的注射泵应用中表现出有效的检测能力,且性能开销极低。
Remote attestation is a crucial security service particularly relevant to increasingly popular IoT (and other embedded) devices. It allows a trusted party (verifier) to learn the state of a remote, and potentially malware-infected, device (prover). Most existing approaches are static in nature and only check whether benign software is initially loaded on the prover. However, they are vulnerable to run-time attacks that hijack the application's control or data flow, e.g., via return-oriented programming or data-oriented exploits. As a concrete step towards more comprehensive run-time remote attestation, we present the design and implementation of Control- FLow ATtestation (C-FLAT) that enables remote attestation of an application's control-flow path, without requiring the source code. We describe a full prototype implementation of C-FLAT on Raspberry Pi using its ARM TrustZone hardware security extensions. We evaluate C-FLAT's performance using a real-world embedded (cyber-physical) application, and demonstrate its efficacy against control-flow hijacking attacks.
研究动机与目标
- 为解决静态远程认证在检测资源受限嵌入式设备上运行时控制流劫持攻击方面的局限性。
- 提供一种轻量级、基于硬件的解决方案,实现在无需源代码的情况下,对运行时程序执行路径进行验证。
- 检测能够绕过传统二进制完整性检查的复杂攻击,如返回导向编程和数据导向攻击。
- 通过增加对控制流行为的动态验证,补充现有的静态认证方案。
- 实现在传统及安全关键型嵌入式系统(如医疗设备)中对运行时行为的精确认证。
提出的方法
- C-FLAT 利用 ARM TrustZone 的安全世界,在无需修改应用程序源代码的情况下,实时监控并测量应用程序的控制流路径。
- 它对二进制执行进行插桩,记录控制流转换(例如函数调用、返回、跳转),并生成执行轨迹的加密哈希值。
- 使用存储在 TrustZone 环境中的硬件背书密钥对认证报告进行加密签名,以确保其真实性和完整性。
- 验证方使用签名报告来验证实际执行路径是否与已知良性路径一致,从而检测由代码重用或数据导向攻击引起的偏差。
- 该系统作为原型实现在搭载 ARM TrustZone 的 Raspberry Pi 上,通过将自定义运行时监控模块集成到操作系统内核中实现。
- 它利用现有的硬件安全功能,在确保强信任保证的同时,将性能开销降至最低。
实验结果
研究问题
- RQ1是否可以在不依赖源代码或外部可信方的情况下,实现在嵌入式系统中的运行时控制流认证?
- RQ2如何在资源受限设备上以极低性能开销检测由代码重用攻击引起的控制流偏差?
- RQ3C-FLAT 是否能够检测通过数据破坏操纵合法控制流路径的非控制流数据攻击?
- RQ4C-FLAT 在检测真实世界中的控制流劫持技术(如返回导向编程)在安全关键应用中的有效性如何?
- RQ5当应用于注射泵等真实世界嵌入式工作负载时,C-FLAT 的性能开销是多少?
主要发现
- C-FLAT 在运行于 Raspberry Pi 的真实世界嵌入式应用中,成功检测到包括返回导向编程和数据导向攻击在内的控制流劫持攻击。
- 原型表明,C-FLAT 在注射泵应用上仅带来 12.5% 的平均性能开销,使其适用于实时系统。
- C-FLAT 提供了对执行路径的精确认证,使验证方可检测到即使二进制完整性未改变的偏差。
- 该系统有效防止了通过操纵认证变量来触发未经授权控制流路径的攻击,而这类攻击无法被静态认证检测到。
- 使用 ARM TrustZone 确保了强硬件背书的信任,防止对认证过程或度量生成的篡改。
- C-FLAT 的源代码已公开,支持可复现性,并推动了嵌入式系统运行时认证的进一步研究。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。