Network


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

Hotspot


Dive into the research topics where Sean Seefried is active.

Publication


Featured researches published by Sean Seefried.


ieee symposium on security and privacy | 2013

seL4: From General Purpose to a Proof of Information Flow Enforcement

Toby C. Murray; Daniel Matichuk; Matthew Brassil; Peter Gammie; Timothy Bourke; Sean Seefried; Corey Lewis; Xin Gao; Gerwin Klein

In contrast to testing, mathematical reasoning and formal verification can show the absence of whole classes of security vulnerabilities. We present the, to our knowledge, first complete, formal, machine-checked verification of information flow security for the implementation of a general-purpose microkernel; namely seL4. Unlike previous proofs of information flow security for operating system kernels, ours applies to the actual 8, 830 lines of C code that implement seL4, and so rules out the possibility of invalidation by implementation errors in this code. We assume correctness of compiler, assembly code, hardware, and boot code. We prove everything else. This proof is strong evidence of seL4s utility as a separation kernel, and describes precisely how the general purpose kernel should be configured to enforce isolation and mandatory information flow control. We describe the information flow security statement we proved (a variant of intransitive noninterference), including the assumptions on which it rests, as well as the modifications that had to be made to seL4 to ensure it was enforced. We discuss the practical limitations and implications of this result, including covert channels not covered by the formal proof.


generative programming and component engineering | 2004

Optimising embedded DSLs using Template Haskell

Sean Seefried; Manuel M. T. Chakravarty; Gabriele Keller

Embedded domain specific languages (EDSLs) provide a specialised language for a particular application area while harnessing the infrastructure of an existing general purpose programming language. The reduction in implementation costs that results from this approach comes at a price: the EDSL often compiles to inefficient code since the host language’s compiler only optimises at the level of host language constructs. The paper presents an approach to solving this problem based on compile-time meta-programming which retains the simplicity of the embedded approach. We use PanTHeon, our implementation of an existing EDSL for image synthesis to demonstrate the benefits and drawbacks of this approach. Furthermore, we suggest potential improvements to Template Haskell, the meta-programming framework we are using, which would greatly improve its applicability to this kind of task.


symposium/workshop on haskell | 2004

Plugging Haskell in

André Pang; Don Stewart; Sean Seefried; Manuel M. T. Chakravarty

Extension languages enable users to expand the functionality of an application without touching its source code. Commonly, these languages are dynamically typed languages, such as Lisp, Python, or domain-specific languages, which support runtime plugins via dynamic loading of components. We show that Haskell can be comfortably used as a statically typed extension language for both Haskell and foreign-language applications supported by the Haskell FFI, and that it can perform type-safe dynamic loading of plugins using dynamic types. Moreover, we discuss how plugin support is especially useful to applications where Haskell is used as an embedded domain-specific language (EDSL). We explain how to realise type-safe plugins using dynamic types, runtime compilation, and dynamic linking, exploiting infrastructure provided by the Glasgow Haskell Compiler. We demonstrate the practicability of our approach with several applications that serve as running examples.


automated technology for verification and analysis | 2008

Goanna: Syntactic Software Model Checking

Ralf Huuck; Ansgar Fehnker; Sean Seefried; Jörg Brauer

Goanna is an industrial-strength static analysis tool used in academia and industry alike to find bugs in C/C++ programs. Unlike existing approaches Goanna uses the off-the-shelf NuSMV model checker as its core analysis engine on a syntactic flow-sensitive program abstraction. The CTL-based model checking approach enables a high degree of flexibility in writing checks, scales to large number of checks, and can scale to large code bases. Moreover, the tool incorporates techniques from constraint solving, classical data flow analysis and a CEGAR inspired counterexample based path reduction. In this paper we describe Goannas core technology, its features and the relevant techniques, as well as our experiences of using Goanna on large code bases such as the Firefox web browser.


Concurrency, Compositionality, and Correctness | 2010

Counterexample guided path reduction for static program analysis

Ansgar Fehnker; Ralf Huuck; Sean Seefried

In this work we introduce counterexample guided path reduction based on interval constraint solving for static program analysis. The aim of this technique is to reduce the number of false positives by reducing the number of feasible paths in the abstraction iteratively. Given a counterexample, a set of observers is computed which exclude infeasible paths in the next iteration. This approach combines ideas from counterexample guided abstraction refinement for software verification with static analysis techniques that employ interval constraint solving. The advantage is that the analysis becomes less conservative than static analysis, while it benefits from the fact that interval constraint solving deals naturally with loops. We demonstrate that the proposed approach is effective in reducing the number of false positives, and compare it to other static checkers for C/C++ program analysis.


source code analysis and manipulation | 2008

Some Assembly Required - Program Analysis of Embedded System Code

Ansgar Fehnker; Ralf Huuck; Felix Rauch; Sean Seefried

Programming embedded system software typically involves more than one programming language. Normally, a high-level language such as C/C++ is used for application oriented tasks and a low-level assembly language for direct interaction with the underlying hardware. In most cases those languages are closely interwoven and the assembly is embedded in the C/C++ code. Verification of such programs requires the integrated analysis of both languages at the same time. However, common algorithmic verification tools fail to address this issue. In this work we present a model-checking based static analysis approach which seamlessly integrates the analysis of embedded ARM assembly with C/C++ code analysis. In particular, we show how to automatically check that the ARM code complies to its interface descriptions. Given interface compliance, we then provide an extended analysis framework for checking general properties of ARM code. We implemented this analysis in our source code analysis tool Goanna, and applied to the source code of an L4 micro kernel implementation.


automated technology for verification and analysis | 2009

Incremental False Path Elimination for Static Software Analysis

Ansgar Fehnker; Ralf Huuck; Sean Seefried

In this work we introduce a novel approach for removing false positives in static program analysis. We present an incremental algorithm that investigates paths to failure locations with respect to feasibility. The feasibility test it done by interval constraint solving over a semantic abstraction of program paths. Sets of infeasible paths can be ruled out by enriching the analysis incrementally with observers. Much like counterexample guided abstraction refinement for software verification our approach enables to start static program analysis with a coarse syntactic abstraction and use richer semantic information to rule out false positives when necessary and possible. Moreover, we present our implementation in the Goanna static analyzer and compare it to other tools for C/C++ program analysis.


Archive | 2008

MULTI LANGUAGE SOFTWARE CODE ANALYSIS

Ralf Huuck; Felix Rauch; Bernhard Blackham; Sean Seefried


Electronic Notes in Theoretical Computer Science | 2010

Fade to Grey: Tuning Static Program Analysis

Ansgar Fehnker; Ralf Huuck; Sean Seefried; Michael Tapp


Archive | 2007

Analysing Embedded System Software

Ansgar Fehnker; Ralf Huuck; Felix Rauch; Sean Seefried

Collaboration


Dive into the Sean Seefried's collaboration.

Top Co-Authors

Avatar

Ralf Huuck

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar

Ansgar Fehnker

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar

Felix Rauch

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

André Pang

Commonwealth Scientific and Industrial Research Organisation

View shared research outputs
Top Co-Authors

Avatar

Don Stewart

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar

Gabriele Keller

University of New South Wales

View shared research outputs
Top Co-Authors

Avatar

Gerwin Klein

University of New South Wales

View shared research outputs
Researchain Logo
Decentralizing Knowledge