Per-Input Control-Flow Integrity

CCS(2015)

引用 215|浏览152
暂无评分
摘要
Control-Flow Integrity (CFI) is an effective approach to mitigating control-flow hijacking attacks. Conventional CFI techniques statically extract a control-flow graph (CFG) from a program and instrument the program to enforce that CFG. The statically generated CFG includes all edges for all possible inputs; however, for a concrete input, the CFG may include many unnecessary edges.We present Per-Input Control-Flow Integrity (PICFI or pi CFI), which is a new CFI technique that can enforce a CFG computed for each concrete input. pi CFI starts executing a program with the empty CFG and lets the program itself lazily add edges to the enforced CFG if such edges are required for the concrete input. The edge addition is performed by pi CFI-inserted instrumentation code. To prevent attackers from arbitrarily adding edges, pi CFI uses a statically computed all-input CFG to constrain what edges can be added at runtime. To minimize performance overhead, operations for adding edges are designed to be idempotent, so they can be patched to no-ops after their first execution. As our evaluation shows, pi CFI provides better security than conventional fine-grained CFI with comparable performance overhead.
更多
查看译文
关键词
Control-Flow Integrity,Dynamic CFI
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要