Kapittel 11 – Sikkerhet og pålitelighet Dependability

advertisement
Kapittel 11 – Sikkerhet og pålitelighet
Dependability = Reliability, Availability,
Safety, Security (RASS)
Carl-Fredrik Sørensen
01.04.2014
Innhold
• Egenskaper av pålitelighet/dependability
– Systemattributtene som leder til pålitelighet.
• Tilgjengelighet (availability) og funksjonsstabilitet
(reliability)
– Systemer skal være tilgjengelig for å levere tjenester og virke
som forventet.
• Safety – Trygghet
– Systemer skal ikke opptre på en utrygg måte eller medføre fare
for liv, helse eller omgivelser.
• Security – Sikkerhet
– Systemer skal beskytte seg selv og deres data fra ekstern
innblanding/interferens.
2
Påliteligheten til et system reflekteres av hvilken tillit
en bruker har til systemet
tilgjengelighet
Sannsynlighet 0.999 betyr at
systemet kjører 99.9% av
tiden.
Chapter 11 Security and
3
Dependability
stabilitet
trygghet
sikkerhet
Sannsynlighet
katastrofe
innbrudd
3
Dependability – Når? Hvem?
Reliability
funksjonsstabilitet
innbrudd
Security
Katastrofe
Safety
• Spesifikasjon
Availability
tilgjengelighet
• Utvikling
Programvaresystem
• Validering
feil
• Evolusjon
4
Viktighet av pålitelighet (D) = RASS
• Dependability (http://www.merriam-webster.com) = Reliability,
men i programvareutvikling (SE) D = RASS
• Systemfeil kan ha vidstrakt effekt med stort antall mennesker
påvirket av dem.
• Systemer som ikke er pålitelige, og som er unreliable,
unavailable, unsafe or insecure kan bli forkastet av sine
brukere.
• Kostnader av systemfeil kan bli svært stor hvis feilen
medfører økonomiske tap eller fysisk skade
– Ariande 5
• Upålitelige systemer kan medføre tap av informasjon med en
medfølgende høy gjenskapningskostnad.
– Seismikk, boredata, helsedata, studentdata, skattedata
5
Årsaker til feil
• Maskinvarefeil
– Maskinvare feiler pga. design eller produksjonsfeil eller fordi
komponentene har nådd slutten på sine naturlige liv.
• Programvarefeil
– Programvare feiler pga. feil i spesifikasjonen, designet eller
implementeringen.
• Operasjonelle feil
– Mennesker gjør mistak eller feil. Antakelig den største
enkeltårsak til systemfeil i sosiotekniske systemer.
6
Andre egenskaper ved pålitelighet
• Reparerbarhet
– Graden av evne til et system å bli reparert hvis en feilsituasjon
• Vedlikeholdbarhet
– Graden av evne til et system å bli tilpasset nye krav
• Overlevelsesevne
– Graden av evne til et system å levere tjenester under fiendtlige
angrep
• Feiltoleranse
– Graden av evne til å unngå eller tolerere brukerfeil.
7
Kapittel 11 – Sikkerhet og pålitelighet
Reliability – Pålitelighet, funksjonstabilitet
Carl-Fredrik Sørensen
01.04.2014
Funksjonsstabilitet - Reliability
• Sannsynligheten for at systemet korrekt vil levere
tjenester som forventet av brukere.
• Funksjonsstabilitet er relatert til sannsynligheten for en
feil skal opptre i operasjonell bruk. Et system med kjente
feil kan være pålitelig.
• Sannsynligheten for feilfri systemoperasjon over et gitt
tidsrom, i et gitt miljø, for en gitt hensikt.
• Eksempel: Et studie utført i 2002 av National Institute of
Standards and Technology (NIST) fant at programvarefeil koster
økonomien I USA $59.5 milliarder hvert år. Studien estimerte at ca.
1/3, $22.2 milliarder, kunne bli eliminert av forbedret testing.
http://www.abeacha.com/NIST_press_release_bugs_cost.htm
9
Oppfatninger av funksjonstabilitet/
Reliability
• Den formelle definisjonen av “reliability” reflekterer ikke
alltid brukerens oppfatning av et systems
funksjonsstabilitet/pålitelighet
– Ukorrekte antakelser som er gjort om miljøet hvor
system skal brukes
• Bruk av et system i et kontormiljø er sannsynlig å være
ganske forskjellig fra bruk av det samme systemet i et
universitetsmiljø
– Konsekvenser av feil påvirker oppfatningen av
pålitelighet/reliability
• Upålitelige vindusviskere på en bil kan være irrelevant i et
tørt klima
• Feil som har alvorlige konsekvenser (f.eks.
motorsammenbrudd i en bil) gis større vekt av brukere en feil
som er brysomme
10
Funksjonsstabilitet/reliability og
spesifikasjoner
• Funksjonsstabilitet/reliability kan bare bli definert med
hensyn på en systemspesifikasjon, dvs. at en feil er et
avvik fra spesifikasjonen.
• Mange spesifikasjoner er ukomplett eller ukorrekt –
System som er i samsvar med sin spesifikasjon kan
“feile” fra et brukerperspektiv.
• Brukere leser sjelden spesifikasjoner og vet dermed ikke
hvordan systemet er antatt å fungere.
• Oppfattet funksjonsstabilitet/reliability er i praksis
viktigere.
11
Værstasjon
Kapittel 7
12
Terminologi for
funksjonsstabilitet/reliability
Term
Beskrivelse
Human error or
mistake
Human behavior that results in the introduction of faults into a
system. For example, in the wilderness weather system, a
programmer might decide that the way to compute the time for the
next transmission is to add 1 hour to the current time. This works
except when the transmission time is between 23.00 and midnight
(midnight is 00.00 in the 24-hour clock).
A characteristic of a software system that can lead to a system
error. The fault is the inclusion of the code to add 1 hour to the
time of the last transmission, without a check if the time is greater
than or equal to 23.00.
An erroneous system state that can lead to system behavior that
is unexpected by system users. The value of transmission time is
set incorrectly (to 24.XX rather than 00.XX) when the faulty code
is executed.
An event that occurs at some point in time when the system does
not deliver a service as expected by its users. No weather data is
transmitted because the time is invalid.
System fault or
defect
System error
System failure
13
Sant eller usant?
• Et program med kjente feil kan bli oppfattet som
pålitelig?
• Hvorfor?
14
Feil (fault) og feilsituasjoner (failures)
• Feilsituasjoner/failures er normalt et resultat av systemfeil
(error) som stammer fra statiske feil (faults) i systemet.
• Feil (faults) vil ikke nødvendigvis resultere i systemfeil (errors)
– Den feilaktige systemtilstanden som er resultat av en feil (fault) kan
være transiente og bli ‘korrigert’ før en systemfeil oppstår.
– Feilaktig kode kan f.eks. aldri bli eksekvert.
• Feil (errors) vil ikke nødvendigvis føre til
feilsituasjoner(failures)
– Feil kan bli korrigert ved innebygd feildeteksjoner og gjenoppretting
– Feilsituasjoner kan man bli beskyttet mot ved å benytte innebygde
beskyttelsesmekanismer. Disse kan, f.eks. , beskytte
systemressurser fra systemfeil.
– Exceptions i Java
– Operativsystemfunksjoner
15
developer
mistake
Source code
fault or defect….
Executable
Error
Executable
Failure
16
user
Software usage patterns
17
Funksjonsstabilitet i bruk
• Fjerning av X% av feil i et system vil ikke nødvendigvis
forbedre funksjonsstabiliteten med X%. Studie ved IBM
viser at fjerning av 60% av produktfeil resulterte i 3%
forbedring av funksjonsstabilitet (reliability).
• Programdefekter kan være i sjeldent utførte deler av
koden og blir aldri møtt av brukere. Fjerning av disse
påvirker ikke den oppfattede funksjonsstabiliteten.
• Bruker endrer oppførsel for å unngå systemfunksjoner
som kan feile.
• Et program med kjente defekter kan derfor fortsatt bli
oppfattet som pålitelig av brukere.
18
Oppnåelse av funksjonsstabilitet
(Reliability)
• Fault avoidance
– Development 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 removal
– Verification and validation techniques that increase the
probability of detecting and correcting defects before the system
goes into service are used.
• Fault tolerance
– Run-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.
19
Kapittel 11 – Sikkerhet og pålitelighet
Availability – Tilgjengelighet
Carl-Fredrik Sørensen
01.04.2014
Tilgjengelighet – Availability
• Sannsynligheten for at systemet vil kjøre og være I stand
til å levere nyttige tjenester til brukere.
 Sannsynligheten for at system, ved et gitt punkt i tid, vil
være operasjonell og i stand til å levere forespurte
tjenestene.
21
Oppfattelse av tilgjengelighet
• Tilgjengelighet er vanligvis uttrykt som en prosentdel av
tiden som systemet er tilgjengelig til å levere tjenester,
f.eks. 99.95%.
• Tar imidlertid ikke hensyn til to faktorer:
– Antall brukere påvirket av tjenesteavbrudd. Tjenestetap midt på
natten er mindre viktig for mange systemer, enn tap av tjenester i
rushtiden/den tiden flest benytter tjenesten.
– Eks. på systemer?
– Varigheten av tjenesteavbrudd. Jo lengre avbrudd, jo større
forstyrrelse. Flere korte avbrudd er mindre sannsynlig å være
forstyrrende enn et langt ett. Lang tid for reparasjon er et spesielt
problem.
– Eks. på systemer?
22
Availability %
Downtime per year
Downtime per month*
Downtime per week
90% ("one nine")
95%
97%
98%
99% ("two nines")
99.5%
99.8%
36.5 days
18.25 days
10.96 days
7.30 days
3.65 days
1.83 days
17.52 hours
72 hours
36 hours
21.6 hours
14.4 hours
7.20 hours
3.60 hours
86.23 minutes
16.8 hours
8.4 hours
5.04 hours
3.36 hours
1.68 hours
50.4 minutes
20.16 minutes
99.9% ("three nines")
8.76 hours
43.8 minutes
10.1 minutes
99.95%
4.38 hours
21.56 minutes
5.04 minutes
99.99% ("four nines")
52.56 minutes
4.32 minutes
1.01 minutes
99.999% ("five nines") 5.26 minutes
25.9 seconds
6.05 seconds
99.9999% ("six nines") 31.5 seconds
2.59 seconds
0.605 seconds
99.99999% ("seven
nines")
0.259 seconds
0.0605 seconds
23
3.15 seconds
Eksempler
• F.eks. gitt en tilgjengelighet på «fem niere» predikerer
nedetid for det neste året, måneden, uken.
– http://en.wikipedia.org/wiki/High_availability
– Svar: 5.26 minutter - 25.9 sekunder - 6.05 sekunder
• Hvilken påvirkning har krav om tilgjengelighet på «fem
niere» på programvarearkitekturen?
– Tilgjengelighet - Inkluder redundante komponenter og
mekanismer for feiltoleranse.
• Hvilken påvirkning har krav om tilgjengelighet på «fem
niere» på prosessen for programvareevolusjon?
– Du kan ikke ta ned systemet under vedlikehold.
24
Kapittel 11 – Sikkerhet og pålitelighet
Safety – Trygghet
Carl-Fredrik Sørensen
01.04.2014
Safety – Trygghet
• Safety er et systemattributt som reflekterer systemets
evne til å operere uten å true mennesker eller miljøet.
• Måling: En bedømmelse av hvor sannsynlig det er at
systemet vil årsake skade på mennesker eller sitt miljø.
• Eksempler (http://royal.pingdom.com/2009/03/19/10-historical-software-bugs-withextreme-consequences/)
– Therac-25: Deadly radiation therapy
– Ariane 5. More than $370 million were lost due to this error.
26
Safety – Trygghet
• Safety er en egenskap ved systemet som reflekter
systemets evne til operere, normalt eller unormalt, uten
fare for å forårsake menneskelig skade eller død og uten
å skade systemets miljø.
• Viktig å betrakte safety i programvare siden de fleste
innretninger hvor en feilsituasjon er kritisk, omfatter
programvarebaserte kontrollsystemer.
• Safety-krav er ofte utelukkende/eksklusive krav, dvs. At
utelukker uønskede situasjoner fremfor å spesifisere
påkrevde systemtjenester. Disse medfører funksjonelle
safety-krav.
27
Safety-kritikalitet
Primære sikkerhetskritiske
systemer
– Embedded software
systems whose failure can
cause the associated
hardware to fail and directly
threaten people. Example is
the insulin pump
control system.
Insulin Chapter 1
Sekundære sikkerhetskritiske
systemer
– Systems whose failure
results in faults in other
(socio-technical) systems,
which can then have safety
consequences. For example,
the MHC-PMS is safetycritical as failure may lead to
inappropriate treatment being
prescribed.
mental-healt Chapter 5
Safety og reliability er relatert
Reliability
pålitelighet
Availability
tilgjengelighet
Software
system
innbrudd
Safety
Security
feilsituasjon
• Funksjonsstabilitet og
tilgjengelighet er
nødvendige men ikke
tilstrekkelig betingelser for
trygge systemer
• Funksjonsstabilitet omfatter
overensstemmelse mellom
en gitt spesifikasjon og
tjenesteleveranse
• Safety omfatter å forsikre
at systemet ikke forårsaker
skade, uavhengig av om
det er I overensstemmelse
med sin spesifikasjon
Safety terminologi
Term
Definisjon
Accident (or mishap)
An unplanned event or sequence of events which results in human death or injury, damage to
property, or to the environment. An overdose of insulin is an example of an accident.
Hazard
A condition with the potential for causing or contributing to an accident. A failure of the sensor that
measures blood glucose is an example of a hazard.
Damage
A measure of the loss resulting from a mishap. Damage can range from many people being killed as a
result of an accident to minor injury or property damage. Damage resulting from an overdose of insulin
could be serious injury or the death of the user of the insulin pump.
Hazard severity
An assessment of the worst possible damage that could result from a particular hazard. Hazard
severity can range from catastrophic, where many people are killed, to minor, where only minor
damage results. When an individual death is a possibility, a reasonable assessment of hazard severity
is ‘very high’.
Hazard probability
The probability of the events occurring which create a hazard. Probability values tend to be arbitrary
but range from ‘probable’ (say 1/100 chance of a hazard occurring) to ‘implausible’ (no conceivable
situations are likely in which the hazard could occur). The probability of a sensor failure in the insulin
pump that results in an overdose is probably low.
Risk
This is a measure of the probability that the system will cause an accident. The risk is assessed by
considering the hazard probability, the hazard severity, and the probability that the hazard will lead to
an accident. The risk of an insulin overdose is probably medium to low.
30
Oppnåelse av safety – trygghet
• Unngåelse av fare/risiko
– Systemet er designet slik at noen klasser av risikoer ikke kan
oppstå.
• Oppdage og fjerne farer
– Systemet er designet slik at farer blir oppdaget og fjernet før de
resulterer i en ulykke.
• Skadebegrensning
– Systemet inkluderer beskyttelsesmekanismer som minimaliserer
skade som kan oppstå fra en ulykke.
Ch 6 Architecture Safety - Localise safety-critical features
in a small number of sub-systems.
31
Normale ulykker
• Ulykker i komplekse systemer har sjeldent en enkel
årsak siden slike systemer er designet til å være
motstandsdyktig mot “a single point of failure”
– Design av systemer slik at et enkelt feilpunkt ikke medfører en
ulykke, er et fundamentalt prinsipp for design av sikre systemer.
• Omtrent alle ulykker er resultat av kombinasjoner av
funksjonsfeil enn enkle feilsituasjoner.
• Antakelig umulig å forutsi alle kombinasjoner av
problemer, spesielt programvarekontrollerte systemer.
Komplett sikkerhet er derfor umulig. Ulykker er
uunngåelig.
32
Fordeler med programvaretrygghet
• Selv om feilsituasjoner i programvare kan være
sikkerhetskritisk, så bidrar programvarebaserte
kontrollsystemer til økt systemsikkerhet
– Overvåking og kontroll med programvare tillater at et større
område av betingelser kan bli overvåket og kontrollert en hva
som er mulig med elektromekaniske systemer.
– Programvarekontroll tillater adopsjon av trygghetsstrategier som
kan redusere tiden mennesker må benytte i farefulle miljøer.
– Programvare kan oppdage og korrigere sikkerhetskritiske
operatørfeil.
33
Kapittel 11 – Sikkerhet og pålitelighet
Security – Sikkerhet
Carl-Fredrik Sørensen
01.04.2014
Security – Sikkerhet
• Security er et systemattributt som reflekterer et systems
evne til å beskytte seg selv mot eksterne angrep (tilfeldig
eller tilsiktet)
• En bedømmelse av hvor sannsynlig det er at systemet
kan motstå tilfeldige eller tilsiktede innbrudd/intrusjoner.
• Security er essensiell siden de fleste systemer er koblet
til nettverk som muliggjør ekstern aksess til systemet,
f.eks. gjennom internett.
• Security er en essensiell forutsetning for tilgjengelighet,
funksjonsstabilitet og trygghet.
35
Fundamental sikkerhet
• Hvis et system er et nettverkssystem og er usikkert, så
er uttrykk om funksjonsstabilitet og trygghet til systemet
upålitelig.
• Slike uttrykk avhenger av at det kjørende og det
utviklede systemet er det samme. Inntrenging/innbrudd
kan endre både the kjørende systemet og
informasjonen/data i systemet.
• Forsikring om funksjonsstabilitet og trygghet gjøres
derfor ugyldig.
36
Security terminologi
Term
Definisjon
Asset
Something of value which has to be protected. The asset may be the software
system itself or data used by that system.
Exposure
Possible loss or harm to a computing system. This can be loss or damage to
data, or can be a loss of time and effort if recovery is necessary after a security
breach.
konsekvenser
Vulnerability
sårbarhet
Attack
An exploitation of a system’s vulnerability. Generally, this is from outside the
system and is a deliberate attempt to cause some damage.
Threats
Circumstances that have potential to cause loss or harm. You can think of these
as a system vulnerability that is subjected to an attack.
sårbarhet
Control
37
A weakness in a computer-based system that may be exploited to cause loss or
harm.
A protective measure that reduces a system’s vulnerability. Encryption is an
example of a control that reduces a vulnerability of a weak access control
system
Examples of security terminology (MHCPMS)
Term
Example
Asset
The records of each patient that is receiving or has received treatment.
Exposure
Potential financial loss from future patients who do not seek treatment
because they do not trust the clinic to maintain their data. Financial loss
from legal action by the sports star. Loss of reputation.
konsekvenser
Vulnerability
sårbarhet
Attack
An impersonation of an authorized user.
Threat
An unauthorized user will gain access to the system by guessing the
credentials (login name and password) of an authorized user.
trussel
Control
38
A weak password system which makes it easy for users to set guessable
passwords. User ids that are the same as names.
A password checking system that disallows user passwords that are
proper names or words that are normally included in a dictionary.
Threat classes
• Threats to the confidentiality of the system and its data
– Can disclose information to people or programs that do not have
authorization to access that information.
• Threats to the integrity of the system and its data
– Can damage or corrupt the software or its data.
• Threats to the availability of the system and its data
– Can restrict access to the system and data for authorized users.
• IT Sikkerhet og Informasjonssikkerhet
39
Damage from insecurity
• Denial of service
– The system is forced into a state where normal services are
unavailable or where service provision is significantly degraded
• Corruption of programs or data
– The programs or data in the system may be modified in an
unauthorised way
• Disclosure of confidential information
– Information that is managed by the system may be exposed to
people who are not authorised to read or use that information
40
Security assurance
• Vulnerability avoidance
– The system is designed so that vulnerabilities do not occur. For
example, if there is no external network connection then external
attack is impossible
• Attack detection and elimination
– The 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 system
• Exposure limitation and recovery
– The system is designed so that the adverse consequences of a
successful attack are minimised. For example, a backup policy
allows damaged information to be restored
41
Open Web Application Security Project
(OWASP)
• http://owasp.org – OWASP Top 10
• A1-Injection – Injection flaws, such as SQL, OS, and
LDAP injection occur when untrusted data is sent to an
interpreter as part of a command or query. The attacker’s
hostile data can trick the interpreter into executing
unintended commands or accessing data without proper
authorization.
• A2-Broken Authentication and Session Management
– Application functions related to authentication and
session management are often not implemented
correctly, allowing attackers to compromise passwords,
keys, or session tokens, or to exploit other
implementation flaws to assume other users’ identities.
42
Open Web Application Security Project
(OWASP)
• A3-Cross-Site Scripting (XSS) – XSS flaws occur
whenever an application takes untrusted data and sends
it to a web browser without proper validation or escaping.
XSS allows attackers to execute scripts in the victim’s
browser which can hijack user sessions, deface web
sites, or redirect the user to malicious sites.
• A4-Insecure Direct Object References – A direct
object reference occurs when a developer exposes a
reference to an internal implementation object, such as a
file, directory, or database key. Without an access control
check or other protection, attackers can manipulate
these references to access unauthorized data.
43
Open Web Application Security Project
(OWASP)
• A5-Security Misconfiguration – Good security requires
having a secure configuration defined and deployed for
the application, frameworks, application server, web
server, database server, and platform. Secure settings
should be defined, implemented, and maintained, as
defaults are often insecure. Additionally, software should
be kept up to date.
44
Open Web Application Security Project
(OWASP)
• A6-Sensitive Data Exposure – Many web applications do
not properly protect sensitive data, such as credit cards, tax
IDs, and authentication credentials. Attackers may steal or
modify such weakly protected data to conduct credit card
fraud, identity theft, or other crimes. Sensitive data deserves
extra protection such as encryption at rest or in transit, as well
as special precautions when exchanged with the browser.
• A7-Missing Function Level Access Control – Most web
applications verify function level access rights before making
that functionality visible in the UI. However, applications need
to perform the same access control checks on the server
when each function is accessed. If requests are not verified,
attackers will be able to forge requests in order to access
functionality without proper authorization.
45
Open Web Application Security Project
(OWASP)
• A8-Cross-Site Request Forgery (CSRF) – A CSRF
attack forces a logged-on victim’s browser to send a
forged HTTP request, including the victim’s session
cookie and any other automatically included
authentication information, to a vulnerable web
application. This allows the attacker to force the victim’s
browser to generate requests the vulnerable application
thinks are legitimate requests from the victim.
46
Open Web Application Security Project
(OWASP)
• A9-Using Components with Known Vulnerabilities –
Components, such as libraries, frameworks, and other
software modules, almost always run with full privileges. If a
vulnerable component is exploited, such an attack can
facilitate serious data loss or server takeover. Applications
using components with known vulnerabilities may undermine
application defenses and enable a range of possible attacks
and impacts.
• A10-Unvalidated Redirects and Forwards – Web
applications frequently redirect and forward users to other
pages and websites, and use untrusted data to determine the
destination pages. Without proper validation, attackers can
redirect victims to phishing or malware sites, or use forwards
to access unauthorized pages.
47
Kapittel 11 – Sikkerhet og pålitelighet
Dependability – Tilgjengelighet
Carl-Fredrik Sørensen
01.04.2014
Dependability attribute dependencies
• Safe 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.
49
Dependability achievement
• Avoid 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.
50
Dependability costs
• Dependability costs tend to increase exponentially as
increasing levels of dependability are required.
• There are two reasons for this
– The 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.
51
Det bli dyrere og dyrere å
øke dependability for et system
som allerede har høy kvalitet
Det koster relativt lite
å øke dependability for
et system som har lav kvalitet
Chapter 11 Security and
52
Dependability
52
Mer om pålitelighet
Sommerville
Availability and reliability
• It is sometimes possible to subsume system availability
under system reliability
– Obviously 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.
54
Unsafe reliable systems
• There may be dormant faults in a system that are
undetected for many years and only rarely arise.
• Specification errors
– If the system specification is incorrect then the system can
behave as specified but still cause an accident.
• Hardware failures generating spurious inputs
– Hard to anticipate in the specification.
• Context-sensitive commands i.e. issuing the right
command at the wrong time
– Often the result of operator error.
55
Repairability
• The 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.
56
Maintainability
• A 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.
57
Survivability
• The ability of a system to continue to deliver its services
to users in the face of deliberate or accidental attack
• This is an increasingly important attribute for distributed
systems whose security can be compromised
• Survivability subsumes the notion of resilience - the
ability of a system to continue in operation in spite of
component failures
58
Error tolerance
• Part 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.
59
Dependability economics
• Because of very high costs of dependability
achievement, it may be more cost effective to accept
untrustworthy systems and pay for failure costs
• However, this depends on social and political factors. A
reputation for products that can’t be trusted may lose
future business
• Depends on system type - for business systems in
particular, modest levels of dependability may be
adequate
60
Key points
• The 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.
61
Key points
• Reliability 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.
62
Download