Award Abstract # 1548848
EAGER: Collaborative Research: Leveraging Graph Databases for Incremental and Scalable Symbolic Analysis and Verification of Web Applications

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: UNIVERSITY OF CALIFORNIA, SANTA BARBARA
Initial Amendment Date: July 24, 2015
Latest Amendment Date: July 24, 2015
Award Number: 1548848
Award Instrument: Standard Grant
Program Manager: Nina Amla
namla@nsf.gov
 (703)292-7991
CCF
 Division of Computing and Communication Foundations
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: September 1, 2015
End Date: February 28, 2018 (Estimated)
Total Intended Award Amount: $99,989.00
Total Awarded Amount to Date: $99,989.00
Funds Obligated to Date: FY 2015 = $99,989.00
History of Investigator:
  • Tevfik Bultan (Principal Investigator)
    bultan@cs.ucsb.edu
  • Xifeng Yan (Co-Principal Investigator)
Recipient Sponsored Research Office: University of California-Santa Barbara
3227 CHEADLE HALL
SANTA BARBARA
CA  US  93106-0001
(805)893-4188
Sponsor Congressional District: 24
Primary Place of Performance: University of California-Santa Barbara
Santa Barbara
CA  US  93106-5110
Primary Place of Performance
Congressional District:
24
Unique Entity Identifier (UEI): G9QBQDH39DF4
Parent UEI:
NSF Program(s): Software & Hardware Foundation
Primary Program Source: 01001516DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7916, 8206
Program Element Code(s): 779800
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Modern human society relies heavily on web applications and is deeply affected by their poor dependability. Unfortunately, no matter how much effort is put into verification and validation of software, existing techniques are inherently limited, and software is routinely released with bugs and issues that limit its functionality and can dramatically affect the user experience. This project investigates an approach that has the potential to significantly improve the scalability and effectiveness of symbolic program analysis and verification techniques, that will improve the dependability of modern web applications.

This project develops techniques and tools that use symbolic execution and automata-based verification techniques to automatically analyze and verify web applications, and store results of symbolic analyses in a graph database for efficient storage, and retrieval. The methods use incremental and differential analysis strategies that utilize the graph database in order to improve scalability and effectiveness of software analysis and verification. The project trains graduate students, and will make its artifacts publicly available to other researchers and educators.

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.

S. Yavuz, I. Gur, Y. Su, X. Yan. "Recovering Question Answering Errors via Query Revision" Proceedings of the 2017 Conference on Empirical Methods in Natural LanguageProcessing (EMNLP'17) , 2017

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 main goal of this project was to develop scalable program analysis techniques to improve security and dependability of software systems. Within the scope of this project, we have developed several novel program analysis techniques and improved their scalability. 

We developed novel constraint solving and model counting techniques for handling both numeric and string constraints and their combinations. We implemented our results in a novel constraint solver called ABC that stores constraints as automata. To improve scalability of constraint based program analysis, we developed a constraint database called Cashew that can cache numeric and string constraints and model counting queries. We conducted empirical studies that demonstrate that constraint caching can significantly improve the performance of symbolic and quantitative program analyses.

Our results on constraint cashing demonstrate that using appropriate constraint databases, the scalability of symbolic program analysis can be significantly improved.

We developed a novel static, scalable analysis technique for detecting side channels in software systems based on symbolic cost analysis of program paths.  We implemented our symbolic path cost analysis technique for detecting side channels in a prototype tool, CoCo-Channel (Compositional Constraint based side Channel analyzer), for analyzing Java programs.

We developed symbolic analysis techniques for detecting vulnerabilities that are due to adaptive side-channel attacks, and synthesizing attacks that exploit the identified vulnerabilities.

Our results on side channel analysis demonstrate that symbolic execution techniques, when combined with automata-based model-counting constraint solvers, can be used to identify side channels in software applications. Side channel analysis is a very important problem in computing since it can be used to identify leakage of privileged information, which is crucial for dependability of modern software systems.

Our results on automated attack synthesis enable us to identify the attacks that malicious users can launch against software systems.  This knowledge is necessary for remedying existing vulnerabilities.

We developed a static analysis technique for iOS executables for checking API call vulnerabilities.  Using a combination of dependency analysis and string analysis, we were able to detect potential violations of Apple’s API policies (such as restricted use of private/sensitive APIs) in iOS executables.

Our results on information-flow tracking show that it is feasible to perform accurate forensic analysis of attacks in real-world scenarios. This can help making software systems more secure against the increasingly common phenomenon of advanced persistent threats.

The results from the research conducted within the scope of this project were published in international conferences and presented to the international research community. PIs gave invited, distinguished and keynote talks to present the research results they obtained within the scope of this project. The students who participated in this research project have gained valuable research experience and training. They have furthered their education and improved their research skills.


Last Modified: 05/22/2018
Modified by: Tevfik Bultan

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

Print this page

Back to Top of page