[论文解读] Taming the War in Memory: A Resilient Mitigation Strategy Against Memory Safety Attacks in CPS
CIMA 是一种轻量级、具有弹性的缓解策略,通过在运行时动态检测并绕过非法内存访问,防止信息物理系统(CPS)中的内存安全攻击,仅带来 8.06% 的开销,即可确保系统可用性和物理状态的弹性。该方法通过基于编译器的控制流转换和运行时监控实现,即使在遭受攻击时也能保持持续运行。
Memory-safety attacks have been one of the most critical threats against computing systems. Although a wide-range of defense techniques have been developed against these attacks, the existing mitigation strategies have several limitations. In particular, most of the existing mitigation approaches are based on aborting or restarting the victim program when a memory-safety attack is detected, thus making the system unavailable. This might not be acceptable in systems with stringent timing constraints, such as cyber-physical systems (CPS), since the system unavailability leaves the control system in an unsafe state. To address this problem, we propose CIMA -- a resilient and light-weight mitigation technique that prevents invalid memory accesses at runtime. CIMA manipulates the compiler-generated control flow graph to automatically detect and bypass unsafe memory accesses at runtime, thereby mitigating memory-safety attacks along the process. An appealing feature of CIMA is that it also ensures system availability and resilience of the CPS even under the presence of memory-safety attacks. To this end, we design our experimental setup based on a realistic Secure Water Treatment (SWaT) and Secure Urban Transportation System (SecUTS) testbeds and evaluate the effectiveness and the efficiency of our approach. The experimental results reveal that CIMA handles memory-safety attacks effectively with low overhead. Moreover, it meets the real-time constraints and physical-state resiliency of the CPS under test.
研究动机与目标
- 解决现有内存安全防御机制的关键局限:即在检测到攻击时中止或重启系统,这会损害时间关键型 CPS 的可用性。
- 通过在内存安全攻击期间维持物理状态稳定性和实时约束,提升 CPS 中的系统弹性。
- 开发一种轻量级、与编译器集成的解决方案,避免检查点或完整系统重启带来的高开销。
- 确保内存安全漏洞不会在安全关键环境中导致系统崩溃或不安全控制状态。
提出的方法
- 在编译器生成的控制流图中插入条件检查,以在每次内存访问前检测非法访问,实现在运行时的检测。
- 当检测到内存访问违规时,CIMA 跳过非法指令而非中止执行,从而保持系统可用性。
- 采用静态编译时插桩与动态运行时监控相结合的混合方法,检测并绕过不安全操作。
- 在主流编译器中转换程序控制流,实现对非法指令的安全绕过,同时不改变功能正确性。
- 利用 AddressSanitizer (ASan) 作为检测后端,识别内存安全错误,而 CIMA 负责通过执行绕过实现缓解。
- 在真实 CPS 测试平台——Open-SWaT 和 Open-SecUTS 上设计并评估该方法,模拟具有严格时序和物理动态约束的工业 SCADA 系统。
实验结果
研究问题
- RQ1是否存在一种缓解策略,能够在不中止或重启系统的情况下检测并处理内存安全攻击,从而在时间关键型 CPS 中保持可用性?
- RQ2基于编译器的运行时绕过机制在多大程度上能够维持 CPS 在内存安全攻击下的物理状态弹性?
- RQ3一种跳过非法指令而非终止执行的运行时缓解策略,其性能开销是多少?
- RQ4该方法在具有严格实时和物理动态约束的真实 CPS 测试平台上的有效性如何?
主要发现
- CIMA 仅以 8.06% 的运行时开销成功缓解了 CPS 中的内存安全攻击,表现出高效率。
- 系统在遭受内存安全攻击时仍能维持实时约束和物理状态弹性,该结论已在 Open-SWaT 和 Open-SecUTS 测试平台上得到验证。
- CIMA 通过跳过非法内存访问而非中止,确保了系统可用性,避免了系统重启引发的不安全状态。
- 该方法在多种 CPS 工作负载中均表现有效,包括水处理和城市交通系统,且性能退化极小。
- CIMA 依赖 ASan 进行检测,因此能够继承并受益于现有内存安全检测工具的持续改进。
- 该解决方案具有通用性和可扩展性,未来可通过使用 CIMA 的运行时报告指导代码修复,实现自动化热修复的集成。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。