Real-world buffer overflow protection for userspace & kernelspace

  • Authors:
  • Michael Dalton;Hari Kannan;Christos Kozyrakis

  • Affiliations:
  • Computer Systems Laboratory, Stanford University;Computer Systems Laboratory, Stanford University;Computer Systems Laboratory, Stanford University

  • Venue:
  • SS'08 Proceedings of the 17th conference on Security symposium
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Despite having been around for more than 25 years, buffer overflow attacks are still a major security threat for deployed software. Existing techniques for buffer overflow detection provide partial protection at best as they detect limited cases, suffer from many false positives, require source code access, or introduce large performance overheads. Moreover, none of these techniques are easily applicable to the operating system kernel. This paper presents a practical security environment for buffer overflow detection in userspace and kernelspace code. Our techniques build upon dynamic information flow tracking (DIFT) and prevent the attacker from overwriting pointers in the application or operating system. Unlike previous work, our technique does not have false positives on unmodified binaries, protects both data and control pointers, and allows for practical hardware support. Moreover, it is applicable to the kernel and provides robust detection of buffer overflows and user/kernel pointer dereferences. Using a full system prototype of a Linux workstation (hardware and software), we demonstrate our security approach in practice and discuss the major challenges for robust buffer overflow protection in real-world software.