Secure Systems Research Group - FAU Model Checking Techniques for Security Systems 5/6/2009 Maha B Abbey PhD Candidate.

Slides:



Advertisements
Similar presentations
A Method for Validating Software Security Constraints Filaret Ilas Matt Henry CS 527 Dr. O.J. Pilskalns.
Advertisements

Object Oriented Analysis And Design-IT0207 iiI Semester
Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
Chapter 4 Quality Assurance in Context
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Secure Systems Research Group - FAU Overview Model Checking and Security Patter Maha B Abbey PhD Candidate.
Software Testing and Quality Assurance
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
MOPS MOdelchecking Security Properties David Wagner U.C. Berkeley.
Security Engineering II. Problem Sources 1.Requirements definitions, omissions, and mistakes 2.System design flaws 3.Hardware implementation flaws, such.
A Type System for Expressive Security Policies David Walker Cornell University.
Presenter: PCLee Design Automation Conference, ASP-DAC '07. Asia and South Pacific.
Chapter 1 Principles of Programming and Software Engineering.
Overview of the Multos construction process Chad R. Meiners.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering Tools and Methods Presented by: Mohammad Enamur Rashid( ) Mohammad Rashim Uddin( ) Masud Ur Rahman( )
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Romaric GUILLERM Hamid DEMMOU LAAS-CNRS Nabil SADOU SUPELEC/IETR ESM'2009, October 26-28, 2009, Holiday Inn Leicester, Leicester, United Kingdom.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 17: Code Mining.
The Software Development Life Cycle: An Overview
S/W Project Management
UML - Development Process 1 Software Development Process Using UML (2)
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 4 - System modelling Dr Richard Clayton.
Copyright © Siemens AG All rights reserved. Essential Criteria on MBT to Ensure Quality of Software in Industry PVR Murthy Andreas Ulrich Siemens.
Model-based Security with UMLsec Software & Systems Engineering Informatics, Munich University of Technology Germany
Based on D. Galin, and R. Patton.  According to D. Galin  Software quality assurance is:  A systematic, planned set of actions necessary to provide.
An Introduction to Software Architecture
CSCE 548 Code Review. CSCE Farkas2 Reading This lecture: – McGraw: Chapter 4 – Recommended: Best Practices for Peer Code Review,
Secure Systems Research Group - FAU Model Checking Techniques for Security Systems UML Sec Tool Framework 7/30/2009 Maha B Abbey PhD Candidate.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
CSC-682 Cryptography & Computer Security Sound and Precise Analysis of Web Applications for Injection Vulnerabilities Pompi Rotaru Based on an article.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
B. Fernández, D. Darvas, E. Blanco Formal methods appliedto PLC code verification Automation seminar CERN – IFAC (CEA) 02/06/2014.
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
Verification and Validation in the Context of Domain-Specific Modelling Janne Merilinna.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
Secure Systems Research Group - FAU Model Checking Techniques for Security Systems 5/14/2009 Maha B Abbey PhD Candidate.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Formal Methods.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
Software Requirements Specification (SRS)
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Discussing “Developing Secure Systems with UMLSec” 15 FEB Joe Combs.
MOPS: an Infrastructure for Examining Security Properties of Software Authors Hao Chen and David Wagner Appears in ACM Conference on Computer and Communications.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
Adding Fault Tolerance to Service Oriented Architecture Ingrid Buckley 02/19/09.
Principles of Programming & Software Engineering
CSCE 548 Secure Software Development Risk-Based Security Testing
Software Design Methodology
Logical architecture refinement
Aspect Validation: Connecting Aspects and Formal Methods
Human Complexity of Software
An Introduction to Software Architecture
Department of Computer Science Abdul Wali Khan University Mardan
Dr. Jiacun Wang Department of Software Engineering Monmouth University
MOPS: an Infrastructure for Examining Security Properties of Software
Presentation transcript:

Secure Systems Research Group - FAU Model Checking Techniques for Security Systems 5/6/2009 Maha B Abbey PhD Candidate

Secure Systems Research Group - FAU Model Checking Process –Modeling – formal design Convert a design into a formalism accepted by a model checking tool. Modeling of a design may require use of abstraction to eliminate irrelevant or unimportant details –Specification – temporal logic (properties to specify) Before verification, it is necessary to state the properties that the design must satisfy. Temporal logic is commonly used which can assert how the behavior of the system evolves over time. Issue: Completeness – it is hard even impossible to determine if a given specification covers all the properties that a system should satisfy. –Verification – ideally automatic Requires manual human touch which consists of analyzing the verification results. Results traces are often generated and used by the designer to track down where the error occurred. In formal verification, we verify that a system meets a desired property by checking that a mathematical model of the system meets a formal specification that describes the property.

Secure Systems Research Group - FAU MOPS: MOdelchecking Programs for Security properties Push Down Automaton Find security bugs in C programs verify conformance to rules of defensive programming – targeted at developers writing security-critical programs and at security auditors reviewing the security of existing C code designed to check for violations of rules that can be expressed as temporal safety properties –A temporal safety property dictates the order of a sequence of operations. For example, in Unix systems, we might verify that the C program obeys the following rule: a setuid-root process should not execute an un-trusted program without first dropping its root privilege

