首页> 外文期刊>Very Large Scale Integration (VLSI) Systems, IEEE Transactions on >A Fine-Grained Control Flow Integrity Approach Against Runtime Memory Attacks for Embedded Systems
【24h】

A Fine-Grained Control Flow Integrity Approach Against Runtime Memory Attacks for Embedded Systems

机译:针对嵌入式系统运行时内存攻击的细粒度控制流完整性方法

获取原文
获取原文并翻译 | 示例

摘要

Runtime attacks on memory, such as buffer overflow based stack smashing and code reuse attacks, are common in embedded systems. Control flow integrity (CFI) has been acknowledged as one promising approach to protect against such runtime attacks. However, previous CFI implementations suffer from coarse granularity (which can be circumvented by an advanced attack model) and high-performance overhead. In this paper, first, we present an approach to enforce fine-grained CFI at a basic block level, named basic block CFI (BB-CFI), which aims to defend against aforesaid attacks. The key idea is to verify the target address (TA) of control flow instructions (CFINs) (e.g., call, ret, and imp), which may be modified by the adversary. BB-CFI contains two stages: 1) offline profiling of the program-to extract the control flow information and 2) runtime control flow checking-to verify the TA of CFINs using the extracted information. We also handle the exceptional cases (e.g., multithreading, C++ exception, and longjump) that are found in complex binaries. Second, we propose an architectural design of control flow checker (CFC), which monitors the program execution during runtime to enforce BB-CFI. For proof of concept, we implement the CFC in field-programmable gate array (FPGA). Our method does not require the modification of the source code or the instruction set architecture. The experimental results demonstrate that BB-CFI is effective against runtime attacks, with 100% verification accuracy. The CFC implementation on FPGA shows <;1% performance overhead and a small dynamic power consumption of 78 mW, with very small area footprint.
机译:对内存的运行时攻击,例如基于缓冲区溢出的堆栈破坏和代码重用攻击,在嵌入式系统中很常见。控制流完整性(CFI)已被公认为是防范此类运行时攻击的一种有前途的方法。但是,以前的CFI实现会遇到粗粒度(可以由高级攻击模型规避)和高性能开销的问题。在本文中,首先,我们提出了一种在基本块级别上强制执行细粒度CFI的方法,称为基本块CFI(BB-CFI),其目的是防御上述攻击。关键思想是验证控制流指令(CFIN)(例如,call,ret和imp)的目标地址(TA),该目标地址可能会被对手修改。 BB-CFI包含两个阶段:1)离线分析程序-提取控制流信息; 2)运行时控制流检查-使用提取的信息验证CFIN的TA。我们还处理在复杂二进制文件中发现的特殊情况(例如,多线程,C ++异常和longjump)。其次,我们提出了控制流检查器(CFC)的体系结构设计,该结构可以在运行时监视程序执行以实施BB-CFI。为了进行概念验证,我们在现场可编程门阵列(FPGA)中实现了CFC。我们的方法不需要修改源代码或指令集体系结构。实验结果表明,BB-CFI可以有效地抵御运行时攻击,并具有100%的验证准确性。 FPGA上的CFC实施显示了不到1%的性能开销和78 mW的小动态功耗,且占地面积非常小。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号