Runtime Detection of Memory Errors with Smart Status
Sat 17 Jul 2021 09:30 - 09:50 at ISSTA 2 - Session 28 (time band 3) Fuzzing and Runtime Analysis Chair(s): Michaël Marcozzi
C is a dominant language for implementing system software. Unfortunately, its support for low-level control of memory often leads to memory errors. Dynamic analysis tools, which have been widely used for detecting memory errors at runtime, are not yet satisfactory as they cannot deterministically and completely detect some types of memory errors, e.g., segment confusion errors, sub-object overflows, use-after-frees, and memory leaks.
We propose Smatus, short for \emph{smart status}, a new dynamic analysis approach that supports comprehensive runtime detection of memory errors. The key innovation is to create and maintain a small status node for each memory object. Our approach tracks not only the bounds of each pointer's referent but also the \emph{status} and \emph{reference count} of the referent in its status node, where the status represents the liveness and segment type of the referent. A status node is \emph{smart} as it is automatically destroyed when it becomes useless. To the best of our knowledge, Smatus represents the most comprehensive approach of its kind. In terms of effectiveness (for detecting more kinds of errors), Smatus outperforms state-of-the-art tools, Google's AddressSanitizer, SoftBoundCETS and Valgrind. In terms of performance, Smatus outperforms SoftBoundCETS and Valgrind in terms of both time and memory overheads incurred, and is on par with AddressSanitizer in terms of the time and memory overheads tradeoff (with much lower memory overhead incurred).
Thu 15 JulDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
01:40 - 02:20 | Session 8 (time band 2) Dynamic AnalysisTechnical Papers at ISSTA 2 Chair(s): Luís Pina University of Illinois at Chicago | ||
01:40 20mTalk | Runtime Detection of Memory Errors with Smart Status Technical Papers Zhe Chen Nanjing University of Aeronautics and Astronautics, Chong Wang Nanjing University of Aeronautics and Astronautics, Junqi Yan Nanjing University of Aeronautics and Astronautics, Yulei Sui University of Technology Sydney, Jingling Xue UNSW DOI Media Attached | ||
02:00 20mTalk | UAFSan: An Object-Identifier-Based Dynamic Approach for Detecting Use-After-Free Vulnerabilities Technical Papers Binfa Gui Nanjing University of Science and Technology, Wei Song Nanjing University of Science and Technology, Jeff Huang Texas A&M University DOI Media Attached File Attached |
Sat 17 JulDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
09:30 - 10:50 | Session 28 (time band 3) Fuzzing and Runtime AnalysisTechnical Papers at ISSTA 2 Chair(s): Michaël Marcozzi Université Paris-Saclay, CEA, List | ||
09:30 20mTalk | Runtime Detection of Memory Errors with Smart Status Technical Papers Zhe Chen Nanjing University of Aeronautics and Astronautics, Chong Wang Nanjing University of Aeronautics and Astronautics, Junqi Yan Nanjing University of Aeronautics and Astronautics, Yulei Sui University of Technology Sydney, Jingling Xue UNSW DOI Media Attached | ||
09:50 20mTalk | UAFSan: An Object-Identifier-Based Dynamic Approach for Detecting Use-After-Free Vulnerabilities Technical Papers Binfa Gui Nanjing University of Science and Technology, Wei Song Nanjing University of Science and Technology, Jeff Huang Texas A&M University DOI Media Attached File Attached | ||
10:10 20mTalk | Seed Selection for Successful Fuzzing Technical Papers Adrian Herrera Australian National University; DST, Hendra Gunadi Australian National University, Shane Magrath DST, Michael Norrish CSIRO’s Data61; Australian National University, Mathias Payer EPFL, Tony Hosking Australian National University; CSIRO’s Data61 DOI Pre-print File Attached | ||
10:30 20mTalk | QFuzz: Quantitative Fuzzing for Side Channels Technical Papers DOI Pre-print Media Attached |