Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Christoph Baumann is active.

Publication


Featured researches published by Christoph Baumann.


international conference on computer safety reliability and security | 2009

Formal Verification of a Microkernel Used in Dependable Software Systems

Christoph Baumann; Bernhard Beckert; Holger Blasum; Thorsten Bormer

In recent years, deductive program verification has improved to a degree that makes it feasible for real-world programs. Following this observation, the main goal of the BMBF-supported Verisoft XT project is (a) the creation of methods and tools which allow the pervasive formal verification of integrated computer systems, and (b) the prototypical realization of four concrete, industrial application tasks. In this paper, we report on the Verisoft XT subproject Avionics, where formal verification is being applied to a commercial embedded operating system. The goal is to use deductive techniques to verify functional correctness of the PikeOS system, which is a microkernel-based partitioning hypervisor. We present our approach to verifying the microkernels system calls, using a system call for changing the priority of threads as an example. In particular, (a) we give an overview of the tool chain and the verification methodology, (b) we explain the hardware model and how assembly semantics is specified so that functions whose implementation contain assembly can be verified, and (c) we describe the verification of the system call itself.


international symposium on object component service oriented real time distributed computing | 2011

Proving Memory Separation in a Microkernel by Code Level Verification

Christoph Baumann; Thorsten Bormer; Holger Blasum; Sergey Tverdyshev

Often, an integrated mixed-criticality system is built in an environment which provides separation functionality for available on-board resources. In this paper we treat such an environment: the PikeOS separation kernel -- a commercial real-time embedded operating system. PikeOS allows applications with different safety and security levels to run on the same hardware. Obviously, a mixed-criticality system built on PikeOS relies on the correct implementation of the separation mechanisms. In the context of the Verisoft XT and TECOM projects we apply deductive formal software verification to the PikeOS separation mechanisms in order to validate this security requirement. In this work we consider formal verification of a kernel memory manager which is one of the crucial components of the separation functionality. The verification of the memory manager is carried out on the level of the source code using the VCC tool developed by Microsoft Research. Furthermore, we present the overall correctness arguments needed to prove the intended separation property, describe the necessary functional correctness properties of PikeOS, and explain how to formulate these properties in a modular way to be used by VCC. In doing so we demonstrate how a proof of a non-functional system requirement can be conducted based on results from formal verification on the lowest possible level of human-written artefacts, that is the source code level.


ieee symposium on security and privacy | 2016

Cache Storage Channels: Alias-Driven Attacks and Verified Countermeasures

Roberto Guanciale; Hamed Nemati; Christoph Baumann; Mads Dam

Caches pose a significant challenge to formal proofs of security for code executing on application processors, as the cache access pattern of security-critical services may leak secret information. This paper reveals a novel attack vector, exposing a low-noise cache storage channel that can be exploited by adapting well-known timing channel analysis techniques. The vector can also be used to attack various types of security-critical software such as hypervisors and application security monitors. The attack vector uses virtual aliases with mismatched memory attributes and self-modifying code to misconfigure the memory system, allowing an attacker to place incoherent copies of the same physical address into the caches and observe which addresses are stored in different levels of cache. We design and implement three different attacks using the new vector on trusted services and report on the discovery of an 128-bit key from an AES encryption service running in TrustZone on Raspberry Pi 2. Moreover, we subvert the integrity properties of an ARMv7 hypervisor that was formally verified against a cache-less model. We evaluate well-known countermeasures against the new attack vector and propose a verification methodology that allows to formally prove the effectiveness of defence mechanisms on the binary code of the trusted software.


systems software verification | 2012

Lessons Learned From Microkernel Verification Specification is the New Bottleneck

Christoph Baumann; Bernhard Beckert; Holger Blasum; Thorsten Bormer

Software verification tools have become a lot more powerful in recent years. Even verification of large, complex systems is feasible, as demonstrated in the L4.verified and Verisoft XT projects. Still, functional verification of large software systems is rare ‐ for reasons beyond the large scale of verification effort needed due to the size alone. In this paper we report on lessons learned for verification of large software systems based on the experience gained in microkernel verification in the Verisoft XT project. We discuss a number of issues that impede widespread introduction of formal verification in the software life-cycle process.


Journal of Computer Security | 2016

