The design and implementation of dynamic information flow tracking systems for software security

Placeholder Show Content

Abstract/Contents

Abstract
Computer security is in a crisis. Attackers are exploiting an ever-increasing range of software vulnerabilities in critical public and private sector computer systems for massive financial gain Recent research has established Dynamic Information Flow Tracking (DIFT) as a promising platform for detecting a wide range of security attacks. The idea behind DIFT is to tag (taint) untrusted data and track its propagation at byte or word-granularity through the system to prevent security attacks. This dissertation presents novel DIFT platforms and policies to address real-world server-side vulnerabilities, in both low-level and high-level code. We show that well-designed DIFT platforms and policies can comprehensively prevent the major server-side security vulnerabilities with little to no performance overhead and without requiring application source code access or debugging information. We describe novel DIFT policies for comprehensively preventing software vulnerabilities. We also present novel hardware and software DIFT platforms for executing these policies. We then demonstrate the effectiveness of our policies and platforms by preventing a wide range of real-world software vulnerabilities, from operating system buffer overflows in the Linux kernel to authentication bypass in PHP web applications. Unlike prior security techniques, DIFT can be fast, safe, practical, and flexible. We present Raksha, the first flexible hardware DIFT platform, which provides flexibility and safety while maintaining the practicality and performance benefits of traditional hardware DIFT designs. Raksha supports flexible, hardware-enforced DIFT policies using software-controlled tag policy registers. We demonstrate the Raksha design using an FPGA-based prototype system, and prevent a wide range of attacks on unmodified application binaries. We also use Raksha to develop a novel DIFT policy for robustly preventing buffer overflows. Our policy is the first comprehensive DIFT policy for buffer overflow prevention to support large, real-world applications and even the operating system without observed real-world false positives. We demonstrate our buffer overflow policy using the Raksha prototype, and prevent buffer overflows in both userspace applications and the Linux kernel. We also developed Nemesis, a DIFT-aware PHP interpreter, which was the first system for comprehensively preventing authentication and authorization bypass attacks in web applications. Nemesis uses a novel application of DIFT to automatically infer when a web application has correctly and safely authenticated a web client. We demonstrate the effectiveness of Nemesis by preventing authentication and authorization bypass vulnerabilities in real-world PHP web applications.

Description

Type of resource text
Form electronic; electronic resource; remote
Extent 1 online resource.
Copyright date 2010
Publication date 2009, c2010; 2009
Issuance monographic
Language English

Creators/Contributors

Associated with Dalton, Michael
Associated with Stanford University, Computer Science Department
Primary advisor Kozyrakis, Christoforos, 1974-
Thesis advisor Kozyrakis, Christoforos, 1974-
Thesis advisor Lam, Monica S
Thesis advisor Mazières, David (David Folkman), 1972-
Advisor Lam, Monica S
Advisor Mazières, David (David Folkman), 1972-

Subjects

Genre Theses

Bibliographic information

Statement of responsibility Michael Dalton.
Note Submitted to the Department of Computer Science.
Thesis Ph.D. Stanford University 2010
Location electronic resource

Access conditions

Copyright
© 2010 by Michael Williams Dalton
License
This work is licensed under a Creative Commons Attribution Non Commercial 3.0 Unported license (CC BY-NC).

Also listed in

Loading usage metrics...