Skip to feedback

Award Abstract # 1718713
SaTC: CORE: Small: Relational Verification for Information Assurance and Privacy

NSF Org: CNS
Division Of Computer and Network Systems
Recipient: THE TRUSTEES OF THE STEVENS INSTITUTE OF TECHNOLOGY
Initial Amendment Date: July 20, 2017
Latest Amendment Date: June 11, 2022
Award Number: 1718713
Award Instrument: Standard Grant
Program Manager: Sol Greenspan
sgreensp@nsf.gov
 (703)292-7841
CNS
 Division Of Computer and Network Systems
CSE
 Direct For Computer & Info Scie & Enginr
Start Date: August 1, 2017
End Date: July 31, 2023 (Estimated)
Total Intended Award Amount: $451,931.00
Total Awarded Amount to Date: $451,931.00
Funds Obligated to Date: FY 2017 = $451,931.00
History of Investigator:
  • David Naumann (Principal Investigator)
    naumann@cs.stevens.edu
Recipient Sponsored Research Office: Stevens Institute of Technology
ONE CASTLE POINT ON HUDSON
HOBOKEN
NJ  US  07030-5906
(201)216-8762
Sponsor Congressional District: 08
Primary Place of Performance: Stevens Institute of Technology
NJ  US  07030-5991
Primary Place of Performance
Congressional District:
08
Unique Entity Identifier (UEI): JJ6CN5Y5A2R5
Parent UEI:
NSF Program(s): Secure &Trustworthy Cyberspace
Primary Program Source: 01001718DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 025Z, 7434, 7923, 9178, 9251
Program Element Code(s): 806000
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

The project investigates how flows of information through cybersystems can be accurately detected, controlled, and explained. Methods from programming languages and mathematical logic are being extended to enable the analysis of information flow, that is, to address data confidentiality and integrity requirements that must be met to achieve security and privacy goals. These analyses are the basis for making systems transparent in the sense that stakeholders will be able to see and understand the flows of information in cyberspace. The research has the potential to transform computing practice by ensuring accountability of system designers and builders through evidence that includes mathematically precise specifications and proofs. By advancing the science of security, and bringing that science into K-12 education, this project is helping to broaden society's understanding of computational thinking to include principle-based models of security and privacy. This in turn will reduce security risks due to user behaviors, and increase the adoption of beneficial IT systems while protecting individual privacy.

By formulating inference and verification problems in terms of relational logic, wherein pairs of programs and program executions are compared, the research addresses core problems such as translating programs in high level domain-specific languages into lower level language with good performance and without risk of security vulnerabilities and privacy violations. Another problem addressed is correctness by construction, through instrumentation that monitors information flow within and across abstraction layers. This research is helping to make it possible for cybersystems to be designed and evaluated on the basis of evidence including formal specification and proof for end-to-end requirements, resting on machine-checked formal proofs of system components and their compositions. The project is making possible programming frameworks that enable building security in, and enabling tool developers and security analysts to more quickly address new concerns -- threats, platforms, languages -- with benefit of reusable modular theories and techniques.

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 12)
Antonopoulos, Timos and Koskinen, Eric and Le, Ton Chanh and Nagasamudram, Ramana and Naumann, David A. and Ngo, Minh "An Algebra of Alignment for Relational Verification" Proceedings of the ACM on Programming Languages , v.7 , 2023 https://doi.org/10.1145/3571213 Citation Details
Appel, Andrew W. and Naumann, David A. "Verified sequential Malloc/Free" International Symposium on Memory Management , 2020 https://doi.org/10.1145/3381898.3397211 Citation Details
Banerjee, Anindya and Nagasamudram, Ramana and Naumann, David A. and Nikouei, Mohammad "A Relational Program Logic with Data Abstraction and Dynamic Framing" ACM Transactions on Programming Languages and Systems , v.44 , 2022 https://doi.org/10.1145/3551497 Citation Details
Banerjee, Anindya and Naumann, David A. and Nikouei, Mohammad "A Logical Analysis of Framing for Specifications with Pure Method Calls" ACM Transactions on Programming Languages and Systems , v.40 , 2018 10.1145/3174801 Citation Details
Chudnov, Andrey and Naumann, David "Assuming you know: Epistemic Semantics of Relational Annotations for Expressive Flow Policies" IEEE Computer Security Foundations Symposium , 2018 Citation Details
Leavens, Gary T and Naumann, David A "An illustrated guide to the model theory of supertype abstraction and behavioral subtyping" Engineering Trustworthy Software Systems , 2018 Citation Details
Nagasamudram, Ramana and Banerjee, Anindya and Naumann, David A "The WhyRel Prototype for Modular Relational Verification of Pointer Programs" , 2023 https://doi.org/10.1007/978-3-031-30820-8_11 Citation Details
Nagasamudram, Ramana and Banerjee, Anindya and Naumann, David A. "The WhyRel Prototype for Modular Relational Verification of Pointer Programs" 29th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS) , 2023 Citation Details
Nagasamudram, Ramana and Naumann, David A. "Alignment Completeness for Relational Hoare Logics" IEEE Logic in Computer Science , 2021 https://doi.org/10.1109/LICS52264.2021.9470690 Citation Details
Naumann, David A "Thirty-seven years of relational Hoare logic: remarks on its principles and history" International Symposium on Leveraging Applications of Formal Methods, Verification and Validation , 2020 Citation Details
Ngo, Minh and Naumann, David A and Rezk, Tamara "Type-Based Declassification for Free" 22d International Conference on Formal Engineering Methods , 2020 https://doi.org/10.1007/978-3-030-63406-3_11 Citation Details
(Showing: 1 - 10 of 12)

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 aim of this project was to investigate how flows of information through cybersystems can be detected, controlled, and explained.  The ultimate goal is to make it possible for cybersystems to be designed and evaluated on the basis of evidence including formal specifications of end-to-end security and privacy requirements, resting on formal proofs of system components and their compositions.  The research supports programming frameworks that enable tool developers and security analysts to quickly address new concerns -- threats, platforms, languages -- with benefit of reusable modular theories and techniques.  

