• DocumentCode
    3100594
  • Title

    Protecting Commodity Operating System Kernels from Vulnerable Device Drivers

  • Author

    Butt, Shakeel ; Ganapathy, Vinod ; Swift, Michael M. ; Chang, Chih-Cheng

  • Author_Institution
    Rutgers Univ., Piscataway, NJ, USA
  • fYear
    2009
  • fDate
    7-11 Dec. 2009
  • Firstpage
    301
  • Lastpage
    310
  • Abstract
    Device drivers on commodity operating systems execute with kernel privilege and have unfettered access to kernel data structures. Several recent attacks demonstrate that such poor isolation exposes kernel data to exploits against vulnerable device drivers, for example through buffer overruns in packet processing code. Prior architectures to isolate kernel data from driver code either sacrifice performance, execute too much driver code with kernel privilege, or are incompatible with commodity operating systems. In this paper, we present the design, implementation and evaluation of a novel security architecture that better isolates kernel data from device drivers without sacrificing performance or compatibility. In this architecture, a device driver is partitioned into a small, trusted kernel-mode component and an untrusted user-mode component. The kernel-mode component contains privileged and performance-critical code. It communicates via RPC with the user-mode component which contains the rest of the driver code. A RPC monitor mediates all control and data transfers between the kernel- and user-mode components. In particular, it verifies that all data transfers from the untrusted user-mode component to the kernel-mode component preserve kernel data structure integrity. We also present a runtime technique to automatically infer such integrity specifications. Our experiments with a Linux implementation of this architecture show that it can prevent compromised device drivers from affecting the integrity of kernel data and do so without impacting common-case performance.
  • Keywords
    Linux; operating system kernels; security of data; Linux implementation; commodity operating system kernel protection; device drivers; kernel data structure integrity; packet processing code; performance-critical code; security architecture; trusted kernel-mode component; untrusted user-mode component; Computer bugs; Computer security; Data security; Data structures; Kernel; Linux; Monitoring; Operating systems; Protection; Streaming media; Data Structure Integrity; Device Drivers; Exploits; Invariants; Microdrivers;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Computer Security Applications Conference, 2009. ACSAC '09. Annual
  • Conference_Location
    Honolulu, HI
  • ISSN
    1063-9527
  • Print_ISBN
    978-0-7695-3919-5
  • Type

    conf

  • DOI
    10.1109/ACSAC.2009.35
  • Filename
    5380688