Award Abstract # 1941816
CAREER: Inferring and Securing Software Configurations through Automated Reasoning

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: THE UNIVERSITY OF CENTRAL FLORIDA BOARD OF TRUSTEES
Initial Amendment Date: January 30, 2020
Latest Amendment Date: May 31, 2024
Award Number: 1941816
Award Instrument: Continuing Grant
Program Manager: Andrian Marcus
amarcus@nsf.gov
 (703)292-0000
CCF
 Division of Computing and Communication Foundations
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: June 1, 2020
End Date: May 31, 2026 (Estimated)
Total Intended Award Amount: $418,506.00
Total Awarded Amount to Date: $434,506.00
Funds Obligated to Date: FY 2020 = $79,902.00
FY 2021 = $81,609.00

FY 2022 = $82,587.00

FY 2023 = $86,627.00

FY 2024 = $103,781.00
History of Investigator:
  • Paul Gazzillo (Principal Investigator)
    paul.gazzillo@ucf.edu
Recipient Sponsored Research Office: The University of Central Florida Board of Trustees
4000 CENTRAL FLORIDA BLVD
ORLANDO
FL  US  32816-8005
(407)823-0387
Sponsor Congressional District: 10
Primary Place of Performance: University of Central Florida
4000 CNTRL FLORIDA BLVD
Orlando
FL  US  32816-8005
Primary Place of Performance
Congressional District:
10
Unique Entity Identifier (UEI): RD7MXJV7DKT9
Parent UEI:
NSF Program(s): Software & Hardware Foundation
Primary Program Source: 01002021DB NSF RESEARCH & RELATED ACTIVIT
01002122DB NSF RESEARCH & RELATED ACTIVIT

01002223DB NSF RESEARCH & RELATED ACTIVIT

01002324DB NSF RESEARCH & RELATED ACTIVIT

01002425DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 1045, 7944, 9178, 9251
Program Element Code(s): 779800
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Highly-configurable software forms the basis of much modern computing infrastructure, because configurability enables extensive reuse. However, software configurability opens the door to misconfiguration vulnerabilities, which are invalid settings that expose software weaknesses. Misconfiguration is one of the most critical and common security risks. Real-world software, however, can have an enormous number of possible configurations and often lacks explicit information about what configurations are secure, leaving users to find and validate configuration settings manually. Compounding the problem, a complete computing system may combine hundreds or thousands of software packages whose configuration settings interact unexpectedly. The goal of this project is to automate the creation of valid configurations that are reliable and secure. As the world increasingly depends on smart infrastructure and Internet-of-Things devices to enhance lives, this research will benefit society by improving the reliability and security of the configurable software used in these computing devices. The research topics, results, and materials from this award will be used in education and training as well as outreach aimed at broadening participation in computing.

This project consists of four tasks that take the foundational first steps towards making software configuration reliable and secure. The first task is the development of a unified configuration language for configuration specifications that are explicit, well-defined, and amenable to formal modeling. To bootstrap support for existing software, this task will develop new algorithms to automatically extract specifications from known configuration mechanisms. The second task is an optimizing compiler for the unified configuration language that produces formal logic, so that checking secure configurations is equivalent to Boolean satisfiability. Algorithms for sampling and searching for valid configurations will also be developed to provide the basis for testing and security applications. The third task is a set of new techniques for testing highly-configurable software. This project will develop static analyses to localize defects to precise configurations and search-based algorithms to explore the space of valid configurations for software bugs. The fourth task is the development of new algorithms that automatically discover secure configurations, because a valid configuration may be bug-free but still violate a user's security policy. This project will develop algorithms to automatically find hardened configurations and minimize attack surface. These research tasks will be evaluated on critical, widely-used, highly-configurable software for the ability to infer, test, and secure configurations on a large scale efficiently.

This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

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.

Ahmmed, Jobayer and Cohen, Myra B and Gazzillo, Paul "Towards Automated Configuration Documentation" , 2024 https://doi.org/10.1145/3691620.3695311 Citation Details
Gazzillo, Paul "Inferring and securing software configurations using automated reasoning" Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering , 2020 https://doi.org/10.1145/3368089.3417041 Citation Details
Gazzillo, Paul and Cohen, Myra B. "Bringing Together Configuration Research: Towards a Common Ground" Onward! 2022: Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software , 2022 https://doi.org/10.1145/3563835.3568737 Citation Details
Oh, Jeho and Yldran, Necip Fazl and Braha, Julian and Gazzillo, Paul "Finding broken Linux configuration specifications by statically analyzing the Kconfig language" ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering , 2021 https://doi.org/10.1145/3468264.3468578 Citation Details
Pappas, Brent and Gazzillo, Paul "Semantic Analysis of Macro Usage for Portability" , 2024 https://doi.org/10.1145/3597503.3623323 Citation Details
Yldran, Necip Fazl and Oh, Jeho and Lawall, Julia and Gazzillo, Paul "Maximizing Patch Coverage for Testing of Highly-Configurable Software without Exploding Build Times" Proceedings of the ACM on Software Engineering , v.1 , 2024 https://doi.org/10.1145/3643746 Citation Details

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

Print this page

Back to Top of page