UFO: Verification with Interpolants and Abstract Interpretation



Similar documents
Resolving Chaos Arising from Agile Software Development

Evaluating the Quality of Software Engineering Performance Data

Assurance Cases for Design Analysis of Complex System of Systems Software

2012 CyberSecurity Watch Survey

Moving Target Reference Implementation

Model Checking Distributed Software

Exploring the Interactions Between Network Data Analysis and Security Information/Event Management

Supply-Chain Risk Management Framework

Applying Software Quality Models to Software Security

Monitoring Trends in Network Flow for Situational Awareness

Overview. CMU/SEI Cyber Innovation Center. Dynamic On-Demand High-Performance Computing System. KVM and Hypervisor Security.

Network Analysis with isilk

Common Testing Problems: Pitfalls to Prevent and Mitigate

Merging Network Configuration and Network Traffic Data in ISP-Level Analyses

Contracting Officer s Representative (COR) Interactive SharePoint Wiki

Risk Management Framework

Assurance in Service-Oriented Environments

Getting Started with Service- Oriented Architecture (SOA) Terminology

Network Monitoring for Cyber Security

CMMI for SCAMPI SM Class A Appraisal Results 2011 End-Year Update

SOA for Healthcare: Promises and Pitfalls

Architectural Implications of Cloud Computing

CMMI: What do we need to do in Requirements Management & Engineering?

A Study of Systems Engineering Effectiveness. Building a Business Case for Systems Engineering

A Systematic Method for Big Data Technology Selection

InvGen: An Efficient Invariant Generator

Electricity Subsector Cybersecurity Capability Maturity Model (ES-C2M2) (Case Study) James Stevens Senior Member, Technical Staff - CERT Division

Arcade Game Maker Pedagogical Product Line: Marketing and Product Plan

Data Management Maturity (DMM) Model Update

Copyright 2014 Carnegie Mellon University The Cyber Resilience Review is based on the Cyber Resilience Evaluation Method and the CERT Resilience

Department of Homeland Security Cyber Resilience Review (Case Study) Matthew Butkovic Technical Manager - Cybersecurity Assurance, CERT Division

µz An Efficient Engine for Fixed points with Constraints

Ipek Ozkaya Senior Researcher

The Key to Successful Monitoring for Detection of Insider Attacks

Agile Development and Software Architecture: Understanding Scale and Risk

Operationally Critical Threat, Asset, and Vulnerability Evaluation SM (OCTAVE SM ) Framework, Version 1.0

Firewall Design: Consistency, Completeness, Compactness

An Application of an Iterative Approach to DoD Software Migration Planning

January 9, To Whom It May Concern:

Software Verification with Program-Graph Interpolation and Abstraction. Aws Albarghouthi

Introduction to the OCTAVE Approach

IKOS: A Framework for Static Analysis based on Abstract Interpretation (Tool Paper)

CERT Virtual Flow Collection and Analysis

How To Use Elasticsearch

Extending AADL for Security Design Assurance of the Internet of Things

How To Ensure Security In A System

The software model checker BLAST

A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation

Buyer Beware: How To Be a Better Consumer of Security Maturity Models

Steve Masters (SEI) SEPG North America March Carnegie Mellon University

VoIP in Flow A Beginning

Automated Provisioning of Cloud and Cloudlet Applications

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

Non-Monotonic Program Analysis

Formal Engineering for Industrial Software Development

GameTime: A Toolkit for Timing Analysis of Software

DoD Software Migration Planning

Kurt Wallnau Senior Member of Technical Staff

APRON. The APRON library Edition 0.9.8, October by Bertrand Jeannet and the APRON team

Cyber Intelligence Workforce

The Software Model Checker BLAST: Applications to Software Engineering

Interpreting Capability Maturity Model Integration (CMMI ) for Business Development Organizations in the Government and Industrial Business Sectors

Preview of the Mission Assurance Analysis Protocol (MAAP): Assessing Risk and Opportunity in Complex Environments

Interpreting Capability Maturity Model Integration (CMMI ) for Service Organizations a Systems Engineering and Integration Services Example

Visualizing Information Flow through C Programs

