SlideShare a Scribd company logo
Chapter 11 – Security and DependabilityLecture 11Chapter 11 Security and Dependability
Topics coveredDependability propertiesThe system attributes that lead to dependability.Availability and reliabilitySystems should be available to deliver service and perform as expected.SafetySystems should not behave in an unsafe way. SecuritySystems should protect themselves and their data from external interference.
System dependabilityFor many computer-based systems, the most important system property is the dependability of the system.The dependability of a system reflects the user’s degree of trust in that system. It reflects the extent of the user’s confidence that it will operate as users expect and that it will not ‘fail’ in normal use.Dependability covers the related systems attributes of reliability, availability and security. These are all inter-dependent.3Chapter 11 Security and Dependability
Importance of dependabilitySystem failures may have widespread effects with large numbers of people affected by the failure.Systems that are not dependable and are unreliable, unsafe or insecure may be rejected by their users.The costs of system failure may be very high if the failure leads to economic losses or physical damage.Undependable systems may cause information loss with a high consequent recovery cost.4Chapter 11 Security and Dependability
Causes of failureHardware failureHardware fails because of design and manufacturing errors or because components have reached the end of their natural life.Software failureSoftware fails due to errors in its specification, design or implementation.Operational failureHuman operators make mistakes. Now perhaps the largest single cause of system failures in socio-technical systems.5Chapter 11 Security and Dependability
Principal dependability properties 6Chapter 11 Security and Dependability
Principal propertiesAvailabilityThe probability that the system will be up and running and able to deliver useful services to users.ReliabilityThe probability that the system will correctly deliver services as expected by users.SafetyA judgment of how likely it is that the system will cause damage to people or its environment.SecurityA judgment of how likely it is that the system can resist accidental or deliberate intrusions.7Chapter 11 Security and Dependability
Other dependability propertiesRepairabilityReflects the extent to which the system can be repaired in the event of a failureMaintainabilityReflects the extent to which the system can be adapted to new requirements;SurvivabilityReflects the extent to which the system can deliver services whilst under hostile attack;Error toleranceReflects the extent to which user input errors can be avoided and tolerated.8Chapter 11 Security and Dependability
RepairabilityThe disruption caused by system failure can be minimized if the system can be repaired quickly.This requires problem diagnosis, access to the failed component(s) and making changes to fix the problems.Repairability is a judgment of how easy it is to repair the software to correct the faults that led to a system failure.Repairability is affected by the operating environment so is hard to assess before system deployment.Chapter 11 Security and Dependability9
MaintainabilityA system attribute that is concerned with the ease of repairing the system after a failure has been discovered or changing the system to include new features.Repairability – short-term perspective to get the system back into service; Maintainability – long-term perspective.Very important for critical systems as faults are often introduced into a system because of maintenance problems. If a system is maintainable, there is a lower probability that these faults will be introduced or undetected.10Chapter 11 Security and Dependability
SurvivabilityThe ability of a system to continue to deliver its services to users in the face of deliberate or accidental attackThis is an increasingly important attribute for distributed systems whose security can be compromisedSurvivability subsumes the notion of resilience - the ability of a system to continue in operation in spite of component failures 11Chapter 11 Security and Dependability
Error tolerancePart of a more general usability property and reflects the extent to which user errors are avoided, detected or tolerated.User errors should, as far as possible, be detected and corrected automatically and should not be passed on to the system and cause failures.Chapter 11 Security and Dependability12
Dependability attribute dependenciesSafe system operation depends on the system being available and operating reliably.A system may be unreliable because its data has been corrupted by an external attack.Denial of service attacks on a system are intended to make it unavailable.If a system is infected with a virus, you cannot be confident in its reliability or safety.Chapter 11 Security and Dependability13
Dependability achievementAvoid the introduction of accidental errors when developing the system.Design V & V processes that are effective in discovering residual errors in the system.Design protection mechanisms that guard against external attacks.Configure the system correctly for its operating environment.Include recovery mechanisms to help restore normal system service after a failure.Chapter 11 Security and Dependability14
Dependability costsDependability costs tend to increase exponentially as increasing levels of dependability are required.There are two reasons for thisThe use of more expensive development techniques and hardware that are required to achieve the higher levels of dependability.The increased testing and system validation that is required to convince the system client and regulators that the required levels of dependability have been achieved.15Chapter 11 Security and Dependability
Cost/dependability curve16Chapter 11 Security and Dependability
Dependability economicsBecause of very high costs of dependability achievement, it may be more cost effective to accept untrustworthy systems and pay for failure costsHowever, this depends on social and political factors. A reputation for products  that can’t be trusted may lose future businessDepends on system type - for business systems in particular, modest levels of dependability may be adequate17Chapter 11 Security and Dependability
Availability and reliabilityReliabilityThe probability of failure-free system operation over a specified time in a given environment for a given purposeAvailabilityThe probability that a system, at a point in time, will be operational and able to deliver the requested servicesBoth of these attributes can be expressed quantitatively e.g. availability of 0.999 means that the system is up and running for 99.9% of the time. 18Chapter 11 Security and Dependability
Availability and reliabilityIt is sometimes possible to subsume system availability under system reliabilityObviously if a system is unavailable it is not delivering the specified system services.However, it is possible to have systems with low reliability that must be available.So long as system failures can be repaired quickly and does not damage data, some system failures may not be a problem.Availability is therefore best considered as a separate attribute reflecting whether or not the system can deliver its services.Availability takes repair time into account, if the system has to be taken out of service to repair faults. 19Chapter 11 Security and Dependability
Perceptions of reliabilityThe formal definition of reliability does not always reflect the user’s perception of a system’s reliabilityThe assumptions that are made about the environment where a system will be used may be incorrectUsage of a system in an office environment is likely to be quite different from usage of the same system in a university environmentThe consequences of system failures affects the perception of reliabilityUnreliable windscreen wipers in a car may be irrelevant in a dry climateFailures that have serious consequences (such as an engine breakdown in a car) are given greater weight by users than failures that are inconvenient20Chapter 11 Security and Dependability
Reliability and specificationsReliability can only be defined formally with respect to a system specification i.e. a failure is a deviation from a specification.However, many specifications are incomplete or incorrect – hence, a system that conforms to its specification may ‘fail’ from the perspective of system users.Furthermore, users don’t read specifications so don’t know how the system is supposed to behave.Therefore perceived reliability is more important in practice.Chapter 11 Security and Dependability21
Availability perceptionAvailability is usually expressed as a percentage of the time that the system is available to deliver services e.g. 99.95%.However, this does not take into account two factors:The number of users affected by the service outage. Loss of service in the middle of the night is less important for many systems than loss of service during peak usage periods.The length of the outage. The longer the outage, the more the disruption. Several short outages are less likely to be disruptive than 1 long outage. Long repair times are a particular problem.Chapter 11 Security and Dependability22
Key pointsThe dependability in a system reflects the user’s trust in that system.Dependability is a term used to describe a set of related ‘non-functional’ system attributes – availability, reliability, safety and security.The availability of a system is the probability that it will be available to deliver services when requested.The reliability of a system is the probability that system services will be delivered as specified.23Chapter 11 Security and Dependability
Chapter 11 – Security and DependabilityLecture 224Chapter 11 Security and Dependability
Reliability terminology25Chapter 11 Security and Dependability
Faults and failuresFailures are a usually a result of system errors that are derived from faults in the systemHowever, faults do not necessarily result in system errorsThe erroneous system state resulting from the fault may be transient and ‘corrected’ before an error arises.The faulty code may never be executed.Errors do not necessarily lead to system failuresThe error can be corrected by built-in error detection and recovery The failure can be protected against by built-in protection facilities. These may, for example, protect system resources from system errors26Chapter 11 Security and Dependability
A system as an input/output mapping27Chapter 11 Security and Dependability
Software usage patterns28Chapter 11 Security and Dependability
Reliability in useRemoving X% of the faults in a system will not necessarily improve the reliability by X%.  A study at IBM showed that removing 60% of product defects resulted in a 3% improvement in reliability.Program defects may be in rarely executed sections of the code so may never be encountered by users. Removing these does not affect the perceived reliability.Users adapt their behaviour to avoid system features that may fail for them.A program with known faults may therefore still be perceived as reliable by its users.29Chapter 11 Security and Dependability
Reliability achievementFault avoidanceDevelopment technique are used that either minimise the possibility of mistakes or trap mistakes before they result in the introduction of system faults.Fault detection and removalVerification and validation techniques that increase the probability of detecting and correcting errors before the system goes into service are used.Fault toleranceRun-time techniques are used to ensure that system faults do not result in system errors and/or that system errors do not lead to system failures.30Chapter 11 Security and Dependability
SafetySafety is a property of a system that reflects the system’s ability to operate, normally or abnormally, without danger of causing human injury or death and without damage to the system’s environment.It is important to consider software safety as most devices whose failure is critical now incorporate software-based control systems. Safety requirements are often exclusive requirements i.e. they exclude undesirable situations rather than specify required system services. These generate functional safety requirements.31Chapter 11 Security and Dependability
Safety criticalityPrimary safety-critical systemsEmbedded software systems whose failure can cause the associated hardware to fail and directly threaten people. Example is the insulin pump control system.Secondary safety-critical systemsSystems whose failure results in faults in other (socio-technical)systems, which can then have safety consequences. For example, the MHC-PMS is safety-critical as failure may lead to inappropriate treatment being prescribed.32Chapter 11 Security and Dependability
Safety and reliabilitySafety and reliability are related but distinctIn general, reliability and availability are necessary but not sufficient conditions for system safety Reliability is concerned with conformance to a given specification and delivery of serviceSafety is concerned with ensuring system cannot cause damage irrespective of whether or not it conforms to its specification33Chapter 11 Security and Dependability
Unsafe reliable systemsThere may be dormant faults in a system that are undetected for many years and only rarely arise.Specification errorsIf the system specification is incorrect then the system can behave as specified but still cause an accident.Hardware failures generating spurious inputsHard to anticipate in the specification.Context-sensitive commands i.e. issuing the right command at the wrong timeOften the result of operator error.34Chapter 11 Security and Dependability
Safety terminology35Chapter 11 Security and Dependability
Safety achievementHazard avoidanceThe system is designed so that some classes of hazard simply cannot arise.     Hazard detection and removalThe system is designed so that hazards are detected and removed before they result in an accident.Damage limitationThe system includes protection features that minimise the damage that may result from an accident.36Chapter 11 Security and Dependability
Normal accidentsAccidents in complex systems rarely have a single cause as these systems are designed to be resilient to a single point of failureDesigning systems so that a single point of failure does not cause an accident is a fundamental principle of safe systems design.Almost all accidents are a result of combinations of malfunctions rather than single failures.It is probably the case that anticipating all problem combinations, especially, in software controlled systems is impossible so achieving complete safety is impossible. Accidents are inevitable.37Chapter 11 Security and Dependability
Software safety benefitsAlthough software failures can be safety-critical, the use of software control systems contributes to increased system safetySoftware monitoring and control allows a wider range of conditions to be monitored and controlled than is possible using electro-mechanical safety systems.Software control allows safety strategies to be adopted that reduce the amount of time people spend in hazardous environments.Software can detect and correct safety-critical operator errors.Chapter 11 Security and Dependability38
SecurityThe security of a system is a system property that reflects the system’s ability to protect itself from accidental or deliberate external attack.Security is essential as most systems are networked so that external access to the system through the Internet is possible.Security is an essential pre-requisite for availability, reliability and safety.39Chapter 11 Security and Dependability
Fundamental securityIf a system is a networked system and is insecure then statements about its reliability and its safety are unreliable.These statements depend on the executing system and the developed system being the same. However, intrusion can change the executing system and/or its data.Therefore, the reliability and safety assurance is no longer valid.40Chapter 11 Security and Dependability
Security terminology41Chapter 11 Security and Dependability
Examples of security terminology (MHC-PMS)42Chapter 11 Security and Dependability
Threat classesThreats to the confidentiality of the system and its dataCan disclose information to people or programs that do not have authorization to access that information.Threats to the integrity of the system and its dataCan damage or corrupt the software or its data.Threats to the availability of the system and its dataCan restrict access to the system and data for authorized users.Chapter 11 Security and Dependability43
Damage from insecurityDenial of serviceThe system is forced into a state where normal services are unavailable or where service provision is significantly degradedCorruption of programs or dataThe programs or data in the system may be modified in an unauthorised wayDisclosure of confidential informationInformation that is managed by the system may be exposed to people who are not authorised to read or use that information44Chapter 11 Security and Dependability
Security assuranceVulnerability avoidanceThe system is designed so that vulnerabilities do not occur. For example, if there is no external network connection then external attack is impossibleAttack detection and eliminationThe system is designed so that attacks on vulnerabilities are detected and neutralised before they result in an exposure. For example, virus checkers find and remove viruses before they infect a systemExposure limitation and recoveryThe system is designed so that the adverse consequences of a successful attack are minimised. For example, a backup policy allows damaged information to be restored45Chapter 11 Security and Dependability
Key pointsReliability is related to the probability of an error occurring in operational use. A system with known faults may be reliable.Safety is a system attribute that reflects the system’s ability to operate without threatening people or the environment.Security is a system attribute that reflects the system’s ability to protect itself from external attack.Dependability is compromised if a system is insecure as the code or data may be corrupted.46Chapter 11 Security and Dependability

More Related Content

PPTX
Ch12-Software Engineering 9
PPTX
Ch10-Software Engineering 9
PPTX
Ch13-Software Engineering 9
PPTX
Ch14-Software Engineering 9
PPTX
Ch4-Software Engineering 9
PPTX
Ch16-Software Engineering 9
PPTX
Ch9-Software Engineering 9
PPTX
Ch8-Software Engineering 9
Ch12-Software Engineering 9
Ch10-Software Engineering 9
Ch13-Software Engineering 9
Ch14-Software Engineering 9
Ch4-Software Engineering 9
Ch16-Software Engineering 9
Ch9-Software Engineering 9
Ch8-Software Engineering 9

What's hot (20)

PPTX
Ch6-Software Engineering 9
PPTX
Ch5- Software Engineering 9
PPTX
Ch7-Software Engineering 9
PPT
Ian Sommerville, Software Engineering, 9th EditionCh 8
PDF
Machine learning Chapter 1
PPTX
Ian Sommerville, Software Engineering, 9th Edition Ch 4
PPTX
Ch6 architectural design
PPTX
Ch15 software reuse
PPTX
PPTX
PPTX
Ch11 reliability engineering
PPTX
Ch10 dependable systems
PPTX
Ch17-Software Engineering 9
PPTX
Ch5 system modeling
PPTX
Ch6 - Architectural Design
PPTX
Ch13 security engineering
PPTX
Ch3-Software Engineering 9
PPTX
Ch7 implementation
PPTX
Ch22-Software Engineering 9
PPTX
Ch19 systems engineering
Ch6-Software Engineering 9
Ch5- Software Engineering 9
Ch7-Software Engineering 9
Ian Sommerville, Software Engineering, 9th EditionCh 8
Machine learning Chapter 1
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ch6 architectural design
Ch15 software reuse
Ch11 reliability engineering
Ch10 dependable systems
Ch17-Software Engineering 9
Ch5 system modeling
Ch6 - Architectural Design
Ch13 security engineering
Ch3-Software Engineering 9
Ch7 implementation
Ch22-Software Engineering 9
Ch19 systems engineering
Ad

Viewers also liked (9)

PPTX
Ch26 - software engineering 9
PPTX
Ch25-Software Engineering 9
PPTX
Chap2 RE processes
PPTX
Chap1 RE Introduction
PPTX
Chap3 RE elicitation
PPTX
Chap5 RE management
PPTX
Chap4 RE validation
PPTX
Ch2-Software Engineering 9
PPTX
Ch1-Software Engineering 9
Ch26 - software engineering 9
Ch25-Software Engineering 9
Chap2 RE processes
Chap1 RE Introduction
Chap3 RE elicitation
Chap5 RE management
Chap4 RE validation
Ch2-Software Engineering 9
Ch1-Software Engineering 9
Ad

Similar to Ch11-Software Engineering 9 (20)

PDF
5 - Safety - Critical Systems.pdf
PPT
Depandability in Software Engineering SE16
PPT
PPT
PPTX
Ch11 - Reliability Engineering
PPTX
CS 5032 L2 dependability and security 2013
PDF
ASE_Chap1 - Compatibility Mode for advance software
PPT
Critical Systems
PPTX
Dependability and security (CS 5032 2012)
PPTX
Availability and reliability
PPT
Critical System Specification in Software Engineering SE17
PPTX
Ch10 - Dependable Systems
PDF
Separation of concerns is a design concept [Dij82] that suggests that any com...
PDF
METRIC FOR EVALUATING AVAILABILITY OF AN INFORMATION SYSTEM: A QUANTITATIVE A...
PDF
Metric for Evaluating Availability of an Information System : A Quantitative ...
PDF
Software archiecture lecture05
PPTX
SEPM_MODULE 2 PPT.pptx
PPT
PPTX
ch10.pptx
5 - Safety - Critical Systems.pdf
Depandability in Software Engineering SE16
Ch11 - Reliability Engineering
CS 5032 L2 dependability and security 2013
ASE_Chap1 - Compatibility Mode for advance software
Critical Systems
Dependability and security (CS 5032 2012)
Availability and reliability
Critical System Specification in Software Engineering SE17
Ch10 - Dependable Systems
Separation of concerns is a design concept [Dij82] that suggests that any com...
METRIC FOR EVALUATING AVAILABILITY OF AN INFORMATION SYSTEM: A QUANTITATIVE A...
Metric for Evaluating Availability of an Information System : A Quantitative ...
Software archiecture lecture05
SEPM_MODULE 2 PPT.pptx
ch10.pptx

