Chapter 14 · Resilience Engineering
Source review

The original source text, examples, tables and caveats remain available. Source slide numbers and textbook PDF pages are different references. Historical assertions stay attributed to this edition; this page is not a current legal, medical, regulatory or product guide. Classroom activities are labelled separately.

Required selections

Apply one named source concept to the chapter artifact and explain its effect. Finish any uncompleted core topic here; material does not become optional merely because it is reviewed after class. Assignment dates and marks remain in Blackboard.

Original source-slide ledger

Slide 1 · Chapter 14 – Resilience Engineering
Slide 2 · Topics covered
Topics covered
Cybersecurity
Sociotechnical resilience
Resilient systems design
Slide 3 · Resilience
Resilience
The resilience of a system is a judgment of how well that system can maintain the continuity of its critical services in the presence of disruptive events, such as equipment failure and cyberattacks.  

Cyberattacks by malicious outsiders are perhaps the most serious threat faced by networked systems but resilience is also intended to cope with system failures and other disruptive events.
Slide 4 · Essential resilience ideas
Essential resilience ideas
The idea that some of the services offered by a system are critical services whose failure could have serious human, social or economic effects.
The idea that some events are disruptive and can affect the ability of a system to deliver its critical services. 
The idea that resilience is a judgment – there are no resilience metrics and resilience cannot be measured. The resilience of a system can only be assessed by experts, who can examine the system and its operational processes.
Slide 5 · Resilience engineering assumptions
Resilience engineering assumptions
Resilience engineering assumes that it is impossible to avoid system failures and so is concerned with limiting the costs of these failures and recovering from them.
Resilience engineering assumes that good reliability engineering practices have been used to minimize the number of technical faults in a system. 
It therefore places more emphasis on limiting the number of system failures that arise from external events such as operator errors or cyberattacks.
Slide 6 · Resilience activities
Resilience activities
Recognition The system or its operators should recognise early indications of system failure. 
Resistance If the symptoms of a problem or cyberattack are detected early, then resistance strategies may be used to reduce the probability that the system will fail. 
Recovery If a failure occurs, the recovery activity ensures that critical system services are restored quickly so that system users are not badly affected by failure. 
Reinstatement In this final activity, all of the system services are restored and normal system operation can continue.
Slide 7 · Resistance
Resistance
Resistance strategies may focus on isolating critical parts of the system so that they are unaffected by problems elsewhere. 
Resistance includes proactive resistance where defences are included in a system to trap problems and reactive resistance where actions are taken when a problem is discovered.
Slide 8 · Resilience activities
Resilience activities
Slide 9 · Cybersecurity
Cybersecurity
Slide 10 · Cybersecurity
Cybersecurity
Cybercrime is the illegal use of networked systems and is one of the most serious problems facing our society.
Cybersecurity is a broader topic than system security engineering	
Cybersecurity is a sociotchnical issue covering all aspects of ensuring the protection of citizens, businesses and critical infrastructures from threats that arise from their use of computers and the Internet.
Cybersecurity is concerned with all of an organization’s IT assets from networks through to application systems.
Slide 11 · Factors contributing to cybersecurity failure
Factors contributing to cybersecurity failure
organizational ignorance of the seriousness of the problem, 
poor design and lax application of security procedures, 
human carelessness,
inappropriate trade-offs between usability and security.
Slide 12 · Cybersecurity threats
Cybersecurity threats
Threats to the confidentiality of assets  Data is not damaged but it is made available to people who should not have access to it. 
Threats to the integrity of assets  These are threats where systems or data are damaged in some way by a cyberattack. 
Threats to the availability of assets  These are threats that aim to deny use of assets by authorized users.
Slide 13 · Examples of controls
Examples of controls
Authentication, where users of a system have to show that they are authorized to access the system 
Encryption, where data is algorithmically scrambled so that an unauthorized reader cannot access the information. 
Firewalls, where incoming network packets are examined then accepted or rejected according to a set of organizational rules. 
Firewalls can be used to ensure that only traffic from trusted sources is passed from the external Internet into the local organizational network.
Slide 14 · Redundancy and diversity
Redundancy and diversity
Copies of data and software should be maintained on separate computer systems. 
This supports recovery after a successful cyberattack. (recovery and reinstatement)
Multi-stage diverse authentication can protect against password attacks. 
This is a resistance measure
Critical servers may be over-provisioned i.e. they may be more powerful than is required to handle their expected load. Attacks can be resisted without serious service degradation.
Slide 15 · Cyber-resilience planning
Cyber-resilience planning
Slide 16 · Cyber resilience planning
Cyber resilience planning
Asset classification 
The organization’s hardware, software and human assets are examined and classified depending on how essential they are to normal operations. 
Threat identification 
For each of the assets (or, at least the critical and important assets), you should identify and classify threats to that asset. 
Threat recognition 
For each threat or, sometimes asset/threat pair, you should identify how an attack based on that threat might be recognised.
Slide 17 · Cyber resilience planning
Cyber resilience planning
Threat resistance 
For each threat or asset/threat pair, you should identify possible resistance strategies. These may be either embedded in the system (technical strategies) or may rely on operational procedures. 
Asset recovery 
For each critical asset or asset/threat pair, you should work out how that asset could be recovered in the event of a successful cyberattack. 
Asset reinstatement 
This is a more general process of asset recovery where you define procedures to bring the system back into normal operation.
Slide 18 · Sociotechnical resilience
Sociotechnical resilience
Slide 19 · Sociotechnical resilience
Sociotechnical resilience
Resilience engineering is concerned with adverse external events that can lead to system failure. 
To design a resilient system, you have to think about sociotechnical systems design and not exclusively focus on software. 
Dealing with these events is often easier and more effective in the broader sociotechnical system.
Slide 20 · Mentcare example
Mentcare example
Cyberattack may aim to steal data, gaining access using a legitimate user’s credentials
Technical solution may be to use more complex authentication procedures.
These irritate users and may reduce security as users leave systems unattended without logging out.
A better strategy may be to introduce organizational policies and procedures that emphasise the importance of not sharing login credentials and that tell users about easy ways to create and maintain strong passwords.
Slide 21 · Nested technical and sociotechnical systems
Nested technical and sociotechnical systems
Slide 22 · Failure hierarchy
Failure hierarchy
A failure in system S1 may be trapped in the broader sociotechnical system ST1 through operator actions
Organizational damage is therefore limited
If the failure in S1 leads to a failure in ST1, then it is up to managers in the broader organization to deal with that failure.
Slide 23 · Characteristics of resilient organizations
Characteristics of resilient organizations
Slide 24 · Organizational resilience
Organizational resilience
There are four characteristics that reflect the resilience of an organization
Responsiveness, monitoring, anticipation, learning
The ability to respond 
Organizations have to be able to adapt their processes and procedures in response to risks. These risks may be anticipated risks or may be detected threats to the organization and its systems. 
The ability to monitor 
Organizations should monitor both their internal operations and their external environment for threats before they arise.
Slide 25 · Organizational resilience
Organizational resilience
The ability to anticipate 
A resilient organization should not simply focus on its current operations but should anticipate possible future events and changes that may affect its operations and resilience. 
The ability to learn  
Organizational resilience can be improved by learning from experience. It is particularly important to learn from successful responses to adverse events such as the effective resistance of a cyberattack. Learning from success allows
Slide 26 · Human error
Human error
People inevitably make mistakes (human errors) that sometimes lead to serious system failures.
There are two ways to consider human error
The person approach. Errors are considered to be the responsibility of the individual and ‘unsafe acts’ (such as an operator failing to engage a safety barrier) are a consequence of individual carelessness or reckless behaviour. 
The systems approach. The basic assumption is that people are fallible and will make mistakes. People make mistakes because they are under pressure from high workloads, poor training or because of inappropriate system design.
Slide 27 · Systems approach
Systems approach
Systems engineers should assume that human errors will occur during system operation. 
To improve the resilience of a system, designers have to think about the defences and barriers to human error that could be part of a system. 
Can these barriers should be built into the technical components of the system (technical barriers)? If not, they could be part of the processes, procedures and guidelines for using the system (sociotechnical barriers).
Slide 28 · Defensive layers
Defensive layers
Slide 29 · Defensive layers
Defensive layers
You should use redundancy and diversity to create a set of defensive layers, where each layer uses a different approach to deter attackers or trap technical/human failures.
ATC system examples
Conflict alert system
Formalized recording procedures
Collaborative checking
Slide 30 · Reason’s Swiss Cheese Model
Reason’s Swiss Cheese Model
Slide 31 · Swiss Cheese model
Swiss Cheese model
Defensive layers have vulnerabilities
They are like slices of Swiss cheese with holes in the layer corresponding to these vulnerabilities.
Vulnerabilities are dynamic
The ‘holes’ are not always in the same place and the size of the holes may vary depending on the operating conditions.
System failures occur when the holes line up and all of the defenses fail.
Slide 32 · Increasing system resilience
Increasing system resilience
Reduce the probability of the occurrence of an external event that might trigger system failures. 
Increase the number of defensive layers. 
The more layers that you have in a system, the less likely it is that the holes will line up and a system failure occur. 
Design a system so that diverse types of barriers are included. 
The ‘holes’ will probably be in different places and so there is less chance of the holes lining up and failing to trap an error. 
Minimize the number of latent conditions in a system. 
This means reducing the number and size of system ‘holes’.
Slide 33 · Operational and management processes
Operational and management processes
All software systems have associated operational processes that reflect the assumptions of the designers about how these systems will be used. 
For example, in an imaging system in a hospital, the operator may have the responsibility of checking the quality of the images immediately after these have been processed. 
This allows the imaging procedure to be repeated if there is a problem.
Slide 34 · Operational processes
Operational processes
Operational processes are the processes that are involved in using the system for its defined purpose. 
For new systems, these operational processes have to be defined and documented during the system development process. 
Operators may have to be trained and other work processes adapted to make effective use of the new system.
Slide 35 · Personal and Enterprise IT processes
Personal and Enterprise IT processes
For personal systems, the designers may describe the expected use of the system but have no control over how users will actually behave. 
For enterprise IT systems, however, there may be training for users to teach them how to use the system. 
Although user behaviour cannot be controlled, it is reasonable to expect that they will normally follow the defined process.
Slide 36 · Process design
Process design
Operational and management processes are an important defense mechanism and, in designing a process, you need to find a balance between efficient operation and problem management. 
Process improvement focuses on identifying and codifying good practice and developing software to support this.
If process improvement focuses on efficiency, then this can make it more difficult to deal with problems when these arise.
Slide 37 · Efficiency and resilience
Efficiency and resilience
Slide 38 · Coping with failures
Coping with failures
What seems to be ‘inefficient’ practice often arises because people maintain redundant information or share information because they know this makes it easier to deal with problems when things go wrong. 
When things go wrong, operators and system managers can often recover the situation although this may sometimes mean that they have to break rules and ‘work around’ the defined process. 
You should therefore design operational processes to be flexible and adaptable.
Slide 39 · Information provision and management
Information provision and management
To make a process more efficient, it may make sense to present operators with the information that they need, when they need it. 
If operators are only presented with information that the process designer thinks that they ‘need to know’ then they may be unable to detect problems that do not directly affect their immediate tasks. 
When things go wrong, the system operators do not have a broad picture of what is happening in the system, so it is more difficult for them to formulate strategies for dealing with problems.
Slide 40 · Process automation
Process automation
Process automation can have both positive and negative effects on system resilience. 
If the automated system works properly, it can detect problems, invoke cyberattack resistance if necessary and start automated recovery procedures. 
However, if the problem can’t be handled by the automated system, there are fewer people available to tackle the problem and the system may have been damaged by the process automation doing the wrong thing.
Slide 41 · Disadvantages of process automation
Disadvantages of process automation
Automated management systems may go wrong and take incorrect actions. As problems develop, the system may take unexpected actions that make the situation worse and which cannot be understood by the system managers.
Problem solving is a collaborative process. If fewer managers are available, it is likely to take longer to work out a strategy to recover from a problem or cyberattack.
Slide 42 · Resilient systems design
Resilient systems design
Slide 43 · Resilient systems design
Resilient systems design
Identifying critical services and assets 
Critical services and assets are those elements of the system that allow a system to fulfill its primary purpose. 
For example, the critical services in a system that handles ambulance dispatch are those concerned with taking calls and dispatching ambulances.
Designing system components that support problem recognition, resistance, recovery and reinstatement 
For example, in an ambulance dispatch system, a watchdog timer may be included to detect if the system is not responding to events.
Slide 44 · Survivable systems analysis
Survivable systems analysis
System understanding 
For an existing or proposed system, review the goals of the system (sometimes called the mission objectives), the system requirements and the system architecture. 
Critical service identification 
The services that must always be maintained and the components that are required to maintain these services are identified.
Slide 45 · Survivable systems analysis
Survivable systems analysis
Attack simulation 
Scenarios or use cases for possible attacks are identified along with the system components that would be affected by these attacks. 
Survivability analysis 
Components that are both essential and compromisable by an attack are identified and survivability strategies based on resistance, recognition and recovery are identified.
Slide 46 · Stages in survivability analysis
Stages in survivability analysis
Slide 47 · Problems for business systems
Problems for business systems
The fundamental problem with this approach to survivability analysis is that its starting point is the requirements and architecture documentation for a system. 
However for business systems:
It is not explicitly related to the business requirements for resilience. I believe that these are a more appropriate starting point than technical system requirements.
It assumes that there is a detailed requirements statement for a system. In fact, resilience may have to be ‘retrofitted’ to a system where there is no complete or up-to-date requirements document.
Slide 48 · Resilience engineering
Resilience engineering
Slide 49 · Streams of work in resilience engineering
Streams of work in resilience engineering
Identify business resilience requirements
Plan how to reinstate systems to their normal operating state
Identify system failures and cyberattacks that can compromise a system
Plan how to recover critical services quickly after damage or a cyberattack
Test all aspects of resilience planning
Slide 50 · Maintaining critical service availability
Maintaining critical service availability
To maintain availability, you need to know:
the system services that are the most critical for a business, 
the minimal quality of service that must be maintained,
how these services might be compromised,
how these services can be protected, 
how you can recover quickly if the services become unavailable.
Critical assets are identified during service analysis. 
Assets may be hardware, software, data or people.
Slide 51 · Mentcare system resilience
Mentcare system resilience
The Mentcare system is a system used to support clinicians treating patients that suffer from mental health problems. 
It provides patient information and records of consultations with doctors and nurses.
It includes checks that can flag patients who may be dangerous or suicidal.
Based on a client-server architecture.
Slide 52 · Client-server architecture (Mentcare)
Client-server architecture (Mentcare)
Slide 53 · Critical Mentcare services
Critical Mentcare services
An information service that provides information about a patient’s current diagnosis and treatment plan.
A warning service that highlights patients that could pose a danger to others or to themselves.
Availability of the complete patient record is NOT a critical service as routine patient information is not normally required during consultations.
Slide 54 · Assets required for normal service operation
Assets required for normal service operation
The patient record database that maintains all patient information.
A database server that provides access to the database for local client computers.
A network for client/server communication.
Local laptop or desktop computers used by clinicians to access patient information.
A set of rules to identify patients who are potentially dangerous and which can flag patient records. Client software that highlights dangerous patients to system users.
Slide 55 · Adverse events
Adverse events
Unavailability of the database server either through a system failure, a network failure or a denial of service cyberattack
Deliberate or accidental corruption of the patient record database or the rules that define what is meant by a ‘dangerous patient’
 Infection of client computers with malware
