scispace - formally typeset
Journal ArticleDOI

Programs from Proofs: A Framework for the Safe Execution of Untrusted Software

TLDR
A new framework for the safe execution of untrusted code called Programs from Proofs (PfP), which transforms the program into an efficiently checkable form, thus guaranteeing quick safety checks for software consumers.
Abstract
Today, software is traded worldwide on global markets, with apps being downloaded to smartphones within minutes or seconds. This poses, more than ever, the challenge of ensuring safety of software in the face of (1) unknown or untrusted software providers together with (2) resource-limited software consumers. The concept of Proof-Carrying Code (PCC), years ago suggested by Necula, provides one framework for securing the execution of untrusted code. PCC techniques attach safety proofs, constructed by software producers, to code. Based on the assumption that checking proofs is usually much simpler than constructing proofs, software consumers should thus be able to quickly check the safety of software. However, PCC techniques often suffer from the size of certificates (i.e., the attached proofs), making PCC techniques inefficient in practice.In this article, we introduce a new framework for the safe execution of untrusted code called Programs from Proofs (PfP). The basic assumption underlying the PfP technique is the fact that the structure of programs significantly influences the complexity of checking a specific safety property. Instead of attaching proofs to program code, the PfP technique transforms the program into an efficiently checkable form, thus guaranteeing quick safety checks for software consumers. For this transformation, the technique also uses a producer-side automatic proof of safety. More specifically, safety proving for the software producer proceeds via the construction of an abstract reachability graph (ARG) unfolding the control-flow automaton (CFA) up to the degree necessary for simple checking. To this end, we combine different sorts of software analysis: expensive analyses incrementally determining the degree of unfolding, and cheap analyses responsible for safety checking. Out of the abstract reachability graph we generate the new program. In its CFA structure, it is isomorphic to the graph and hence another, this time consumer-side, cheap analysis can quickly determine its safety.Like PCC, Programs from Proofs is a general framework instantiable with different sorts of (expensive and cheap) analysis. Here, we present the general framework and exemplify it by some concrete examples. We have implemented different instantiations on top of the configurable program analysis tool CPAchecker and report on experiments, in particular on comparisons with PCC techniques.

read more

Citations
More filters
Proceedings Article

The trace partitioning abstract domain

TL;DR: A new generic abstract domain is introduced, the trace partitioning abstract domain, and a theoretical framework allowing a wide range of instantiations of the domain is developed, proving that all these instantiations give correct results.

Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems

TL;DR: The third international workshop tacas 97 enschede the netherlands (TACAS 1997) as mentioned in this paper was held in the Netherlands in 1997, where the authors presented tools and algorithms for the construction and analysis of systems.
Book ChapterDOI

MetaVal: Witness Validation via Verification

TL;DR: The approach of validation via verification is contributed to, which is a way to automatically construct a set of validators from aSet of existing verification engines, and it was successfully used in SV-COMP 2020 and confirmed 3 653 violation witnesses and 16 376 correctness witnesses.
Journal ArticleDOI

Verification Witnesses

TL;DR: The conceptual principles of verification witnesses are presented, a description of how to use them is given, a technical specification of the exchange format for witnesses is provided, and an extensive experimental study on the application of witness-based result validation is performed, using the validators CPAchecker, UAutomizer, CPA-witness2test, and FShell-wITNESS2test.
Journal ArticleDOI

Cooperative verifier-based testing with CoVeriTest

TL;DR: CoVeriTest is presented, a hybrid technique for test-suite generation that iteratively applies different conditional model checkers and allows users to adjust the level of cooperation and to configure individual time limits for each conditional modelChecker.
References
More filters
Book

Design Patterns: Elements of Reusable Object-Oriented Software

TL;DR: The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns, which most experienced OOP designers will find out they've known about patterns all along.
Proceedings ArticleDOI

Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints

TL;DR: In this paper, the abstract interpretation of programs is used to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations.
Book

Principles of program analysis

TL;DR: This book is unique in providing an overview of the four major approaches to program analysis: data flow analysis, constraint-based analysis, abstract interpretation, and type and effect systems.
Proceedings ArticleDOI

Proof-carrying code

TL;DR: It is shown in this paper how proof-carrying code might be used to develop safe assembly-language extensions of ML programs and the adequacy of concrete representations for the safety policy, the safety proofs, and the proof validation is proved.

Tools and Algorithms for the Construction and Analysis of Systems. Proc. TACAS 2009

TL;DR: This paper presents a meta-modelling framework for modeling and testing the robustness of the modeled systems and some of the techniques used in this framework have been developed and tested in the field.