Abstract
Use-after-free vulnerabilities due to dangling pointers are an important and growing threat to systems security. While various solutions exist to address this problem, none of them is sufficiently practical for real-world adoption. Some can be bypassed by attackers, others cannot support complex multithreaded applications prone to dangling pointers, and the remainder have prohibitively high overhead. One major source of overhead is the need to synchronize threads on every pointer write due to pointer tracking. In this paper, we present DangSan, a use-after-free detection system that scales efficiently to large numbers of pointer writes as well as to many concurrent threads. To significantly reduce the overhead of existing solutions, we observe that pointer tracking is write-intensive but requires very few reads. Moreover, there is no need for strong consistency guarantees as inconsistencies can be reconciled at read (i.e., object deallocation) time. Building on these intuitions, DangSan's design mimics that of log-structured file systems, which are ideally suited for similar workloads. Our results show that DangSan can run heavily multithreaded applications, while introducing only half the overhead of previous multithreaded use-after-free detectors.
Original language | English |
---|---|
Title of host publication | EuroSys '17 |
Subtitle of host publication | Proceedings of the Twelfth European Conference on Computer Systems |
Publisher | Association for Computing Machinery, Inc |
Pages | 405-419 |
Number of pages | 15 |
ISBN (Electronic) | 9781450349383 |
DOIs | |
Publication status | Published - Apr 2017 |
Event | 12th European Conference on Computer Systems, EuroSys 2017 - Belgrade, Serbia Duration: 23 Apr 2017 → 26 Apr 2017 |
Conference
Conference | 12th European Conference on Computer Systems, EuroSys 2017 |
---|---|
Country/Territory | Serbia |
City | Belgrade |
Period | 23/04/17 → 26/04/17 |
Funding
This work was supported by the European Commission through project H2020 ICT-32-2014 "SHARCS" under Grant Agreement No. 64457 and the Netherlands Organisation for Scientific Research through grant NWO 639.023.309 VICI "Dowsing".
Funders | Funder number |
---|---|
Horizon 2020 Framework Programme | 644571 |
European Commission | 64457, H2020 ICT-32-2014 |
Nederlandse Organisatie voor Wetenschappelijk Onderzoek | 639.023.309 |
Keywords
- Dangling pointers
- LLVM
- Use-after-free