Access to client computers by unauthorized people who gain access to patient records
Slide 56 · Recognition and resistance strategies
Recognition and resistance strategies
Slide 57 · Mentcare system resilience
Mentcare system resilience
Slide 58 · Architecture for resilience
Architecture for resilience
Summary patient records that are maintained on local client computers. 
The local computers can communicate directly with each other and exchange information using either the system network or using an ad hoc network created using mobile phones. If the database is unavailable, doctors and nurses can still access essential patient information. 
A backup server to allow for main server failure. 
This server is responsible for taking regular snapshots of the database as backups. In the event of the failure of the main server, it can also act as the main server for the whole system.
Slide 59 · Architecture for resilience
Architecture for resilience
Database integrity checking and recovery software. 
Integrity checking runs as a background task checking for signs of database corruption. If corruption is discovered, it can automatically initiate the recovery of some or all of the data from backups. The transaction log allows these backups to be updated with details of recent changes
Slide 60 · Critical service maintenance
Critical service maintenance
By downloading information to the client at the start of a clinic session, the consultation can continue without server access. 
Only the information about the patients who are scheduled to attend consultations that day needs to be downloaded. 
The service that provides a warning to staff of patients that may be dangerous can be implemented using this approach. 
The records of possibly patients who may harm themselves or others are identified before the download process. When clinical staff access these records, the software can highlight them to indicate that this is a patient that requires special care.
Slide 61 · Risks to confidentiality
Risks to confidentiality
To minimize risks to confidentiality that arise from multiple copies of information on laptops:
Only download the summary records of patients who are scheduled to attend a clinic. This limits the numbers of records that could be compromised.
Encrypt the disk on local client computers. An attacker who does not have the encryption key cannot read the disk if they gain access to the computer.
Securely delete the downloaded information at the end of a clinic session. This further reduces the chances of an attacker gaining access to confidential information. 
Ensure that all network transactions are encrypted. If an attacker intercepts these transactions, they cannot get access to the information.
Slide 62 · Key points
Key points
Resilience is a judgment of how well a system can maintain the continuity of its critical services in the presence of disruptive events. 
Resilience should be based on the 4 R’s model – recognition, resistance, recovery and reinstatement. 
Resilience planning should be based on the assumption of cyberattacks by malicious insiders and outsiders and that some of these attacks will be successful.
Systems should be designed with defensive layers of different types. These layers trap human and technical failures and help resist cyberattacks.
Slide 63 · Key points
Key points
To allow system operators and managers to cope with problems, processes should be flexible and adaptable. Process automation can make it more difficult for people to cope with problems.
Business resilience requirements should be the starting point for designing systems for resilience.  To achieve system resilience, you have to focus on recognition and recovery from problems, recovery of critical services and assets and reinstatement of the system.
An important part of design for resilience is identifying critical services. Systems should be designed so that these services are protected and, in the event of failure, recovered as quickly as possible.

Select a figure to inspect it at its original size. The original PDF/PPTX retains its full layout and vector diagrams.

Supplied textbook chapter · complete text

The PDF remains authoritative for mathematical layout, figures and tables. Line wrapping and extraction artifacts may occur below; no textbook statement is replaced by a contemporary claim.

PDF page 1 · printed page 408

Inspect the original PDF page

14
Resilience engineering





      Objectives

        The objective of this chapter is to introduce the idea of resilience
         engineering where systems are designed to withstand adverse
         external events such as operator errors and cyberattacks. When you
        have read this chapter, you will:

       ■ understand the differences between resilience, reliability, and
             security and why resilience is important for networked systems;

       ■ be aware of the fundamental issues in building resilient systems,
           namely, recognition of problems, resistance to failures and
             attacks, recovery of critical services, and system reinstatement;

       ■ understand why resilience is a sociotechnical rather than a
            technical issue and the role of system operators and managers in
            providing resilience;

       ■ have been introduced to a system design method that supports
             resilience.


      Contents
        14.1 Cybersecurity
        14.2 Sociotechnical resilience
        14.3 Resilient systems design
PDF page 2 · printed page 409

Inspect the original PDF page

                                Chapter 14  ■  Resilience engineering    409


