Product Programs in the Wild: Retrofitting Program Verifiers to Check Information Flow Security
Marco Eilers, Severin Meier, Peter Müller
Abstract
Abstract Most existing program verifiers check trace properties such as functional correctness, but do not support the verification of hyperproperties, in particular, information flow security. In principle, product programs allow one to reduce the verification of hyperproperties to trace properties and, thus, apply standard verifiers to check them; in practice, product constructions are usually defined only for simple programming languages without features like dynamic method binding or concurrency and, consequently, cannot be directly applied to verify information flow security in a full-fledged language. However, many existing verifiers encode programs from source languages into simple intermediate verification languages, which opens up the possibility of constructing a product program on the intermediate language level, reusing the existing encoding and drastically reducing the effort required to develop new verification tools for information flow security. In this paper, we explore the potential of this approach along three dimensions: (1) Soundness: We show that the combination of an encoding and a product construction that are individually sound can still be unsound, and identify a novel condition on the encoding that ensures overall soundness. (2) Concurrency: We show how sequential product programs on the intermediate language level can be used to verify information flow security of concurrent source programs. (3) Performance: We implement a product construction in Nagini, a Python verifier built upon the Viper intermediate language, and evaluate it on a number of challenging examples. We show that the resulting tool offers acceptable performance, while matching or surpassing existing tools in its combination of language feature support and expressiveness.
Ask about this paper
Ask your agent about it.
Lune has read the top-tier papers around this one, so every answer names the papers it rests on.
Your agent calls
Lunesearch_papers
Free to start. No credit card required.
Terminal
Install the CLIlune papers get d60b910e-368f-42a7-873c-3f53c81148a6Cited by top-tier papers3
- CommCSL: Proving Information Flow Security for Concurrent Programs using Abstract CommutativityMarco Eilers, Thibault Dardinier, Peter MüllerPLDI 2023 · 9 citations
- Proof Automation for Linearizability in Separation LogicIke Mulder, Robbert KrebbersOOPSLA 2023 · 8 citations
- Verification Algorithms for Automated Separation Logic VerifiersMarco Eilers, Malte Schwerhoff, Peter MüllerCAV 2024 · 5 citations
Related papers
- Modular Reasoning About Object RelationsMicha Greutmann, Marco Eilers, Peter MüllerCAV 2026
- Products of Recursive Programs for Hypersafety VerificationRuotong Cheng, Azadeh FarzanOOPSLA 2025
- Towards Trustworthy Automated Program Verifiers: Formally Validating Translations into an Intermediate Verification LanguageGaurav Parthasarathy, Thibault Dardinier, Benjamin Bonneau, Peter Müller et al.PLDI 2024 · 6 citations
- Abductive Inference of Separation Logic Specifications with Isorecursive User-Defined Predicates and Magic WandsNicolas Klose, Peter MüllerOOPSLA 2026 · 1 citation
- Generating Proof Certificates for a Language-Agnostic Deductive Program VerifierZhengyao Lin, Xiaohong Chen, Minh-Thai Trinh, John Wang et al.OOPSLA 2023 · 12 citations
