Biztonságkritikus rendszerek Rendszertervezés és -integráció előadás dr. Majzik István
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
© BME-MIT
Mik azok a biztonságkritikus rendszerek? A hibázás, azaz a specifikáció nem teljesítése balesethez, környezeti kárhoz vezethet Miért kell velük külön foglalkozni? o Speciális veszély analízis és követelmények • Mely funkciók, hibák vezethetnek balesethez? • Milyen biztonsággal teljesíthetők a követelmények?
o Speciális fejlesztési megoldások szükségesek • Redundáns architektúra, hibatűrés • Kockázatcsökkentési módszerek • Biztonságigazolás, szisztematikus tesztelés, ...
o Szabványok, előírások vonatkoznak a fejlesztésre • • • •
IEC 61508: DO 178B: EN 5012x: ISO 26262:
Programozható elektronikai rendszerek Repülőgép-fedélzeti beágyazott rendszerek Vasúti jelzőrendszerek Gépjármű elektronikai rendszerek biztonsága © BME-MIT
3.
Baleseti példák A320-211 balesete Varsóban (1993. szept. 14.) o Oldalszél: A bal kerék 9 másodperccel később ért földet, mint a jobb o Intelligens fékezés vezérlés: Kerekek terhelése + forgása is kell
o Késői fékezés túlfutás ütközés
Toyota gépkocsi balesete San Diegóban, 2009. aug. o Szőnyeg miatt beragadt gázpedál „padlógáz” o Miért nem volt elég hatásos • a fékezés? • a sebességváltó üresbe állítása (D N)? • a motor lekapcsolása? © BME-MIT
4.
Tapasztalatok balesetek elemzése alapján A baleset tipikusan összetett eseményszekvencia o Tervezési fázisban előre kellene látni
A baleset általában meghibásodás következménye o A detektálatlan hiba tipikusan veszélyt jelent o De előfordulhat veszély hibátlan működés esetén is
Biztonság a rendszer egészének tulajdonsága o Több lehet, mint mérnöki probléma (pl. ergonómia) o Tervezési folyamat során kell figyelembe venni o Új technológiák, új környezet elemzése szükséges © BME-MIT
5.
Néhány adat Biztonsági problémák javítása o „Toyota recalls 160,000 cars with hybrid engines due to a failure of its engine control software. (October 2005)” o „Nissan recalls 16,365 Murano and Infiniti EX 35 vehicles in February 2008 due to a software problem causing airbag failure.” o „Defibtech issues a worldwide recall of two of its defibrillator products due to faulty self-test software that may clear a previously detected low battery condition. The issue affects approximately 42,000 units worldwide. (2007)”
Biztonságkritikus szoftver fejlesztése o 5-10 mérnökév / kLOC fejlesztési ráfordítás o Ennek 45 - 75%-a az ellenőrzésre • 10 - 200 hiba / kLOC jön létre a fejlesztés során • 0,1 - 10 hiba / kLOC maradhat az üzembe helyezésig
o Példák: • US Space Shuttle fejlesztése: 3 millió kódsor, 3 milliárd USD • Vasúti szoftverek: 100 EUR / kódsor © BME-MIT
6.
Mivel foglalkozunk majd? 1. Követelmények o Biztonság, szolgáltatásbiztonság
2. Architektúra tervezés o Jellegzetes tervezési minták
3. Biztonsági és megbízhatósági analízis o Veszély analízis o Kockázatcsökkentés
4. Modellalapú tervezés o Verifikáció a tervezési folyamat során
© BME-MIT
7.
Biztonsági követelmények
© BME-MIT
9.
Terminológia Baleset (accident): Nemkívánatos, be nem tervezett sérülés, veszteség
Veszély (hazard), veszélyes állapot: Olyan állapot, amely adott környezeti feltételek mellett balesethez vezet
Kockázat (risk): Veszély jellemzése: következmény szintje + gyakorisága
Biztonság(osság) (safety): Balesetektől való mentesség (ideális eset!) Elfogadhatatlan kockázattól való mentesség
Biztonsági funkció ( rendszer, szoftver is): Veszélyes állapotokkal kapcsolatba hozható a hibás vagy hiányzó végrehajtása © BME-MIT
10.
Terminológia Olyan állapot, amely adott környezeti feltételek mellett balesethez vezet
Elfogadhatatlan kockázattól való mentesség (Ideális eset: Balesetektől való mentesség) Biztonság
Biztonsági funkció
Veszély
Nemkívánatos, be nem tervezett fizikai sérülés vagy egészségkárosodás
Baleset
Kockázat Veszély jellemzése: Következmény szintje + gyakorisága
Veszélyes állapotokkal kapcsolatba hozható a hibás vagy hiányzó végrehajtása © BME-MIT
11.
Kiindulás: Veszélyanalízis és kockázatelemzés gyakoriság
ok
trigger
veszély
szint
hatás
Biztonság: Elfogadhatatlan kockázattól való mentesség Kockázat: o Veszély következmény szintje és gyakorisága határozza meg
Milyen kockázat elviselhető? o Példa 1: Házak méretezése 50 év alatt >10% valószínűséggel előforduló földrengésre o Példa 2: Gátak méretezése a 100 éves legmagasabb vízállásra o Valószínűségi vagy gyakorisági megadások tipikusak © BME-MIT
13.
Előírások biztonsági funkciókra Biztonsági funkció kockázatelemzése alapján előírások adhatók o Nem folytonos üzemmód: A funkció meghívása esetén a veszélyt okozó hibajelenség valószínűségére o Folytonos üzemmód: Veszélyt okozó hibajelenség gyakoriságára • Elviselhető veszélygyakoriság: Tolerable Hazard Rate (THR)
THR kategóriák: Biztonságintegritási szint Ha 15 év az élettartam, akkor ez alatt kb. 750 berendezésből 1-ben lesz hiba
SIL
Biztonságkritikus funkció hibája / óra
1
10-6 THR < 10-5
2
10-7
3
10-8 THR < 10-7
4
10-9 THR < 10-8 © BME-MIT
THR <
10-6
Hiba nélküli működés >11.000 év??
14.
SIL meghatározás alapelve Veszélyes esemény gyakorisága
A VIZSGÁLT FUNKCIÓ
Rendszer biztonságintegritási szint
Veszély gyakoriság növekedés Kockázat Veszélyes esemény következménye
THR
SIL
Szoftver biztonságintegritási szint
4
4
3
3
2
2
1
1
0
0
Következmények súlyosságának növekedése
Kockázatelemzés -> Funkció THR -> Funkció SIL -> (Al)rendszer SIL
© BME-MIT
15.
Biztonsági követelmények Biztonsági követelmények specifikációja o Funkcionális biztonsági követelmények • Mit kell csinálnia a biztonsági funkciónak?
o Biztonságintegritási követelmények • Mi annak a bizonyossági foka, hogy a biztonságkritikus rendszer a biztonsági funkciót kielégítően megvalósítja adott feltételek és időtartam mellett? • Biztonságintegritási szintek: SIL 1, 2, 3, 4 (növekvő)
A biztonságintegritás teljesítésének ellenőrzése o Véletlen meghibásodásokra: • Számításokkal ellenőrizhető gyakoriság/valószínűség
o Szisztematikus meghibásodásokra (pl. szoftver): • Számításokkal nem ellenőrizhető valószínűség • Módszer- és eszközkészlet előírt a fejlesztés során © BME-MIT
16.
Biztonsági követelmények felépítése Rendszerkövetelmények specifikációja
Nem biztonsági követelmények
Biztonsági követelmények
Biztonsági követelmények specifikációja
Biztonságintegritási követelmények
Funkcionális biztonsági követelmények
Szoftver komponensek esetén Véletlen meghibásodási integritás
Szisztematikus meghibásodási integritás
© BME-MIT
Hardver komponensek esetén
17.
Példa biztonsági követelményre Fűrészgép, a forgó korong előtt védőráccsal o Tisztításhoz a védőrácsot fel kell húzni
Veszély analízis: Kezelőt baleset érheti tisztításkor, ha a motor be van kapcsolva o Ha a védőrácsot 10 mm-nél jobban felhúzzák, és a motor 1 másodperc alatt nem áll le o 20 gép van, 500-szor kell tisztítást végezni az élettartam alatt; ez alatt legfeljebb 1-szer elviselhető, hogy a leállítás ne működjön o Ha a leállítás nem működik, még nem feltétlenül okoz balesetet (a kezelő is óvatos és figyeli a motort)
Biztonsági funkció: Védőkapcsolás a motorhoz Funkcionális biztonsági követelmény: o Ha a védőrácsot 4 mm-re felhúzzák, a motort 0,8 s alatt leállítja
Biztonságintegritási követelmény: o A védőkapcsolás hibájának valószínűsége legyen kisebb, mint 10-4 © BME-MIT
18.
A szolgáltatásra vonatkozó további minőségi követelmények (A biztonság önmagában nem elég)
© BME-MIT
19.
A szolgáltatás használhatóságának jellemzése Jellegzetes szolgáltatásminőségi követelmények: o Megbízhatóság, rendelkezésre állás, adatintegritás, ... o Ezek a használat közben előforduló hibáktól is függenek (nem elég az előállítási folyamat jó minősége)
Összetett jellemző: Szolgáltatásbiztonság o Angol terminológia: Dependability o Definíció: Képesség olyan szolgáltatás nyújtására, amiben igazoltan bízni lehet • Igazoltan: elemzésen, méréseken alapul • Bizalom: szolgáltatás az igényeket kielégíti
o Mennyire kerülhetők el illetve kezelhetők a szolgáltatásokat érintő hibahatások? © BME-MIT
20.
Hibahatások Fejlesztési folyamat
• Tervezési hibák • Implementációs hibák
Működő termék
• Hardver hibák • Konfigurációs hibák • Kezelői hibák
Fejlesztési folyamat jellemzői: • Jobb minőségbiztosítás, jobb módszertanok • De növekvő bonyolultság, nehezebb ellenőrzés Szokásos becsült értékek 1000 kódsorra: • Jó kézi fejlesztés és tesztelés: <10 hiba marad • Automatizált fejlesztés: ~1-2 hiba marad • Formális módszerek használata: <1 hiba marad © BME-MIT
22.
Hibahatások Fejlesztési folyamat
• Tervezési hibák • Implementációs hibák
Működő termék
• Hardver hibák • Konfigurációs hibák • Kezelői hibák
Technológia korlátai: • Jobb minőségbiztosítás, jobb anyagok • De növekvő érzékenység Szokásos becsült értékek: • CPU: 10-5…10-6 hiba/óra • RAM: 10-4…10-5 hiba/óra • LCD: ~ 2…3 év élettartam © BME-MIT
23.
Hibahatások kiküszöbölése Fejlesztési folyamat
• Tervezési hibák • Implementációs hibák
Ellenőrzések a tervezés során
Működő termék
• Hardver hibák • Konfigurációs hibák • Kezelői hibák
Hibatűrés működés közben
© BME-MIT
24.
Szolgáltatásbiztonság alapjellemzői Rendelkezésre állás (availability): o Helyes szolgáltatás valószínűsége (közben hiba esetén javítás végezhető)
Megbízhatóság (reliability): o Folyamatosan helyes szolgáltatás valószínűsége (az első hibáig tekinthető megbízhatónak)
Biztonságosság (safety): o Elfogadhatatlan kockázattól való mentesség
Integritás (integrity): o Hibás változás, változtatás elkerülésének lehetősége
Karbantarthatóság (maintainability): o Javítás és fejlesztés lehetősége © BME-MIT
25.
Definíciók: Várható értékek Állapot particionálás s(t) rendszerállapot esetén
Javított rendszer esetén
o Hibamentes (Up) illetve Hibás (Down) állapotpartíció s(t)
U t
D u1
d1
u2
d2 u3
d3
u4
Várható értékek: o Első hiba bekövetkezése:
d4
u5
d5 ...
MTFF = E{u1}
(Mean Time to First Failure)
o Hibamentes működési idő:
MUT = MTTF = E{ui}
(Mean Up Time, Mean Time To Failure)
o Hibás működési idő:
MDT = MTTR = E{di}
(Mean Down Time, Mean Time To Repair)
o Hibák közötti idő:
MTBF = MUT + MDT
(Mean Time Between Failures) © BME-MIT
26.
Definíciók: Valószínűség időfüggvények Rendelkezésre állás: a(t) = P{ s(t) U } (közben meghibásodhat) Megbízhatóság: r(t) = P{ s(t’) U, t’
K r(t) t
0 © BME-MIT
27.
Készenlét tipikus követelményei Készenlét 99% 99,9% 99,99% („4 kilences”) 99,999% („5 kilences”) 99,9999% („6 kilences”) 99,99999%
Max. kiesés egy év alatt ~ 3,5 nap ~ 9 óra ~ 1 óra ~ 5 perc ~ 32 másodperc ~ 3 másodperc
Komponensekből felépített rendszer készenléte, ahol egy komponens készenléte 95%: 2 komponensből álló rendszer: 90% 5 komponensből álló rendszer: 77% 10 komponensből álló rendszer: 60% © BME-MIT
28.
Komponens jellemző (katalógusadat) Meghibásodási tényező (gyakoriság): (t) o A komponens mekkora valószínűséggel fog éppen t időpont környezetében elromlani, feltéve, hogy t-ig jól működött
(t)t = P{ s(t+t) D | s(t) U }, miközben t0 o Másképp is felírható, a megbízhatóság definíciója alapján: t
1 dr (t ) (t ) , r (t ) dt
o Elektronikai alkatrészekre: (t)
így r (t ) e
( t ) dt 0
Itt r (t ) e t
MTFF E U 1 r (t ) dt
Kezdeti hibák (gyártás utáni teszt)
0
1
Öregedési tartomány (elavulás)
t Használati tartomány © BME-MIT
29.
Példa: Egy DMI fejlesztése: Célkitűzés EVC: European Vital Computer (fedélzeti)
Mozdonyvezető
DMI
EVC
Jellegzetességek: Biztonságkritikus működés o Információ megjelenítése o Vezetői parancsok feldolgozása o Adatátvitel az EVC-hez Karbantartó központ
© BME-MIT
Biztonságos vezeték nélküli kommunikáció o Konfiguráció o Diagnosztika o Szoftver frissítés 30.
Példa: Egy DMI fejlesztése: Prototípus
© BME-MIT
31 31.
Példa: Egy DMI fejlesztése: Követelmények Biztonság: o Biztonságintegritási szint: o Biztonsági funkció elviselhető hibája óránként (Tolerable Hazard Rate):
SIL 2 10-7 <= THR < 10-6
Megbízhatóság: o Mean Up Time:
MUT > 5000 óra (5000 óra: ~ 7 hónap)
Rendelkezésre állás (készenlét): o A = MUT / (MUT+MDT), A > 0.9952 Hibás állapot: évenként kevesebb, mint 42 óra MDT < 24 óra, ha a fenti MUT biztosítható © BME-MIT
3232 32.
Mi befolyásolja a szolgáltatásbiztonságot? Hibaok: A hiba feltételezett oka
Érintett rendszer vagy komponens Hiba: Hibajelenséghez vezető állapot
Hibajelenség: A specifikációnak nem megfelelő szolgáltatás
Hibaok Hiba Hibajelenség hatáslánc példák: Hibaok
Hiba
Hibajelenség
Kozmikus sugárzás Hibás memóriacella Robotkar a falnak egy bitet átbillent a olvasása ütközik memóriában Programozó csökkentés helyett növel egy változót
Vezérlés ráfut, a változó értéke hibás lesz © BME-MIT
A számítás végeredménye rossz
33.
A meghibásodás jellemzői Hibaok Térbeli jellemzők Belső
Időbeli jellemzők
Külső
Fizikai (hardver)
Fizikai (környezet)
Tervezési (ált. szoftver)
Adat (bemenet)
Időleges (tranziens)
Állandósult
Szoftver hiba: Állandósult, tervezési hiba (szisztematikus meghibásodás) Hiba aktiválás a működési profil (bemenetek) függvénye © BME-MIT
34.
Eszközök a szolgáltatásbiztonság növelésére Hiba megelőzés: Hibaok megakadályozása o Fizikai hibák: Jó minőségű alkatrészek, árnyékolás,... o Tervezési hibák: Jó fejlesztési módszerek
Hiba megszüntetés: o Tervezési fázis: Ellenőrzések (verifikáció, validáció) o Prototípus fázis: Tesztelés, diagnosztika, javítás
Hibatűrés: Szolgáltatást nyújtani hiba esetén is o Működés közben: Hibakezelés, redundancia aktiválás
Hiba előrejelzés: Hibák és hatásuk becslése o Mérés és „jóslás”, ez alapján megelőző karbantartás © BME-MIT
35.
Biztonságkritikus rendszerek fejlesztése
© BME-MIT
36.
Ismétlés: Biztonsági követelmények Funkcionális és biztonságintegritási követelmények o Meghatározás: Kockázatelemzés alapján o Biztonságintegritási szint: SIL 1, 2, 3, 4 • Folyamatos működés: Veszélyt okozó hibajelenség gyakorisága • Nem folyamatos: Veszélyt okozó hibajelenség valószínűsége
A SIL követelmény teljesítésének ellenőrzése o Véletlen meghibásodásokra: • Számításokkal ellenőrizhető gyakoriság/valószínűség
o Szisztematikus meghibásodásokra (pl. szoftver): • Számításokkal nem ellenőrizhető valószínűség • Módszer- és eszközkészlet előírt a fejlesztés során
© BME-MIT
37.
A szabványok szerepe Teljes hibamentesség nem garantálható komplex rendszer (pl. szoftver) esetén o Cél: Bennmaradó hibák számának csökkentése
Szisztematikus meghibásodásokra: Komplex „megoldás-csomag” az egyes biztonságintegritási szintekhez 1. Fejlesztési folyamat (életciklus modell) 2. Előírt technikák és intézkedések (megoldás-csomag) • Egy-egy szabványban 50-100 módszer (+kombinációjuk)
3. Előírt dokumentáció 4. Szervezeti rend (felelősségek) © BME-MIT
38.
1. A fejlesztési folyamat Általában jól definiált fázisokat tartalmaz o Előre definiált fejlesztési lépések o Jól meghatározott specifikáció, ismert környezet
Szigorú feltételekhez kötött előrelépés: Hangsúlyos a fejlesztési lépések ellenőrzése o Hibák kockázata nagy (felelősség) o Üzembehelyezés utáni javítás költsége nagy o Hatósági engedélyezés szükséges
Szabványokban ajánlott fejlesztési folyamat o Jellegzetes az ún. V modell © BME-MIT
39.
Ellenőrzések tervezése a V-modellben Üzemeltetés, karbantartás
Követelmények elemzése
Rsz. validáció tervezés
Rendszer specifikálás
Architektúra tervezés
Modul tervezés
Rendszerteszt tervezés
Integrációs teszt tervezés
Modul teszt tervezés
Rendszer validáció
Rendszer verifikáció
Rendszer integrálás
Modul verifikáció
Modul implementáció
© BME-MIT
40.
A verifikáció és validáció szerepe Verifikáció (igazolás):
Egy fejlesztési lépés eredménye megfelelő-e: Tervek (formális) ellenőrzése, szimuláció, tesztelés
o Jól fejlesztem-e a rendszert?
Validáció (érvényesítés):
A rendszer megfelel-e a felhasználói elvárásoknak: Tesztelés (használati környezetben), mérések
o Jó rendszert fejlesztettem-e? validáció
Követelmények t1
verifikáció
Specifikáció Tervek
verifikáció
Rendszer
Rendszer
Modulok
Implementáció © BME-MIT
41.
Tesztelés
2. Módszerek és intézkedések megadása MÓDSZER / INTÉZKEDÉS
Említés helye
SWSIL0
SWSIL1
SWSIL2
SWSIL3
SWSIL4
1. Valószínűségi tesztelés
B47
-
R
R
HR
HR
2. Teljesítmény tesztelés
D6
-
HR
HR
M
M
3. Funkcionális és “fekete doboz” tesztelés
D3
HR
HR
HR
M
M
4. Modellezés
D5
-
R
R
R
R
Követelmény: 1. Az 1, 2, 3 és 4 szoftver-biztonságintegritási szintek esetén a 2. és 3. módszer kombinációja jóváhagyottnak tekintendő.
Előírások: M HR R – NR
Kötelező Nyomatékosan ajánlott (elhagyása indoklást igényel) Ajánlott (kombinációból kihagyható) Nincs javaslat vagy ellenérv Ellenjavallt (használata indoklást igényel)
Módszerkombinációk választhatók © BME-MIT
42.
Példa: A technikák további finomítása Funkcionális és fekete doboz tesztelés (D3):
Teljesítmény tesztelés (D6):
© BME-MIT
43.
Példa: Módszerek és intézkedések megadása IEC 61508: Functional safety in electrical / electronic / programmable electronic safety-related systems
Példa: Szoftver architektúra tervezés © BME-MIT
44.
3. A dokumentáció követelményei Dokumentáció típusa o Átfogó (pl. fejlesztési terv, verifikációs terv) o Életciklus fázishoz kötődő (pl. teszt jelentés)
Dokumentum kereszt-referencia táblázat o Melyik életciklus fázishoz milyen dokumentáció o Dokumentumok egymásra épülése
Dokumentumok követhetősége szükséges o Ugyanazon terminológia, rövidítések, elnevezések
Dokumentumok összevonhatók o Részlet nem veszhet el o De független szereplők dokumentumai nem vonhatók össze © BME-MIT
45.
Példa: Előírt dokumentáció (EN50128) Szoftvertervezési fázis Szoftverfejlesztési terv Szoftver-minőségbiztosítási terv Szoftverkonfiguráció menedzselési terv Szoftverigazolási terv Szoftverintegrációs tesztterv Szoftver/hardver-integrációs tesztterv Szoftverérvényesítési terv Szoftver-karbantartási terv
Rendszerfejlesztési fázis Rendszerkövetelmény-specifikáció Rendszerbiztonsági követelményspecifikáció Rendszerarchitektúra-leírás Rendszerbiztonsági terv
Szoftverkövetelmény-specifikációs fázis Szoftverkövetelmény-specifikáció Szoftverkövetelmény-tesztspecifikáció Szoftverkövetelmény-igazolójelentés
Szoftver karbantartási fázis Szoftver karbantartási jegyzőkönyvek Szoftver változtatási jelentések Szoftverértékelési fázis Szoftverértékelési jelentés
Szoftverérvényesítési fázis Szoftverérvényesítési jelentés
Szoftver/hardver-integráció fázisa Szoftver/Hardver-integrációs tesztjelentés
Szoftver architektúra és kialakítási fázis Szoftverarchitektúra-specifikáció Szoftverkialakítási specifikáció Szoftver architektúra és kialakítási igazolójelentés
Szoftvermodul kialakítási fázis Szoftvermodul-tervezési specifikáció Szoftvermodul-tesztspecifikáció Szoftvermodul-igazolójelentés
EN 50128: kb. 30 dokumentum!
Szoftverintegráció fázisa Szoftverintegrációs tesztjelentés
Szoftvermodul tesztelési fázis Szoftvermodul-tesztjelentés
Kódolási fázis Szoftver forráskód és támogató dokumentáció Szoftver forráskód-igazolójelentés
© BME-MIT
46.
4. Szervezeti rend Minőségi illetve biztonsági szervezet létrehozása – a biztonságmenedzselés bizonyítása o ISO 9001 vonatkozó részeinek alkalmazása o Konfigurációmenedzselés
Képzettség (alkalmasság) igazolása Szerepkörök: o TER: o VER: o VAL: o ÉRT: o MGR: o MIN:
Tervező (elemző, tervező, kódoló, unit tesztelő) Verifikátor (igazoló) Validátor (érvényesítő) Értékelő (független felülvizsgáló) Projekt menedzser Minőségbiztosítási felelős © BME-MIT
47.
Példa: Minimális függetlenség követelményei SIL 0:
Szervezet
Személy ÉRT
TER, VER, VAL
SIL 1 és 2: ÉRT TER
SIL 3 és 4:
VER, VAL
MGR
ÉRT TER
vagy:
VER, VAL
MGR ÉRT TER
© BME-MIT
VER
VAL
48.
Összefoglalás Biztonságkritikus rendszerek alapfogalmai o Veszély, kockázat o THR és biztonságintegritási szintek
Szolgáltatásbiztonság o Jellemzők o Hibaok -> hiba -> hibajelenség hatáslánc o Eszközök a szolgáltatásbiztonság növelésére
Fejlesztési folyamat specialitásai o Módszerek és technikák o Életciklus és dokumentáció: Jól meghatározott fázisok o Szervezeti rend © BME-MIT
49.