Secure Systems Research Group - FAU MOPS (2) [Che02] Automated approach to examine security-related temporal safety properties in SW –Detection of violations of ordering constraints (Temporal safety properties) A temporal safety property dictates the order of a sequence of security-relevant operations –The ability to detect violations of the properties or to verify the satisfaction of them would be a significant help in reducing the frequency of software vulnerabilities –Verifying that security properties are satisfied (possibly on all execution path) can reduce the risk of security vulnerabilities –the sequence of operations in a property may span multiple functions or files in a program making the ability to discover vulnerabilities difficult during manual verification and testing –MOPS provide the ability to make these properties explicit and to verify whether they are properly respected by the source code of some application.

Secure Systems Research Group - FAU MOPS (3) Possible mistakes by giving false alarms (warnings that do not correspond to an actual security vulnerability) but not overlook a real violation of the security property Unavoidable Limitation –no algorithm can both avoid false alarms and avoid overlooking real bugs – false alarms are tolerable enough in practice that the approach is still useful despite occasional bogus warning messages.

Secure Systems Research Group - FAU MOPS (4) Modularization –Ability to decompose complex properties into simpler ones –Very important for practical use Pattern Variables –Control flow and path sensitive –Data flow analysis done via pattern variables bound to any expression that satisfies context constraints in a program. Enable syntactic matching

Secure Systems Research Group - FAU UMLSec allows one to express security-related information within the diagrams of a UML system specification UML profile using the standard UML extension mechanisms stereotypes, tagged values and constraints. Stereotypes are used together with tags to formulate security requirements and assumptions on the system environment, and constraints give criteria used to determine whether the requirements are met by the system design StereotypeBase ClassTagsConstraintsDescription secrecydependencyassumes secrecy integritydependencyassumes integrity criticalobject, subsystem secrecy, integrity critical object secure linkssubsystemsecurity matched by links >, > enforces secure communication links secure dependency subsystemdependency matched by links >, > structural interaction data securitysubsystemprovides data securitybasic data security requirements fair exchangesubsystemstart, stopafter start eventually reach stop enforces fair exchange

Secure Systems Research Group - FAU UMLSec (2) UMLsec –evaluate UML specifications for vulnerabilities in design –encapsulate established rules of prudent security engineering –make available to developers not specialized in security –consider security from early design phases, in system context –make verification cost-effective –UML Extension mechanisms (Stereotype, Tagged value, Constraint, Profile) –UMLsec: general ideas Activity diagram: secure control flow, coordination Class diagram: exchange of data preserves security levels Sequence diagram: security-critical interaction State chart diagram: security preserved within object Deployment diagram: physical security requirements Package: holistic view on security –UML verification framework supporting the construction of automated requirements analysis tools for UML diagrams-> The framework is connected to industrial CASE tools using XMI and allows convenient access to this data and to the human user. –plug-in that utilizes the model-checker Spin and Theorem prover SETHEO to verify security properties of UMLsec models

Secure Systems Research Group - FAU SETHEO Automated theorem-prover to verify security properties of UMLSec models using ATPs for formal security requirements analysis has a potential for efficiency and the ability to handle relatively large specification documents, by avoiding the state space explosion problem one often faces when having to deal with a non-deterministic adversary (unless applying specialized optimization techniques). [Jur05] Translation of UMLSec into First-Order Logic for automated analysis –Behavioral specifications are compiled to first-order logic axioms giving an abstract interpretation of the system behavior suitable for security analysis –conditions on security-critical data (such as freshness, secrecy, integrity) can be formulated –Automated verification of the constraints associated with stereotypes defined within the UMLsec extension (such as the data security requirements) –allows to perform a more abstract analysis compared to the use of model- checking

Secure Systems Research Group - FAU Some References [Che02] Hao Chen, David Wagner, “MOPS: an infrastructure for Examining Security Properties of Software”, CCS’02 [Jur05] J. Jurjens, “Sound Methods and Effective Tools for Model- based Security Engineering with UML”, 27th International Conference on Software Engineering (ICSE 2005), ACM, 2005, [Che07] S. Cheung, B. Dutertre, M. Fong, U. Lindqvist, K. Skinner, and A. Valdes. “Using model-based intrusion detection for SCADA networks”. Procs. of SCADA Security Scientific Symposium, [Fer06a] E. B. Fernandez, M.M. Larrondo-Petrie, T. Sorgente, and M. VanHilst, "A methodology to develop secure systems using patterns", Chapter 5 in "Integrating security and software engineering: Advances and future vision", H. Mouratidis and P. Giorgini (Eds.), IDEA Press, 2006,

Secure Systems Research Group - FAU Next Step Compare different verification/validation methods –[Che02], [Jur05], [Che07] Which one is best suitable for the conceptual control models –Security Patterns [Fer06a] Pattern – guideline –UML diagrams are the solution –Patterns can be input to all dev cycle phases –Safety Patterns –Need of formally modeling these patterns At what level can properties be defined –Is it at the pattern level –UML Model level Are there common properies –Authentication –Authorization Choi paper – Jaeger trent SSL Security – restriction Safety - critical

Secure Systems Research Group - FAU Feedback