Assume but Verify: Deductive Verification of Leaked Information in Concurrent Applications (Extended Version)

09/07/2023
by   Toby Murray, et al.
0

We consider the problem of specifying and proving the security of non-trivial, concurrent programs that intentionally leak information. We present a method that decomposes the problem into (a) proving that the program only leaks information it has declassified via assume annotations already widely used in deductive program verification; and (b) auditing the declassifications against a declarative security policy. We show how condition (a) can be enforced by an extension of the existing program logic SecCSL, and how (b) can be checked by proving a set of simple entailments. Part of the challenge is to define respective semantic soundness criteria and to formally connect these to the logic rules and policy audit. We support our methodology in an auto-active program verifier, which we apply to verify the implementations of various case study programs against a range of declassification policies.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/30/2020

VERONICA: Expressive and Precise Concurrent Information Flow Security (Extended Version with Technical Appendices)

Methods for proving that concurrent software does not leak its secrets h...
research
11/15/2022

CommCSL: Proving Information Flow Security for Concurrent Programs using Abstract Commutativity

Information flow security ensures that the secret data manipulated by a ...
research
01/27/2023

Stack-Aware Hyperproperties

A hyperproperty relates executions of a program and is used to formalize...
research
05/29/2021

Formally Validating a Practical Verification Condition Generator (extended version)

A program verifier produces reliable results only if both the logic used...
research
11/15/2017

Efficient Verification of Multi-Property Designs (The Benefit of Wrong Assumptions) (Extended Version)

We consider the problem of efficiently checking a set of safety properti...
research
08/08/2019

Privatization-Safe Transactional Memories (Extended Version)

Transactional memory (TM) facilitates the development of concurrent appl...
research
03/27/2018

Proving Equivalence Between Imperative and MapReduce Implementations Using Program Transformations

Distributed programs are often formulated in popular functional framewor...

Please sign up or login with your details

Forgot password? Click here to reset