In April 1970, the Apollo 13 manned mission to the moon suffered a catastrophic
failure. An oxygen tank exploded in space, resulting in a serious loss of atmospheric
oxygen and oxygen for the fuel cells that powered the spacecraft. The situation was
life threatening, with no possibility of rescue. There were no contingency plans for
this situation. However, by using equipment in unintended ways and by adapting
standard procedures, the combined efforts of the spacecraft crew and ground staff
worked around the problems. The spacecraft was brought back to earth safely, and
all the crew survived. The overall system (people, equipment, and processes) was
resilient. It adapted to cope with and recover from the failure.
    I introduced the idea of resilience in Chapter 10, as one of the fundamental
attributes of system dependability. I defined resilience in Chapter 10 as:

  The resilience of a system is a judgment of how well that system can maintain
   the continuity of its critical services in the presence of disruptive events, such
   as equipment failure and cyberattacks.

   This is not a “standard” definition of resilience—different authors such as Laprie
(Laprie 2008) and Hollnagel (Hollnagel 2006) propose general definitions based on
the ability of a system to withstand change. That is, a resilient system is one that can
operate successfully when some of the fundamental assumptions made by the system
designers no longer hold.
   For example, an initial design assumption may be that users will make mistakes
but will not deliberately seek out system vulnerabilities to be exploited. If the system
is used in an environment where it may be subject to cyberattacks, this is no longer
true. A resilient system can cope with the environmental change and can continue to
operate successfully.
  While these definitions are more general, my definition of resilience is closer to
how the term is now used in practice by governments and industry. It embeds three
essential ideas:

1.  The idea that some of the services offered by a system are critical services
    whose failure could have serious human, social, or economic effects.

2.  The idea that some events are disruptive and can affect the ability of a system to
     deliver its critical services.

3.  The idea that resilience is a judgment—there are no resilience metrics, and
     resilience cannot be measured. The resilience of a system can only be assessed
    by experts, who can examine the system and its operational processes.

   Fundamental work on system resilience started in the safety-critical systems
community, where the aim was to understand what factors led to accidents being avoided
and survived. However, the increasing number of cyberattacks on networked systems has
meant that resilience is now often seen as a security issue. It is essential to build systems
that can withstand malicious cyberattacks and continue to deliver services to their users.
PDF page 3 · printed page 410

Inspect the original PDF page

410    Chapter 14  ■  Resilience engineering


                      Obviously, resilience engineering is closely related to reliability and security
                     engineering. The aim of reliability engineering is to ensure that systems do not fail.
            A system failure is an externally observable event, which is often a consequence of
                    a fault in the system. Therefore, techniques such as fault avoidance and fault toler-
                     ance, as discussed in Chapter 11, have been developed to reduce the number of sys-
                  tem faults and to trap faults before they lead to system failure.
                        In spite of our best efforts, faults will always be present in a large, complex sys-
                    tem, and they may lead to system failure. Delivery schedules are short, and testing
                    budgets are limited. Development teams are working under pressure, and it is practi-
                       cally impossible to detect all of the faults and security vulnerabilities in a software
                     system. We are building systems that are so complex (see Chapter 19) that we cannot
                     possibly understand all of the interactions between the system components. Some of
                     these interactions may be a trigger for overall system failure.
                        Resilience engineering does not focus on avoiding failure but rather on accepting
                      the reality that failures will occur. It makes two important assumptions:

                        1.   Resilience engineering assumes that it is impossible to avoid system failures and
                        so is concerned with limiting the costs of these failures and recovering from them.

                       2.   Resilience engineering assumes that good reliability engineering practices have
                      been used to minimize the number of technical faults in a system. It therefore
                         places more emphasis on limiting the number of system failures that arise from
                          external events such as operator errors or cyberattacks.

                         In practice, technical system failures are often triggered by events that are external
                       to the system. These events may involve operator actions or user errors that are unex-
                      pected. Over the last few years, however, as the number of networked systems has
                      increased, these events have often been cyberattacks. In a cyberattack, a malicious
                        person or group tries to damage the system or to steal confidential information. These are
                now more significant than user or operator errors as a potential source of system failure.
                     Because of the assumption that failures will inevitably occur, resilience engineer-
                     ing is concerned with both the immediate recovery from failure to maintain critical
                        services and the longer-term reinstatement of all system services. As I discuss in
                    Section 14.3, this means that system designers have to include system features to
                    maintain the state of the system’s software and data. In the event of a failure, essential
                    information may then be restored.
                     Four related resilience activities are involved in the detection of and recovery
                  from system problems:

                       1.  Recognition The system or its operators should be able to recognize the symp-
                     toms of a problem that may lead to system failure. Ideally, this recognition
                        should be possible before the failure occurs.

                        2.   Resistance If the symptoms of a problem or signs of a cyberattack are detected
                             early, then resistance strategies may be invoked that reduce the probability that the
                       system will fail. These resistance strategies may focus on isolating critical parts of
                          the system so that they are unaffected by problems elsewhere. Resistance includes
PDF page 4 · printed page 411

Inspect the original PDF page

                                                    Chapter 14  ■  Resilience engineering    411


                 Recognition                 Resistance                 Recovery              Reinstatement


             Normal operating              Critical service                 Critical service            Restricted service
                       state                       delivery                     delivery                     delivery

                     Attack                     Attack                  System             Software and data
                   recognition                 resistance                     repair                    restoration

                                   Attack                     Attack                     Repair
                                detected                  successful                complete
                                     Attack repelled


                                                                     Reinstatement complete

Figure 14.1  Resilience
activities                   proactive resistance where defenses are included in a system to trap problems and
                           reactive resistance where actions are taken when a problem is discovered.

                       3.  Recovery If a failure occurs, the aim of the recovery activity is to ensure that
                              critical system services are restored quickly so that system users are not seri-
                        ously affected by the failure.

                       4.  Reinstatement In this final activity, all of the system services are restored, and
                      normal system operation can continue.

                     These activities lead to changes to the system state as shown in Figure 14.1,
                  which shows the state changes in the system in the event of a cyberattack. In parallel
                   with normal system operation, the system monitors network traffic for possible
                      cyberattacks. In the event of a cyberattack, the system moves to a resistance state in
                  which normal services may be restricted.
                               If resistance successfully repels the attack, normal service is resumed. Otherwise, the
                    system moves to a recovery state where only critical services are available. Repairs to the
                  damage caused by the cyberattack are carried out. Finally, when repairs are complete,
                      the system moves to a reinstatement state. In this state, the system’s services are incre-
                     mentally restored. Finally, when all restoration is complete, normal service is resumed.
                  As the Apollo 13 example illustrates, resilience cannot be “programmed in” to a
                    system. It is impossible to anticipate everything that might go wrong and every con-
                       text where problems might arise. The key to resilience, therefore, is flexibility and
                       adaptability. As I discuss in Section 14.2, it should be possible for system operators
                  and managers to take actions to protect and repair the system, even if these actions
                      are abnormal or are normally disallowed.
                        Increasing the resilience of a system of course has significant costs. Software
               may have to be purchased or modified, and additional investments made in hardware
                     or cloud services to provide backup systems that can be used in the event of a system
                         failure. The benefits from these costs are impossible to calculate because the losses
                  from a failure or attack can only be calculated after the event.
                    Companies may therefore be reluctant to invest in resilience if they have never
                     suffered a serious attack or associated loss. However, the increasing number of
PDF page 5 · printed page 412

Inspect the original PDF page

412    Chapter 14  ■  Resilience engineering


                         high-profile cyberattacks that have damaged business and government systems have
                     increased awareness of the need for resilience. It is clear that losses can be very
                         significant, and sometimes businesses may not survive a successful cyberattack.
                     Therefore, there is increasing investment in resilience engineering to reduce the
                     business risks associated with system failure.

        14.1  Cybersecurity


                    Maintaining the security of our networked infrastructure and government, business,
                  and personal computer systems is one of the most significant problems facing our
                       society. The ubiquity of the Internet and our dependence on computer systems have
                     created new criminal opportunities for theft and social disruption. It is very difficult
                       to measure the losses due to cybercrime. However, in 2013, it was estimated that
                      losses to the global economy due to cybercrime were between $100 billion and $500
                        billion (InfoSecurity 2013).
                  As I suggested in Chapter 13, cybersecurity  is a broader issue than system security
                      engineering. Software security engineering is a primarily technical activity that focuses
                 on techniques and technologies to ensure that application systems are secure.
                     Cybersecurity is a sociotechnical concern. It covers all aspects of ensuring the protection
                      of citizens, businesses, and critical infrastructures from threats that arise from their use
                      of computers and the Internet. While technical issues are important, technology on its
                own cannot guarantee security. Factors that contribute to cybersecurity failures include:

                 ■  organizational ignorance of the seriousness of the problem,

                 ■ poor design and lax application of security procedures,

                 ■ human carelessness, and

                 ■  inappropriate trade-offs between usability and security.

                        Cybersecurity is concerned with all of an organization’s IT assets from networks
                     through to application systems. The vast majority of these assets are externally procured,
                   and companies do not understand their detailed operation. Systems such as web brows-
                       ers are large and complex programs, and inevitably they contain bugs that can be a
                     source of vulnerability. The different systems in an organization are related to each other
                       in many different ways. They may be stored on the same disk, share data, rely on com-
               mon operating systems components, and so on. The organizational “system of systems”
                           is incredibly complex. It is impossible to ensure that it is free of security vulnerabilities.
                       Consequently, you should generally assume that your systems are vulnerable to
                     cyberattack and that, at some stage, a cyberattack is likely to occur. A successful
                     cyberattack can have very serious financial consequences for businesses, so it is
                       essential that attacks are contained and losses minimized. Effective resilience engi-
                     neering at the organizational and systems levels can repel attacks and bring systems
                   back into operation quickly and so limit the losses incurred.
PDF page 6 · printed page 413

Inspect the original PDF page

                                                    14.1  ■  Cybersecurity    413


   In Chapter 13, where I discussed security engineering, I introduced concepts that
are fundamental to resilience planning. Some of these concepts are:

1.   Assets, which are systems and data that have to be protected. Some assets are
    more valuable than others and so require a higher level of protection.

2.   Threats, which are circumstances that can cause harm by damaging or stealing
    organizational IT infrastructure or system assets.

3.   Attacks, which are manifestations of a threat where an attacker aims to damage
    or steal IT assets, such as websites or personal data.

   Three types of threats have to be considered in resilience planning:

1.  Threats to the confidentiality of assets In this case, data is not damaged, but it is
   made available to people who should not have access to it. An example of a
     threat to confidentiality is when a credit card database held by a company is
     stolen, with the potential for illegal use of card information.

2.  Threats to the integrity of assets These are threats where systems or data are
   damaged in some way by a cyberattack. This may involve introducing a virus or
    a worm into software or corrupting organizational databases.

3.  Threats to the availability of assets These are threats that aim to deny use of
     assets by authorized users. The best-known example is a denial-of-service attack
     that aims to take down a website and so make it unavailable for external use.

   These are not independent threat classes. An attacker may compromise the integ-
rity of a user’s system by introducing malware, such as a botnet component. This
may then be invoked remotely as part of a distributed denial-of-service attack on
another system. Other types of malware may be used to capture personal details and
so allow confidential assets to be accessed.
  To counter these threats, organizations should put controls in place that make it
difficult for attackers to access or damage assets. It is also important to raise aware-
ness of cybersecurity issues so that people know why these controls are important
and so are less likely to reveal information to an attacker.
  Examples of controls that may be used are:

1.   Authentication, where users of a system have to show that they are authorized to
    access the system. The familiar login/password approach to authentication is a
    universally used but rather weak control.

2.  Encryption, where data is algorithmically scrambled so that an unauthorized
    reader cannot access the information. Many companies now require that laptop
    disks are encrypted. If the computer is lost or stolen, this reduces the likelihood
     that the confidentiality of the information will be breached.

3.   Firewalls, where incoming network packets are examined, then accepted or
    rejected according to a set of organizational rules. Firewalls can be used to
PDF page 7 · printed page 414

Inspect the original PDF page

414    Chapter 14  ■  Resilience engineering


                        ensure that only traffic from trusted sources is allowed to pass from the external
                           Internet into the local organizational network.

              A set of controls in an organization provides a layered protection system. An
                      attacker has to get through all of the protection layers for the attack to succeed.
                  However, there is a trade-off between protection and efficiency. As the number of
                      layers of protection increases, the system slows down. The protection systems con-
                 sume an increasing amount of memory and processor resources, leaving less availa-
                      ble to do useful work. The more security, the more inconvenient it is for users and
                      the more likely that they will adopt insecure practices to increase system usability.
                  As with other aspects of system dependability, the fundamental means of protect-
                    ing against cyberattacks depends on redundancy and diversity. Recall that redun-
                  dancy means having spare capacity and duplicated resources in a system. Diversity
                 means that different types of equipment, software, and procedures are used so that
               common failures are less likely to occur across a number of systems. Examples of
                  where redundancy and diversity are valuable for cyber-resilience are:

                       1.  For each system, copies of data and software should be maintained on separate
                      computer systems. Shared disks should be avoided if possible. This supports
                        recovery after a successful cyberattack (recovery and reinstatement).

                       2.   Multi-stage diverse authentication can protect against password attacks. As well
                         as login/password authentication, additional authentication steps may be
                        involved that require users to provide some personal information or a code gen-
                          erated by their mobile device (resistance).

                       3.   Critical servers may be overprovisioned; that is, they may be more powerful
                        than is required to handle their expected load. The spare capacity means that
                           attacks may be resisted without necessarily degrading the normal response of
                          the server. Furthermore, if other servers are damaged, spare capacity is available
                           to run their software while they are being repaired (resistance and recovery).

                       Planning for cybersecurity has to be based on assets and controls and the 4 Rs of resil-
                     ience engineering—recognition, resistance, recovery, and reinstatement. Figure 14.2
                  shows a planning process that may be followed. The key stages in this process are:

                       1.  Asset classification The organization’s hardware, software, and human assets
                          are examined and classified depending on how essential they are to normal
                          operations. They may be classed as critical, important, or useful.

                       2.  Threat identification For each of the assets (or at least the critical and important
                             assets), you should identify and classify threats to that asset. In some cases, you
                  may try to estimate the probability that a threat will arise, but such estimates are
                          often inaccurate as you don’t have enough information about potential attackers.

                       3.  Threat recognition For each threat or, sometimes asset/threat pair, you should
                          identify how an attack based on that threat might be recognized. You may
PDF page 8 · printed page 415

Inspect the original PDF page

                                                                         14.1  ■  Cybersecurity    415


                                                   Threat
                                                  recognition
    InterfaceAsset              IntegrationThreat and                                       InterfaceAsset              IntegrationAsset and
 developmentclassification            identificationdeployment                              developmentrecovery            reinstatementdeployment

                                                   Threat
                                                    resistance



                                             Cyber-resilience plan


Figure 14.2  Cyber-         decide that additional software needs to be bought or written for threat recogni-
resilience planning
                           tion or that regular checking procedures are put in place.

                       4.  Threat resistance For each threat or asset/threat pair, you should identify possi-
                          ble resistance strategies. These either may be embedded in the system (technical
                            strategies) or may rely on operational procedures. You may also need to think of
                            threat neutralization strategies so that the threat does not recur.

                       5.  Asset recovery For each critical asset or asset/threat pair, you should work out
                  how that asset could be recovered in the event of a successful cyberattack. This
                  may involve making extra hardware available or changing backup procedures to
                    make it easier to access redundant copies of data.

                       6.  Asset reinstatement This is a more general process of asset recovery where you
                         define procedures to bring the system back into normal operation. Asset rein-
                        statement should be concerned with all assets and not simply assets that are
                               critical to the organization.

                       Information about all of these stages should be maintained in a cyber-resilience
                      plan. This plan should be regularly updated, and, wherever possible, the strategies
                       identified should be tested in mock attacks on the system.
                      Another important part of cyber-resilience planning is to decide how to support a flex-
                        ible response in the event of a cyberattack. Paradoxically, resilience and security
                       requirements often conflict. The aim of security is usually to limit privilege as far as pos-
                        sible so that users can only do what the security policy of the organization allows.
                   However, to deal with problems, a user or system operator may have to take the initiative
                   and take actions that are normally carried out by someone with a higher level of privilege.
                     For example, the system manager of a medical system may not normally be
                   allowed to change the access rights of medical staff to records. For security reasons,
                    access permissions have to be formally authorized, and two people need to be
                    involved in making the change. This reduces the chances of system managers col-
                     luding with attackers and allowing access to confidential medical information.
                  Now, imagine that the system manager notices that a logged-in user is accessing
                    a large number of records outside of normal working hours. The manager suspects
PDF page 9 · printed page 416

Inspect the original PDF page

416    Chapter 14  ■  Resilience engineering


                       that an account has been compromised and that the user accessing the records is not
                      actually the authorized user. To limit the damage, the user’s access rights should be
                  removed and a check then made with the authorized user to see if the accesses were
                      actually illegal. However, the security procedures limiting the rights of system man-
                     agers to change users’ permissions make this impossible.
                        Resilience planning should take such situations into account. One way of doing
                    so is to include an “emergency” mode in systems where normal checks are ignored.
                    Rather than forbidding operations, the system logs what has been done and who was
                      responsible. Therefore, the audit trail of emergency actions can be used to check that
                    a system manager’s actions were justified. Of course, there is scope for misuse here,
                  and the existence of an emergency mode is itself a potential vulnerability. Therefore,
                     organizations have to trade off possible losses against the benefits of adding more
                      features to a system to support resilience.

       14.2  Sociotechnical resilience

                   Fundamentally, resilience engineering is a sociotechnical rather than a technical
                        activity. As I explained in Chapter 10, a sociotechnical system includes hardware,
                     software, and people and is influenced by the culture, policies, and procedures of the
                     organization that owns and uses the system. To design a resilient system, you have to
                     think about sociotechnical systems design and not exclusively focus on software.
                     Resilience engineering is concerned with adverse external events that can lead to
                   system failure. Dealing with these events is often easier and more effective in the
                    broader sociotechnical system.
                      For example, the Mentcare system maintains confidential patient data, and a possible
                       external cyberattack may aim to steal that data. Technical safeguards such as authentica-
                       tion and encryption may be used to protect the data, but these are not effective if an
                       attacker has access to the credentials of a genuine system user. You could try to solve
                         this problem at the technical level by using more complex authentication procedures.
                  However, these procedures annoy users and may lead to vulnerabilities as they write
                down authentication information. A better strategy may be to introduce organizational
                       policies and procedures that emphasize the importance of not sharing login credentials
                   and that tell users about easy ways to create and maintain strong passwords.
                         Resilient systems are flexible and adaptable so that they can cope with the unex-
                      pected. It is very difficult to create software that can adapt to cope with problems
                       that have not been anticipated. However, as we saw from the Apollo 13 accident,
                    people are very good at this. Therefore, to achieve resilience, you should take advan-
                     tage of the fact that people are an inherent part of sociotechnical systems. Rather
                    than try to anticipate and deal with all problems in software, you should leave some
                     types of problem solving to the people responsible for operating and managing the
                    software system.
                  To understand why you should leave some types of problem solving to people,
                  you have to consider the hierarchy of sociotechnical systems that includes technical,
                     software-intensive systems. Figure 14.3 shows that technical systems S1 and S2 are
PDF page 10 · printed page 417

Inspect the original PDF page

                                                              14.2  ■  Sociotechnical resilience    417



                                                                          Failure    Managers

                                                             Failure    Operators

                                                  S1          S2

                                               ST1Figure 14.3  Nested