Provably secure memory isolation for Linux on ARM

Roberto Guanciale; Hamed Nemati; Mads Dam; Christoph Baumann

The isolation of security critical components from an untrusted OS allows to both protect applications and to harden the OS itself. Virtualization of the memory subsystem is a key component to prov ...


european conference on networks and communications | 2016

A High Assurance Virtualization Platform for ARMv8

Christoph Baumann; Mats Näslund; Christian Gehrmann; Oliver Schwarz; Hans Thorsen

This paper presents the first results from the ongoing research project HASPOC, developing a high assurance virtualization platform for the ARMv8 CPU architecture. Formal verification at machine code level guarantees information isolation between different guest systems (e.g. OSs) running on the platform. To use the platform in networking scenarios, we allow guest systems to securely communicate with each other via platform-provided communication channels and to take exclusive control of peripherals for communication with the outside world. The isolation is shown to be formally equivalent to that of guests executing on physically separate platforms with dedicated communication channels crossing the air-gap. Common Criteria (CC) assurance methodology is applied by preparing the CC documentation required for an EAL6 evaluation of products using the platform. Besides the hypervisor, a secure boot component is included and verified to ensure system integrity.


Archive | 2014

Ownership-based order reduction and simulation in shared-memory concurrent computer systems

Christoph Baumann

The highest level of confidence in the correct functionality of system software can be gained from a pervasive formal verification approach, where the high-level language application layer is connected to the gate-level hardware layer through a stack of semantic layers coupled by simulation theorems. While such semantic stacks exist for sequential systems, the foundational theory of semantic stacks for concurrent systems is still incomplete. This thesis contributes to close this gap. First we prove a general order reduction theorem establishing a model where processes are executing blocks of steps, being only interleaved at selectable interleavingpoints. An ownership-based memory access policy is imposed to prove commutativity properties for non-synchronizing steps, enabling the desired reordering. In contrast to existing work, we only assume properties on the order-reduced level, thus providing a complete abstraction. We then apply sequential simulation theorems on top of the block schedules and prove a general simulation theorem between two abstract concurrent systems including the transfer of safety properties. Finally we instantiate our frameworks with a MIPS instruction set architecture, a macro assembler (MASM) semantics, and an intermediate language semantics for C. Applying the concurrent simulation theorem, we justify the concurrent semantics of MASM and C against their ISA implementation.


principles of security and trust | 2018

Formal Verification of Integrity-Preserving Countermeasures Against Cache Storage Side-Channels

Hamed Nemati; Christoph Baumann; Roberto Guanciale; Mads Dam

Formal verification of systems-level software such as hypervisors and operating systems can enhance system trustworthiness. However, without taking low level features like caches into account the verification may become unsound. While this is a well-known fact w.r.t. timing leaks, few works have addressed latent cache storage side-channels, whose effects are not limited to information leakage. We present a verification methodology to analyse soundness of countermeasures used to neutralise these channels. We apply the proposed methodology to existing countermeasures, showing that they allow to restore integrity of the system. We decompose the proof effort into verification conditions that allow for an easy adaption of our strategy to various software and hardware platforms. As case study, we extend the verification of an existing hypervisor whose integrity can be tampered using cache storage channels. We used the HOL4 theorem prover to validate our security analysis, applying the verification methodology to a generic hardware model.


Archive | 2016

A Generic Operating System Kernel

Wolfgang J. Paul; Christoph Baumann; Petro Lutsyk; Sabine Schmaltz; Jonas Oberhauser

The authors explain physical and virtual machines, including the topics of communicating virtual machines, the concrete kernel, the runvm primitive, simulation of CVM steps, and page fault handling.


Archive | 2016

Understanding Decimal Addition

Wolfgang J. Paul; Christoph Baumann; Petro Lutsyk; Sabine Schmaltz

In this chapter the authors use decimal addition to introduce important ideas relating to natural numbers, Peano’s axioms and computer arithmetic.

Collaboration


Dive into the Christoph Baumann's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Mads Dam

Royal Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Roberto Guanciale

Royal Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Hamed Nemati

Royal Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Thorsten Bormer

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Oliver Schwarz

Royal Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Bernhard Beckert

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Hamed Nemati

Royal Institute of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge