
NSF Org: |
CNS Division Of Computer and Network Systems |
Recipient: |
|
Initial Amendment Date: | August 20, 2014 |
Latest Amendment Date: | August 20, 2014 |
Award Number: | 1408880 |
Award Instrument: | Standard Grant |
Program Manager: |
Sol Greenspan
sgreensp@nsf.gov (703)292-7841 CNS Division Of Computer and Network Systems CSE Directorate for Computer and Information Science and Engineering |
Start Date: | September 1, 2014 |
End Date: | August 31, 2019 (Estimated) |
Total Intended Award Amount: | $300,000.00 |
Total Awarded Amount to Date: | $300,000.00 |
Funds Obligated to Date: |
|
History of Investigator: |
|
Recipient Sponsored Research Office: |
201 OLD MAIN UNIVERSITY PARK PA US 16802-1503 (814)865-1372 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
346A IST Bldg University Park PA US 16802-7000 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): | Secure &Trustworthy Cyberspace |
Primary Program Source: |
|
Program Reference Code(s): |
|
Program Element Code(s): |
|
Award Agency Code: | 4900 |
Fund Agency Code: | 4900 |
Assistance Listing Number(s): | 47.070 |
ABSTRACT
The computer security community has long advocated the concept of building multiple layers of defense to protect a system. Unfortunately, it has been difficult to realize this vision in the practice of software development, and software often ships with inadequate defenses, typically developed in an ad hoc fashion.
Developers face a number of challenges when protecting a software system with multiple layers of defense. They lack holistic frameworks in which to express policies and mechanisms for different software layers, automated tools to add these defenses, and tools to prove that software enhanced with defenses has an advertised level of assurance.
This project develops new techniques to retrofit software for defense in depth. It takes a comprehensive view of the problem, with an emphasis on automated, interactive tools that developers can use to identify site-level security goals, explore the design space of adding security mechanisms, and retrofit legacy code to enforce security policies in a manner that can be machine-verified for assurance. The project develops theory and tools for formal policy language design and validation, static and dynamic code analyses, interactive tools for developers to explore the design space of security, functionality and performance tradeoffs, and methods to formally verify the correctness of program transformations to introduce defenses such as authorization, attacker containment, and auditing mechanisms.
The broader impact stems from the improved security of systems and the reduced cost of achieving better security, also education activities in the form of summer schools for graduate, undergraduate and high-school students. The tools developed will be released to the public domain, benefiting software developers in the field.
PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH
Note:
When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external
site maintained by the publisher. Some full text articles may not yet be available without a
charge during the embargo (administrative interval).
Some links on this page may take you to non-federal websites. Their policies may differ from
this site.
PROJECT OUTCOMES REPORT
Disclaimer
This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.
In this project, we developed methods that programmers can use to retrofit their programs with security controls for containment, authorization, and auditing to satisfy explicit security goals. This project has included major activities on automating key tasks in retrofitting programs via privilege separation for containment, retrofitting programs with authorization hook placements to enforce desired policies, retrofitting programs automatically with auditing code, and retrofitting programs to enforce finer-grained control-flow integrity policies. Through this research, we have also explored methods to unify defenses to improve overall security, developed open-source mechanisms to enforce security that have been widely used, and discovered and fixed flaws in commercial systems. Many of our results have been published in top conferences in computer security and related domains.
The main objectives met during the project include the following. First, we developed new methods to automate key challenges in privilege separating programs to enable confinement, by handling general pointers (PtrSplit, ACM CCS 2017) and by balancing performance and security (PrograMander, ACM CCS 2019). Second, we developed new methods to automate retrofitting of programs with authorization hooks to minimize a hook placement necessary to enforce any access control policy that satisfied prescribed constraints (ESSoS 2015) and to provide a security namespace abstraction for Linux container systems (USENIX Security 2018). Third, we developed foundational theories for auditing based on information algebra, which combines elements of both access control and auditing to enable a uniform method to express break-the-glass policies (POST 2016), and developed new methods to retrofit programs for authorization by leveraging dynamic taint analysis (PLAS 2016). Fourth, we invented a technique to compute control-flow integrity policies statically that is finer-grained than prior techniques and could be implemented more efficiently (IEEE Euro S&P 2016) and adapted a recent Intel PT hardware feature to enforce control-flow integrity without program modification (ASPLOS 2017). In the course of this CFI work, we discovered a latent flaw in Linux compiler toolchains that allows extensive modification of various types of read-only data and proposed detailed countermeasures (NDSS 2017).
The key outcomes of this project include the novel techniques (described above), new open-source systems, repairs and extensions for the Linux kernel, and several student theses. The methods for privilege separation and Linux kernel support for efficient use of the Intel PT hardware (Linux Griffin) feature have been open sourced. The privilege separation work has led to two collaborations, one on the DARPA GAPS program, and the Linux Griffin kernel has been used by several research groups. Through our efforts, the Linux compiler toolchain flaw we discovered has been fixed in both GCC and LLVM toolchains, and the Linux security namespace is under consideration for upstreaming into the mainline kernel. This project has resulted in five theses, include three Ph.D. theses (one to be held in January 2020) and two M.S. theses. The project was inspired by the Ph.D. thesis of a female student, and one of the M.S. theses was completed by a female student. The materials developed in this project were applied to the creation of a new Software Security course at Penn State, which is a key component of the new Cybersecurity Foundations minor.
Last Modified: 11/26/2019
Modified by: Trent Jaeger
Please report errors in award information by writing to: awardsearch@nsf.gov.