technical and                                                Organization
sociotechnical systems


                      part of a broader sociotechnical system ST1. That sociotechnical system includes
                     operators who monitor the condition of S1 and S2 and who can take actions to
                     resolve problems in these systems. If system S1 (say) fails, then the operators in
                ST1 may detect that failure and take recovery actions before the software failure
                     leads to failure in the broader sociotechnical system. Operators may also invoke
                    recovery and reinstatement procedures to get S1 back to its normal operating state.
                       Operational and management processes are the interface between the organiza-
                       tion and the technical systems that are used. If these processes are well designed,
                    they allow people to discover and to cope with technical system failures, as well as
                    ensuring that operator errors are minimized. As I discuss in Section 14.2.2, rigid
                     processes that are overautomated are not inherently resilient. They do not allow peo-
                      ple to use their skills and knowledge to adapt and change processes to cope with the
                   unexpected and deal with unanticipated failures.
                   The system ST1 is one of a number of sociotechnical systems in the organization.
                          If the system operators cannot contain a technical system failure, then this may lead
                       to a failure in the sociotechnical system ST1. Managers at the organizational level
                    then must detect the problem and take steps to recover from it. Resilience is there-
                      fore an organizational as well as a system characteristic.
                       Hollnagel (Hollnagel 2010), who was an early advocate of resilience engineer-
                       ing, argues that it is important for organizations to study and learn from successes as
                    well as failure. High-profile safety and security failures lead to inquiries and changes
                      in practice and procedures. However, rather than respond to these failures, it is
                          better to avoid them by observing how people deal with problems and maintain
                        resilience. This good practice can then be disseminated throughout the organization.
                    Figure 14.4 shows four characteristics that Hollnagel suggests reflect the resilience
                     of an organization. These characteristics are:

                       1.  The ability to respond Organizations have to be able to adapt their processes and
                        procedures in response to risks. These risks may be anticipated risks, or they
                  may be detected threats to the organization and its systems. For example, if a
                   new security threat is detected and publicized, a resilient organization can make
                       changes quickly so that this threat does not disrupt its operations.

                       2.  The ability to monitor Organizations should monitor both their internal
                           operations and their external environment for threats before they arise. For
                       example, a company should monitor how its employees follow security policies.
PDF page 11 · printed page 418

Inspect the original PDF page

418    Chapter 14  ■  Resilience engineering



                                                           Monitoring the              Anticipating future
                          Responding to threats           organization and                 threats and
                          and vulnerabilities             environment                 opportunities


Figure 14.4                                           Learning from experience
Characteristics of
resilient organizations

                                If potentially insecure behavior is detected, the company should respond by taking
                           actions to understand why this has occurred and to change employee behavior.

                       3.  The ability to anticipate A resilient organization should not simply focus on its
                          current operations but should anticipate possible future events and changes that
                  may affect its operations and resilience. These events may include technological
                         innovations, changes in regulations or laws, and modifications in customer
                         behavior. For example, wearable technology is starting to become available,
                      and companies should now be thinking about how this might affect their current
                           security policies and procedures.

                       4.  The ability to learn Organizational resilience can be improved by learning from
                         experience. It is particularly important to learn from successful responses to
                        adverse events such as the effective resistance of a cyberattack. Learning from
                         success allows good practice to be disseminated throughout the organization.

                  As Hollnagel says, to become resilient organizations have to address all of these
                      issues to some extent. Some will focus more on one quality than others. For exam-
                        ple, a company running a large-scale data center may focus mostly on monitoring
                  and responsiveness. However, a digital library that manages long-term archival
                    information may have to anticipate how future changes may affect its business as
                    well as respond to any immediate security threats.

          14.2.1 Human error

                    Early work on resilience engineering was concerned with accidents in safety-
                         critical systems and with how the behavior of human operators could lead to safety-
                      related system failures. This led to an understanding of system defenses that is
                     equally applicable to systems that have to withstand malicious as well as accidental
                human actions.
               We know that people make mistakes, and, unless a system is completely automated,
                                it is inevitable that users and system operators will sometimes do the wrong thing.
                      Unfortunately, these human errors sometimes lead to serious system failures. Reason
                    (Reason, 2000) suggests that the problem of human error can be viewed in two ways:


                       1.  The person approach Errors are considered to be the responsibility of the indi-
                         vidual and “unsafe acts” (such as an operator failing to engage a safety barrier)
PDF page 12 · printed page 419

Inspect the original PDF page

                                         14.2  ■  Sociotechnical resilience    419


    are a consequence of individual carelessness or reckless behavior. People who
    adopt this approach believe that human errors can be reduced by threats of
     disciplinary action, more stringent procedures, retraining, and so on. Their view
     is that the error is the fault of the individual responsible for making the mistake.

2.  The systems approach The basic assumption is that people are fallible and will make
     mistakes. People make mistakes because they are under pressure from high work-
     loads, because of poor training, or because of inappropriate system design. Good
    systems should recognize the possibility of human error and include barriers and
    safeguards that detect human errors and allow the system to recover before failure
     occurs. When a failure does occur, the best way to avoid its recurrence is to understand
   how and why the system defenses did not trap the error. Blaming and punishing the
    person who triggered the failure does not improve long-term system safety.


    I believe that the systems approach is the right one and that systems engineers
should assume that human errors will occur during system operation. Therefore, to
improve the resilience of a system, designers have to think about the defenses and
barriers to human error that could be part of a system. They should also think about
whether these barriers should be built into the technical components of the system.
If not, they could be part of the processes, procedures, and guidelines for using the
system. For example, two operators may be required to check critical system inputs.
  The barriers and safeguards that protect against human errors may be technical or
sociotechnical. For example, code to validate all inputs is a technical defense; an approval
procedure for critical system updates that needs two people to confirm the update is a
sociotechnical defense. Using diverse barriers means that shared vulnerabilities are less
likely and that a user error is more likely to be trapped before system failure.
   In general, you should use redundancy and diversity to create a set of defensive
layers (Figure 14.5), where each layer uses a different approach to deter attackers or
to trap component failures or human errors. Dark blue barriers are software checks;
light blue barriers are checks carried out by people.
  As an example of this approach to defense in depth, some of the checks for con-
troller errors that may be part of an air traffic control system include:


1.  A conflict alert warning as part of an air traffic control system When a control-
     ler instructs an aircraft to change its speed or altitude, the system extrapolates its
     trajectory to see if it intersects with any other aircraft. If so, it sounds an alarm.

2.  Formalized recording procedures for air traffic management The same ATC
    system may have a clearly defined procedure setting out how to record the con-
     trol instructions that have been issued to aircraft. These procedures help control-
     lers check if they have issued the instruction correctly and make the information
     visible to others for checking.

3.  Collaborative checking Air traffic control involves a team of controllers who
    constantly monitor each other’s work. When a controller makes a mistake, oth-
     ers usually detect and correct it before an incident occurs.
PDF page 13 · printed page 420

Inspect the original PDF page

420    Chapter 14  ■  Resilience engineering


                                                      Technical defenses




                                                                                             Errors or
                                                                                           attacks




Figure 14.5  Defensive
layers                            Sociotechnical defenses

                    Reason (Reason 2000) draws on the idea of defensive layers in a theory of how
                human errors lead to system failures. He introduces the so-called Swiss cheese
                   model, which suggests that defensive layers are not solid barriers but are instead like
                        slices of Swiss cheese. Some types of Swiss cheese, such as Emmenthal, have holes
                     of varying sizes in them. Reason suggests that vulnerabilities, or what he calls latent
                     conditions in the layers, are analogous to these holes.
                     These latent conditions are not static—they change depending on the state of the
                   system and the people involved in system operation. To continue with the analogy,
                      the holes change size and move around the defensive layers during system operation.
                   For example, if a system relies on operators checking each other’s work, a possible
                      vulnerability is that both make the same mistake. This is unlikely under normal con-
                       ditions so, in the Swiss cheese model, the hole is small. However, when the system
                          is heavily loaded and the workload of both operators is high, then mistakes are more
                        likely. The size of the hole representing this vulnerability increases.
                         Failure in a system with layered defenses occurs when there is some external trig-
                     ger event that has the potential to cause damage. This event might be a human error
                   (which Reason calls an active failure) or it could be a cyberattack. If all of the defen-
                      sive barriers fail, then the system as a whole will fail. Conceptually, this corresponds
                       to the holes in the Swiss cheese slices lining up, as shown in Figure 14.6.
                      This model suggests that different strategies can be used to increase system resil-
                     ience to adverse external events:

                        1.  Reduce the probability of the occurrence of an external event that might trigger
                            system failures. To reduce human errors, you may introduce improved training for
                           operators or give operators more control over their workload so that they are not
                          overloaded. To reduce cyberattacks, you may reduce the number of people who have
                            privileged system information and so reduce the chances of disclosure to an attacker.

                       2.   Increase the number of defensive layers. As a general rule, the more layers that
                     you have in a system, the less likely it is that the holes will line up and a system
                            failure will occur. However, if these layers are not independent, then they may
                         share a common vulnerability. Thus, the barriers are likely to have the same
                        “hole” in the same place, so there is only a limited benefit in adding a new layer.
PDF page 14 · printed page 421

Inspect the original PDF page

                                                              14.2  ■  Sociotechnical resilience    421





                                                                                                  Active failure
                                                                      (Human error)