More from Ian Sommerville (7)

PPTX
Ch18-Software Engineering 9
PPTX
Ch19-Software Engineering 9
PPTX
Ch21-Software Engineering 9
PPTX
Ch20-Software Engineering 9
PPTX
Ch15-Software Engineering 9
PPTX
Ch23-Software Engineering 9
PPTX
Ch24-Software Engineering 9
Ch18-Software Engineering 9
Ch19-Software Engineering 9
Ch21-Software Engineering 9
Ch20-Software Engineering 9
Ch15-Software Engineering 9
Ch23-Software Engineering 9
Ch24-Software Engineering 9

Ch11-Software Engineering 9

  • 1. Chapter 11 – Security and DependabilityLecture 11Chapter 11 Security and Dependability
  • 2. Topics coveredDependability propertiesThe system attributes that lead to dependability.Availability and reliabilitySystems should be available to deliver service and perform as expected.SafetySystems should not behave in an unsafe way. SecuritySystems should protect themselves and their data from external interference.
  • 3. System dependabilityFor many computer-based systems, the most important system property is the dependability of the system.The dependability of a system reflects the user’s degree of trust in that system. It reflects the extent of the user’s confidence that it will operate as users expect and that it will not ‘fail’ in normal use.Dependability covers the related systems attributes of reliability, availability and security. These are all inter-dependent.3Chapter 11 Security and Dependability
  • 4. Importance of dependabilitySystem failures may have widespread effects with large numbers of people affected by the failure.Systems that are not dependable and are unreliable, unsafe or insecure may be rejected by their users.The costs of system failure may be very high if the failure leads to economic losses or physical damage.Undependable systems may cause information loss with a high consequent recovery cost.4Chapter 11 Security and Dependability
  • 5. Causes of failureHardware failureHardware fails because of design and manufacturing errors or because components have reached the end of their natural life.Software failureSoftware fails due to errors in its specification, design or implementation.Operational failureHuman operators make mistakes. Now perhaps the largest single cause of system failures in socio-technical systems.5Chapter 11 Security and Dependability
  • 6. Principal dependability properties 6Chapter 11 Security and Dependability
  • 7. Principal propertiesAvailabilityThe probability that the system will be up and running and able to deliver useful services to users.ReliabilityThe probability that the system will correctly deliver services as expected by users.SafetyA judgment of how likely it is that the system will cause damage to people or its environment.SecurityA judgment of how likely it is that the system can resist accidental or deliberate intrusions.7Chapter 11 Security and Dependability
  • 8. Other dependability propertiesRepairabilityReflects the extent to which the system can be repaired in the event of a failureMaintainabilityReflects the extent to which the system can be adapted to new requirements;SurvivabilityReflects the extent to which the system can deliver services whilst under hostile attack;Error toleranceReflects the extent to which user input errors can be avoided and tolerated.8Chapter 11 Security and Dependability
  • 9. RepairabilityThe disruption caused by system failure can be minimized if the system can be repaired quickly.This requires problem diagnosis, access to the failed component(s) and making changes to fix the problems.Repairability is a judgment of how easy it is to repair the software to correct the faults that led to a system failure.Repairability is affected by the operating environment so is hard to assess before system deployment.Chapter 11 Security and Dependability9
  • 10. MaintainabilityA system attribute that is concerned with the ease of repairing the system after a failure has been discovered or changing the system to include new features.Repairability – short-term perspective to get the system back into service; Maintainability – long-term perspective.Very important for critical systems as faults are often introduced into a system because of maintenance problems. If a system is maintainable, there is a lower probability that these faults will be introduced or undetected.10Chapter 11 Security and Dependability
  • 11. SurvivabilityThe ability of a system to continue to deliver its services to users in the face of deliberate or accidental attackThis is an increasingly important attribute for distributed systems whose security can be compromisedSurvivability subsumes the notion of resilience - the ability of a system to continue in operation in spite of component failures 11Chapter 11 Security and Dependability
  • 12. Error tolerancePart of a more general usability property and reflects the extent to which user errors are avoided, detected or tolerated.User errors should, as far as possible, be detected and corrected automatically and should not be passed on to the system and cause failures.Chapter 11 Security and Dependability12
  • 13. Dependability attribute dependenciesSafe system operation depends on the system being available and operating reliably.A system may be unreliable because its data has been corrupted by an external attack.Denial of service attacks on a system are intended to make it unavailable.If a system is infected with a virus, you cannot be confident in its reliability or safety.Chapter 11 Security and Dependability13
  • 14. Dependability achievementAvoid the introduction of accidental errors when developing the system.Design V & V processes that are effective in discovering residual errors in the system.Design protection mechanisms that guard against external attacks.Configure the system correctly for its operating environment.Include recovery mechanisms to help restore normal system service after a failure.Chapter 11 Security and Dependability14
  • 15. Dependability costsDependability costs tend to increase exponentially as increasing levels of dependability are required.There are two reasons for thisThe use of more expensive development techniques and hardware that are required to achieve the higher levels of dependability.The increased testing and system validation that is required to convince the system client and regulators that the required levels of dependability have been achieved.15Chapter 11 Security and Dependability
  • 16. Cost/dependability curve16Chapter 11 Security and Dependability
  • 17. Dependability economicsBecause of very high costs of dependability achievement, it may be more cost effective to accept untrustworthy systems and pay for failure costsHowever, this depends on social and political factors. A reputation for products that can’t be trusted may lose future businessDepends on system type - for business systems in particular, modest levels of dependability may be adequate17Chapter 11 Security and Dependability
  • 18. Availability and reliabilityReliabilityThe probability of failure-free system operation over a specified time in a given environment for a given purposeAvailabilityThe probability that a system, at a point in time, will be operational and able to deliver the requested servicesBoth of these attributes can be expressed quantitatively e.g. availability of 0.999 means that the system is up and running for 99.9% of the time. 18Chapter 11 Security and Dependability
  • 19. Availability and reliabilityIt is sometimes possible to subsume system availability under system reliabilityObviously if a system is unavailable it is not delivering the specified system services.However, it is possible to have systems with low reliability that must be available.So long as system failures can be repaired quickly and does not damage data, some system failures may not be a problem.Availability is therefore best considered as a separate attribute reflecting whether or not the system can deliver its services.Availability takes repair time into account, if the system has to be taken out of service to repair faults. 19Chapter 11 Security and Dependability
  • 20. Perceptions of reliabilityThe formal definition of reliability does not always reflect the user’s perception of a system’s reliabilityThe assumptions that are made about the environment where a system will be used may be incorrectUsage of a system in an office environment is likely to be quite different from usage of the same system in a university environmentThe consequences of system failures affects the perception of reliabilityUnreliable windscreen wipers in a car may be irrelevant in a dry climateFailures that have serious consequences (such as an engine breakdown in a car) are given greater weight by users than failures that are inconvenient20Chapter 11 Security and Dependability
  • 21. Reliability and specificationsReliability can only be defined formally with respect to a system specification i.e. a failure is a deviation from a specification.However, many specifications are incomplete or incorrect – hence, a system that conforms to its specification may ‘fail’ from the perspective of system users.Furthermore, users don’t read specifications so don’t know how the system is supposed to behave.Therefore perceived reliability is more important in practice.Chapter 11 Security and Dependability21
  • 22. Availability perceptionAvailability is usually expressed as a percentage of the time that the system is available to deliver services e.g. 99.95%.However, this does not take into account two factors:The number of users affected by the service outage. Loss of service in the middle of the night is less important for many systems than loss of service during peak usage periods.The length of the outage. The longer the outage, the more the disruption. Several short outages are less likely to be disruptive than 1 long outage. Long repair times are a particular problem.Chapter 11 Security and Dependability22
  • 23. Key pointsThe dependability in a system reflects the user’s trust in that system.Dependability is a term used to describe a set of related ‘non-functional’ system attributes – availability, reliability, safety and security.The availability of a system is the probability that it will be available to deliver services when requested.The reliability of a system is the probability that system services will be delivered as specified.23Chapter 11 Security and Dependability
  • 24. Chapter 11 – Security and DependabilityLecture 224Chapter 11 Security and Dependability
  • 25. Reliability terminology25Chapter 11 Security and Dependability
  • 26. Faults and failuresFailures are a usually a result of system errors that are derived from faults in the systemHowever, faults do not necessarily result in system errorsThe erroneous system state resulting from the fault may be transient and ‘corrected’ before an error arises.The faulty code may never be executed.Errors do not necessarily lead to system failuresThe error can be corrected by built-in error detection and recovery The failure can be protected against by built-in protection facilities. These may, for example, protect system resources from system errors26Chapter 11 Security and Dependability
  • 27. A system as an input/output mapping27Chapter 11 Security and Dependability
  • 28. Software usage patterns28Chapter 11 Security and Dependability
  • 29. Reliability in useRemoving X% of the faults in a system will not necessarily improve the reliability by X%. A study at IBM showed that removing 60% of product defects resulted in a 3% improvement in reliability.Program defects may be in rarely executed sections of the code so may never be encountered by users. Removing these does not affect the perceived reliability.Users adapt their behaviour to avoid system features that may fail for them.A program with known faults may therefore still be perceived as reliable by its users.29Chapter 11 Security and Dependability
  • 30. Reliability achievementFault avoidanceDevelopment technique are used that either minimise the possibility of mistakes or trap mistakes before they result in the introduction of system faults.Fault detection and removalVerification and validation techniques that increase the probability of detecting and correcting errors before the system goes into service are used.Fault toleranceRun-time techniques are used to ensure that system faults do not result in system errors and/or that system errors do not lead to system failures.30Chapter 11 Security and Dependability
  • 31. SafetySafety is a property of a system that reflects the system’s ability to operate, normally or abnormally, without danger of causing human injury or death and without damage to the system’s environment.It is important to consider software safety as most devices whose failure is critical now incorporate software-based control systems. Safety requirements are often exclusive requirements i.e. they exclude undesirable situations rather than specify required system services. These generate functional safety requirements.31Chapter 11 Security and Dependability
  • 32. Safety criticalityPrimary safety-critical systemsEmbedded software systems whose failure can cause the associated hardware to fail and directly threaten people. Example is the insulin pump control system.Secondary safety-critical systemsSystems whose failure results in faults in other (socio-technical)systems, which can then have safety consequences. For example, the MHC-PMS is safety-critical as failure may lead to inappropriate treatment being prescribed.32Chapter 11 Security and Dependability
  • 33. Safety and reliabilitySafety and reliability are related but distinctIn general, reliability and availability are necessary but not sufficient conditions for system safety Reliability is concerned with conformance to a given specification and delivery of serviceSafety is concerned with ensuring system cannot cause damage irrespective of whether or not it conforms to its specification33Chapter 11 Security and Dependability
  • 34. Unsafe reliable systemsThere may be dormant faults in a system that are undetected for many years and only rarely arise.Specification errorsIf the system specification is incorrect then the system can behave as specified but still cause an accident.Hardware failures generating spurious inputsHard to anticipate in the specification.Context-sensitive commands i.e. issuing the right command at the wrong timeOften the result of operator error.34Chapter 11 Security and Dependability
  • 35. Safety terminology35Chapter 11 Security and Dependability
  • 36. Safety achievementHazard avoidanceThe system is designed so that some classes of hazard simply cannot arise. Hazard detection and removalThe system is designed so that hazards are detected and removed before they result in an accident.Damage limitationThe system includes protection features that minimise the damage that may result from an accident.36Chapter 11 Security and Dependability
  • 37. Normal accidentsAccidents in complex systems rarely have a single cause as these systems are designed to be resilient to a single point of failureDesigning systems so that a single point of failure does not cause an accident is a fundamental principle of safe systems design.Almost all accidents are a result of combinations of malfunctions rather than single failures.It is probably the case that anticipating all problem combinations, especially, in software controlled systems is impossible so achieving complete safety is impossible. Accidents are inevitable.37Chapter 11 Security and Dependability
  • 38. Software safety benefitsAlthough software failures can be safety-critical, the use of software control systems contributes to increased system safetySoftware monitoring and control allows a wider range of conditions to be monitored and controlled than is possible using electro-mechanical safety systems.Software control allows safety strategies to be adopted that reduce the amount of time people spend in hazardous environments.Software can detect and correct safety-critical operator errors.Chapter 11 Security and Dependability38
  • 39. SecurityThe security of a system is a system property that reflects the system’s ability to protect itself from accidental or deliberate external attack.Security is essential as most systems are networked so that external access to the system through the Internet is possible.Security is an essential pre-requisite for availability, reliability and safety.39Chapter 11 Security and Dependability
  • 40. Fundamental securityIf a system is a networked system and is insecure then statements about its reliability and its safety are unreliable.These statements depend on the executing system and the developed system being the same. However, intrusion can change the executing system and/or its data.Therefore, the reliability and safety assurance is no longer valid.40Chapter 11 Security and Dependability
  • 41. Security terminology41Chapter 11 Security and Dependability
  • 42. Examples of security terminology (MHC-PMS)42Chapter 11 Security and Dependability
  • 43. Threat classesThreats to the confidentiality of the system and its dataCan disclose information to people or programs that do not have authorization to access that information.Threats to the integrity of the system and its dataCan damage or corrupt the software or its data.Threats to the availability of the system and its dataCan restrict access to the system and data for authorized users.Chapter 11 Security and Dependability43
  • 44. Damage from insecurityDenial of serviceThe system is forced into a state where normal services are unavailable or where service provision is significantly degradedCorruption of programs or dataThe programs or data in the system may be modified in an unauthorised wayDisclosure of confidential informationInformation that is managed by the system may be exposed to people who are not authorised to read or use that information44Chapter 11 Security and Dependability
  • 45. Security assuranceVulnerability avoidanceThe system is designed so that vulnerabilities do not occur. For example, if there is no external network connection then external attack is impossibleAttack detection and eliminationThe system is designed so that attacks on vulnerabilities are detected and neutralised before they result in an exposure. For example, virus checkers find and remove viruses before they infect a systemExposure limitation and recoveryThe system is designed so that the adverse consequences of a successful attack are minimised. For example, a backup policy allows damaged information to be restored45Chapter 11 Security and Dependability
  • 46. Key pointsReliability is related to the probability of an error occurring in operational use. A system with known faults may be reliable.Safety is a system attribute that reflects the system’s ability to operate without threatening people or the environment.Security is a system attribute that reflects the system’s ability to protect itself from external attack.Dependability is compromised if a system is insecure as the code or data may be corrupted.46Chapter 11 Security and Dependability