HWASanIO: Detecting C/C plus plus Intra-object Overflows with Memory Shading

被引:2
|
作者
Hohentanner, Konrad [1 ]
Kasten, Florian [1 ]
Auer, Lukas [1 ]
机构
[1] Fraunhofer AISEC, Garching, Germany
关键词
memory safety; memory tagging; intra-object overflows; sub-object overflows; dynamic analysis; CHECKING;
D O I
10.1145/3589250.3596139
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
C/C++ are often used in high-performance areas with critical security demands, such as operating systems, browsers, and libraries. One major drawback from a security standpoint is their susceptibility to memory bugs, which are often hard to spot during development. A possible solution is the deployment of a memory safety framework such as the memory tagging framework Hardware-assisted Address-Sanitizer (HWASan). The dynamic analysis tool instruments object allocations and inserts additional check logic to detect memory violations during runtime. A current limitation of memory tagging is its inability to detect intra-object memory violations i.e., over- and underflows between flelds and members of structs and classes. This work addresses the issue by applying the concept of memory shading to memory tagging. We then present HWASanIO, a HWASan-based sanitizer implementing the memory shading concept to detect intra-object violations. Our evaluation shows that this increases the bug detection rate from 85.4% to 100% in the memory corruptions test cases of the Juliet Test Suite while maintaining high interoperability with existing C/C++ code.
引用
收藏
页码:27 / 33
页数:7
相关论文
共 50 条
  • [41] Learning-Based Memory Allocation for C plus plus Server Workloads
    Lea, Doug
    COMMUNICATIONS OF THE ACM, 2024, 67 (04) : 82 - 82
  • [42] An object acquisition library for uncalibrated cameras in C plus
    Haeming, Klaus
    Peters, Gabriele
    INFORMATION OPTICS, 2006, 860 : 520 - +
  • [43] Learning-based Memory Allocation for C plus plus Server Workloads
    Maas, Martin
    Andersen, David G.
    Isard, Michael
    Javanmard, Mohammad Mahdi
    McKinley, Kathryn S.
    Raffel, Colin
    TWENTY-FIFTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS (ASPLOS XXV), 2020, : 541 - 556
  • [44] Pattern-based Synthesis of Synchronization for the C plus plus Memory Model
    Meshman, Yuri
    Rinetzky, Noam
    Yahav, Eran
    PROCEEDINGS OF THE 15TH CONFERENCE ON FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD 2015), 2015, : 120 - 127
  • [45] Object Model Construction for Inheritance in C plus plus and Its Applications to Program Analysis
    Yang, Jing
    Balakrishnan, Gogul
    Maeda, Naoto
    Ivancic, Franjo
    Gupta, Aarti
    Sinha, Nishant
    Sankaranarayanan, Sriram
    Sharma, Naveen
    COMPILER CONSTRUCTION, CC 2012, 2012, 7210 : 144 - 164
  • [46] ROPTLIB: An Object-Oriented C plus plus Library for Optimization on Riemannian Manifolds
    Huang, Wen
    Absil, P-A
    Gallivan, Kyle A.
    Hand, Paul
    ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, 2018, 44 (04):
  • [47] Automatic object model generation for nanoelectronics using C plus plus meta programming
    Peng, Fei
    Xiao, Zhenjie
    Xu, Dong
    Huang, Jianhong
    Xie, Guangjun
    ELECTRONICS LETTERS, 2019, 55 (24) : 1286 - +
  • [48] CASTSAN: Efficient Detection of Polymorphic C plus plus Object Type Confusions with LLVM
    Muntean, Paul
    Wuerl, Sebastian
    Grossklags, Jens
    Eckert, Claudia
    COMPUTER SECURITY (ESORICS 2018), PT I, 2018, 11098 : 3 - 25
  • [49] A formal mapping from Object-Z specification to C plus plus code
    Najafi, M.
    Haghighi, H.
    SCIENTIA IRANICA, 2013, 20 (06) : 1953 - 1977
  • [50] A Mechanized Semantics for C plus plus Object Construction and Destruction, with Applications to Resource Management
    Ramananandro, Tahina
    Dos Reis, Gabriel
    Leroy, Xavier
    POPL 12: PROCEEDINGS OF THE 39TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2012, : 521 - 532