Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman.

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Software Quality Assurance Plan
Lecture # 2 : Process Models
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing and Quality Assurance
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Requirements
Security Engineering II. Problem Sources 1.Requirements definitions, omissions, and mistakes 2.System design flaws 3.Hardware implementation flaws, such.
Overview of the Multos construction process Chad R. Meiners.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
The design process z Software engineering and the design process for interactive systems z Standards and guidelines as design rules z Usability engineering.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
UML Unified Markup Language Ziya Karakaya Atılım University, Computer Engineering
Introduction to Software Quality Assurance (SQA)
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Managing Software Quality
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
CLEANROOM SOFTWARE ENGINEERING.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Requirements Engineering CSE 305 Lecture-2.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Chapter SIX Implementation, Testing and Pragmatics Making it a reality.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Testing and Quality Assurance Software Quality Assurance 1.
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
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.
Software Testing Process By: M. Muzaffar Hameed.
Formal Methods in SE Software Verification Using Formal Methods By: Qaisar Javaid, Assistant Professor Formal Methods1.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
November 2003J. B. Wordsworth: J3ISDQR41 Information Systems Development Quality and Risk (4)
Prof. Hany H. Ammar, CSEE, WVU, and
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Chapter 4 Requirements Engineering (1/3) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Lectures 2 & 3: Software Process Models Neelam Gupta.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
 System Requirement Specification and System Planning.
Lecture 3 Prescriptive Process Models
Software Requirements
Chapter 4 – Requirements Engineering
Software Verification and Validation
Chapter ? Quality Assessment
Lecture 09:Software Testing
QGen and TQL-1 Qualification
QGen and TQL Qualification
Software testing.
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Presentation transcript:

Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman

Version 02U-1 Computer Security: Art and Science2 Topics Introduction Background Development Approach Formal Methods Programming Languages and Static Analysis The Use of SPARK in the CA Results Summary

Version 02U-1 Computer Security: Art and Science3 Introduction Correctness by construction is building correctness in every step of the development process. Correctness by construction demands Rigorous requirements definitions Precise system behavior specification Solid and verifiable design Code whose behavior is precisely understood

Version 02U-1 Computer Security: Art and Science4 Background Development of CA for the Multos smart card scheme on be half of Mondex International by Praxis Critical Systems The CA produces the necessary information to enable cards and signs certificates that permit application loading and deletion from Multos cards. Made use of COTS hardware and infrastructure software Development had to be in keeping with the UK Information technology Criteria Forced the customer and supplier to explicitly and unambiguously understand system requirements.

Version 02U-1 Computer Security: Art and Science5 The Development Approach Requirements Used requirements engineering methods, Reveal, to define CA’s environment and business objectives UR document consisted of context diagrams, class diagrams, structured operation definitions UR document included an informal security policy that identified assests, threats and countermeasures.

Version 02U-1 Computer Security: Art and Science6 The Development Approach Development deliverables grouped into the main process steps

Version 02U-1 Computer Security: Art and Science7 The Development Approach Specification and architecture Detailed system behavior specification System’s look and feel FTLS-functionality behind the interface High-level design Description of the System’s internal structure and intercomponent communication Aimed at ensuring satisfaction of security and throughput requirements

Version 02U-1 Computer Security: Art and Science8 The Development Approach Detailed Design Defined the set of software modules and processes and allocated the functionality across them. Used Z to specify the module that manages cryptographic keys and their verification on system startup. Code Used technologies fashionable at the time Avoided use of COTS as far as was practical Used Spark Ada to implement system’s security enforcing kernel

Version 02U-1 Computer Security: Art and Science9 The Development Approach Code Used Ada95 to implement the system’s infrastructure for instance, remote procedure call mechanisms and concurrency. Avoided security related functionality in GUI, implemented in C++ using MFC Used C to implement device drivers for cryptographic hardware. Enforced rigorous coding standards and reviewed all the code against these standards and relevant source documents such as FTLS and UIS. Used automatic static analysis tools where possible

Version 02U-1 Computer Security: Art and Science10 The Development Approach Verification and Validation Testing Incremental to-down build up of the system. Tests derived directly from the system specification. Ran the tests using Rational’s Visual Test Instrumented the code using IPL’s AdaTest to measure the statement and branch coverage achieved by the system tests. Devised extra design-based test scenarios where the system tests failed to cover parts of the code

Version 02U-1 Computer Security: Art and Science11 Formal Methods Formal top-level specification Used numerous schemas to capture each operation’s different security-relevant aspects. Used separate schemas to define each operation’s inputs, displayed information, and outputs Used separate schemas to define when an operation was valid or available.

Version 02U-1 Computer Security: Art and Science12 Formal Methods Process Design Modeled the process structure in the CSP language. Mapped sets of Z operations in the FTLS to CSP actions Introduced actions to represent interprocess communications The CSP model let check if the overall system was deadlock free and if there was no concurrent processing of security-critical functions

Version 02U-1 Computer Security: Art and Science13 Programming Languages and Static Analysis Conventional programming language Inherently ambiguous Favor dynamic behavior and performance over safety Inappropriate for static analysis Formal specification language Counter sloppy implementation Unambiguous Enables static analysis

Version 02U-1 Computer Security: Art and Science14 The Use of Spark in the CA Information flow-centered software architecture Maximizes cohesion and minimizes coupling Used both Spark and Ada95 for each compilation unit, on the basis of the required separation between security-related functions in the system. All Spark code had to pass through Spark Examiner with no unjustified warnings or errors before any other review or inspection activity Let reviewers focus on important topics such as Does this code implement the FTLS ? Used basic form of annotation and analysis offered by the Examiner.

Version 02U-1 Computer Security: Art and Science15 Results Successful development The delivered system satisfied its users, performed well, and was highly reliable 100,000 lines of code defects per KLOC Productivity-28 lines of code per day

Version 02U-1 Computer Security: Art and Science16 Results

Version 02U-1 Computer Security: Art and Science17 Summary A secure system can be built using insecure components, including COTS. Use formal methods when required. Formal methods reduce the number of late discovered errors and the over all system cost. Spark supports strong static analysis and proof of program properties which enables it to meet the CC requirements for formal development process. Questions/Comments ???