Award Abstract # 1116682
TC: Small: WATCHDOG: Hardware-Assisted Prevention of All Use-After-Free Security Vulnerabilities

NSF Org: CNS
Division Of Computer and Network Systems
Recipient: TRUSTEES OF THE UNIVERSITY OF PENNSYLVANIA, THE
Initial Amendment Date: July 18, 2011
Latest Amendment Date: March 31, 2016
Award Number: 1116682
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: August 1, 2011
End Date: July 31, 2017 (Estimated)
Total Intended Award Amount: $499,961.00
Total Awarded Amount to Date: $499,961.00
Funds Obligated to Date: FY 2011 = $499,961.00
History of Investigator:
  • Stephan Zdancewic (Principal Investigator)
    stevez@cis.upenn.edu
  • Milo Martin (Former Principal Investigator)
  • Stephan Zdancewic (Former Co-Principal Investigator)
Recipient Sponsored Research Office: University of Pennsylvania
3451 WALNUT ST STE 440A
PHILADELPHIA
PA  US  19104-6205
(215)898-7293
Sponsor Congressional District: 03
Primary Place of Performance: University of Pennsylvania
3451 WALNUT ST STE 440A
PHILADELPHIA
PA  US  19104-6205
Primary Place of Performance
Congressional District:
03
Unique Entity Identifier (UEI): GM1XX56LEP58
Parent UEI: GM1XX56LEP58
NSF Program(s): TRUSTWORTHY COMPUTING
Primary Program Source: 01001112DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7795, 7923
Program Element Code(s): 779500
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

A use-after-free error is a software flaw that potentially allows an attacker to remotely inject malicious software or corrupt memory values. Such attacks can result in the theft of private data, propagation of worms and viruses, or the creation of botnet nodes that can be programmed to spew spam or disrupt Internet traffic. Recently, use-after-free vulnerabilities have been found in crucial software such as Microsoft's Internet Explorer, Adobe Acrobat Reader, and Firefox among others. The goal of the Watchdog project is to devise hardware and software mechanisms to prevent all such vulnerabilities.

To prevent use-after-free vulnerabilities, the researchers will develop hardware for enforcing safe manual memory management, without compromising system performance. They will study a formal model of their designs to establish the correctness of the techniques. The hardware designs will be prototyped using detailed micro-architectural simulations. The researchers will evaluate correctness and performance by using a suite of benchmark tests and off-the-shelf software. The tools and prototypes will be openly distributed for others to build upon, and the research findings will be integrated into the security and hardware courses taught by the researchers. If successful, the technology developed by this research will have significant societal impacts, improving the security of our computing ecosystem by eliminating an important class of vulnerabilities that is actively being exploited to compromise systems and spread malware.

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.

(Showing: 1 - 10 of 11)
Adarsh Yoga and Santosh Nagarakatte "A Fast Causal Profiler for Task Parallel Programs" Proceedings of the 25th ACM SIGSOFT Symposium on Foundations of Software Engineering (FSE-2017) , 2017
Adarsh Yoga and Santosh Nagarakatte "Atomicity Violation Checker for Task Parallel Programs" Proceedings of the 2016 International Symposium on Code Generation and Optimization (CGO) , 2016
Adarsh Yoga, Santosh Nagarakatte, and Aarti Gupta. "Parallel Data Race Detection for Task Parallel Programs with Locks" Proceedings of the 24th International Symposium on Foundations of Software Engineering (FSE 2016) , 2016
David Menendez and Santosh Nagarakatte "Alive-Infer: Data Driven Precondition Inference for Peephole Optimizations in LLVM" Proceedings of the 2017 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI-2017) , 2017
David Menendez and Santosh Nagarakatte "Termination-Checking for LLVM Peephole Optimizations" Proceedings of the 38th International Conference on Software Engineering (ICSE) 2016 , 2016
Jay P Lim, Vinod Ganapathy, and Santosh Nagarakatte "Compiler Optimizations with Retrofitting Transformations" Proceedings of the ACM SIGSAC Workshop on Programming Languages and Analysis of Systems (PLAS-2017) , 2017
Santosh Nagarakatte, Milo M. K. Martin, and Steve Zdancewic "Watchdog: Hardware for Safe and Secure Manual Memory Management and Full Memory Safety" Proceedings of the 39th International Symposium on Computer Architecture (ISCA 2012) , 2012
Santosh Nagarakatte, Milo M K Martin, Steve Zdancewic "Hardware-Enforced Comprehensive Memory Safety" IEEE Micro , v.33 , 2013 , p.38-47 http://doi.ieeecomputersociety.org/10.1109/MM.2013.26
Santosh Nagarakatte, Milo M K Martin, Steve Zdancewic "Hardware-Enforced Comprehensive Memory Safety" IEEE Micro , v.33 , 2013 10.1109/MM.2013.26
Santosh Nagarakatte, Milo M K Martin, Steve Zdancewic "Watchdog: Hardware for Safe and Secure Manual Memory Management and Full Memory Safety" Proceedings of the 39th International Symposium on Computer Architecture (ISCA) , 2012 10.1145/2366231.2337181
Santosh Nagarakatte, Milo M. K. Martin, Steve Zdancewic "WatchdogLite: Hardware-Accelerated Compiler-Based Pointer Checking" Proceedings of the 2014 International Symposium on Code Generation and Optimization (CGO) , 2014 10.1145/2544137.2544147
(Showing: 1 - 10 of 11)

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.

