Kernel-Assisted Debugging of Linux Applications

被引:4
|
作者
Holl, Tobias [1 ]
Klocke, Philipp [1 ]
Franzen, Fabian [1 ]
Kirsch, Julian [1 ]
机构
[1] Tech Univ Munich, Garching, Germany
关键词
Linux; debugging; ptrace; uprobes; GDB; debugger detection;
D O I
10.1145/3289595.3289596
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
On Linux, most-if not all-debuggers use ptrace debugging API to control their target processes. However, ptrace proves unsatisfactory for many malware analysis and reverse engineering tasks: So-called split-personality malware often adapts its behavior in the presence of a debugger, yet ptrace makes no attempt to hide from a target process. Furthermore, ptrace enforces a strict one-to-many relation meaning that while each tracer can trace many tracees, each tracee can only be controlled by at most one tracer. Simultaneously, the complex API and signal-based communications provide opportunities for erroneous usage. Previous works have identified the newer uprobes tracing API as a candidate for building a replacement for ptrace, but ultimately rejected it due to lack of practical use and documentation. Building upon uprobes, we introduce plutonium-dbg, a Linux kernel module providing debugging facilities independent of the limitations of ptrace alongside a GDB-compatible interface. Our approach aims to mitigate some of the design flaws of ptrace that make it both hard to use and easy to detect by malicious software. We show how plutonium-dbg's design and implementation remove many of the most frequently named issues with ptrace, and that our method improves on traditional ptrace-based debuggers (GDB and LLDB) when evaluated on software samples that attempt to detect the presence of a debugger.
引用
收藏
页数:9
相关论文
共 50 条
  • [1] Linux kernel debugging
    Gereaux, DA
    DR DOBBS JOURNAL, 2005, 30 (11): : 51 - 54
  • [2] Impact of Kernel-Assisted MPI Communication over Scientific Applications: CPMD and FFTW
    Ma, Teng
    Bouteiller, Aurelien
    Bosilca, George
    Dongarra, Jack J.
    RECENT ADVANCES IN THE MESSAGE PASSING INTERFACE, 2011, 6960 : 247 - 254
  • [3] Diagnosys: Automatic Generation of a Debugging Interface to the Linux Kernel
    Bissyande, Tegawende F.
    Reveillere, Laurent
    Lawall, Julia L.
    Muller, Gilles
    2012 PROCEEDINGS OF THE 27TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2012, : 60 - 69
  • [4] Kernel-assisted Communication Engine for MPI on Emerging Manycore Processors
    Hashmi, Jahanzeb Maqbool
    Hamidouche, Khaled
    Subramoni, Hari
    Panda, Dhabaleswar K.
    2017 IEEE 24TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING (HIPC), 2017, : 84 - 93
  • [5] Dimension reduction for kernel-assisted M-estimators with missing response at random
    Wang, Lei
    ANNALS OF THE INSTITUTE OF STATISTICAL MATHEMATICS, 2019, 71 (04) : 889 - 910
  • [6] Dimension reduction for kernel-assisted M-estimators with missing response at random
    Lei Wang
    Annals of the Institute of Statistical Mathematics, 2019, 71 : 889 - 910
  • [7] Ahead of time static analysis for automatic generation of debugging interfaces to the Linux kernel
    Tegawendé F. Bissyandé
    Laurent Réveillère
    Julia L. Lawall
    Gilles Muller
    Automated Software Engineering, 2016, 23 : 3 - 41
  • [8] Ahead of time static analysis for automatic generation of debugging interfaces to the Linux kernel
    Bissyande, Tegawende F.
    Reveillere, Laurent
    Lawall, Julia L.
    Muller, Gilles
    AUTOMATED SOFTWARE ENGINEERING, 2016, 23 (01) : 3 - 41
  • [9] KNEM: A generic and scalable kernel-assisted intra-node MPI communication framework
    Goglin, Brice
    Moreaud, Stephanie
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2013, 73 (02) : 176 - 188
  • [10] A kernel-assisted imputation estimating method for the additive hazards model with missing censoring indicator
    Qiu, Zhiping
    Chen, Xiaoping
    Zhou, Yong
    STATISTICS & PROBABILITY LETTERS, 2015, 98 : 89 - 97