Biztonsági folyamatirányító rendszerek szoftvere
1
Biztonsági folyamatirányító rendszerek szoftvere
Tartalom • Szoftverek szerepe a folyamatirányító rendszerekben • Szoftverek megbízhatósága • Szoftver életciklus • Biztonsági szoftverekkel szemben támasztott követelmények • Szoftverírás • Tesztelés 2
Szoftverek szerepe a folyamatirányító rendszerekben
Programozott irányítórendszerek – Célgépek • Nincs operációs rendszer • Egyszerű szoftver
• Pl. egy-chipes mikrokontrollerek
– Univerzális alkalmazású rendszerek • Moduláris hardver (általában kártya rendszerű)
• Tagolt szoftverfelépítés
3
Tagolt szoftverfelépítés KONFIGURÁCIÓ Az adott alkalmazási hely konfigurációja; általában adatbázis ALKALMAZÓI/FELHASZNÁLÓI SZOFTVER
Alkalmazás-specifikus funkciók, pl. általános jelzőlámpa vezérlés OPERÁCIÓS RENDSZER
A folyamatirányítással kapcsolatos általános alapfunkciók
4
Az operációs rendszer feladatai A folyamatirányító rendszerek szoftvere általában ciklikus működésű:
INICIALIZÁLÁS
BEMENETEK BEOLVASÁSA FELDOLGOZÁS
KIMENETEK KIÍRÁSA
5
Szoftverek megbízhatósága • A szoftver akkor működőképes – és így biztonságos –, ha a követelményeket (specifikáció) jól fogalmaztuk meg, és a megvalósítás (implementáció) is helyes. • A szoftverek megbízhatósága (helyes működésének valószínűsége) független az időtől (amennyiben nem változtattuk meg).
• Szoftverek esetében nem beszélhetünk meghibásodásról: • A szoftver megbízhatóságát „csak” az eredeti, szisztematikus, specifikációs, tervezési és megvalósítási hibák csökkentik. • A szoftvert tároló alkatrész meghibásodása hardvermeghibásodás. • DE! Emberi beavatkozással egy jó szoftvert is el lehet rontani, például: • Újra-bekerülési hiba: átlagosan minden harmadik 6 hibajavítással újabb hibát idézünk elő.
VERIFIKÁCIÓ
VALIDÁCIÓ
Szoftver-életciklus
1
SPECIFIKÁCIÓ
2
SZOFTVER TERVEZÉS
3
KÓDOLÁS
4
KARBANTARTÁS • Hibák javítása • Módosítások
A szoftver feladatának meghatározása
7
Követelmények a biztonsági szoftverekkel szemben Cél: hibamentesség. Szoftver-megbízhatóságot növelő módszerek
– Jól strukturáltság – Moduláris felépítés – Áttekinthetőség – szükséges az ellenőrzéshez is – Modulonként kevés be/kimenet (lehetőleg 1-1) könnyű tesztelni – Jól definiált interfészek – Feltétel nélküli ugrások (GOTO) kerülése – Tesztelhetőség kialakítása – „tesztelés-barát tervezés” – Jól dokumentáltság – Funkciók leírása – Interfészek leírása – Nem-biztonsági részek: arra kell ügyelni, hogy a nem-biztonsági rész semmilyen módon ne legyen hatással a biztonsági részekre – visszahatásmentesség. 8
Szoftverírás • Programozási koncepciók – Defenzív programozás: számítok arra, hogy a programozás során hibákat fogok elkövetni. • Passzív ellenőrzések: pl. ellenőrző összegek, hihetőségvizsgálat • Aktív ellenőrzések: adatáramlástól független ellenőrzés, így tesztelhetők a ritkán aktív lefutási ágak is.
– CASE: Computer Aided Software Engineering • Automatikus programgenerátorok: a generátor program helyességét kell bizonyítani.
9
Szoftver tesztelés • Az eredeti hibák kiküszöbölésének leggyakoribb eljárása a hibaeltávolítás. Lépései: – tesztelés – diagnózis – javítás.
• Tesztelés – Statikus: a rendszer működtetése nélküli tesztelés. Ez végrehajtható • a rendszeren magán vagy • a rendszer alkalmas modelljén végrehajtott vizsgálatokkal. – Dinamikus tesztelés: a rendszer működtetése révén • megfelelőségi tesztek / pozitív tesztek • hibakereső tesztelés • funkcionális/black boksz tesztek és strukturális tesztek 10
Biztonsági architektúrák • 1 hardver, 1 szoftver – Lehet, h. a szoftver jól van megírva, – de a hardver véletlen hibái ellen semmi nem véd.
A
Biztonsági architektúrák • 1 hardver, 2 szoftver – Két különböző (diverz) szoftver fut (A és B) ugyanazon a gépen. – Két szoftver futhat párhuzamosan, vagy egymás után. – Az összehasonlító felfedi, ha a két szoftver mást mond felfedhetők a specifikációs és programozási hibák – Mivel a két program eltérő, ezért egy HW hiba nem egyformán hat a két szoftverre, így a véletlen HW hibák is felfedhetők
• Pl. Ebilock (svéd) elektronikus bb.
A B ÖH
Biztonsági architektúrák • 2 hardver, 1 szoftver – 2-ből 2 rendszer (2v2) – Véd a hardver véletlen meghibásodásai ellen – A szoftvert „eleve jóra” kell készíteni, mert az architektúra nem véd a specifikációs és programozási hibák ellen.
• Pl. Siemens SIMIS-elv
A
A
ÖH
Simis-elv 2v2 konfiguráció Data input
Microcomputer 1
Microcomputer 2 Input
Input
Data exchange
Data exchange
Processor
Processor Synchronisation
Synchronisation
Memory
Memory Comparison
Output
Channel 1
Comparison
Output
Channel 2
• • • •
2 mikroszámítógép óraszinkron utasításszinkron a mikroszámítógépektől független 2 összehasonlító • összehasonlítja a kimeneteket és a • processzor tartalmakat (memóriát)
Biztonsági architektúrák • 2 hardver, 2 szoftver – Az architektúra véd a véletlen hardver hibák ellen és – a szoftver hibák ellen. – A két csatornában eltérő specifikációval, eltérő programnyelven kifejlesztett programok futnak
• Pl. Thales Elektra
A
B
ÖH
Rendelkezésre állás •
•
Az eddig bemutatott architektúrák biztonságosak ugyan, de már egy hiba esetén is működésképtelenek. Módszerek a rendelkezésre állás növelésére: 1. Tartalékolás – – –
Egycsatornás rendszer: redundancia 2v2 2×(2v2) (pl. SIMIS IS: SIMIS PC) 2v2 2v3 (pl. SIMIS IS: ECC számítógépek)
2v3 • • • • •
3 mikroszámítógép 6 független összehasonlító egység a 3. csatorna is aktív hiba esetén a hibás csatorna/modul leáll tovább működik 2v2 rendszerként
Data input
Microcomputer A
Microcomputer B Input
Data exchange
A
Microcomputer C Input
Data exchange
Data exchange
Input
Data exchange
Data exchange
Data exchange
B
A B
Processor
Memory
Synchronisation
C
Processor
Memory
Synchronisation
Processor
Memory
Synchronisation
C
D
D Comparison
E
Comparison
Comparison
Comparison
Comparison
Output
Output
Output
&
&
&
Channel A
• • • • •
Comparison
Channel B
3 mikroszámítógép 6 független összehasonlító egység a 3. csatorna is aktív hiba esetén a hibás csatorna/modul leáll tovább működik 2v2 rendszerként
Channel C
E
SIMIS PC • 2×(2v2) diverz számítógéprendszer • Kereskedelmi forgalomban kapható számítógépek és operációs rendszerek – AMD, Intel alaplap/processzor – Win2000, Linux operációs rendszerek – a diverzitás, és az ECC-kben való összehasonlítás miatt lehetséges ezek alkalmazása
• Összehasonlítás az ECC-kben történik (időablakkal)
SIMIS PC SIMIS PC 2 x 2-ből 2 rendszer
STOP
STOP
STOP
RUN
RUN
RUN
DEL PB
ECC-CU
SIEMENS
SIEMENS
DEL PB
ECC-CU
SIEMENS SIEMENS
STOP
STOP
STOP
STOP
STOP
SIEMENS
STOP
STOP
PSS ERR
PSS ERR
PSS ERR
PSS ERR
PSS
ERR
PSS
ERR
PSS
ERR
F1 - F8
F1 - F8
F1 - F8
F1 - F8
F1 - F8
M2+
M1+
M2+
M1+
M2+
M1+
DEL PB
ECC-CU
STOP
PSS ERR
F1
F1
F2
F2
F3
F3
F4
F4
F5
F5
F6
F6
F7
F7
F8
F8
SOM
SIEMENS
SOM
SIEMENS
F1
F1
F1
F2
F2
F2
F3
F3
F3
F4
F4
F4
F5
F5
F5
F6
F6
F6
F7
F7
F7
F8
F8
F8
SOM
SIEMENS
SOM
SIEMENS
SOM
SIEMENS
M2-
M1-
M2-
M1-
M2-
M1-
HS2
HS1
HS2
HS1
HS2
HS1
L
R
SHIFT
RUN
POM
SIEMENS
L
R
SHIFT RUN
POM
SIEMENS
L
R
SHIFT
RUN
STOP
STOP
RUN
RUN
RUN
DEL PB
ECC-CU
POM
SIEMENS
STOP
SIEMENS
SIEMENS
DEL PB
ECC-CU
SIEMENS SIEMENS
STOP
STOP
STOP
STOP
STOP
SIEMENS
STOP
PSS ERR
PSS ERR
PSS ERR
PSS ERR
PSS
ERR
PSS
F1 - F8
F1 - F8
F1 - F8
F1 - F8
F1 - F8
M2+
M1+
M2+
DEL PB
ECC-CU
STOP
PSS ERR
F1
F1
F2
F2
F3
F3
F4
F4
F5
F5
F6
F6
F7
F7
F8
F8
SOM
SIEMENS
SOM
SIEMENS
F1
F1
F1
F2
F2
F2
F3
F3
F3
F4
F4
F4
F5
F5
F5
F6
F6
F6
F7
F7
F7
F8
F8
F8
SOM
SIEMENS
SOM
SIEMENS
SOM
SIEMENS
STOP
ERR
M1+
PSS
ERR
M2+
M1+
M2-
M1-
M2-
M1-
M2-
M1-
HS2
HS1
HS2
HS1
HS2
HS1
L
R
L
R
L
R
SHIFT
RUN
SHIFT
RUN
SHIFT RUN
POM
SIEMENS
POM
POM
SIEMENS
SIEMENS
EIM ECC 3-ból 2 rendszer
• 2×(2v2) diverz számítógéprendszer • Kereskedelmi forgalomban kapható számítógépek és operációs rendszerek
– AMD, Intel alaplap/processzor – Win2000, Linux operációs rendszerek – a diverzitás, és az ECC-kben való összehasonlítás miatt lehetséges ezek alkalmazása
• Összehasonlítás az ECC-kben történik (időablakkal)
Alcatel – ELEKTRA 1 • Két diverz szoftver csatorna • A két csatornában lévő gépeknek egyenként van 2-es vagy 3as redundanciájuk • A biztosítóberendezés szintekre oszlik: – Kezelés/visszajelentés – Központi szint – Perifériavezérlés
• Az egyes számítógépek és a perifériavezérlőket pont-pont kábelezés köti össze • Hardverbázis: 486-os processzorok • Vágányúti logika: táblázatos, vágányutas elvű
ELEKTRA Rendszerfelépítés
kezelőfelület
kapcsoló
2×
VCA
VCB
2×
CCB
3×
PCB
2×
VOTRICS
3×
CCA VOTRICS
2×
PCA
Perifériavezérlő kártyák