2.xii - dependability and security Flashcards
term proposed by Laprie (1995) to cover the related systems attributes of availability, reliability, safety, and security
dependability
enumeration
4 reasons dependability of systems is now MORE important than their detailed functionality
- system failures affect a large number of people
- users often reject systems that are unreliable, unsafe, or insecure
- system failure costs may be enormous
- undependable systems may cause information loss
If this functionality were left out of the system, only a small number of users would be affected. System failures, which affect the availability of a system, potentially affect all users of the system. Failure may mean that normal business is impossible.
system failures affect a large number of people
If users find that a system is unreliable or insecure, they will refuse to use it. Furthermore, they may also refuse to buy or use other products from the same company that produced the unreliable system, because they believe that these products are also likely to be unreliable or insecure.
users often reject systems that are unreliable, unsafe, or insecure
For some applications, such as a reactor control system or an aircraft navigation system, the cost of system failure is orders of magnitude greater than the cost of the control system.
system failure costs may be enormous
Data is very expensive to collect and maintain; it is usually worth much more than the computer system on which it is processed. The cost of recovering lost or corrupt data is usually very high.
undependable systems may cause information loss
is always a part of a broader system
software
enumeration
3 considerations when designing a dependable system
- hardware failure
- software failure
- operational failure
system hardware may fail because of mistakes in its design, because components fail as a result of manufacturing errors, or because the components have reached the end of their natural life.
hardware failure
System software may fail because of mistakes in its specification, design, or implementation.
software failure
human users may fail to use or operate the system correctly. As hardware and software have become more reliable, failures in operation are now, perhaps, the largest single cause of system failures.
operational failure
Some classes of system are (1) where system failure may result in injury to people, damage to the environment, or extensive economic losses
critical systems
a property of the system that reflects its trustworthiness
dependability of a computer system
degree of confidence a user has that the system will operate as they expect
trustworthiness
[true or false]
it is meaningful to express dependability numerically
false; we use relative terms such as ‘not dependable,’ ‘very dependable,’ and ‘ultra-dependable’ to reflect the degrees of trust that we might have in a system
enumeration
4 principal dimensions to dependability
- availability
- reliability
- safety
- security
probability that it will be up and running and able to deliver useful services to users at any given time.
availability
probability, over a given period of time, that the system will correctly deliver services as expected by the user.
reliability
a judgment of how likely it is that the system will cause damage to people or its environment.
safety
judgment of how likely it is that the system can resist accidental or deliberate intrusions.
security
[true or false]
these 4 principal dependability properties are not all applicable to all systems
true
enumeration
4 other system properties as dependability properties
- repairability
- maintainability
- survivability
- error tolerance
(1) in software is enhanced when the organization using the system has access to the source code and has the skills to make changes to it. Open source software makes this easier but the reuse of components can make it more difficult.
repairability
the software can be adapted economically to cope with new requirements, and where there is a low probability that making changes will introduce new errors into the system.
maintainability
is the ability of a system to continue to deliver service whilst under attack and, potentially, whilst part of the system is disabled.
survivability
enumeration
3 strategies used to enhance survivability
- resistance to attack
- attack recognition
- recovery from the damage cause by an attack
This property can be considered as part of usability and reflects the extent to which the system has been designed so that user input errors are avoided and tolerated. When user errors occur, the system should, as far as possible, detect these errors and either fix them automatically or request the user to reinput their data.
error tolerance
enumeration
ensure these 4 to develop a DEPENDABLE software
- avoid the introduction of accidental errors into the system during software specification and development.
- design verification and validation processes that are effective in discovering residual errors that affect the dependability of the system.
- design protection mechanisms that guard against external attacks that can compromise the availability or security of the system.
- configure the deployed system and its supporting software correctly for its operating environment.
[true or false]
assume that your software is not perfect and no software failures may occur
false; assume that your software is not perfect and THAT software failures may occur
dependable systems have to include redundant code to help them monitor themselves, detect erroneous states, and recover from faults before failures occur.
need for fault tolerance
are high for systems that must be ultra-dependable such as safetycritical control systems.
validation costs
[true or false]
As testing is very expensive, this dramatically decreases the cost of high-dependability systems.
false; As testing is very expensive, this dramatically INCREASES the cost of high-dependability systems.
probability of failure-free operation over a specified time, in a given environment, for a specific purpose.
reliability
probability that a system, at a point in time, will be operational and able to deliver the requested services.
availability
One of the practical problems in developing reliable systems
our intuitive notions of reliability and availability are sometimes broader than these limited definitions
[true or false]
The standard definitions of availability and reliability do not take into account
the severity of failure or the consequences of unavailability
true; people often accept minor system failures but are very concerned about serious failures that have high consequential costs