Analysing Safety-Critical Systems and Security Protocols with Abstract State Machines

Total Page:16

File Type:pdf, Size:1020Kb

Analysing Safety-Critical Systems and Security Protocols with Abstract State Machines Analysing Safety-Critical Systems and Security Protocols with Abstract State Machines Thesis submitted in accordance with the requirements of the University of Liverpool for the degree of Doctor in Philosophy by Farah Al-Shareefi September 2019 Dedication To my beloved family, especially my husband and sons. i List of Abbreviations ASM Abstract State Machines ASM-STPA-SA Abstract State Machines-System Theoretic Process Analysis- Safe Design AsmetaL ASMETA Language AsmetaS ASMETA Simulator AsmetaSMV ASMETA SMV AsmetaV ASMETA Validator DoS REPL Denial of Service REPLay INTRL INTeRLeaving IPCS Insulin Pump Control System MITM Man In The Middle REFL REFLection SASL Simple Authentication and Security Layer Simple REPL Simple REPLay STPA System Theoretic Process Analysis TDC Train Door Controller iii Abstract The research presented in this thesis is directed at the analysis of critical systems and protocols and the improvement of their safety and security aspects respectively, by com- bining formal and informal analysis methods. More specifically, we focus at combining Abstract State Machines (ASMs) as a formal method, with System Theoretic Process Analysis (STPA) as a safety analysis technique, with the aims of developing safer systems and more secure protocols. The ASM method was chosen due to both its generality in specifying any system at a convenient level of abstraction, and its specification which is supported by different formal analysis activities. While the reason for choosing STPA was its capability of eliciting safety requirements originated from inadequate control actions which affect the whole system functions. The first contribution of this thesis is a methodology to analyse safety-critical systems by capturing both the formal representation of ASM and the safety requirements generated by the STPA. This has the advantages of verifying the STPA requirements in a formal way and giving insights to improve the ASM specification, depending on these requirements. We illustrated this methodology by applying it to a train door controller and an insulin pump control system case studies, showing what safety issues it highlighted. The second contribution of the work presented in this thesis is a systematic methodology for analysing security protocols. This methodology was intended to provide a link between the formal simulation of external attack scenarios and protocol under analysis specified by the ASM method, and the analysis outcomes of a proposed technique called FATI method. The FATI (Flaws and Attack Types Identification) method is an inspired form of STPA that applies queries on each protocol action to determine the possible protocol flaws and their expected attack types. The identified attack types help to select the attack scenario specifications whose simulations are likely to produce attacks. Our methodology also minimized the number of the simulated protocol runs by reducing the number of intruder's messages through considering the receiver's expectations about the message type format and the content. Furthermore, we showed how to analyse protocols in the presence of an algebraic property for the commutative encryption. Our methodology for analysing security protocols was applied to several protocols. Moreover, within the security protocols area, we clarified the ambiguous requirements for simple authentication and security layer example depending on the ASM method. Acknowledgements My great full thanks to God, the Most Merciful and the Most Gracious, for giving me the strength and patience to overcome the challenges in my work and life while conducting my Ph.D study. I would like to express my deepest gratitude to both supervisors Dr. Alexei Lisitsa and Dr. Clare Dixon for their ongoing support, patience, constructive criticism and encourage- ment throughout my Ph.D. journey. Their continuous guidance and valuable comments have made the completion of my Ph.D. possible and enjoyable. It has been a great privilege to have worked with you both. I would also like to extend my deepest gratitude to the Higher Committee for Education Development in Iraq (HCED) for their generous financial support that has given me the opportunity to complete my Ph.D. study. I am also thankful to my advisors Prof. Sven Schewe and Prof. Boris Konev for their advice and helpful comments. Thanks also to all staff members and colleagues in the Department of Computer Science at the University of Liverpool who have been helpful whenever necessary. A special thanks go to my family: father, mother, father-in-law, mother-in-law, sisters, brother, sister-in-law, and brothers-in-law, for their prayers, support, and encouragement. Last but not least, my warmest thanks go to my sons and my husband who have given me constant love during the completion of the thesis. I apologize for every moment I missed to care about you all or to share your ups and downs. My husband, you are fabulous. I would never be able to get where I am without you and your help. Please accept my deepest thanks. vii Contents Dedication i List of Abbreviations iii Abstract v Acknowledgements vii Contents xii List of Figures xiv List of Tables xvi 1 Introduction 1 1.1 Safety-Critical Systems . .1 1.2 Security Protocols . .3 1.3 Research Questions and Contributions . .6 1.4 Publications . .8 1.5 Thesis Outline . .9 2 Abstract State Machines Method 11 2.1 Introduction . 11 2.2 Abstract State Machines Theory . 11 2.3 Basic Abstract State Machines . 12 2.3.1 Simple Example . 13 2.3.2 Terminology Used in Abstract State Machines . 14 2.3.3 Ground Model and Stepwise Refinement . 21 2.4 The Abstract State Machines Tools . 23 2.4.1 The Dynamic Algebra Specification Language . 23 2.4.2 The ASM Workbench . 24 2.4.3 The ASM Gofer . 25 ix 2.4.4 Extensible Abstract State Machines . 26 2.4.5 Abstract State Machine Language . 27 2.4.6 The Timed ASM Language and Toolset . 28 2.4.7 Simulator for Real-Time ASMs . 30 2.4.8 Core Abstract State Machine . 31 2.4.9 The ASM mETAmodelling Framework . 32 2.5 Why Abstract State Machines . 43 2.6 Conclusion . 45 3 Safety and Security Analysis Techniques 46 3.1 Introduction . 46 3.2 Software System Development Process . 47 3.3 Safety Analysis Techniques . 48 3.3.1 Fault Tree Analysis . 49 3.3.2 HAZards and OPerability Analysis . 52 3.3.3 System Theoretic Process Analysis . 54 3.4 Evaluation of Safety Analysis Techniques . 60 3.5 Security Analysis Techniques . 63 3.5.1 Attack Tree . 63 3.5.2 Vulnerability Identification and Analysis . 64 3.5.3 Requirements Analysis and Elicitation . 66 3.5.4 System Theoretic Process Analysis for Security . 67 3.6 Evaluation of Security Analysis Techniques . 70 3.7 Conclusion . 73 4 Security Protocols Background 74 4.1 Introduction . 74 4.2 Cryptographic Primitives . 75 4.3 Algebraic Properties of Cryptographic Primitives . 77 4.4 Protocol Notation . 78 4.5 Protocol Attacks and Attack Scenarios . 79 4.6 Protocol Examples . 82 4.6.1 Needham-Schroder Public Key Protocol . 83 4.6.2 Needham-Schroder Symmetric Key Protocol . 83 4.6.3 Denning-Sacco Protocol . 84 4.6.4 Three-Pass (TP) Protocol . 85 4.6.5 Andrew Secure Remote Procedure Call Protocol . 86 4.6.6 Kehne Langendorfer Schoenwalder Protocol . 87 4.7 Protocol Analysis Methods and Tools . 89 4.7.1 BAN logic . 91 4.7.2 GNY logic . 96 4.7.3 Casper/FDR . 97 4.7.4 SPIN . 98 4.7.5 NuSMV . 99 4.7.6 ProVerif . 100 4.7.7 Tamarin . 102 4.7.8 Simulation Based Attack Scenarios . 104 4.8 Conclusion . 104 5 Safe Design Development Methodology for Safety-Critical Systems 107 5.1 Introduction . 107 5.2 The Proposed Methodology for Developing Safe Design . 108 5.3 Case Study: The Train Door Controller System . 112 5.3.1 Modelling the system Behavior via AsmetaL and Simulating the Re- sultant Model . 113 5.3.2 Validating the AsmetaL Model . 114 5.3.3 Eliciting safety requirements for the system via STPA . 116 5.3.4 Formalizing the Elicited STPA Safety Requirements . 118 5.3.5 Verifying the Formulated Safety Requirements . 119 5.3.6 Evaluation of the TDC Case Study . 120 5.4 Case Study: The Insulin Pump Control System . 120 5.4.1 The IPCS Case Study Description . 121 5.4.2 Methodology Applied to IPCS Case Study . 123 5.5 Evaluation . 142 5.6 Related Work . 144 5.7 Conclusion . 145 6 Security Protocols Analysis Methodology 147 6.1 Introduction . 147 6.2 Flaws and Attack Types Identification Method . 149 6.2.1 Application of the FATI Method to the AS RPC Protocol . 152 6.2.2 Application of the FATI Method to the NSPK Protocol . 153 6.3 The proposed Methodology for Analysing Security Protocols . 154 6.3.1 The Protocol Aspect . 157 6.3.2 The Intruder Aspect . 163 6.3.3 The Attack Scenarios Aspect . 166 6.3.4 The Invariant Security Properties Aspect . 173 6.4 Results and Discussion . 174 6.4.1 Manual Analysis Phase . 175 6.4.2 Automatic Analysis Phase . 175 6.5 Related Work . 177 6.6 Conclusion . 178 7 Clarifying Ambiguous Requirements: SASL Case Study 179 7.1 Introduction . 179 7.2 Simple Authentication and Security Layer . 180 7.3 The Formal SASL Specification . 182 7.3.1 The Mechanism Negotiation Phase . 182 7.3.2 The Authentication Negotiation Phase . 186 7.3.3 The Security Layer Negotiation Phase . ..
Recommended publications
  • System Safety Engineering: Back to the Future
    System Safety Engineering: Back To The Future Nancy G. Leveson Aeronautics and Astronautics Massachusetts Institute of Technology c Copyright by the author June 2002. All rights reserved. Copying without fee is permitted provided that the copies are not made or distributed for direct commercial advantage and provided that credit to the source is given. Abstracting with credit is permitted. i We pretend that technology, our technology, is something of a life force, a will, and a thrust of its own, on which we can blame all, with which we can explain all, and in the end by means of which we can excuse ourselves. — T. Cuyler Young ManinNature DEDICATION: To all the great engineers who taught me system safety engineering, particularly Grady Lee who believed in me, and to C.O. Miller who started us all down this path. Also to Jens Rasmussen, whose pioneering work in Europe on applying systems thinking to engineering for safety, in parallel with the system safety movement in the United States, started a revolution. ACKNOWLEDGEMENT: The research that resulted in this book was partially supported by research grants from the NSF ITR program, the NASA Ames Design For Safety (Engineering for Complex Systems) program, the NASA Human-Centered Computing, and the NASA Langley System Archi- tecture Program (Dave Eckhart). program. Preface I began my adventure in system safety after completing graduate studies in computer science and joining the faculty of a computer science department. In the first week at my new job, I received a call from Marion Moon, a system safety engineer at what was then Ground Systems Division of Hughes Aircraft Company.
    [Show full text]
  • Manuscript Instructions/Template
    INCOSE Working Group Addresses System and Software Interfaces Sarah Sheard, Ph.D. Rita Creel CMU Software Engineering Institute CMU Software Engineering Institute (412) 268-7612 (703) 247-1378 [email protected] [email protected] John Cadigan Joseph Marvin Prime Solutions Group, Inc. Prime Solutions Group, Inc. (623) 853-0829 (623) 853-0829 [email protected] [email protected] Leung Chim Michael E. Pafford Defence Science & Technology Group Johns Hopkins University +61 (0) 8 7389 7908 (301) 935-5280 [email protected] [email protected] Copyright © 2018 by the authors. Published and used by INCOSE with permission. Abstract. In the 21st century, when any sophisticated system has significant software content, it is increasingly critical to articulate and improve the interface between systems engineering and software engineering, i.e., the relationships between systems and software engineering technical and management processes, products, tools, and outcomes. Although systems engineers and software engineers perform similar activities and use similar processes, their primary responsibilities and concerns differ. Systems engineers focus on the global aspects of a system. Their responsibilities span the lifecycle and involve ensuring the various elements of a system—e.g., hardware, software, firmware, engineering environments, and operational environments—work together to deliver capability. Software engineers also have responsibilities that span the lifecycle, but their focus is on activities to ensure the software satisfies software-relevant system requirements and constraints. Software engineers must maintain sufficient knowledge of the non-software elements of the systems that will execute their software, as well as the systems their software must interface with.
    [Show full text]
  • Infrastructure (Resilience-Oriented) Modelling Language: I®ML
    Infrastructure (Resilience-oriented) Modelling Language: I®ML A proposal for modelling infrastructures and their interconnections Andrés Silva, Roberto Filippini EUR 24727 EN - 2011 The mission of the JRC-IPSC is to provide research results and to support EU policy-makers in their effort towards global security and towards protection of European citizens from accidents, deliberate attacks, fraud and illegal actions against EU policies. European Commission Joint Research Centre Institute for the Protection and Security of the Citizen Contact information Address: TP 210, EC JRC Ispra, Ispra (Va) Italy E-mail: [email protected] Tel.: +39 0332 789936 Fax: http://ipsc.jrc.ec.europa.eu/ http://www.jrc.ec.europa.eu/ Legal Notice Neither the European Commission nor any person acting on behalf of the Commission is responsible for the use which might be made of this publication. Europe Direct is a service to help you find answers to your questions about the European Union Freephone number (*): 00 800 6 7 8 9 10 11 (*) Certain mobile telephone operators do not allow access to 00 800 numbers or these calls may be billed. A great deal of additional information on the European Union is available on the Internet. It can be accessed through the Europa server http://europa.eu/ JRC 63302 EUR 24727 EN ISBN 978-92-79-19324-8 ISSN 1018-5593 doi:10.2788/54708 Luxembourg: Publications Office of the European Union © European Union, 2011 Reproduction is authorised provided the source is acknowledged Printed in Italy Infrastructure (Resilience-oriented) Modelling Language: I®ML A proposal for modelling infrastructures and their connections Andrés Silva1 Roberto Filippini Universidad Politécnica de Madrid JRC of the European Commission Abstract The modelling of critical infrastructures (CIs) is an important issue that needs to be properly addressed, for several reasons.
    [Show full text]
  • IS2018 Book of Abstract
    th Annual INCOSE 28 international symposium Washington, DC, USA July 7 - 12, 2018 Delivering Systems in the Age of Globalization Status as of May 15 th , 2018 Book of Abstract Table of contents keynotes ............................................................................................................................................................................... p. 7 keynotes#Keynote#2: The Big Shift: Innovation and Systems Engineering ................................................................ p. 7 Papers .................................................................................................................................................................................. p. 8 Papers#107: A Framework for Concept and its Testing on Patents ............................................................................ p. 8 Papers#75: A Framework for Testability Analysis from System Architecture Perspective .......................................... p. 9 Papers#128: A Framework for Understanding Systems Principles and Methods .......................................................p. 10 Papers#31: A fresh look at Systems Engineering - what is it, how should it work? .....................................................p. 11 Papers#35: A Hybrid Liver-Candidate Transportation System to Improve Accessibility and Extend Organ Life in L ..p. 12 Papers#55: A Novel “Resilience Viewpoint” to aid in Engineering Resilience in Systems of Systems (SoS) .............p. 13 Papers#97: A successful use of systems approaches in
    [Show full text]
  • Model for Safety Case Modeling and Documentation
    SAFE – an ITEA2 project D3.1.3 Contract number: ITEA2 – 10039 Safe Automotive soFtware architEcture (SAFE) ITEA Roadmap application domains: Major: Services, Systems & Software Creation Minor: Society ITEA Roadmap technology categories: Major: Systems Engineering & Software Engineering Minor 1: Engineering Process Support WP3 Deliverable D3.1.3: Proposal for extension of Meta- model for safety case modeling and documentation Due date of deliverable: 31/03/2013 Actual submission date: 28/03/2013 Start date of the project: 01/07/2011 Duration: 36 months Project coordinator name: Stefan Voget Organization name of lead contractor for this deliverable: fortiss Editor: Maged Khalil (fortiss GmbH) Contributors: Maged Khalil (fortiss GmbH), Eduard Metzker (Vector Informatik GmbH) Reviewers: Eduard Metzker (Vector Informatik GmbH) 2013 The SAFE Consortium 1 (50) SAFE – an ITEA2 project D3.1.3 Revision chart and history log Version Date Reason 0.1 2012-09-19 Initialization of document 0.2 2012-10-18 Input to Introduction Section 4 0.3 2012-11-07 Input to Overview on ISO Section 5 0.4 2012-11-16 Input to EAST-ADL Overview Section 7 0.5 2012-11-16 Input to Overview on ISO Section 5 0.6 2012-11-23 Input to Methodology Section 6 0.7 2012-11-29 Further Input to Methodology Section 6 0.8 2012-12-20 Editing and Input in various sections 0.9 2013-02-13 Input to SAFE Meta-model Contribution Section 8 0.10 2013-02-15 Introduction of Patterns Section 6.3 0.11 2013-03-08 Editing and Input in various sections 0.12 2013-03-24 First version ready for review 0.13 2013-03-26 Incorporation of first review comments 0.14 2013-03-27 Updated version reviewed.
    [Show full text]
  • Systems Theoretic Process Analysis (STPA): a Bibliometric and Patents Analysis
    ORIGINAL ARTICLE Systems Theoretic Process Analysis (STPA): a bibliometric and patents analysis Modelo teórico - Sistêmico de Análise de Processos (STPA): uma análise bibliométrica e de patentes Sarah Francisca De Souza Borges1 , Marco Antônio Fontoura De Albuquerque1 , Moacyr Machado Cardoso Junior1 , Mischel Carmen Neyra Belderrain1 , Luís Eduardo Loures Da Costa1 1Área de Gestão Tecnológica do Programa de Ciências e Tecnologias Espaciais – CTE/G, Instituto Tecnológico De Aeronáutica - ITA, São José dos Campos, SP, Brasil. E-mail: [email protected]; [email protected]; [email protected]; [email protected]; [email protected] How to cite: Borges, S. F. S., Albuquerque, M. A. F., Cardoso Junior, M. M., Belderrain, M. C. N. & Costa, L. E. L. (2021). Systems Theoretic Process Analysis (STPA): a bibliometric and patents analysis. Gestão & Produção, 28(2), e5073. https://doi.org/10.1590/1806-9649-2020v28e5073 Abstract: The Systemic Theoretical Process Analysis (STPA) model is used for hazard analysis and accident prevention, based on systemic thinking and the identification of causal scenarios, created by Professor Nancy Leveson of the Institute of Technology of Massachusetts (MIT). The purpose of this article is to perform a bibliometric and patent analysis of the STPA model. Since bibliometry is an important tool in the analysis of scientific production, this method is used as a descriptive statistic, for the purposes of this study, the concepts of Goffman's Epidemic Theory were highlighted, under a mainly qualitative analysis, for a study of decline and ascent scientific method. For the bibliometric analysis, the main page of Professor Nancy Leveson was used in MIT's Web site, besides the Web of Science, Mendeley, ResearchGate, Village of Engineering and Scientific Electronic Library Online (SciELO).
    [Show full text]
  • Manuscript Instructions/Template
    Safety Analysis in Early Concept Development and Requirements Generation1 Nancy G. Leveson Massachusetts Institute of Technology 77 Massachusetts Ave, Cambridge MA 02139 617-258-0505 http://[email protected] [email protected] Copyright © 2018 by Nancy G. Leveson. Published and used by INCOSE with permission. Abstract. This paper shows how a new hazard analysis technique, STPA (System Theoretic Process Analysis), can be used to generate high-level safety requirements early in the concept development phase that can then assist in the design of the system architecture. These general, system-level requirements can be refined using STPA as decisions are made. The process goes hand-in-hand with design and the rest of the lifecycle as STPA can be used to provide information to assist in decision- making throughout the development and even operations phases. STPA also fits into a model-based engineering process as it works on a model of the system (which is also refined as design decisions are made) although that model is different than the architectural models usually proposed for model- based system engineering today. The process promotes traceability throughout the development process so decisions and designs can be changed with minimum requirements for redoing previous analyses. Finally, while this paper describes the approach with respect to safety, it can be applied to any emergent system property. Early Concept Exploration and Development Early concept development, shown at the top left of the V-model (Figure 1), is the first step in the usual system engineering process. While the label may differ in variants of the model, this stage includes such activities as stakeholder and user analysis (needs analysis), customer requirements generation, regulatory requirements review, feasibility studies, concept and tradespace exploration, and establishment of criteria for evaluation of the evolving and final design.
    [Show full text]
  • Download from an Unknown Website Cannot Be Said to Be ‘Safe’ Just Because It Happens Not to Harbor a Virus
    A direct path to dependable software The MIT Faculty has made this article openly available. Please share how this access benefits you. Your story matters. Citation Jackson, Daniel. “A direct path to dependable software.” Commun. ACM 52.4 (2009): 78-88. As Published http://dx.doi.org/10.1145/1498765.1498787 Publisher Association for Computing Machinery Version Author's final manuscript Citable link http://hdl.handle.net/1721.1/51683 Terms of Use Attribution-Noncommercial-Share Alike 3.0 Unported Detailed Terms http://creativecommons.org/licenses/by-nc-sa/3.0/ A Direct Path To Dependable Software Daniel Jackson Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology What would it take to make software more dependable? Until now, most approaches have been indirect: some practices – processes, tools or techniques – are used that are believed to yield dependable software, and the argument for dependability rests on the extent to which the developers have adhered to them. This article argues instead that developers should produce direct evidence that the software satisfies its dependability claims. The potential advantages of this approach are greater credibility (since the ar- gument is not contingent on the effectiveness of the practices) and reduced cost (since development resources can be focused where they have the most impact). 1 Why We Need Better Evidence Is a system that never fails dependable? Not necessarily. A dependable system is one you can depend on – that is, in which you can place your reliance or trust. A rational person or organization only does this with evidence that the system’s benefits outweigh its risks.
    [Show full text]
  • Machine Learning Testing: Survey, Landscapes and Horizons
    1 Machine Learning Testing: Survey, Landscapes and Horizons Jie M. Zhang*, Mark Harman, Lei Ma, Yang Liu Abstract—This paper provides a comprehensive survey of techniques for testing machine learning systems; Machine Learning Testing (ML testing) research. It covers 144 papers on testing properties (e.g., correctness, robustness, and fairness), testing components (e.g., the data, learning program, and framework), testing workflow (e.g., test generation and test evaluation), and application scenarios (e.g., autonomous driving, machine translation). The paper also analyses trends concerning datasets, research trends, and research focus, concluding with research challenges and promising research directions in ML testing. Index Terms—machine learning, software testing, deep neural network, F 1 INTRODUCTION The prevalent applications of machine learning arouse inherently follows a data-driven programming paradigm, natural concerns about trustworthiness. Safety-critical ap- where the decision logic is obtained via a training procedure plications such as self-driving systems [1], [2] and medical from training data under the machine learning algorithm’s treatments [3], increase the importance of behaviour relating architecture [8]. The model’s behaviour may evolve over to correctness, robustness, privacy, efficiency and fairness. time, in response to the frequent provision of new data [8]. Software testing refers to any activity that aims to detect While this is also true of traditional software systems, the the differences between existing and required behaviour [4]. core underlying behaviour of a traditional system does not With the recent rapid rise in interest and activity, testing typically change in response to new data, in the way that a has been demonstrated to be an effective way to expose machine learning system can.
    [Show full text]
  • Decision Procedures for Algebraic Data Types With
    Synthesis, Analysis, and Verification Lecture 01 Introduction, Overview, Logistics Lectures: Viktor Kuncak Exercises and Labs: Eva Darulová Giuliano Losa Monday, 21 February 2011 and 22 February 2011 Today Introduction and overview of topics – Analysis and Verification – Synthesis Course organization and grading SAV in One Slide We study how to build software analysis, verification, and synthesis tools that automatically answer questions about software systems. We cover theory and tool building through lectures, exercises, and labs. Grade is based on – quizzes – home works (theory and programming) – a mini project, presented in the class Steps in Developing Tools Modeling: establish precise mathematical meaning for: software, environment, and questions of interest – discrete mathematics, mathematical logic, algebra Formalization: formalize this meaning using appropriate representation of programming languages and specification languages – program analysis, compilers, theory of formal languages, formal methods Designing algorithms: derive algorithms that manipulate such formal objects - key technical step – algorithms, dataflow analysis, abstract interpretation, decision procedures, constraint solving (e.g. SAT), theorem proving Experimental evaluation: implement these algorithms and apply them to software systems – developing and using tools and infrastructures, learning lessons to improve and repeat previous steps Comparison to other Sciences Like science we model a part of reality (software systems and their environment) by introducing
    [Show full text]
  • Why Software Is So Bad
    Why Software Is So Bad By Charles C. Mann July/August 2002 For years we've tolerated buggy, bloated, badly organized computer programs. But soon, we'll innovate, litigate and regulate them into reliability. It’s one of the oldest jokes on the Internet, endlessly forwarded from e-mailbox to e-mailbox. A software mogul—usually Bill Gates, but sometimes another—makes a speech. “If the automobile industry had developed like the software industry,” the mogul proclaims, “we would all be driving $25 cars that get 1,000 miles to the gallon.” To which an automobile executive retorts, “Yeah, and if cars were like software, they would crash twice a day for no reason, and when you called for service, they’d tell you to reinstall the engine.” The joke encapsulates one of the great puzzles of contemporary technology. In an amazingly short time, software has become critical to almost every aspect of modern life. From bank vaults to city stoplights, from telephone networks to DVD players, from automobile air bags to air traffic control systems, the world around us is regulated by code. Yet much software simply doesn’t work reliably: ask anyone who has watched a computer screen flush blue, wiping out hours of effort. All too often, software engineers say, code is bloated, ugly, inefficient and poorly designed; even when programs do function correctly, users find them too hard to understand. Groaning beneath the weight of bricklike manuals, bookstore shelves across the nation testify to the perduring dysfunctionality of software. “Software’s simply terrible today,” says Watts S.
    [Show full text]
  • Safety III: a Systems Approach to Safety and Resilience
    MIT ENGINEERING SYSTEMS LAB Safety III: A Systems Approach to Safety and Resilience Prof. Nancy Leveson Aeronautics and Astronautics Dept., MIT 7/1/2020 Abstract: Recently, there has been a lot of interest in some ideas proposed by Prof. Erik Hollnagel and labeled as “Safety-II” and argued to be the basis for achieving system resilience. He contrasts Safety-II to what he describes as Safety-I, which he claims to be what engineers do now to prevent accidents. What he describes as Safety-I, however, has very little or no resemblance to what is done today or to what has been done in safety engineering for at least 70 years. This paper describes the history of safety engineering, provides a description of safety engineering as actually practiced in different industries, shows the flaws and inaccuracies in Prof. Hollnagel’s arguments and the flaws in the Safety-II concept, and suggests that a systems approach (Safety-III) is a way forward for the future. Safety III: A Systems Approach to Safety and Resilience Contents Preface 3 Does Safety-I Exist? 4 Differences between Workplace Safety and Product/System Safety 7 Workplace and Product/System Safety History 8 A Brief Legal View of the History of Safety 8 A Technical View of the History of Safety 10 An Engineer’s View of Workplace Safety 12 An Engineer’s View of Product/System Safety 14 Activities Common among Different Industries 15 Commercial Aviation 17 Nuclear Power 19 Chemical Industry 20 Defense and “System Safety” 21 SUBSAFE: The U.S. Nuclear Submarine Program 25 Astronautics and Space 25 Healthcare/Hospital Safety 25 Summary 26 A Comparison of Safety-I, Safety-II and Safety-III 27 Definition of Safety 29 “Goes Wrong” vs.
    [Show full text]