Penetration Testing Tools

Using Domain Name Registrant Information To Identify Malicious Domains

Chair of Software Engineering. Software Verification. Assertion Inference. Carlo A. Furia

Copyright 2014 Carnegie Mellon University The Cyber Resilience Review is based on the Cyber Resilience Evaluation Method and the CERT Resilience

Open Source Software used in the product

Guidelines for Developing a Product Line Production Plan

Coverability for Parallel Programs

Service Measurement Index Framework Version 2.1

Sustaining Operational Resiliency: A Process Improvement Approach to Security Management

Model Checking: An Introduction

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Experiences in Migrations of Legacy Systems

Model Checking II Temporal Logic Model Checking

Introduction to Static Analysis for Assurance

RSA Two Factor Authentication

Testing a Software Product Line

Numerology - A Case Study in Network Marketing Fractions

Data Rights for Proprietary Software Used in DoD Programs

Software Vulnerabilities in Java

Towards OpenMP Support in LLVM

$100 SiLK Network Flow Sensor

Guidelines for Developing a Product Line Concept of Operations

Software Architecture for Big Data Systems. Ian Gorton Senior Member of the Technical Staff - Architecture Practices

Building Resilient Systems: The Secure Software Development Lifecycle

Software Verification: Infinite-State Model Checking and Static Program

Understanding High Maturity Organizations

CMMI for Development, Version 1.3

Faster SAT Solving with Better CNF Generation

emontage: An Architecture for Rapid Integration of Situational Awareness Data at the Edge

Abuse of CPE Devices and Recommended Fixes


How To Write A Test Engine For A Microsoft Microsoft Web Browser (Php) For A Web Browser For A Non-Procedural Reason)

GNU LIBRARY GENERAL PUBLIC LICENSE. Preamble

Satisfiability Checking

Software Security Engineering: A Guide for Project Managers

Transcription:

: Verification with Interpolants and Abstract Interpretation and Sagar Chaki Software Engineering Institute Carnegie Mellon University Aws Albarghouthi, Yi i and Marsha Chechik University of Toronto

A framework and a tool for software verification Tightly integrates interpolation- and abstraction-based techniques Check it out at: http://bitbucket.org/arieg/ufo References: [SAS12] Craig Interpretation [CAV12] : A Framework for Abstraction- and Interpolation-based Software Verification [TACAS12] From Under-approximations to Over-approximations and Back [VMCAI12] Whale: An Interpolation-based Algorithm for Interprocedural Verification 2 2

Verification with INTERP and AI SAFE (+Invariant) UNSAFE (+CEX) Unsafe Invariant Program Abstract Interpretation Strengthening Refinement Interpolation uses Cutpoint Graph (CPG) maintains an unrolling of CPG computes disjunctive invariants uses novel powerset widening uses SMT to check for CEX DAG Interpolation for Refinement Guided by AI-computed Invs Fills in gaps in AI 3

Implementation in Framework C Program with assertions C to VM Optimizer Cutpoint Graph Mathsat Z3 SMT interface ARG Constructor Refinement Strategy Abstract Post Expansion Strategy 4

in a Nutshell Iteration 1 E Unlabeled Pred. abs. label Interpolant label 5 5

in a Nutshell Iteration 2 Iteration 1 E E Unlabeled Pred. abs. label Interpolant label 6 6

in a Nutshell Iteration 2 Iteration 1 E E Imprecise post UD Explore from root OD Unlabeled Pred. abs. label Interpolant label 7 7

Secret Sauce Front-End Boxes Abstract Domain DAG Interpolation Parallel 8

Front End In principle simple, but in practice very messy CI passes to normalize the code (library functions, uninitialized vars, etc.) llvm-gcc (without optimization) to compile C to VM bitcode llvm opt with many standard, custom, and modified optimizations lower pointers, structures, unions, arrays, etc. to registers constant propagation + many local optimizations difficult to preserve intended semantics of the benchmarks based on very old VM 2.6 (newer version of VM are too smart ) Many benchmarks discharged by front-end alone 1,321 SAFE (out of 1,592) and 19 UNSAFE (out of 380) C Program with assertions C to VM Optimizer Cutpoint Graph 9

