Cruiser: Concurrent heap buffer overflow monitoring using lock-free data structures

Qiang Zeng, Dinghao Wu, Peng Liu

Research output: Chapter in Book/Report/Conference proceedingConference contribution

35 Scopus citations

Abstract

Security enforcement inlined into user threads often delays the protected programs; inlined resource reclamation may interrupt program execution and defer resource release. We propose software cruising, a novel technique that migrates security enforcement and resource reclamation from user threads to a concurrent monitor thread. The technique leverages the increasingly popular multicore and multiprocessor architectures and uses lock-free data structures to achieve non-blocking and efficient synchronization between the monitor and user threads. As a case study, software cruising is applied to the heap buffer overflow problem. Previous mitigation and detection techniques for this problem suffer from high performance overhead, legacy code compatibility, semantics loyalty, or tedious manual program transformation. We present a concurrent heap buffer overflow detector, Cruiser, in which a concurrent thread is added to the user program to monitor heap integrity, and custom lock-free data structures and algorithms are designed to achieve high efficiency and scalability. The experiments show that our approach is practical: it imposes an average of 5% performance overhead on SPEC CPU2006, and the throughput slowdown on Apache is negligible on average.

Original languageEnglish (US)
Title of host publicationPLDI'11 - Proceedings of the 2011 ACM Conference on Programming Language Design and Implementation
PublisherAssociation for Computing Machinery
Pages367-377
Number of pages11
ISBN (Print)9781450306638
DOIs
StatePublished - 2011
Event32nd ACM Conference on Programming Language Design and Implementation, PLDI 2011 - San Jose, United States
Duration: Jun 4 2011Jun 8 2011

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

Conference

Conference32nd ACM Conference on Programming Language Design and Implementation, PLDI 2011
Country/TerritoryUnited States
CitySan Jose
Period6/4/116/8/11

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

Dive into the research topics of 'Cruiser: Concurrent heap buffer overflow monitoring using lock-free data structures'. Together they form a unique fingerprint.

Cite this