
NSF Org: |
CCF Division of Computing and Communication Foundations |
Recipient: |
|
Initial Amendment Date: | February 16, 2016 |
Latest Amendment Date: | March 22, 2018 |
Award Number: | 1566154 |
Award Instrument: | Standard Grant |
Program Manager: |
Anindya Banerjee
abanerje@nsf.gov (703)292-7885 CCF Division of Computing and Communication Foundations CSE Directorate for Computer and Information Science and Engineering |
Start Date: | March 1, 2016 |
End Date: | February 28, 2019 (Estimated) |
Total Intended Award Amount: | $174,731.00 |
Total Awarded Amount to Date: | $206,731.00 |
Funds Obligated to Date: |
FY 2018 = $16,000.00 |
History of Investigator: |
|
Recipient Sponsored Research Office: |
1 UTSA CIR SAN ANTONIO TX US 78249-1644 (210)458-4340 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
1 UTSA Circle San Antonio TX US 78249-3209 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): |
Software & Hardware Foundation, CRII CISE Research Initiation |
Primary Program Source: |
01001819DB NSF RESEARCH & RELATED ACTIVIT |
Program Reference Code(s): |
|
Program Element Code(s): |
|
Award Agency Code: | 4900 |
Fund Agency Code: | 4900 |
Assistance Listing Number(s): | 47.070 |
ABSTRACT
Title: CRII: SHF: EVID: Evidence-Assisted Detection and Elimination of Memory Errors in Single and Multi-threaded Programs
Despite decades of efforts, most real-world C/C++ software is still deployed with memory errors. Existing approaches either introduce significant performance overhead (for detection) or only partially defeat memory errors. The intellectual merits of this project are an evidence-assisted approach (EVID) for dynamic analysis and prevention of memory errors. The project's broader significance and importance are in (a) efficient and precise detection tools that significantly reduce manual effort in locating and fixing memory errors; (b) the improvement of availability and security of software systems; and (c) outreach to underrepresented groups such as Hispanic students.
This project proposes several techniques to detect and prevent memory errors, which can greatly reduce zero-day vulnerabilities and improve the reliability/security of software systems. EVID employs the following insight: it is often possible to discover the evidence of errors such as buffer overflows, use-after-frees, and memory leaks, after-the-fact. Assisted by the evidence, this project utilizes deterministic and instrumented re-execution to pinpoint the exact causes of memory errors in both single and multithreaded programs. EVID further proposes an innovative system that automatically eliminates detected memory errors, without restarting the software or compromising its availability. Thus the tools developed in the project have a direct impact on improving robustness of national cyberinfrastructure.
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.
The project significantly advanced the state-of-the-arts in the following aspects.
1. It developped a novel record-and-replay system--iReplayer--for multithreaded applications, which could identically reproduce the original execution in the same process. This RnR system only imposes very little recording overhead, allowing it to be employed in the production systems.The paper is published in PLDI'18.
2. Based on the record-and-replay system, multiple tools have been built on top of it with the evidence-based approach. Two tools are developped to detect typical memory errors, such as buffer overflows and use-after-free bugs. The paper is published in PLDI'18.
3. Two secure memory allocators are built with this support. These memory allocators make it harder for attackers to succeed, even when applications have many latent memory errors. The papers are published in CCS'17 and USENIX Security'18, and the corresponding source code are openned in https://github.com/UTSASRG.
4. One tool of identifying one notorious concurrency issue--deadlocks--has been developped. Deadlocks may cause software to hang with no further progress. The tool imposes negligible runtime performanceoverhead (less than 3% on average) and small memory overhead(around 6%), without any storage consumption. After detection,UNDEADautomatically strengthens erroneous programs to pre-vent future occurrences of both existing and potential deadlock. The paper was published in ASE'17, and the source code is openned at https://github.com/UTSASRG .
5. One tool to identify the performance issue related with explicit synchronizations has been developped. it discovers many unknown but significant synchronization performance issues, but without imposing too much overhead for its detection. The paper was published in EuroSys'17, and the source code is openned at https://github.com/UTSASRG .
6. The first tool that could employ the sample of memory accesses to detect memory errors in the deployment environment has been developped. The paper was published in Micro'18, and the source code is openned at https://github.com/UTSASRG .
The project also has the following broader impacts.
1. One course project related to kernel memory management has been designed and applied to both graduate and undergraduate teaching in UTSA. This course project improves the performance of students by over 30%, and a SIGCSE'18 paper has been published on this.
2. The project creates some products that attracts the industry partners, such as Mozilla. They are interested in integrating our secure memory allocator with Firefox. Currently, this project is undergoing. If successful, it will benefit millions of users of using Firefox, improving their security.
3. The project outreached to K12 students via mentoring at Youth Code Jam and coaching at "USTA Robotics Summer Camp".
Last Modified: 04/03/2019
Modified by: Tongping Liu
Please report errors in award information by writing to: awardsearch@nsf.gov.