Catálogo de publicaciones - libros
Título de Acceso Abierto
Computer Aided Verification
Hana Chockler ; Georg Weissenbacher (eds.)
En conferencia: 30º International Conference on Computer Aided Verification (CAV) . Oxford, United Kingdom . July 14, 2018 - July 17, 2018
Resumen/Descripción – provisto por la editorial
No disponible.
Palabras clave – provistas por la editorial
Logics and Meanings of Programs; Software Engineering; Artificial Intelligence (incl. Robotics); Mathematical Logic and Formal Languages; Algorithm Analysis and Problem Complexity; Simulation and Modeling
Disponibilidad
Institución detectada | Año de publicación | Navegá | Descargá | Solicitá |
---|---|---|---|---|
No requiere | 2018 | SpringerLink |
Información
Tipo de recurso:
libros
ISBN impreso
978-3-319-96141-5
ISBN electrónico
978-3-319-96142-2
Editor responsable
Springer Nature
País de edición
Reino Unido
Fecha de publicación
2018
Información sobre derechos de publicación
© The Editor(s) (if applicable) and The Author(s) 2018
Tabla de contenidos
Reasoning About TSO Programs Using Reduction and Abstraction
Ahmed Bouajjani; Constantin Enea; Suha Orhun Mutluergil; Serdar Tasiran
We present a method for proving that a program running under the Total Store Ordering (TSO) memory model is robust, i.e., all its TSO computations are equivalent to computations under the Sequential Consistency (SC) semantics. This method is inspired by Lipton’s reduction theory for proving atomicity of concurrent programs. For programs which are not robust, we introduce an abstraction mechanism that allows to construct robust programs over-approximating their TSO semantics. This enables the use of proof methods designed for the SC semantics in proving invariants that hold on the TSO semantics of a non-robust program. These techniques have been evaluated on a large set of benchmarks using the infrastructure provided by CIVL, a generic tool for reasoning about concurrent programs under the SC semantics.
- Concurrency | Pp. 336-353
Quasi-Optimal Partial Order Reduction
Huyen T. T. Nguyen; César Rodríguez; Marcelo Sousa; Camille Coti; Laure Petrucci
A dynamic partial order reduction (DPOR) algorithm is optimal when it always explores at most one representative per Mazurkiewicz trace. Existing literature suggests that the reduction obtained by the non-optimal, state-of-the-art Source-DPOR (SDPOR) algorithm is comparable to optimal DPOR. We show the first program with Mazurkiewicz traces where SDPOR explores redundant schedules (as this paper was under review, we were made aware of the recent publication of another paper [] which contains an independently-discovered example program with the same characteristics). We furthermore identify the cause of this blow-up as an NP-hard problem. Our main contribution is a new approach, called Quasi-Optimal POR, that can arbitrarily approximate an optimal exploration using a provided constant . We present an implementation of our method in a new tool called using specialised data structures. Experiments with , including Debian packages, show that optimality is achieved with low values of , outperforming state-of-the-art tools.
- Concurrency | Pp. 354-371
On the Completeness of Verifying Message Passing Programs Under Bounded Asynchrony
Ahmed Bouajjani; Constantin Enea; Kailiang Ji; Shaz Qadeer
We address the problem of verifying message passing programs, defined as a set of processes communicating through unbounded FIFO buffers. We introduce a bounded analysis that explores a special type of computations, called -synchronous. These computations can be viewed as (unbounded) sequences of interaction phases, each phase allowing at most send actions (by different processes), followed by a sequence of receives corresponding to sends in the same phase. We give a procedure for deciding of a program, i.e., whether every computation is equivalent (has the same happens-before relation) to one of its -synchronous computations. We show that reachability over -synchronous computations and checking -synchronizability are both PSPACE-complete.
- Concurrency | Pp. 372-391
Constrained Dynamic Partial Order Reduction
Elvira Albert; Miguel Gómez-Zamalloa; Miguel Isabel; Albert Rubio
The cornerstone of dynamic partial order reduction (DPOR) is the notion of that is used to decide whether each pair of concurrent events and are in a race and thus both and must be explored. We present dynamic partial order reduction (CDPOR), an extension of the DPOR framework which is able to avoid redundant explorations based on the notion of —the execution of and commutes only when certain s (ICs) are satisfied. ICs can be declared by the programmer, but importantly, we present a novel SMT-based approach to automatically synthesize ICs in a static pre-analysis. A unique feature of our approach is that we have succeeded to exploit ICs within the state-of-the-art DPOR algorithm, achieving reductions over existing implementations.
- Concurrency | Pp. 392-410
Formal Verification of a Vehicle-to-Vehicle (V2V) Messaging System
Mark Tullsen; Lee Pike; Nathan Collins; Aaron Tomb
Vehicle-to-Vehicle (V2V) communications is a “connected vehicles” standard that will likely be mandated in the U.S. within the coming decade. V2V, in which automobiles broadcast to one another, promises improved safety by providing collision warnings, but it also poses a security risk. At the heart of V2V is the communication messaging system, specified in SAE J2735 using the Abstract Syntax Notation One (ASN.1) data-description language. Motivated by numerous previous ASN.1 related vulnerabilities, we present the formal verification of an ASN.1 encode/decode pair. We describe how we generate the implementation in C using our ASN.1 compiler. We define for encode/decode pairs that approximates functional correctness without requiring a formal specification of ASN.1. We then verify self-consistency and memory safety using symbolic simulation via the .
- CPS, Hardware, Industrial Applications | Pp. 413-429
Continuous Formal Verification of Amazon s2n
Andrey Chudnov; Nathan Collins; Byron Cook; Joey Dodds; Brian Huffman; Colm MacCárthaigh; Stephen Magill; Eric Mertens; Eric Mullen; Serdar Tasiran; Aaron Tomb; Eddy Westbrook
We describe formal verification of s2n, the open source TLS implementation used in numerous Amazon services. A key aspect of this proof infrastructure is continuous checking, to ensure that properties remain proven during the lifetime of the software. At each change to the code, proofs are automatically re-established with little to no interaction from the developers. We describe the proof itself and the technical decisions that enabled integration into development.
- CPS, Hardware, Industrial Applications | Pp. 430-446
Symbolic Liveness Analysis of Real-World Software
Daniel Schemmel; Julian Büning; Oscar Soria Dustmann; Thomas Noll; Klaus Wehrle
Liveness violation bugs are notoriously hard to detect, especially due to the difficulty inherent in applying formal methods to real-world programs. We present a generic and practically useful liveness property which defines a program as being live as long as it will eventually either consume more input or terminate. We show that this property naturally maps to many different kinds of real-world programs.
To demonstrate the usefulness of our liveness property, we also present an algorithm that can be efficiently implemented to dynamically find lassos in the target program’s state space during Symbolic Execution. This extends Symbolic Execution, a well known dynamic testing technique, to find a new class of program defects, namely liveness violations, while only incurring a small runtime and memory overhead, as evidenced by our evaluation. The implementation of our method found a total of five previously undiscovered software defects in BusyBox and the GNU Coreutils. All five defects have been confirmed and fixed by the respective maintainers after shipping for years, most of them well over a decade.
- CPS, Hardware, Industrial Applications | Pp. 447-466
Model Checking Boot Code from AWS Data Centers
Byron Cook; Kareem Khazem; Daniel Kroening; Serdar Tasiran; Michael Tautschnig; Mark R. Tuttle
This paper describes our experience with symbolic model checking in an industrial setting. We have proved that the initial boot code running in data centers at Amazon Web Services is memory safe, an essential step in establishing the security of any data center. Standard static analysis tools cannot be easily used on boot code without modification owing to issues not commonly found in higher-level code, including memory-mapped device interfaces, byte-level memory access, and linker scripts. This paper describes automated solutions to these issues and their implementation in the C Bounded Model Checker (CBMC). CBMC is now the first source-level static analysis tool to extract the memory layout described in a linker script for use in its analysis.
- CPS, Hardware, Industrial Applications | Pp. 467-486
Android Stack Machine
Taolue Chen; Jinlong He; Fu Song; Guozhen Wang; Zhilin Wu; Jun Yan
In this paper, we propose Android Stack Machine (ASM), a formal model to capture key mechanisms of Android multi-tasking such as activities, back stacks, launch modes, as well as task affinities. The model is based on pushdown systems with multiple stacks, and focuses on the evolution of the back stack of the Android system when interacting with activities carrying specific launch modes and task affinities. For formal analysis, we study the reachability problem of ASM. While the general problem is shown to be undecidable, we identify expressive fragments for which various verification techniques for pushdown systems or their extensions are harnessed to show decidability of the problem.
- CPS, Hardware, Industrial Applications | Pp. 487-504
Formally Verified Montgomery Multiplication
Christoph Walther
We report on a machine assisted verification of an efficient implementation of Montgomery Multiplication which is a widely used method in cryptography for efficient computation of modular exponentiation. We shortly describe the method, give a brief survey of the VeriFun system used for verification, present the formal proofs and report on the effort for creating them. Our work uncovered a serious fault in a published algorithm for computing multiplicative inverses based on Newton-Raphson iteration, thus providing further evidence for the benefit of computer-aided verification.
- CPS, Hardware, Industrial Applications | Pp. 505-522