Comprehensive Kernel Instrumentation via Dynamic Binary Translation

被引:0
|
作者
Feiner, Peter [1 ]
Brown, Angela Demke [1 ]
Goel, Ashvin [1 ]
机构
[1] Univ Toronto, Toronto, ON M5S 1A1, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Design; Performance; Dynamic binary translation; operating system instrumentation; Linux; interrupts;
D O I
10.1145/2248487.2150992
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Dynamic binary translation (DBT) is a powerful technique that enables fine-grained monitoring and manipulation of an existing program binary. At the user level, it has been employed extensively to develop various analysis, bug-finding, and security tools. Such tools are currently not available for operating system (OS) binaries since no comprehensive DBT framework exists for the OS kernel. To address this problem, we have developed a DBT framework that runs as a Linux kernel module, based on the user-level DynamoRIO framework. Our approach is unique in that it controls all kernel execution, including interrupt and exception handlers and device drivers, enabling comprehensive instrumentation of the OS without imposing any overhead on user-level code. In this paper, we discuss the key challenges in designing and building an in-kernel DBT framework and how the design differs from user-space. We use our framework to build several sample instrumentations, including simple instruction counting as well as an implementation of shadow memory for the kernel. Using the shadow memory, we build a kernel stack overflow protection tool and a memory addressability checking tool. Qualitatively, the system is fast enough and stable enough to run the normal desktop workload of one of the authors for several weeks.
引用
收藏
页码:135 / 146
页数:12
相关论文
共 50 条
  • [21] Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation
    Nethercote, Nicholas
    Seward, Julian
    PLDI'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2007, : 89 - 100
  • [22] Dynamic Binary Translation for SGX Enclaves
    Cui, Jinhua
    Shinde, Shweta
    Sen, Satyaki
    Saxena, Prateek
    Yuan, Pinghai
    ACM TRANSACTIONS ON PRIVACY AND SECURITY, 2022, 25 (04)
  • [23] Binary translation: Static, dynamic, retargetable?
    Cifuentes, C
    Malhotra, V
    INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 1996, : 340 - 349
  • [24] The Implementation of Dynamic Linking in Dynamic Binary Translation Systems
    Song Yiqing
    He Yuemei
    Liang Alei
    Guan Haibing
    PROCEEDINGS OF THE FIRST INTERNATIONAL WORKSHOP ON EDUCATION TECHNOLOGY AND COMPUTER SCIENCE, VOL II, 2009, : 643 - 646
  • [25] KBT: Operating system kernel level binary translation system
    Jiang, Haitao
    Xu, Yun
    Liao, Yin
    Jin, Guojie
    Chen, Guoliang
    Journal of Software, 2013, 8 (06) : 1275 - 1280
  • [26] Identify Stack Overflow Exploits with Dynamic Binary Instrumentation
    Zou, Quanchen
    Huang, Wei
    An, Jing
    Fan, Wenqing
    2015 INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS - COMPUTING TECHNOLOGY, INTELLIGENT TECHNOLOGY, INDUSTRIAL INFORMATION INTEGRATION (ICIICII), 2015, : 263 - 267
  • [27] Reducing the Attack Surface of Dynamic Binary Instrumentation Frameworks
    Santos Filho, Ailton
    Rodriguez, Ricardo J.
    Feitosa, Eduardo L.
    DEVELOPMENTS AND ADVANCES IN DEFENSE AND SECURITY, 2020, 152 : 3 - 13
  • [28] NVBit: A Dynamic Binary Instrumentation Framework for NVIDIA GPUs
    Villa, Oreste
    Stephenson, Mark
    Nellans, David
    Keckler, Stephen W.
    MICRO'52: THE 52ND ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE, 2019, : 372 - 383
  • [29] QDIME: QoS-aware Dynamic Binary Instrumentation
    Arafa, Pansy
    Tchamgoue, Guy Martin
    Kashif, Hany
    Fischmeister, Sebastian
    2017 IEEE 25TH INTERNATIONAL SYMPOSIUM ON MODELING, ANALYSIS, AND SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS (MASCOTS), 2017, : 132 - 142
  • [30] Efficient and Retargetable Dynamic Binary Translation on Multicores
    Hong, Ding-Yong
    Wu, Jan-Jan
    Yew, Pen-Chung
    Hsu, Wei-Chung
    Hsu, Chun-Chen
    Liu, Pangfeng
    Wang, Chien-Min
    Chung, Yeh-Ching
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2014, 25 (03) : 622 - 632