Visible to the public Biblio

Filters: Author is Fan, Xiaokang  [Clear All Filters]
2018-06-07
Fan, Xiaokang, Sui, Yulei, Liao, Xiangke, Xue, Jingling.  2017.  Boosting the Precision of Virtual Call Integrity Protection with Partial Pointer Analysis for C++. Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis. :329–340.

We present, VIP, an approach to boosting the precision of Virtual call Integrity Protection for large-scale real-world C++ programs (e.g., Chrome) by using pointer analysis for the first time. VIP introduces two new techniques: (1) a sound and scalable partial pointer analysis for discovering statically the sets of legitimate targets at virtual callsites from separately compiled C++ modules and (2) a lightweight instrumentation technique for performing (virtual call) integrity checks at runtime. VIP raises the bar against vtable hijacking attacks by providing stronger security guarantees than the CHA-based approach with comparable performance overhead. VIP is implemented in LLVM-3.8.0 and evaluated using SPEC programs and Chrome. Statically, VIP protects virtual calls more effectively than CHA by significantly reducing the sets of legitimate targets permitted at 20.3% of the virtual callsites per program, on average. Dynamically, VIP incurs an average (maximum) instrumentation overhead of 0.7% (3.3%), making it practically deployable as part of a compiler tool chain.