Boxes Abstract Domain: Semantic View Boxes are finite union of box values (alternatively) Boxes are Boolean formulas over interval constraints 10

inear Decision Diagrams in a Nutshell * inear Decision Diagram inear Arithmetic Formula false edge false terminal z < 10 0 x + 2y < 10 1 decision node true edge true terminal (x + 2y < 10) OR (x + 2y 10 AND z < 10) Compact Representation Sharing sub-expressions ocal numeric reductions Dynamic node reordering Operations Propositional (AND, OR, NOT) Existential Quantification * joint work w/ Ofer Strichman 11

DAG Interpolants: Solving the Refinement Prob. Given a DAG G = (V, E) and a labeling of edges ¼:E Expr. A DAG Interpolant (if it exists) is a labeling I:V Expr such that for any path v 0,, v n, and 0 < k < n, I(v k ) = ITP (¼(v 0 ) Æ Æ ¼ (v k-1 ), ¼(v k ) Æ Æ ¼(v n )) 8 (u, v) 2 E. (I(u) Æ ¼ (u, v)) ) I(v) I 2 = ITP (¼ 1, ¼ 8 ) I 2 = ITP (¼ 1, ¼ 2 Æ ¼ 3 Æ ¼ 6 Æ ¼ 7 ) ¼ 8 ¼ 1 1 2 I 1 I 2 ¼ 2 I 3 ¼ 3 3 ¼ 4 (I 1 Æ ¼ 1 ) ) I 2 (I 2 Æ ¼ 8 ) ) I 7 (I 2 Æ ¼ 2 ) ) I 3 I 7 7 ¼ 7 ¼ 6 6 ¼ 5 I 6 I 4 I 5 4 5 12

Parallel Verification Strategy Run 7 verification strategies in parallel until a solution is found cpredo3 all VM optimizations + Cartesian Predicate Abstraction bpredo3 all VM optimizations + Boolean PA + 20s TO bigwo3 all VM optimizations + BOXES + non-aggressive widening + 10s TO boxeso3 all VM optimizations + BOXES + aggressive widening boxo3 all VM optimizations + BOX + aggressive widening + 20s TO boxeso0 minimal VM optimizations + BOXES + aggressive widening boxbpredo3 all VM opts + BOX + Boolean PA + aggressive widening + 60s TO 13

Family Whale [VMCAI12] Interpolation-based interprocedural analysis Interpolants as procedure summaries State/transition interpolation a.k.a. Tree Interpolants [TACAS12] Refinement with DAG interpolants Tight integration of interpolation-based verification with predicate abstraction Vinta [SAS12] Refinement of Abstract Interpretation (AI) AI-guided DAG Interpolation 14

Thank You! http://bitbucket.org/arieg/ufo 15

Contact Information Presenter RTSS Telephone: +1 412-268-7788 Email: arie@cmu.edu U.S. mail: Software Engineering Institute Customer Relations 4500 Fifth Avenue Pittsburgh, PA 15213-2612 USA Web: www.sei.cmu.edu http://www.sei.cmu.edu/contact.cfm Customer Relations Email: info@sei.cmu.edu Telephone: +1 412-268-5800 SEI Phone: +1 412-268-5800 SEI Fax: +1 412-268-6257 16

NO WARRANTY THIS CARNEGIE MEON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIA IS FURNISHED ON AN AS-IS" BASIS. CARNEGIE MEON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPIED, AS TO ANY MATTER INCUDING, BUT NOT IMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABIITY, EXCUSIVITY, OR RESUTS OBTAINED FROM USE OF THE MATERIA. CARNEGIE MEON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. Use of any trademarks in this presentation is not intended in any way to infringe on the rights of the trademark holder. This Presentation may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other use. Requests for permission should be directed to the Software Engineering Institute at permission@sei.cmu.edu. This work was created in the performance of Federal Government Contract Number FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. The Government of the United States has a royalty-free government-purpose license to use, duplicate, or disclose the work, in whole or in part and in any manner, and to have or permit others to do so, for government purposes pursuant to the copyright license under the clause at 252.227-7013. 17

THE END