I detta dokument ges de viktigaste definitionerna av pålitlighet, ett generiskt begrepp som inkluderar som specialfall attribut som tillförlitlighet, tillgänglighet, säkerhet, sekretess, integritet, hållbarhet osv. Grundläggande definitioner ges först. De kommenteras sedan, och kompletteras med ytterligare definitioner, som tar itu med hoten mot pålitlighet (fel, fel, fel) och attributen pålitlighet. Diskussionen om attributen omfattar förhållandet mellan pålitlighet och säkerhet, överlevnadsförmåga och pålitlighet. Nyckelord: Tillförlitlighet, tillgänglighet, tillförlitlighet, säkerhet, sekretess, integritet, underhållbarhet, säkerhet, överlevnadsförmåga, pålitlighet, fel, fel, fel. Tillhandahållandet av korrekta dator- och kommunikationstjänster har varit ett problem för deras leverantörer och användare sedan de första dagarna. I julinumret 1834 av Edinburgh Review publicerade Dr Dionysius Lardner artikeln "Babbages beräkningsmotor", där han skrev: "Den mest säkra och effektiva kontrollen av fel som uppstår i beräkningsprocessen är att samma beräkningar görs av separata och oberoende datorer; och denna kontroll görs ännu mer avgörande om de gör sina beräkningar med olika metoder". 2 Det måste noteras att termen "dator" i föregående citat avser en person som utför beräkningar, och inte den "kalkylerande motorn". Den första generationen elektroniska datorer (från 1940 till mitten av 50-talet) använde ganska opålitliga komponenter, varför praktiska tekniker användes för att förbättra deras tillförlitlighet, såsom felkoder, dubblering med jämförelse, triplikation med röstning, diagnostik för att lokalisera misslyckade komponenter, etc. Samtidigt J. von Neumann [von Neumann 1956], E. F. Moore och C. E. Shannon [Moore & Shannon 1956], och deras efterträdare utvecklade teorier om att använda redundans för att bygga tillförlitliga logiska strukturer från mindre tillförlitliga komponenter, vars fel maskerades av förekomsten av flera överflödiga komponenter. Teorierna om maskering redundans förenades av W. H. Pierce som begreppet misslyckande tolerans 1965 [Pierce 1965]. År 1967, A. Avižienis integrerad maskering med praktiska tekniker för feldetektering, feldiagnos, och återhämtning i begreppet feltoleranta system [Avižienis 1967]. Inom området för modellering av tillförlitlighet var den stora händelsen införandet av täckningskonceptet av Bouricius, Carter och Schneider [Bouricius et al. 1969]............................................................... Arbetet med programvara feltolerans initierades av Elmendorf [Elmendorf 1972], senare kompletterades det med återhämtning block [Randell 1975], och av N-version programmering [Avižienis & Chen, 1977]. [Laprie 1992], där den engelska texten också översattes till franska, tyska, italienska och japanska. I denna bok listades avsiktliga fel (dålig logik, intrång) tillsammans med oavsiktliga fel (fysiska fel, konstruktionsfel eller interaktionsfel). Förberedande forskning om integrering av feltolerans och försvar mot avsiktligt skadliga fel, dvs. säkerhetshot, inleddes i mitten av 80-talet [Dobson & Randell 1986], [Joseph & Avižienis 1988], [Fray et al. 1986]................................................................. Den första IFIP-arbetskonferensen om tillförlitliga data för kritiska tillämpningar (DCCA) hölls 1989. Detta och de sex arbetskonferenser som följde främjade samverkan mellan tillförlitlighets- och säkerhetsgrupper och främjade integreringen av säkerhet (konfidentiellhet, integritet och tillgänglighet) i ramen för tillförlitlig databehandling. Sedan 2000 har DCCA:s arbetskonferens tillsammans med FTCS blivit en del av den internationella konferensen om tillförlitliga system och nätverk (DSN).  Tillförlitlighet och dess hot: En taxonomi I detta avsnitt presenterar vi en grundläggande uppsättning definitioner (i fetstil) som kommer att användas under hela diskussionen om taxonomi för tillförlitlig databehandling. Definitionerna är tillräckligt allmänna för att täcka hela spektrumet av dator- och kommunikationssystem, från individuella logiska grindar till nätverk av datorer med mänskliga operatörer och användare. Ett system i vår taxonomi är en enhet som interagerar med andra entiteter, d.v.s. andra system, inklusive hårdvara, programvara, människor och den fysiska världen med dess naturliga fenomen. Dessa andra system är miljön i det givna systemet. Systemgränsen är den gemensamma gränsen mellan systemet och dess omgivning. Dator- och kommunikationssystem kännetecknas av fyra grundläggande egenskaper: funktionalitet, prestanda, pålitlighet och kostnad. Dessa fyra fastigheter påverkas kollektivt av två andra egenskaper: användbarhet och anpassningsförmåga. Funktionen hos ett sådant system är vad systemet är avsett att göra och beskrivs av den funktionella specifikationen i fråga om funktionalitet och prestanda. Tillförlitlighet och kostnader har separata specifikationer. Ett systems beteende är vad systemet gör för att genomföra sin funktion och beskrivs av en sekvens av tillstånd. Det totala tillståndet för ett givet system är uppsättningen av följande tillstånd: beräkning, kommunikation, lagrad information, sammankoppling och fysisk kondition. Ett systems struktur gör det möjligt för det att skapa beteendet. Ur strukturell synvinkel är ett system en uppsättning komponenter som binds samman för att interagera, där varje komponent är ett annat system, etc. Rekursionen upphör när en komponent anses vara atomär: någon annan inre struktur kan inte urskiljas, eller är inte av intresse och kan ignoreras. Den tjänst som levereras av ett system (leverantören) är dess beteende som det uppfattas av dess användare; en användare är ett annat system som tar emot tjänsten från leverantören. Den del av leverantörens systemgräns där tjänsten levereras är servicegränssnittet. Den del av leverantörens totala tillstånd som är begriplig vid servicegränssnittet är dess externa tillstånd; den återstående delen är dess interna tillstånd. Den levererade tjänsten är en sekvens av leverantörens externa stater. Vi noterar att ett system kan vara en leverantör eller samtidigt en användare med avseende på ett annat system, dvs. leverera tjänsten till och ta emot tjänsten från det andra systemet. Det är vanligt att ha en hierarkisk syn på en systemstruktur. Förhållandet består av, eller bryts ner i, inducerar en hierarki; men det avser endast förteckningen över systemkomponenter. En hierarki som tar hänsyn till systemets beteende är relationen använder [Parnas 1974, Ghezzi et al. Vi har fram till nu använt singular för funktion och service. Ett system implementerar i allmänhet mer än en funktion och levererar mer än en tjänst. Funktion och tjänst kan således ses som sammansatt av funktionsobjekt och tjänsteobjekt. För enkelhetens skull kommer vi helt enkelt att använda plural-funktionerna, tjänsterna - när det är nödvändigt att skilja mellan flera funktioner eller tjänster. Korrekt service levereras när tjänsten implementerar systemfunktionen. Ett tjänstefel är en händelse som inträffar när den levererade tjänsten avviker från korrekt tjänst. En tjänst misslyckas antingen på grund av att den inte överensstämmer med den funktionella specifikationen eller på grund av att denna specifikation inte på ett tillfredsställande sätt beskriver systemfunktionen. Ett tjänstefel är en övergång från korrekt tjänst till felaktig tjänst, dvs. till att inte implementera systemfunktionen. Perioden för leverans av felaktig tjänst är ett tjänsteavbrott. Övergången från felaktig service till korrekt service är en servicerenovering. Avvikelsen från korrekt tjänst kan anta olika former som kallas service fellägen och rankas enligt fel svårighetsgrader. En detaljerad taxonomi för fellägen presenteras i avsnitt 4. Eftersom en tjänst är en sekvens av systemets externa tillstånd innebär ett tjänstefel att minst ett (eller flera) externt tillstånd i systemet avviker från det korrekta drifttillståndet. Avvikelsen kallas ett fel. Den bedömda eller hypotetiska orsaken till ett fel kallas ett fel. I de flesta fall orsakar ett fel först ett fel i servicetillståndet för en komponent som är en del av systemets interna tillstånd och den externa staten påverkas inte omedelbart. Av detta skäl är definitionen av ett fel: den del av systemets totala tillstånd som kan leda till dess efterföljande tjänstefel. Det är viktigt att notera att många fel inte når systemets yttre tillstånd och orsakar ett misslyckande. Ett fel är aktivt när det orsakar ett fel, annars är det vilande. När den funktionella specifikationen för ett system innehåller en uppsättning av flera funktioner, kan ett fel på en eller flera av de tjänster som implementerar funktionerna lämna systemet i ett försämrat läge som fortfarande erbjuder en delmängd av nödvändiga tjänster till användaren. I specifikationen kan flera sådana lägen identifieras, t.ex. långsam service, begränsad service, räddningstjänst osv. Här säger vi att systemet delvis har misslyckats med sin funktionalitet eller prestanda. Utvecklingsfel och tillförlitlighetsfel som diskuteras i avsnitt 4 kan också vara partiella misslyckanden. Tillförlitlighet och dess hot: En Taxonomi5 Den allmänna, kvalitativa, definitionen av tillförlitlighet är: förmågan att leverera tjänster som med rätta kan lita på. I denna definition betonas behovet av rättfärdigande av förtroende. Den alternativa kvantitativa definition som ger kriteriet för att avgöra om tjänsten är tillförlitlig är: ett systems tillförlitlighet är förmågan att undvika tjänstefel som är mer frekventa och allvarligare än vad som är godtagbart för användaren/användarna. Som utvecklats under de senaste tre decennierna, pålitlighet är ett integrerande koncept som omfattar följande attribut: • tillgänglighet: beredskap för korrekt tjänst, • pålitlighet: kontinuitet av korrekt tjänst, • säkerhet: avsaknad av katastrofala konsekvenser för användare och miljö, • sekretess: avsaknad av obehörigt utlämnande av information, • integritet: avsaknad av felaktiga systemförändringar, • underhållbarhet: förmåga att genomgå, modifieringar och reparationer. Säkerhet är den samtidiga förekomsten av a) tillgänglighet endast för auktoriserade användare, b) sekretess, och c) integritet med "otillåten" betyder "otillåten". Tillförlitlighetsspecifikationen för ett system måste innehålla krav på tillförlitlighetsattribut när det gäller den godtagbara frekvensen och svårighetsgraden av fel för de angivna felklasserna och en given användningsmiljö. En eller flera attribut kan inte krävas alls för ett visst system. Taxonomi för attributen pålitlighet presenteras i avsnitt 5. Under de senaste femtio åren har många metoder utvecklats för att uppnå egenskaperna pålitlighet. Dessa metoder kan grupperas i fyra huvudkategorier: • förebyggande av fel: medel för att förhindra förekomst eller införande av fel; • feltolerans: medel för att undvika tjänstefel i närvaro av fel; • avlägsnande av fel: medel för att minska antalet och svårighetsgraden av fel; • felprognoser: medel för att uppskatta det nuvarande antalet, den framtida förekomsten, och de sannolika konsekvenserna av fel. Felförebyggande och feltolerans syftar till att ge möjlighet att leverera en tjänst som kan lita på, medan felborttagning och felprognoser syftar till att uppnå förtroende för denna förmåga genom att motivera att de funktionella och tillförlitliga specifikationerna är tillräckliga och att systemet sannolikt kommer att uppfylla dem.  FAULTERNAS TAXONOMI detta och nästa avsnitt presenterar vi taxonomi för hot som kan påverka ett system under hela dess liv. Ett systems livscykel består av två faser: utveckling och användning. Utvecklingsfasen omfattar alla aktiviteter från presentation av användarens ursprungliga koncept till beslut att systemet har klarat alla acceptanstester och är redo att användas i användarens miljö. Under utvecklingsfasen samverkar systemet med utvecklingsmiljön och utvecklingsfel kan införas i systemet av miljön. Utvecklingsmiljön i ett system består av följande element: 1. den fysiska världen med sina naturliga fenomen; 2. mänskliga utvecklare, några möjligen saknar kompetens eller har skadliga mål; 3. utvecklingsverktyg: programvara och hårdvara som används av utvecklarna för att hjälpa dem i utvecklingsprocessen; 4. produktion och testanläggningar. Användningsfasen för ett systems livslängd börjar när systemet accepteras för användning och börjar leverera sina tjänster till användarna. Användning består av alternerande perioder av korrekt leverans av tjänster (som ska kallas leverans av tjänster), Taxonomi 7 service avbrott, och service avstängning. Ett tjänsteavbrott orsakas av ett tjänstefel. Det är den period då felaktig tjänst (inklusive ingen tjänst alls) levereras vid servicegränssnittet. En avstängning av en tjänst är ett avsiktligt stopp för en tjänst som utförs av ett auktoriserat företag. Underhållsåtgärder kan äga rum under alla tre perioderna av användningsfasen. Under användningsfasen interagerar systemet med dess användningsmiljö och kan påverkas negativt av fel som härrör från den. Användningsmiljön består av följande element: 1. den fysiska världen med dess naturliga fenomen; 2. administratörerna (inklusive utvecklare): enheter (människor, andra system) som har befogenhet att hantera, ändra, reparera och använda systemet; vissa auktoriserade människor kan sakna kompetens eller ha skadliga mål; 3. användarna: enheter som tar emot tjänster vid tjänstegränssnitten; 4. leverantörerna: enheter som levererar tjänster till systemet vid dess tjänstegränssnitt; 5. fasta resurser: enheter som inte är användare, men tillhandahåller specialiserade tjänster till systemet, såsom informationskällor (t.ex. GPS, tid, etc.).), kommunikationslänkar, kraftkällor, kylluftsflöde osv. 6. inkräktarna: skadliga enheter som inte har någon behörighet men försöker tränga in i systemet och att ändra tjänsten eller stoppa det, ändra systemets funktionalitet eller prestanda, eller att få tillgång till konfidentiell information. De är hackare, skadliga insiders, agenter för fientliga regeringar eller organisationer, och info-terrorister. Som används här, termen underhåll, efter vanlig användning, omfattar inte bara reparationer, men också alla ändringar av systemet som sker under användningsfasen av systemets livslängd. Därför är underhåll en utvecklingsprocess och den föregående diskussionen om utveckling gäller även underhåll. De olika formerna av underhåll sammanfattas i Det är värt att notera att reparation och feltolerans är relaterade begrepp; skillnaden mellan feltolerans och underhåll i detta papper är att underhåll innebär deltagande av en extern agent, t.ex. en reparatör, testutrustning, fjärr omlastning av programvara. Dessutom är reparation en del av felborttagning (under användningsfasen), och felprognoser tar vanligtvis hänsyn till reparationssituationer. Alla fel som kan påverka ett system under dess livstid klassificeras enligt åtta grundläggande synpunkter som visas i figur 3. Klassificeringskriterierna är följande: 1. Den fas av systemets livslängd under vilken felen uppstår: • Utvecklingsfel som uppstår under a) systemutveckling, b) underhåll under användningsfasen, och c) generering av rutiner för att driva eller underhålla systemet. • Driftsfel som uppstår under driftleveransen av användningsfasen. 2. Utgångspunkten är följande: Placeringen av fel med avseende på systemgränsen: • interna fel som har sitt ursprung inom systemgränsen; • externa fel som har sitt ursprung utanför systemgränsen och sprider fel i systemet genom interaktion eller störning. • naturliga fel som orsakas av naturfenomen utan mänskligt deltagande, • mänskliga fel som beror på mänskliga handlingar. Taxonomi 9 4. Den dimension i vilken felen har sitt ursprung: • maskinvarufel (fysiska) som har sitt ursprung i eller påverkar hårdvara; • programvarufel (informationsfel) som påverkar programvara, dvs. program eller data. • skadliga fel som införs av en människa med det illvilliga målet att orsaka skada på systemet; • icke skadliga fel som införs utan ett illvilligt mål. 6. Vad är det som händer? Avsikten med den eller de människor som orsakade felen: • avsiktliga fel som är resultatet av ett skadligt beslut; • icke-deliberata fel som införs utan medvetenhet. 7. Vad är det som händer? Förmågan hos den eller de människor som införde felen: • oavsiktliga fel som oavsiktligt införs; • inkompetensbrister som beror på bristande yrkeskompetens hos den eller de bemyndigade människorna, eller på otillräcklighet hos utvecklingsorganisationen. 8. Vad är det som händer? Den tidsmässiga varaktigheten av felen: • permanenta fel vars närvaro antas vara kontinuerlig i tiden; • övergående fel vars närvaro är begränsad i tiden. Om alla kombinationer av de åtta grundläggande felklasserna var möjliga skulle det finnas 256 olika kombinerade felklasser. I själva verket är antalet troliga kombinationer 31; de visas i figur 3.3 De kombinerade felen i figurerna 3.3 och 3.4 visas tillhöra tre större delvis överlappande grupperingar: • utvecklingsfel som inkluderar alla felklasser som uppstår under utvecklingen; • fysiska fel som inkluderar alla felklasser som påverkar hårdvaran; • interaktionsfel som inkluderar alla yttre fel. I rutorna längst ner i figur 3.3 anges namnen på några illustrativa felklasser. Definitionen av mänskliga fel (som är ett resultat av skadliga mänskliga handlingar) omfattar avsaknad av åtgärder när handlingar ska utföras, dvs. fel som utelämnats eller helt enkelt utelämnats. Att utföra orätta handlingar leder till fel i provisionen. De två grundläggande klasserna av mänskliga fel kännetecknas av syftet med utvecklaren eller de människor som interagerar med systemet under dess användning: • skadliga fel, som införs under endera systemutveckling med avsikt att orsaka skada på systemet under dess användning (#5-#6), eller direkt under användning (#22-#25) Beroende och dess hot: En Taxonomi • icke-skadliga fel (#1-#4, #7-#21, #26-#31), införs utan skadliga mål. Skadliga mänskliga fel introduceras av en utvecklare med det skadliga målet att ändra systemets funktion under användning. Målet med sådana fel är 1) att störa eller stoppa tjänsten, 2) att få tillgång till konfidentiell information eller 3) att otillbörligt ändra systemet. De är grupperade i två klasser: • potentiellt skadliga komponenter (#5, #6): Trojanska hästar, fällor, logik eller timing bomber, • avsiktligt infört programvara eller hårdvara sårbarheter eller mänskliga fel. Målen för skadliga fel är: 1) att störa eller stoppa tjänsten (vilket framkallar överbelastning), 2) att få tillgång till konfidentiell information, eller 3) att felaktigt ändra systemet. De faller i två klasser: Avsiktliga, icke-skadliga, utvecklingsfel beror i allmänhet på kompromisser, antingen a) som syftar till att bevara godtagbara prestanda, att underlätta systemutnyttjandet, eller b) som orsakas av ekonomiska överväganden. Avsiktliga, icke-skadliga interaktionsfel kan vara ett resultat av en operatörs agerande som antingen syftar till att övervinna en oförutsedd situation eller avsiktligt bryter mot ett verksamhetsförfarande utan att ha insett de eventuella skadliga konsekvenserna av denna åtgärd. Avsiktliga icke-skadliga fel delar egendomen som det ofta erkänns att de var fel först efter ett oacceptabelt systembeteende, alltså ett misslyckande, har uppstått; utvecklaren eller operatören eller operatörerna insåg inte att följden av deras beslut var ett fel. Det anses ofta att både misstag och dåliga beslut är oavsiktliga, så länge de inte görs med skadliga mål. Men det är inte alla misstag och dåliga beslut som begås av personer som inte är illvilliga som är olyckor. Vissa mycket skadliga misstag och mycket dåliga beslut fattas av personer som saknar yrkesmässig kompetens för att utföra det arbete de har utfört. En fullständig feltaxonomi bör inte dölja denna orsak till fel, därför inför vi en ytterligare uppdelning av båda klasserna av icke-skadliga mänskliga fel i (1) oavsiktliga fel, och (2) inkompetens fel. Strukturen för denna mänskliga feltaxonomi visas i figur 3.5.
Enligt Avizienis et al. REF tillförlitlighet är ett överordnat koncept som omgrupperar olika systemattribut såsom tillförlitlighet, säkerhet, säkerhet eller tillgänglighet och icke-funktionella krav för moderna inbyggda system.
Dependability and Its Threats: A Taxonomy
{'venue': 'IFIP Congress Topical Sessions', 'journal': None, 'mag_field_of_study': ['Computer Science']}