Catálogo de publicaciones - libros

Compartir en
redes sociales


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 acceso abierto

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

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