Intellectual merit:

The primary technical focus of the project is relational program logics, which are deductive systems for proving properties that involve two program executions.  One such property is behavioral equivalence between two programs, for example between an improved program and its predecessor, or between a source program and a version that has been hardened with security mechanisms.  Another two-execution property, nonintereference, the basis to specify confidentiality and integrity requirements.  

One major outcome is a deductive system, relational region logic (RelRL), its  formal validation with respect to program semantics, and its experimental validation using a prototype tool based on the logic.  RelRL advances the state of the art by effectively handling pointer-based dynamically allocated data structures, which are pervasive in practice and which pose challenges for formalization.  Using RelRL, researchers settled an open problem dating from 1972: proofs of equivalence of data representations for pointer programs.  Data abstraction is essential for modular software development.  Evaluations of RelRL demonstrated its effectiveness on representative programs beyond the scope of state of the art automated reasoning systems.  A key feature of RelRL supports reasoning by "aligning" related subprograms.

From prior work it was known that, for successful relational verification, good alignment is crucial.  The standard notion of logical completeness failed to account for this.  One project outcome is a new theory called alignment completeness which is applicable to any relational logic and which shed light on the limitations of prior work.  One finding of the project is that for alignment completeness, a relational logic should include means to rewrite program control structure.  The well established algebraic theory of control structure called Kleene Algebra with Tests (KAT) serves this purpose well.  

Another outcome of this project is the development of an algebraic theory, BiKAT,  which extends KAT to explicit reasoning about alignment.  Its development led to discovery of proof rules for "forall-exists properties" that capture security and other requirements for nondeterministic programs.  This in turn led to development of a new deductive system that is alignment complete for such properties.  It also led to development of a complete automata-based method for proving such properties.

High level system security requirements may best be formulated in terms of knowledge: what can an adversary learn from observing the system.  Mathematically, knowledge is a so-called hyperproperty, formulated in terms of multiple system executions.  One outcome of this project formulates knowledge-based security properties in a way that accounts for confidentiality policies that allow downgrading of sensitive information under specific conditions.  This formulation serves as basis for enforcement by means of runtime monitoring as well as statically by modular verification using relational logics.  This approach has been realized in a verification tool for C programs that has been used to prove security of programs including a sealed-bid auction server and a differentially-private location service.

Tools based on deductive logics require verification expertise on the part of their users.  Type systems are within the expertise of ordinary software developers, and basic confidentiality policies can be enforced on source programs by means of special-purpose type systems.  One outcome of this project is a way to encode security policy using a standard type system that supports data abstraction, and to establish the security guaranteed by this encoding based on the existing data abstraction property.  

Broader impact:  

This research advanced the science needed for static and dynamic techniques for achieving strong assurance of information flow security.  The ultimate impact will be improved security and privacy for software systems.  

These outcomes are documented in a number of peer-reviewed publications.  Publically available artifacts from the project include prototype tools for relational verification, a malloc/free system verified using the Verified Software Toolchain, and several verification case studies.

The award supported research training for a post-doctoral researcher, two PhD students, and several undergraduates.  Drawing on results from the project, the PI developed a new course on Formal Verification of Hyperproperties.


Last Modified: 11/29/2023
Modified by: David A Naumann

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

Print this page

Back to Top of page