This first-of-its-kind resource offers a broad and detailed understanding of software systems engineering from both security and safety perspectives. Addressing the overarching issues related to safeguarding public data and intellectual property, the book defines such terms as systems engineering, software engineering, security, and safety as precisely as possible, making clear the many distinctions, commonalities, and interdependencies among various disciplines. You explore the various approaches to risk and the generation and analysis of appropriate metrics. This unique book explains how processes relevant to the creation and operation of software systems should be determined and improved, how projects should be managed, and how products can be assured. You learn the importance of integrating safety and security into the development life cycle. Additionally, this practical volume helps identify what motivators and deterrents can be put in place in order to implement the methods that have been recommended.
Table Of Contents
Introduction - Preamble. Scope and Structure of the Book. Acknowledgments. Endnotes. ; Engineering Systems -Introduction. Some Initial Observations. Deficient Definitions. Rationale. What are Systems? Deconstructing Systems Engineering. What Is Systems Engineering? Management Process. The DoD Text. Another Observation. More on Systems Engineering. The Systems Engineering Process (SEP). Summary and Conclusions. Endnotes. ; Engineering Software Systems -Introduction. The Great Debate. Some Observations. Rationale. Understanding Software Systems Engineering. Deconstructing Software Systems Engineering. What Is Software? What Are Software Systems? Are Control Software Systems Different? What is Software Systems Engineering? The Software Systems Engineering Process. Steps in the Software Development Process. Omissions or Lack of Attention. Nonfunctional Requirements. Testing Nonfunctional Attributes. Verification and Validation. Creating Requisite Functional and Nonfunctional Data. Resiliency and Availability. Decommissioning. Summary and Conclusions. Endnotes.; Engineering Secure and Safe Systems, Part I -Introduction. The Approach. Security Versus Safety. Four Approaches to Developing Critical Systems. The Dependability Approach. The Safety Engineering Approach. The Secure Systems Approach. The Real-Time Systems Approach. Security-Critical and Safety-Critical Systems. Summary and Conclusions. Endnotes.; Engineering Secure and Safe Systems, Part 2 -Introduction. Approach. Reducing the Safety-Security Deficit. Game-Changing and Clean-Slate Approaches. A Note on Protection. Safety-Security Governance Structure and Risk Management. An Illustration. The General Development Life Cycle. Structure of the Software Systems Development. Life Cycle. Life Cycle Processes. Governance Structure for Systems Engineering Projects. Risks of Security-Oriented Versus Safety-Oriented. Software Systems. Expertise Needed at Various Stages. Summary and Conclusions. Endnotes.; Software Systems Security and Safety Risk -Introduction. Understanding Risk. Risks of Determining Risk. Software-Related Risks. Motivations for Risk Mitigation. Defining Risk. Assessing and Calculating Risk. Threats Versus Exploits. Threat Risk Modeling. Threats from Safety-Critical Systems. Creating Exploits and Suffering Events. Vulnerabilities. Application Risk Management Considerations. Subjective vs. Objective vs. Personal Risk. Personalization of Risk. The Fallacies of Data Ownership, Risk Appetite, and Risk Tolerance. The Dynamics of Risk. A Holistic View of Risk. Summary and Conclusions. Endnotes.; Software System Security and Safety Metrics -Introduction. Obtaining Meaningful Data. Defining Metrics. Differentiating Between Metrics and Measures. Software Metrics. Measuring and Reporting Metrics. Metrics for Meeting Requirements. Risk Metrics. Consideration of Individual Metrics. Security Metrics for Software Systems. Safety Metrics for Software Systems. Summary and Conclusions. Endnotes.; Software System Development Processes -Introduction. Processes and Their Optimization. Processes in Relation to Projects and Products/Services. Chronology of Maturity Models. Security and Safety in Maturity Models. FAA Model. The +SAFE V1.2 Extension. The +SECURE V1.3 Extension. The CMMI¬Æ Approach. General CMMI¬Æ. CMMI¬Æ for Development. Incorporating Safety and Security Processes. +SAFE V1.2 Comparisons. +SECURE V1.2 Comparisons. Summary and Conclusions. Endnotes.; Secure SSDLC Projects in Greater Detail -Introduction. Different Terms, Same or Different Meanings. Creating and Using Software Systems. Phases and Steps of the SSDLC. Summary and Conclusions. Endnotes.; Safe SSDLC Projects in Greater Detail -Introduction. Definitions and Terms. Hazard Analysis. Software Requirements Hazard Analysis. Top-Level Design Hazard Analysis. Detailed Design Hazard Analysis. Code-Level Software Hazard Analysis. Software Safety Testing. Software/User Interface Analysis. Software Change Hazard Analysis. The Safe Software System Development Lifecycle. Combined Safety and Security Requirements. Summary and Conclusions. Endnotes.; The Economics of Software Systems' Safety and Security -Introduction. Closing the Gap. Technical Debt. Application of Technical Debt Concept to Security and Safety. System Obsolescence and Replacement. The Responsibility for Safety and Security by Individuals and Groups. Basic Idea. Extending the Model. Concept and Requirements Phase. Design and Architecture Phase. Development. Verification. Validation. Deployment, Operations, Maintenance, and Technical Support. Decommissioning and Disposal. Overall Impression. Methods for Encouraging Optimal Behavior. Pricing. Chargeback. Costs and Risk Mitigation. Management Mandate. Regulation. Standards and Certifications. Going Forward. Tampering. Tamper Evidence. Tamper Resistance. Tamperproofing. A Brief Note on Patterns. Conclusions. Endnotes. ;