Felträdsanalys FTA SESAM-gruppen i programvarusäkerhet Mikroprojekt Säkanalysmetoder FTA på Ejection system Peter Nummert 1
FTA Fault Tree Analysis FTA utgår från en för systemet oönskad vådahändelse, även kallad topphändelse vilken undersöks m a p möjliga orsaker först de omedelbart föregående, därefter de näst föregående osv ned till löven, bas- eller primärhändelserna. Ett logiskt träd med start på systemnivå ritas. Samverkande, oberoende orsaker uttrycks med OCH -grindar, alternativa med ELLER -grindar. Kvantitativa mått på olyckssannolikhet och exponeringsgrad kan införas i varje nod. Vid analys av programvara görs i stället en rent kvalitativ bedömning av rimlighet för olycka, för att finna var konstruktionsändringar är nödvändiga. Källa: H ProgSäk 2001 2
FTA FTAs styrka ligger i ett strukturerat sökande efter orsaker till en viss händelse i syfte att i första hand eliminera säkerhetshot, i andra hand att bemästra resterande hot. Analysen erbjuder ett annat betraktelsesätt än det gängse under konstruktion: en koncentration på vad programvaran ej får göra, snarare än vad den skall utföra. Källa: H ProgSäk 2001 3
Arbetsgång Identifiera felträdsanalysens syfte och mål Bestäm topphändelse att analysera Fastlägg omfattningen av analysen, gränserna för analysobjektet Bestäm regler för analysen (detaljeringsnivå, stoppkriterier, kvantitativ och/eller kvalitativ analys) Konstruera felträdet Utgå från en funktionell struktur av systemet som analyseras (se exempelvis SIS-EN 61346 Struktureringsprinciper) Gör klar varje nod innan nästa påbörjas Förenkla tidigt genom att eliminera noder med mycket låg sannolikhet (exempelvis som resultat av många OCH-villkor) Iterera tills resultatet blir tillfredsställande Värdera och validera felträdet Behövs fler iterationer? Tolka och presentera resultatet 4
Cut Sets - Hindermängd Cut Set : mängden av alla de bashändelser som krävs, för att en topphändelse skall inträffa. Minimal Cut Set : den minsta mängden bashändelser, som måste inträffa, för att topphändelsen skall inträffa (dvs. en logisk förenkling av det aktuella felträdet) Cut Set analysen är ett måste i stora felträd och visar på samband som är svåra att se på andra sätt Verktyg på marknaden har denna funktion 5
Händelser Bashändelser eller fel som inte kräver vidare analys Conditioning Event Förutsättning eller restriktion i logisk grind Undeveloped Event Ej vidare analyserad händelse Hushändelse Händelse som normalt förväntas hända Länk Används rittekniskt för att länka delar av ritade felträd 6
Logik OCH ELLER n KOMBINATION sant om n input är sanna EXLUSIVE ELLER PRIORITY OCH Sant om sekvens av input inträffar (från vänster till höger) INHIBIT Sant om input är sant och Condition Event har inträffat (ritat till höger) 7
FTA-verktyg FTA-verktyg använder boolsk algebra, binary decision diagrams, sannolikhetsteorier etc. för att beräkna resultat Input Sannolikhet för komponentfel (MTBF) Komponentotillgänglighet (inkluderar reservdelar, MTBR, etc) Sannolikhet för bashändelser Human error data Common cause failure data Tids och sekvensberoenden Riskspectrum Output Sannolikhet för topphändelse Känslighetsanalys, Fussell-Vesely Importance, Risk Reduction Worth, Risk Achievement Worth, Birnbaum s Importance Measure Osäkerhetsanalys 8
FTA - SW Programfel i funktioner, moduler, etc. läggs in som händelser i felträdet tillsammans med hårdvaruhändelser Felfrekvenser på SW kan inte anges annat än som 0 eller 1 Gemensamma felorsaker kan anges 9
FTA SW Designhjälpmedel för programvara Felträdsanalys kan användas för att visa att programvaran INTE genererar otillåtna resultat I kontrast till verifiering som syftar till att visa att programvaran genererar förväntat resultat För robusta programvarusystem kan FTA peka ut kritiska programvarudelar och därmed användas för att reducera mängden kostsamt arbete. Omdesign kan reducera mängden kritisk programvara och därmed leda till Minskat arbete i o m färre kritiska delar, som fordrar en högre grad av stringens i termer av formell analys, test, felhantering, redundanta funktioner etc 10
FTA på Ejection System Input Riskkällelista från tidigare systemsäkerhetsanalyser Detaljerade designbeskrivningar över aktuellt system Output Logiska felträd för alla vådahändelser och systemtillstånd/-konfigurationer Riskreducerande ändringsförslag 11
FTA Input Utdrag ur riskkällelista Riskkälla (ard): System- Konsekvens (Effekt/Olycksutfall) Bidragande faktorer Kommentar (Åtgärder) Status Nr Olycksorsak (P h ) del mod Värsta / Samtliga möjliga Värsta troliga 19 Låssprint ej i vid UH - Uh Personförlust * (P e =0,1) sannolikhet för utlösning 3 Otydlig procedur/ instruktion. En oavsiktlig utlösning förhindras ej av låssprinten 20 Låssprint kvar vid -flygn:utskjutn ej möjlig Alla Uh Personförlust 1 Enligt förutsättningarna fungerar inte utskjutningssystemet så ger det effekten personförlust. 21 Utskjutn hög höjd: -låg temp Flygn Pilot förfryser 1 22 Utskjutn hög höjd: -tryckskillnad Flygn Pilot medvetslös 1-2 23 Utskjutn hög höjd+ -lång tid på hög höjd Flygn Syrebrist 1 Syrgas bort vid stolseparering fr pilot. 24 Utskjutn hög höjd+ -syreslang rycks ur Flygn Syrebrist 1 Syrgas bort vid stolseparering fr pilot. 25 Utskjutn hög höjd + -över berg Flygn Personförlust pga skärm ej ut 1 26 Fartvind: Utskjutn i -hög fart Flygn Personförlust 1 Bara ryska stolar klarar farter > Mach 1. 27 Oavsiktlig -utskjutning Alla Personförlust vid Uh 1 Öppe n 28 Krutladdningar i -stol Alla -28-13a (undergrupp till -13) Stäng d 29 Stolen har ingen - markhöjd Övervak n /styrn stol Alla Uh Personförlust HAZOP-1 i HAZOP-tabell 14910:31524/2006 12
FTA Input: Beskrivning av räddningssystem flygplan Felaktiga data: position, hastighet, vinklar audio Filnamn: FMV:KCFlygsystem/KEFlygA (C) FMV 2006 utg 2,0 2006-10-20 Björn Koberstein GPS/ tröghetsnavigering Navigation visuellt Varning position över mark fart, höjd, vinkel mot mark, rollvinkel, rollhastighet, vindhastighet Terrängdatabas Terrängdata Beräkningsenhet i stolen Varning till piloten Signal till styrsystemet att styra undan från hinder Styrautomat Felaktighet: lyckas ej styra undan från hinder Felaktiga data: felaktiga terränghöjder felaktiga hinder Tidsberäkning 1) Tid att varna piloten för markhinder, piloten ska hinna reagera 2) Tid för piloten att styra flygplanet bort från hindret 3) Tid för flygplanets styrsystem att styra bort från hindret 4) Tid att hinna skjuta ut flygföraren automatiskt Skjut ut piloten automatiskt. Signal från programvaran Felaktiga data: felaktiga tider se sid FTA HAZ-27 13
FTA Resultat 1 SW se röd ruta Oavsiktlig utskjutning vid systemmod Underhåll (Uh) -27 Felaktig utskjutningsprocess & Felaktig kruttändning & Batteri monterat i stolen Elsäkringsvred osäkrat i kabin 10-2 Utskjutn. aktiverad Mekanisk låspinne EJ monterad 10-2 Spontan kruttändning Manuellt osäkrad Trasig Manuell utskjutning aktiverad Automatisk utskjutning aktiverad & Utskjutningshandtag aktiverad Utskjutningshandtag felar i aktivt läge Hårdvarufel Mellan 0 och 1 Signal från sidan 2 Programvarufel Fel på microswitch "Flygplanet i luften" (microswitch på landställ) Förhindra oavsiktlig aktivering av raketstol på marken 14
FTA Resultat 2: Programvara (en första variant) Programvarufel & BE har mod EJ UH BE ger felaktig utskjutningssignal BE = Beräkningsenhet UH = Underhåll T4 = tid till automatisk utskjutning BE i Sim-mod BE i skarp mod Fei i algoritm i BE, så tid T4 uppnådd BE får felaktiga indata så T4 = sant Felaktig hastighet Felaktigt avstånd Felaktig acceleration 15
FTA Resultat 3: Programvara (en andra variant) Programvarufel & Felaktig utskjutning Fel i BE-algoritm Fel i indata till BE Felaktiga terrängdata till BE Felaktiga NAV-data till BE Fel i terrängdatabas Fel i Position över marken Felaktig NAVberäkning BE = Beräkningsenhet TN = Tröghetsnavigering (Lasergyron) Felaktiga indata till NAV Felaktiga data från GPS / TN 16
FTA för programvara Sammanfattning + Utvärdering av programvarans bidrag till topphändelsen + Identifiering av de mest kritiska programdelarna och programfunktionerna + Indikation på var/hur risklindring kan åstadkommas 17