Although Control-Flow Integrity (CFI) presents a powerful software defense paradigm, it requires a significant runtime overhead in practice. The traditional coarse-grained CFI solutions such as Microsoft's Enhanced Mitigation Experience Toolkit (EMET) address this issue by compromising the security enforced by the original CFI. Unfortunately, though, due to its relaxed policy, new types of exploits have been emerging lately. In this thesis, we present RecurFI, a novel coarse-grained CFI solution that proposes a new sweet spot between security and performance. We define the CFI policies by capturing the general pattern of normal execution and examine recursively whether execution of the protected process satisfy the CFI policies or not. We show that RecurFI can detect all the exploits in our experiment with less than 2% runtime overhead on average.
갈수록 진화하는 해킹 공격에 대응하기 위해 등장한 제어흐름 무결성 기술은 강력한 소프트웨어 방어의 패러다임을 제시하였지만, 막중한 오버헤드로 인해 실제로 적용하는 데에는 많은 한계가 있었다. 최근 들어 이러한 제어흐름 무결성 기술의 안전성과 성능을 절충하는 다양한 실용적 기술이 등장하였는데, 그 한 예로 MS가 2012년도에 공개한 EMET(Enhanced Mitigation Experience Toolkit)가 있다. 하지만 이를 위협하는 새로운 공격기법들 또한 등장하고 있으며, 이러한 공격을 효율적으로 방어하는 바이너리 기반의 시스템은 아직까지 실용화되지 못하였다. 본 논문에서는 제어흐름 무결성 기술을 우회하는 최신의 공격 기법을 효과적으로 방어할 수 있는 바이너리 기반의 새로운 공격 탐지 시스템인 RecurFI를 제시한다. RecurFI는 어떠한 어플리케이션에도 적용이 가능하며, SPEC 벤치마크를 통해 그 효율성(평균 2%미만의 오버헤드)을 입증하였다.