The lack of memory safety in languages such as C and C++ is a root source of exploitable security vulnerabilities prevalent in more computing infrastructure. This project explored both hardware and software techniques toeliminate such vulnerabilities by enforcing comprehensive memory safety. In bothcases, the technical approach is to associate space bounds and identifiermetadata with pointers, propagate them on pointer operations, and check them onpointer dereferences. Checking the bounds and identifier metadata provides bothprecise, byte-granularity buffer-overflow protection and protection fromuse-after-free errors, even in the presence of reallocations.

This project explored the effectiveness of storing pointer metadata in a disjoint metadata space to provide both comprehensive protection and enhance compatibility with existing code. Our implementations reduce the runtime overhead with hardware extensions that use micro-operations to implement metadata access and checking and a dedicated identifier cache to reduce checking overhead. The hardware extension also eliminates metadata copies via register renaming in the out-of-order core.

Subsequently, we have proposed a set of ISA extensions called WatchdogLite that provides hardware acceleration for a compiler implementation of pointer-based checking. This division of labor between the compiler and the hardware allows for hardware acceleration while using only preexisting architectural registers. By leveraging the compiler to identify pointers, perform check elimination, and insert the new instructions, this approach attains performance similar to prior hardware-intensive approaches without adding any hardware structures for tracking metadata.

During the course of this project, Intel developed Memory Protection Extensions(MPX) and released the ISA specification in 2013. Intel’s MPX extensions are similar to WatchdogLite. Intel’s software implementation---PointerChecker---is similar to SoftBoundCETS. Intel MPX uses pointer-based checking with disjoint metadata, adding new instructions for efficiently accessing the metadata shadowspace, and adding instruction for accelerating bounds checking. In contrast with WatchdogLite, MPX does not include support for accelerating use-after-freechecking. PI Santosh Nagarakatte has collaborated with Intel to explore the addition of use-after-free checking support to Intel MPX.

We also discovered that Intel MPX’s support for incremental deployment of bounds checking results in the loss of comprehensiveness in the presence of insidious type casts from integers to pointers either directly or indirectly through memory. Particularly, any arbitrary pointer manufactured through type casts will be allowed to access any location in memory (even with MPX protection) because(1) the pointer in the metadata space is not updated during integer operations,(2) the pointer loaded and the pointer in the metadata space would mismatch on a metadata load, and (3) the result is an un-bounded pointer. The compiler can identify the occurrence of such type casts either implicitly or explicitly and warn the programmer about them.

During the course of this project, we also explored various other extensions to memory safety. First, we have investigated the impact of compiler optimizations on instrumentation added for memory safety. We have also developed methods tocheck if compiler optimizations can erroneously remove instrumentation added by memory safety transformation. Second, we have also developed a suite of micro-optimizations to reduce the overhead of memory safety checks. Third,enforcing atomicity and race freedom for memory safety instrumentation with multithreaded programs.

 

 


Last Modified: 10/24/2017
Modified by: Stephan A Zdancewic

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page