Value-based Constraint Control Flow Integrity

Dongjae Jung, Minsu Kim, Jinsoo Jang, Brent Byunghoon Kang
2020 IEEE Access  
Control flow integrity (CFI) is a generic technique that prevents a control flow hijacking attacks by verifying the legitimacy of indirect branches against a predefined set of targets. State-of-theart CFI solutions focus on reducing the number of targets using the context of a program such as the path to the indirect branch and the origin of the code pointer. However, these solutions work with an impractical assumption that the attacker only compromises control data; non-control data such as
more » ... dition data that can also be abused by attackers are not considered. To overcome these limitations, in this paper, we propose value-based constraint CFI (vCFI) to improve the effectiveness of CFI by retrieving and protecting all data that can potentially be manipulated for control flow hijacking. We first perform static analysis such as dependency, condition, and data analyses to derive all control flow-related data. Then, vCFI protects these data during runtime by instrumenting a program to be hardened. We implemented vCFI as a compiler extension and evaluated its performance using SPEC CPU2006. The performance degradation caused by adopting vCFI was reasonable, and the average overhead was 13.6%. INDEX TERMS Control flow hijacking, control flow integrity, non-control data, program analysis.
doi:10.1109/access.2020.2980026 fatcat:wvq3aagonjgddaefgv5vvi3cau