Boosting the Precision of Virtual Call Integrity Protection with Partial Pointer Analysis for C++
Title | Boosting the Precision of Virtual Call Integrity Protection with Partial Pointer Analysis for C++ |
Publication Type | Conference Paper |
Year of Publication | 2017 |
Authors | Fan, Xiaokang, Sui, Yulei, Liao, Xiangke, Xue, Jingling |
Conference Name | Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis |
Publisher | ACM |
Conference Location | New York, NY, USA |
ISBN Number | 978-1-4503-5076-1 |
Keywords | CFI, 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. |
URL | http://doi.acm.org/10.1145/3092703.3092729 |
DOI | 10.1145/3092703.3092729 |
Citation Key | fan_boosting_2017 |