Figure 14.6  Reason’s
Swiss cheese model of
system failure                 System failure               Latent conditions in defensive layers

                       3.  Design a system so that diverse types of barriers are included. This means that
                          the “holes” will probably be in different places, and so there is less chance of the
                         holes lining up and failing to trap an error.

                        4.  Minimize the number of latent conditions in a system. Effectively, this means
                         reducing the number and size of system “holes.” However, this may significantly
                           increase systems engineering costs. Reducing the number of bugs in the system
                           increases testing and V & V costs. Therefore, this option may not be cost-effective.

                        In designing a system, you need to consider all of these options and make choices
                    about what might be the most cost-effective ways to improve the system’s defenses.
                          If you are building custom software, then using software checking to increase the
                 number and diversity of layers may be the best option. However, if you are using
                       off-the-shelf software, then you may have to consider how sociotechnical defenses
               may be added. You may decide to change training procedures to reduce the chances
                     of problems occurring and to make it easier to deal with incidents when they arise.

         14.2.2  Operational and management processes

                     All software systems have associated operational processes that reflect the assump-
                       tions of the designers about how these systems will be used. Some software systems,
                       particularly those that control or are interfaced to special equipment, have trained
                     operators who are an intrinsic part of the control system. Decisions are made during
                      the design stage about which functions should be part of the technical system and
                  which functions should be the operator’s responsibility. For example, in an imaging
                   system in a hospital, the operator may have the responsibility of checking the quality
                     of the images immediately after they have been processed. This check allows the
                   imaging procedure to be repeated if there is a problem.
                       Operational processes are the processes that are involved in using the system for
                            its defined purpose. For example, operators of an air traffic control system follow
                       specific processes when aircraft enter and leave airspace, when they have to change
                     height or speed, when an emergency occurs, and so on. For new systems, these oper-
                      ational processes have to be defined and documented during the system develop-
                  ment process. Operators may have to be trained and other work processes adapted to
                make effective use of the new system.
PDF page 15 · printed page 422

Inspect the original PDF page

422    Chapter 14  ■  Resilience engineering


                   Most software systems, however, do not have trained operators but have system
                       users, who use the system as part of their work or to support their personal interests.
                   For personal systems, the designers may describe the expected use of the system but
                   have no control over how users will actually behave. For enterprise IT systems, how-
                      ever, training may be provided for users to teach them how to use the system.
                   Although user behavior cannot be controlled, it is reasonable to expect that they will
                   normally follow the defined process.
                        Enterprise IT systems will also usually have system administrators or managers
               who are responsible for maintaining that system. While they are not part of the busi-
                    ness process supported by the system, their job is to monitor the software system for
                       errors and problems. If problems arise, system managers take action to resolve them
                  and restore the system to its normal operational state.
                        In the previous section, I discussed the importance of defense in depth and the use
                     of diverse mechanisms to check for adverse events that could lead to system failure.
                     Operational and management processes are an important defense mechanism, and,
                       in designing a process, you need to find a balance between efficient operation and
                  problem management. These are often in conflict as shown in Figure 14.7 as increas-
                     ing efficiency removes redundancy and diversity from a system.
                    Over the past 25 years, businesses have focused on so-called process improve-
                    ment. To improve the efficiency of operational and management processes, compa-
                      nies study how their processes are enacted and look for particularly efficient and
                        inefficient practice. Efficient practice is codified and documented, and software may
                   be developed to support this “optimum” process. Inefficient practice is replaced by
                 more efficient ways of doing things. Sometimes process control mechanisms are
                     introduced to ensure that system operators and managers follow this “best practice.”
                    The problem with process improvement is that it often makes it harder for people to
                   cope with problems. What seems to be “inefficient” practice often arises because people
                     maintain redundant information or share information because they know this makes it
                        easier to deal with problems when things go wrong. For example, air traffic controllers
                may print flight details as well as rely on the flight database because they will then have
                     information about flights in the air if the system database becomes unavailable.
                      People have a unique capability to respond effectively to unexpected situations,
                  even when they have never had direct experience of these situations. Therefore,
                when things go wrong, operators and system managers can often recover the situa-
                        tion, although they may sometimes have to break rules and “work around” the
                    defined process. You should therefore design operational processes to be flexible
                  and adaptable. The operational processes should not be too constraining; they should
                    not require operations to be done in a particular order; and the system software
                    should not rely on a specific process being followed.
                      For example, an emergency service control room system is used to manage emer-
                  gency calls and to initiate a response to these calls. The “normal” process of han-
                     dling a call is to log the caller’s details and then send a message to the appropriate
                  emergency service giving details of the incident and the address. This procedure
                    provides an audit trail of the actions taken. A subsequent investigation can check
                       that the emergency call has been properly handled.
PDF page 16 · printed page 423

Inspect the original PDF page

                                                              14.2  ■  Sociotechnical resilience    423



    Efficient process operation                         Problem management

   Process optimization and control                         Process flexibility and adaptability

   Information hiding and security                          Information sharing and visibility

   Automation to reduce operator workload with fewer      Manual processes and spare operator/manager
   operators and managers                                   capacity to deal with problems

   Role specialization                                     Role sharing


Figure 14.7  Efficiency               Now imagine that this system is subject to a denial-of-service attack, which makes
and resilience
                      the messaging system unavailable. Rather than simply not responding to calls, the oper-
                       ators may use their personal mobile phones and their knowledge of call responders to
                         call the emergency service units directly so that they can respond to serious incidents.
                    Management and provision of information are also important for resilient operation.
                To make a process more efficient, it may make sense to present operators with the
                     information they need, when they need it. From a security perspective, information
                    should not be accessible unless the operator or manager needs that information.
                  However, a more liberal approach to information access can improve system resilience.
                              If operators are only presented with information that the process designer thinks
                    they “need to know,” then they may be unable to detect problems that do not directly
                       affect their immediate tasks. When things go wrong, the system operators do not
                   have a broad picture of what is happening in the system, so it is more difficult for
                  them to formulate strategies for dealing with problems. If they cannot access some
                    information in the system for security reasons, then they may be unable to stop
                      attacks and repair the damage that has been caused.
                     Automating the system management process means that a single manager may be
                     able to manage a large number of systems. Automated systems can detect common
                   problems and take actions to recover from these problems. Fewer people are needed
                       for system operations and management, and so costs are reduced. However, process
                    automation has two disadvantages:

                       1.  Automated management systems may go wrong and take incorrect actions. As
                       problems develop, the system may take unexpected actions that make the situa-
                           tion worse and that cannot be understood by the system managers.

                        2.  Problem solving is a collaborative process. If fewer managers are available, it is
                             likely to take longer to work out a strategy to recover from a problem or cyberattack.

                       Therefore, process automation can have both positive and negative effects on
                   system resilience. If the automated system works properly, it can detect problems,
                   invoke cyberattack resistance if necessary, and start automated recovery procedures.
                  However, if the automated system can’t handle the problem, fewer people will be
                      available to tackle the problem and the system may have been damaged by the pro-
                     cess automation doing the wrong thing.
                        In an environment where there are different types of system and equipment, it
               may be impractical to expect all operators and managers to be able to deal with all of
PDF page 17 · printed page 424

Inspect the original PDF page

424    Chapter 14  ■  Resilience engineering


                     the different systems. Individuals may therefore specialize so that they become
                     expert and knowledgeable about a small number of systems. This leads to more effi-
                       cient operation but has consequences for the resilience of the system.
                   The problem with role specialization is that there may not be anyone available at
                    a particular time who understands the interactions between systems. Consequently,
                                it is difficult to cope with problems if the specialist is not available. If people work
                    with several systems, they come to understand the dependencies and relationships
                  between them and so can tackle problems that affect more than one system. With no
                       specialist available, it becomes much more difficult to contain the problem and
                       repair any damage that has been caused.
                 You may use risk assessment, as discussed in Chapter 13, to help make decisions
                  on the balance between process efficiency and resilience. You consider all of the
                       risks where operator or manager intervention may be required and assess the likeli-
                  hood of these risks and the extent of the possible losses that might arise. For risks
                       that may lead to serious damage and extensive loss and for risks that are likely to
                     occur, you should favor resilience over process efficiency.


        14.3  Resilient systems design


                      Resilient systems can resist and recover from adverse incidents such as software
                       failures and cyberattacks. They can deliver critical services with minimal interrup-
                      tions and can quickly return to their normal operating state after an incident has
                     occurred. In designing a resilient system, you have to assume that system failures or
                      penetration by an attacker will occur, and you have to include redundant and diverse
                      features to cope with these adverse events.
                      Designing systems for resilience involves two closely related streams of work:

                       1.   Identifying critical services and assets Critical services and assets are those ele-
                      ments of the system that allow a system to fulfill its primary purpose. For exam-
                            ple, the primary purpose of a system that handles ambulance dispatch in
                        response to emergency calls is to get help to people who need it as quickly as
                           possible. The critical services are those concerned with taking calls and dis-
                         patching ambulances to the medical emergency. Other services such as call log-
                        ging and ambulance tracking are less important.

                       2.  Designing system components that support problem recognition, resistance,
                         recovery, and reinstatement For example, in an ambulance dispatch system, a
                      watchdog timer (see Chapter 12) may be included to detect if the system is not
                        responding to events. Operators may have to authenticate with a hardware token
                           to resist the possibility of unauthorized access. If the system fails, calls may be
                          diverted to another center so that the essential services are maintained. Copies
                         of the system database and software on alternative hardware may be maintained
                           to allow for reinstatement after an outage.
PDF page 18 · printed page 425

Inspect the original PDF page

                                                              14.3  ■  Resilient systems design    425


                                                                     1. Review system
                                                        requirements and
                                                                   architecture



                                             4. Identify softspots and                   2. Identify critical services
                                             survivability strategies                 and components




                                                                     3. Identify attacks and
                                                     compromisable
Figure 14.8  Stages in                                   components
survivability analysis


                   The fundamental notions of recognition, resistance, and recovery were the basis
                     of early work in resilience engineering by Ellison et al. (Ellison et al. 1999, 2002).
                 They designed a method of analysis called survivable systems analysis. This method
                          is used to assess vulnerabilities in systems and to support the design of system archi-
                       tectures and features that promote system survivability.
                       Survivable systems analysis is a four-stage process (Figure 14.8) that analyzes
                      the current or proposed system requirements and architecture, identifies critical ser-
                       vices, attack scenarios, and system “softspots,” and proposes changes to improve the
                       survivability of a system. The key activities in each of these stages are as follows:

                       1.  System understanding For an existing or proposed system, review the goals of
                          the system (sometimes called the mission objectives), the system requirements,
                      and the system architecture.

                       2.   Critical service identification The services that must always be maintained and
                          the components that are required to maintain these services are identified.

                       3.  Attack simulation Scenarios or use cases for possible attacks are identified,
                        along with the system components that would be affected by these attacks.

                       4.   Survivability analysis Components that are both essential and compromisable
                     by an attack are identified, and survivability strategies based on resistance, rec-
                           ognition, and recovery are identified.

                   The fundamental problem with this approach to survivability analysis is that its
                       starting point is the requirements and architecture documentation for a system. This
                          is a reasonable assumption for defense systems (the work was sponsored by the U.S.
                   Department of Defense), but it poses two problems for business systems:

                        1.    It is not explicitly related to the business requirements for resilience. I believe that
                          these are a more appropriate starting point than technical system requirements.
