Award Abstract # 0953751
CAREER: Towards Identifying and Eliminating Exploitable Software Bugs

NSF Org: CNS
Division Of Computer and Network Systems
Recipient: CARNEGIE MELLON UNIVERSITY
Initial Amendment Date: February 17, 2010
Latest Amendment Date: August 29, 2014
Award Number: 0953751
Award Instrument: Continuing Grant
Program Manager: Nina Amla
namla@nsf.gov
 (703)292-7991
CNS
 Division Of Computer and Network Systems
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: March 1, 2010
End Date: February 29, 2016 (Estimated)
Total Intended Award Amount: $521,494.00
Total Awarded Amount to Date: $579,659.00
Funds Obligated to Date: FY 2010 = $97,249.00
FY 2011 = $116,653.00

FY 2012 = $104,175.00

FY 2013 = $107,822.00

FY 2014 = $153,760.00
History of Investigator:
  • David Brumley (Principal Investigator)
    dbrumley@cmu.edu
Recipient Sponsored Research Office: Carnegie-Mellon University
5000 FORBES AVE
PITTSBURGH
PA  US  15213-3815
(412)268-8746
Sponsor Congressional District: 12
Primary Place of Performance: Carnegie-Mellon University
5000 FORBES AVE
PITTSBURGH
PA  US  15213-3815
Primary Place of Performance
Congressional District:
12
Unique Entity Identifier (UEI): U3NKNFLNQ613
Parent UEI: U3NKNFLNQ613
NSF Program(s): Special Projects - CNS,
TRUSTWORTHY COMPUTING,
Secure &Trustworthy Cyberspace
Primary Program Source: 01001011DB NSF RESEARCH & RELATED ACTIVIT
01001112DB NSF RESEARCH & RELATED ACTIVIT

01001213DB NSF RESEARCH & RELATED ACTIVIT

01001314DB NSF RESEARCH & RELATED ACTIVIT

01001415DB NSF RESEARCH & RELATED ACTIVIT

01001415RB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 1045, 1187, 7556, 8237, 9178, 9251
Program Element Code(s): 171400, 779500, 806000
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Attackers only need to find a single exploitable bug in order to
install malware, bots, and viruses on a vulnerable user's computer.
Unfortunately, bugs are plentiful. For example, the Ubuntu Linux
distribution bug management database currently lists over 58,000 open
bugs. Thus, the question is not whether an attacker can find a bug,
but which bugs an attacker can exploit.

This research investigates novel techniques, approaches, and
algorithms for finding exploitable bugs. The ability to deterimine
whether a bug is exploitable or not will allow developers to
prioritize bug reports so that the most security-critical bugs are
fixed first. The techniques investigated will also help developers
distribute patches safely.

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.

Avgerinos, ThanassisCha, Sang KilRebert, AlexandreSchwartz, Edward J.Woo, MaverickBrumley, David "Automatic Exploit Generation" Communications of the ACM , v.57 , 2014

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 funded research resulted in several advances for performing security analysis on common off-the-shelf software a user may get from a manufacturer like Microsoft or Apple.  At a high level, we developed new ways to find bugs and security vulnerabilities in such applications, as well as general research for how suchvulnerabilities may be fixed.

In particular, this research proposed three tasks.  The first task was to automatically find and prioritize bugs based upon their exploitability.  We developed techniques for automatic exploit generation, which finds bugs and proves they are exploitable in binary code.  


The second task was safe patch distribution and application.  We developed techniques that would automatically identify where patchesshould be applied, but did not create full patches. As part of this research, we discovered that creating full patches often required human specification and insight, such as deciding whether to return anerror message or not.  We found no acceptable algorithm for a computer to make such a judgement call, and leave it as future work. Our main advance was to identify the set of hard problems remaining.

The third task was to develop binary analysis techniques.  One material manifistation of this research is an open source toolcalled BAP for performing analysis. BAP is extensible, plugins into existing frameworks used by professionals, and is free to the public.


As a broader impact, we know of several teams (at least two that we know of) in the cyber grand challenge which use techniques developed as partof this research.  A spinoff named ForAllSecure was created as a consequence of this research, and this spinoff currently leads the Cyber Grand Challenge contest in fully autonomous vulnerability discovery and repair.  

On the educational impact side, one significant outcome was the development of the CMU undergraduate security research team,which since 2009 has been the #1 US team in computer security competitions, and 3 times world champions. The undergraduate team also pioneered high school hacking contests, and this work led to the inception of picoctf, the largest hacking contest in the world by number of participants.

 


Last Modified: 05/29/2016
Modified by: David Brumley

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

Print this page

Back to Top of page