• polski
    • angielski
Definiowanie Poziomów Nienaruszalności Bezpieczeństwa w oprogramowaniu

UDOSTĘPNIJ

Definiowanie Poziomów Nienaruszalności Bezpieczeństwa w oprogramowaniu

Autor: Maciej Gajdzica (Senior Software Developer)

Zachowanie najwyższego poziomu bezpieczeństwa systemu wiąże się ze znacznym wzrostem kosztów i wydłużeniem czasu developmentu. Jak balansować nakłady na systemy krytyczne – wyjaśnia Maciej, specjalista od oprogramowania, od którego zależy ludzkie życie.

safety-critical-med

Zachowanie najwyższego poziomu bezpieczeństwa systemu wiąże się ze znacznym wzrostem kosztów i wydłużeniem czasu developmentu. Z drugiej strony nie każdy system jest tak samo krytyczny, a nawet w ramach jednego systemu można wyróżnić kilka podsystemów o różnym poziomie wymaganego bezpieczeństwa. Na przykład w samochodzie awaria systemu hamulcowego będzie miała dużo poważniejsze konsekwencje niż awaria radia. Rozwijanie wszystkich podzespołów z zachowaniem tak samo rygorystycznych standardów byłoby nieefektywne i niepotrzebne.

 

Dlatego właśnie w systemach safety-critical zdefiniowano poziomy bezpieczeństwa. Norma IE61508 opisująca zasady wytwarzania systemów elektronicznych związanych z bezpieczeństwem definiuje cztery poziomy SIL (Safety Integrity Level – po polsku Poziom Nienaruszalności Bezpieczeństwa).

 

  • SIL4 – W przypadku awarii zagrożone jest życie wielu ludzi.
  • SIL3 – W przypadku awarii zagrożone jest życie jednej osoby.
  • SIL2 – W przypadku awarii istnieje zagrożenie zagrożenie poważnego uszczerbku na zdrowiu.
  • SIL1 – W przypadku awarii istnieje zagrożenie niewielkiego urazu.

 

Dla każdego poziomu zdefiniowane zostały dopuszczalne poziomy prawdopodobieństwa wystąpienia niebezpiecznego wypadku:

sil-safety-critical

PFH (Probability of dangerous failure per hour) oznacza prawdopodobieństwo wystąpienia niebezpiecznego błędu na godzinę, a PFD (Probability of dangerous failure on demand) oznacza prawdopodobieństwo niebezpiecznego błędu przy pracy na żądanie.

 

Liczby te oznaczają, że dla poziomu SIL4 przy pracy ciągłej jeżeli mamy 1000 urządzeń, które działają przez 10 lat bez przerwy, dozwolone jest wystąpienie jednego niebezpiecznego błędu. I oczywiście nie każdy niebezpieczny błąd musi się kończyć wypadkiem.

 

Wytyczne z normy IEC61508 stały się podstawą dla innych norm regulujących różne gałęzie przemysłu. Mamy więc normę kolejową DO-178 definiującą poziomy DAL (Design Assurance Level):

DAL-safety-critical

W branży samochodowej mamy poziomy ASIL (Automotive Safety Integrity Level) zdefiniowane w normie ISO26262, gdzie ASIL A odpowiada SIL 1 z EIC61508, a ASIL D odpowiada SIL 4. W branży medycznej oznaczenia są nieco inne. Zostały zdefiniowane w normie EN62304:

Poziom bezpieczeństwa tworzonego przez nas systemu wyznaczamy po przeanalizowaniu wymagań związanych z bezpieczeństwem i dokonaniu analizy ryzyka. Jeżeli w ramach jednego systemu wydzielimy kilka podsystemów o różnych poziomach bezpieczeństwa, musimy udowodnić, że błąd występujący w komponencie o niższym poziomie bezpieczeństwa nie będzie miał negatywnego wpływu na komponent bardziej krytyczny.

 

Dlatego nie jest możliwe przydzielenie różnych poziomów bezpieczeństwa dwóm fragmentom programu wykonującym się na tym samym procesorze. W celu zapewnienia odpowiedniej separacji musimy stosować techniki wirtualizacji, a najlepiej przenosić mniej krytyczne moduły na inny procesor.

 

Jeśli szukasz ekspertów w dziedzinie systemów wbudowanych, chcesz rozwijać swoje oprogramowanie, lub potrzebujesz wsparcia w przejściu produktu przez proces certyfikacji napisz do nas.

 

Dla jednego z naszych klientów zrealizowaliśmy oprogramowanie firmware spełniające wymagania poziomu nienaruszalności SIL4 i norm ISO50128, ISO50159.  -> Czytaj więcej!