PDF page 19 · printed page 426

Inspect the original PDF page

426    Chapter 14  ■  Resilience engineering



           Identify business
              resilience
           requirements



                         Plan backup            Plan system          Develop software
  Reinstatement             strategy             reinstatement              to support
                                                                          reinstatement
                                                                                                          Propose software
                                                                                                              changes

Recognition and           Identify critical            Identify assets            Identify events            Plan event
   resistance                 services                that deliver            that compromise         recognition and
                                                                 critical services               assets                  resistance

                                                                                                    Buy new software
                                                                                                                           required


                          Plan critical             Plan critical            Design asset         Develop software
    Recovery                           service recovery           asset recovery           redundancy               to support
                                                                                    strategy               asset recovery




                                                                                                                 service                                          test            Identify                                                              attack              Test                                                                         system              Test      Testing               Resilience                                           and failure                                                                                                       recovery                           planning                                                                                 resistance
                                                     scenarios



                                                                                                Test system
                                                                                     reinstatement


Figure 14.9             2.   It assumes that there is a detailed requirements statement for a system. In fact,
Resilience engineering                            resilience may have to be “retrofitted” to a system where there is no complete or
                          up-to-date requirements document. For new systems, resilience may itself be a
                         requirement, or systems may be developed using an agile approach. The system
                           architecture may be designed to take resilience into account.

              A more general resilience engineering method, as shown in Figure 14.9, takes the
                     lack of detailed requirements into account as well as explicitly designing recovery
                  and reinstatement into the system. For the majority of components in a system, you
                       will not have access to their source code and will not be able to make changes to
                    them. Your strategy for resilience has to be designed with this limitation in mind.
                      There are five interrelated streams of work in this approach to resilience engineering:

                        1.  You identify business resilience requirements. These requirements set out how
                          the business as a whole must maintain the services that it delivers to customers
                         and, from this, resilience requirements for individual systems are developed.
                        Providing resilience is expensive, and it is important not to overengineer sys-
                       tems with unnecessary resilience support.
                        2.  You plan how to reinstate a system or a set of systems to their normal operating
                             state after an adverse event. This plan has to be integrated with the business’s
PDF page 20 · printed page 427

Inspect the original PDF page

                                         14.3  ■  Resilient systems design    427


    normal backup and archiving strategy that allows recovery of information after
    a technical or human error. It should also be part of a wider disaster recovery
     strategy. You have to take account of the possibility of physical events such as
     fire and flooding and study how to maintain critical information in separate
     locations. You may decide to use cloud backups for this plan.

3.  You identify system failures and cyberattacks that can compromise a system, and
    you design recognition and resilience strategies to cope with these adverse events.

4.  You plan how to recover critical services quickly after they have been damaged
    or taken offline by a failure or cyberattack. This step usually involves providing
    redundant copies of the critical assets that provide these services and switching
     to these copies when required.

5.   Critically, you should test all aspects of your resilience planning. This testing
    involves identifying failure and attack scenarios and playing these scenarios out
    against your system.


   Maintaining the availability of critical services is the essence of resilience.
Accordingly, you have to know:

■  the system services that are the most critical for a business,

■  the minimal quality of service that must be maintained,

■ how these services might be compromised,

■ how these services can be protected, and

■ how you can recover quickly if the services become unavailable.

  As part of the analysis of critical services, you have to identify the system assets
that are essential for delivering these services. These assets may be hardware (serv-
ers, network, etc.), software, data, and people. To build a resilient system, you have
to think about how to use redundancy and diversity to ensure that these assets remain
available in the event of a system failure.
   For all of these activities, the key to providing a rapid response and recovery plan
after an adverse event is to have additional software that supports resistance, recov-
ery, and reinstatement. This may be commercial security software or resilience sup-
port that is programmed into application systems. It may also include scripts and
specially written programs that are developed for recovery and reinstatement. If you
have the right support software, the processes of recovery and reinstatement can be
partially automated and quickly invoked and executed after a system failure.
   Resilience testing involves simulating possible system failures and cyberattacks to
test whether the resilience plans that have been drawn up work as expected. Testing
is essential because we know from experience that the assumptions made in resil-
ience planning are often invalid and that planned actions do not always work. Testing
for resilience can reveal these problems so that the resilience plan can be refined.
PDF page 21 · printed page 428

Inspect the original PDF page

428    Chapter 14  ■  Resilience engineering



                                    Mentcare             Mentcare            Mentcare
                                                  client                     client                   client



                                                        Network




                                                        Mentcare server





                                                                 Patient databaseFigure 14.10  The
client–server architecture
of the Mentcare system

                        Testing can be very difficult and expensive as, obviously, the testing cannot be carried
                     out on an operational system. The system and its environment may have to be duplicated
                       for testing, and staff may have to be released from their normal responsibilities to work
                  on the test system. To reduce costs, you can use “desk testing.” The testing team assumes
                    a problem has occurred and tests their reactions to it; they do not simulate that problem
                  on a real system. While this approach can provide useful information about system resil-
                       ience, it is less effective than testing in discovering deficiencies in the resilience plan.
                  As an example of this approach, let us look at resilience engineering for the
                   Mentcare system. To recap, this system is used to support clinicians treating patients
                       in a variety of locations who have mental health problems. It provides patient infor-
                   mation and records of consultations with doctors and specialist nurses. It includes a
                 number of checks that can flag patients who may be potentially dangerous or sui-
                        cidal. Figure 14.10 shows the architecture of this system.
                   The system is consulted by doctors and nurses before and during a consultation,
                  and patient information is updated after the consultation. To ensure the effectiveness
                     of clinics, the business resilience requirements are that the critical system services
                      are available during normal working hours, that the patient data should not be per-
                   manently damaged or lost by a system failure or cyberattack, and that patient infor-
                   mation should not be released to unauthorized people.
                Two critical services in the system have to be maintained:

                       1.  An information service that provides information about a patient’s current diag-
                          nosis and treatment plan.

                       2.  A warning service that highlights patients who could pose a danger to others or
                           to themselves.

                      Notice that the critical service is not the availability of the complete patient
                      record. Doctors and nurses only need to go back to previous treatments occasionally,
PDF page 22 · printed page 429

Inspect the original PDF page

                                         14.3  ■  Resilient systems design    429


so clinical care is not seriously affected if a full record is not available. Therefore, it
is possible to deliver effective care using a summary record that only includes infor-
mation about the patient and recent treatment.
  The assets required to deliver these services in normal system operations are:

1.  The patient record database that maintains all patient information.

2. A database server that provides access to the database for local client computers.

3. A network for client/server communications.

4.  Local laptop or desktop computers used by clinicians to access patient information.

5. A set of rules that identify patients who are potentially dangerous and that can flag
     patient records. Client software highlights dangerous patients to system users.

  To plan recognition, resistance, and recovery strategies, you need to develop a set
of scenarios that anticipate adverse events that might compromise the critical ser-
vices offered by the system. Examples of these adverse events are:

1.  The unavailability of the database server either through a system failure, a
    network failure, or a denial-of-service cyberattack.

2.  The deliberate or accidental corruption of the patient record database or the
     rules that define what is meant by a “dangerous patient.”

3.   Infection of client computers with malware.

4.  Access to client computers by unauthorized people who gain access to patient records.

   Figure 14.11 shows possible recognition and resistance strategies for these
adverse events. Notice that these are not just technical approaches but also include
workshops to inform system users about security issues. We know that many secu-
rity breaches arise because users inadvertently reveal privileged information to an
attacker and these workshops reduce the chances of this happening. I don’t have
space here to discuss all of the options that I identified in Figure 14.11. Instead, I
focus on how the system architecture can be modified to be more resilient.
   In Figure 14.11, I suggested that maintaining patient information on client com-
puters was a possible redundancy strategy that could help maintain critical services.
This leads to the modified software architecture shown in Figure 14.12. The key
features of this architecture are:

1.  Summary patient records that are maintained on local client computers The
     local computers can communicate directly with each other and exchange infor-
    mation using either the system network or, if necessary, an ad hoc network cre-
    ated using mobile phones. Therefore, if the database is unavailable, doctors and
    nurses can still access essential patient information. (resistance and recovery)

2.  A backup server to allow for main server failure This server is responsible for
    taking regular snapshots of the database as backups. In the event the main server
PDF page 23 · printed page 430

Inspect the original PDF page

430    Chapter 14  ■  Resilience engineering



   Event                Recognition                       Resistance

   Server                   1. Watchdog timer on client            1. Design system architecture to maintain local
    unavailability             that times out if no response         copies of critical information
                             to client access                       2. Provide peer-to-peer search across clients for
                              2. Text messages from system           patient data
                        managers to clinical users           3. Provide staff with smartphones that can be
                                                        used to access the network in the event of
                                                                    server failure
                                                                        4. Provide backup server

   Patient database        1. Record level cryptographic          1. Replayable transaction log to update database
   corruption             checksums                       backup with recent transactions
                              2. Regular auto-checking of            2. Maintenance of local copies of patient
                          database integrity                   information and software to restore database
                              3. Reporting system for               from local copies and backups
                               incorrect information

   Malware                1. Reporting system so that            1. Security awareness workshops for all system users
    infection of            computer users can report          2. Disabling of USB ports on client computers
    client computers        unusual behavior                    3. Automated system setup for new clients
                              2. Automated malware checks         4. Support access to system from mobile devices
                       on startup                            5. Installation of security software

   Unauthorized           1. Warning text messages from         1. Multilevel system authentication process
   access to patient         users about possible intruders       2. Disabling of USB ports on client computers
   information             2. Log analysis for unusual             3. Access logging and real-time log analysis
                                   activity                                 4. Security awareness workshops for all system users

