Visible to the public Boosting the Precision of Virtual Call Integrity Protection with Partial Pointer Analysis for C++

TitleBoosting the Precision of Virtual Call Integrity Protection with Partial Pointer Analysis for C++
Publication TypeConference Paper
Year of Publication2017
AuthorsFan, Xiaokang, Sui, Yulei, Liao, Xiangke, Xue, Jingling
Conference NameProceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis
PublisherACM
Conference LocationNew York, NY, USA
ISBN Number978-1-4503-5076-1
KeywordsCFI, composability, Metrics, object oriented security, Pointer Analysis, pubcrawl, resilience, Resiliency, VTable Hijacking Attacks
Abstract

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.

URLhttp://doi.acm.org/10.1145/3092703.3092729
DOI10.1145/3092703.3092729
Citation Keyfan_boosting_2017