Figure 14.11                  fails, it can also act as the main server for the whole system. This provides con-
Recognition and
                            tinuity of service and recovery after a server failure (resistance and recovery).resistance strategies
for adverse events      3.  Database integrity checking and recovery software Integrity checking runs as a
                      background task checking for signs of database corruption. If corruption is dis-
                         covered, it can automatically initiate the recovery of some or all of the data from
                        backups. The transaction log allows these backups to be updated with details of
                          recent changes (recognition and recovery).

                  To maintain the key services of patient information access and staff warning, we
                   can make use of the inherent redundancy in a client-server system. By downloading
                    information to the client at the start of a clinic session, the consultation can continue
                    without server access. Only the information about the patients who are scheduled to
                      attend consultations that day needs to be downloaded. If there is a need to access
                     other patient information and the server is unavailable, then other client computers
               may be contacted using peer-to-peer communication to see if the information is
                      available on them.
                   The service that provides a warning to staff of patients who may be dangerous
                   can easily be implemented using this approach. The records of patients who may
                 harm themselves or others are identified before the download process. When clinical
                        staff access these records, the software can highlight the records to indicate the
                       patients that require special care.
PDF page 24 · printed page 431

Inspect the original PDF page

                                                              14.3  ■  Resilient systems design    431


                                 Mentcare            Mentcare             Mentcare
                                             client                    client                     client
                            Summary          Summary          Summary
                                   patient records        patient records         patient records



                                                    Network



                                      Mentcare server           Backup server




                                                                                   Database
                                                           Patient database                         integrity
                                                                                         checker


Figure 14.12  An
architecture for                                                  Transaction
Mentcare system                                              Database backup                                                       log
resilience


                   The features in this architecture that support the resistance to adverse events are
                      also useful in supporting recovery from these events. By maintaining multiple copies
                     of information and having backup hardware available, critical system services can
                   be quickly restored to normal operation. Because the system need only be available
                    during normal working hours (say, 8 a.m to 6 p.m), the system can be reinstated
                     overnight so that it is available for the following day after a failure.
                  As well as maintaining critical services, the other business requirements of main-
                      taining the confidentiality and integrity of patient data must also be supported. The
                      architecture shown in Figure 14.12 includes a backup system and explicit database
                       integrity checking to reduce the chances that patient information is damaged acci-
                      dentally or in a malicious attack. Information on client computers is also available
                  and can be used to support recovery from data corruption or damage.
                    While maintaining multiple copies of data is a safeguard against data corruption,
                                it poses a risk to confidentiality as all of these copies have to be secured. In this case,
                        this risk can be controlled by:

                       1.  Only downloading the summary records of patients who are scheduled to attend
                        a clinic. This limits the number of records that could be compromised.

                       2.  Encrypting the disk on local client computers. Attackers who do not have the
                         encryption key cannot read the disk if they gain access to the computer.

                        3.   Securely deleting the downloaded information at the end of a clinic session. This
                             further reduces the chances of an attacker gaining access to confidential information.
PDF page 25 · printed page 432

Inspect the original PDF page

432    Chapter 14  ■  Resilience engineering


                       4.  Ensuring that all network transactions are encrypted. If an attacker intercepts
                          these transactions, they cannot get access to the information.

                  Because of performance degradation, it is probably impractical to encrypt the entire
                      patient database on the server. Strong authentication should therefore be used to
                      protect this information.



 Key Points


   ■  The resilience of a system is a judgment of how well that system can maintain the continuity of its
          critical services in the presence of disruptive events, such as equipment failure and cyberattacks.

   ■  Resilience should be based on the 4 Rs model—recognition, resistance, recovery, and reinstatement.

   ■  Resilience planning should be based on the assumption that networked systems will be subject to
        cyberattacks by malicious insiders and outsiders and that some of these attacks will be successful.

   ■  Systems should be designed with a number of defensive layers of different types. If these layers
        are effective, human and technical failures can be trapped and cyberattacks resisted.

   ■  To allow system operators and managers to cope with problems, processes should be flexible
       and adaptable. Process automation can make it more difficult for people to cope with problems.

   ■  Business resilience requirements should be the starting point for designing systems for resil-
        ience. To achieve system resilience, you have to focus on recognition and recovery from prob-
        lems, recovery of critical services and assets, and reinstatement of the system.

   ■  An important part of design for resilience is identifying critical services, which are those services
        that are essential if a system is to ensure its primary purpose. Systems should be designed so
        that these services are protected and, in the event of failure, recovered as quickly as possible.



Further Reading

    “Survivable Network System Analysis: A Case Study.” An excellent paper that introduces the notion
     of system survivability and uses a case study of a mental health record treatment system to illus-
     trate the application of a survivability method. (R. J. Ellison, R. C. Linger, T. Longstaff, and N. R.
    Mead, IEEE Software, 16 (4), July/August 1999) http://dx.doi.org/10.1109/52.776952

    Resilience Engineering in Practice: A Guidebook. This is a collection of articles and case studies
    on resilience engineering that takes a broad, sociotechnical systems perspective. (E. Hollnagel,
       J. Paries, D. W. Woods, and J. Wreathall, Ashgate Publishing Co., 2011).

    “Cyber Risk and Resilience Management.” This is a website with a wide range of resources on
     cybersecurity and resilience, including a model for resilience management. (Software Engineering
     Institute, 2013) https://www.cert.org/resilience/
PDF page 26 · printed page 433

Inspect the original PDF page

                                                               Chapter 14  ■  Exercises    433


Website

    PowerPoint slides for this chapter:

    www.pearsonglobaleditions.com/Sommerville

    Links to supporting videos:

    http://software-engineering-book.com/videos/security-and-resilience/



Exercises

    14.1. Explain how the complementary strategies of resistance, recognition, recovery, and reinstate-
        ment may be used to provide system resilience.

    14.2. What are the types of threats that have to be considered in resilience planning? Provide
          examples of the controls that organizations should put in place to counter those threats.

    14.3. Describe the ways in which human error can be viewed according to Reason (Reason, 2000)
        and the strategies that can be used to increase resilience according to the Swiss cheese
        model (Figure 14.6).

    14.4. A hospital proposes to introduce a policy that any member of clinical staff (doctors or nurses)
       who takes or authorizes actions that leads to a patient being injured will be subject to criminal
          charges. Explain why this is a bad idea, which is unlikely to improve patient safety, and why it
            is likely to adversely affect the resilience of the organization.

    14.5. What is survivable systems analysis and what are the key activities in each of the four stages
          involved in it as shown in Figure 14.8?

    14.6. Explain why process inflexibility can inhibit the ability of a sociotechnical system to resist and
          recover from adverse events such as cyberattacks and software failure. If you have experience
           of process inflexibility, illustrate your answer with examples from your experience.

    14.7. Suggest how the approach to resilience engineering that I proposed in Figure 14.9 could be
         used in conjunction with an agile development process for the software in the system. What
         problems might arise in using agile development for systems where resilience is important?

    14.8. In Section 13.4.2, (1) an unauthorized user places malicious orders to move prices and (2) an
           intrusion corrupts the database of transactions that have taken place. For each of these cyber-
           attacks, identify resistance, recognition, and recovery strategies that might be used.

    14.9. In Figure 14.11, I suggested a number of adverse events that could affect the Mentcare system.
        Draw up a test plan for this system that sets out how you could test the ability of the Mentcare
         system to recognize, resist, and recover from these events.

   14.10. A senior manager in a company is concerned about insider attacks from disaffected staff on
          the company’s IT assets. As part of a resilience improvement program, she proposes that a
          logging system and data analysis software be introduced to capture and analyze all employee
          actions but that employees should not be told about this system. Discuss the ethics of both
          introducing a logging system and doing so without telling system users.
PDF page 27 · printed page 434

Inspect the original PDF page

434    Chapter 14  ■  Resilience engineering


References

     Ellison, R. J., R. C. Linger, T. Longstaff, and N. R. Mead. 1999. “Survivable Network System Analysis:
   A Case Study.” IEEE Software 16 (4): 70–77. doi:10.1109/52.776952.

     Ellison, R. J., R. C. Linger, H. Lipson, N. R. Mead, and A. Moore. 2002. “Foundations of Survivable
    Systems Engineering.” Crosstalk: The Journal of Defense Software Engineering 12: 10–15.
    http://resources.sei.cmu.edu/asset_files/WhitePaper/2002_019_001_77700.pdf

    Hollnagel, E. 2006. “Resilience—the Challenge of the Unstable.” In Resilience Engineering: Concepts
    and Precepts, edited by E. Hollnagel, D. D. Woods, and N.G. Leveson, 9–18.

                     . 2010. “RAG—The Resilience Analysis Grid.” In Resilience Engineering in Practice, edited by
     E. Hollnagel, J. Paries, D. Woods, and J. Wreathall, 275–295. Farnham, UK: Ashgate Publishing Group.

     InfoSecurity. 2013. “Global Cybercrime, Espionage Costs $100–$500 Billion Per Year.” http://www
    .infosecurity-magazine.com/view/33569/global-cybercrime-espionage-costs-100500-billion-per-year

     Laprie, J-C. 2008. “From Dependability to Resilience.” In 38th Int. Conf. on Dependable Systems and
    Networks. Anchorage, Alaska. http://2008.dsn.org/fastabs/dsn08fastabs_laprie.pdf

    Reason, J. 2000. “Human Error: Models and Management.” British Medical J. 320: 768–770.
    doi:10.1136/bmj.320.7237.768.