Współczesne systemy krytyczne wymagają zaawansowanych rozwiązań zapewniających bezpieczeństwo, a ich weryfikacja i kwalifikacja przed dopuszczeniem do eksploatacji jest złożonym zadaniem. Rozwiązaniem ułatwiającym efektywne zapewnienie i weryfikację wymaganego poziomu bezpieczeństwa jest zastosowanie safety assurance case (argumentacji bezpieczeństwa).
Po co i dla kogo jest assurance case?
Assurance case to uporządkowana, logiczna argumentacja mająca na celu wykazanie, że dany system, produkt lub proces spełnia określone wymagania bezpieczeństwa, niezawodności lub zgodności z normami. Słowo „argumentacja” brzmi może groźnie, ale to po prostu sieć powiązań pomiędzy celami, dotyczącymi bezpieczeństwo czy zgodności, wymaganiami, a dokumentacją dowodzącą osiągnięcie tych celów. Te powiązania odpowiadają na pytanie „jak to osiągnęliście?”, czyli główne pytanie osób prowadzących kwalifikację systemu. W każdym miejscu assurance case, gdzie są określone jakieś cele lub wymagania, znajdziecie powiązania prowadzące do wyjaśnienia, jak zostały one osiągnięte oraz jaka dokumentacja i zapisy to pokazują. Układ informacji assurance case jest zorientowany na weryfikację systemu, co jest oczywiście użyteczne podczas weryfikacji i kwalifikacji systemu, ale jednocześnie jest też użyteczne dla twórców, którzy mogą sami weryfikować wyniki swojej pracy.
Koncepcja stosowania assurance case powstała w latach 90-tych poprzedniego wieku. Pierwszą organizacją stosującą systematycznie assurance case była armia Wielkiej Brytanii. Pierwszym standardem wymagającym stosowania jawnej argumentacji bezpieczeństwa był UK MOD Defence Standard 00-56 wydany w roku 2007. Jedne z pierwszych znanych zastosowań assurance case dotyczyły śmigłowców i samolotów myśliwskich. Brytyjczycy byli też liderami we wprowadzaniu assurance case do praktyki przemysłowej.
Współcześnie jest wlele standardów zalecających
lub wymagających stosowania assurance case,
na przykład w przemyśle:
- motoryzacyjnym (ISO 26262, UL4600),
- lotniczym (ARP4761, DO-178C),
- kolejowym (EN 50129),
- nuklearnym (IAEA SSR-2/1),
- systemów medycznych
(IEC 62304, ISO/TS 81001-2-1), - cyberbezpieczeństwa (ISO/IEC 15408)
- oraz AI (ISO/PAC 8800).
Jakie są korzyści stosowania assurance case?
Organizacja danych w assurance case pozwala na jawne połączenie celów kwalifikacji systemu czy wymagań bezpieczeństwa z dokumentacją. To odpowiada potrzebom certyfikatorów i osób prowadzących weryfikacje, bo zapewnia przejrzystość, uzasadnienia i łatwość weryfikacji. Jednocześnie też łatwe do identyfikacji są wszelkie luki i braki.
Główne korzyści stosowania assurance case w rozwoju i kwalifikacji systemów krytycznych to:
- Lepsza przejrzystość – jest jasno pokazane, dlaczego system uznaje się za bezpieczny i gdzie są luki, dzięki czemu mniejsze jest ryzyko błędnych decyzji.
- Redukcja kosztów i ryzyka – wcześniejsze wykrywanie problemów prowadzi do ograniczenia kosztownych późnych napraw błędów czy usuwania konsekwencji awarii.
- Lepsza komunikacja – assurance case łączy informacje wszystkich zaangażowanych osób niezależnie od ich specjalizacji, tworzy to platformę komunikacji między inżynierami, audytorami i kadrą zarządzającą.
- Wsparcie decyzji zarządczych – wspiera podejmowanie świadomych decyzji na podstawie uporządkowanych argumentów i dowodów.
- Zgodność regulacyjna – pomaga wykazać spełnienie norm i wymagań audytowych, a poziom gotowości do kwalifikacji jest łatwy do ciągłego monitorowania
- Kontrola zmian – dzięki jawnym powiązaniom w assurance case łatwiej jest ocenić wpływ zmian na bezpieczeństwo systemu.
Jak to działa?
Assurance case jest tak ceniony w kwalifikacji systemów krytycznych, bo odpowiada na problem, z którym mierzą się regulatorzy: jak w sposób przejrzysty, uzasadniony i weryfikowalny wykazać bezpieczeństwo złożonego systemu. Kluczowe są następujące cechy podejścia:
- Argumentacja prezentuje powiązanie celów (nazywanych ‘claim’ w assurance case) z dowodami (evidence) poprzez jawnie opisane uzasadnienia. Dzięki temu wszystkie informacje związane z poszczególnymi celami bezpieczeństwa są ze sobą jawnie powiązane. Całość dokumentacji bezpieczeństwa stanowi spójny i weryfikowalny zbiór informacji o bezpieczeństwie systemu. Zapewniona jest identyfikowalność (traceability)., w tym dla każdego wymagania bezpieczeństwa można wskazać powiązane dowody, a dla każdego dowodu można wskazać wymagania i cele bezpieczeństwa. Każdy element assurance case jest po coś, te powiązania są jawnie określane. To daje certyfikatorom przejrzystość i dobre możliwości weryfikacji bezpieczeństwa. Łatwiej jest wykryć wszelkie luki w rozumowaniu.
- Assurance case pozwala utworzyć jedną spójną całość obejmującą całą dokumentację związaną z bezpieczeństwem czy innymi celami. Żadne dokumentacja nie jest nigdy kopiowania, ale assurance case buduje odwołania dla pokazania logicznych powiązań. Powiązania te obejmują analizy bezpieczeństwa (FTA, FMEA), projektowanie i testy, formalne dowody i wyliczenia inżynierskie, badania w środowisku docelowym czy procedury operacyjne. Łączone są wszystkie punkty widzenia i technologie – oprogramowanie, sprzęt i sieci oraz mechanika. Dzięki hierarchicznej strukturze możliwe jest zarówno szczegółowe raportowanie, jak i raportowanie zbiorcze wysokiego poziomu dla kierownictwa. Wszyscy mogą mieć aktualne informacje o stanie zapewnienia bezpieczeństwa systemu z jednego, spójnego źródła.
- Wymagane jest też jawne określanie założeń i ograniczeń. Wszelkie „ukryte założenia” są wyjaśniane. Działania te są prowadzone w systematyczny sposób, dzięki czemu ocena bezpieczeństwa systemu jest bardziej wiarygodna. Jednocześnie prowadzone jest zarządzanie gromadzoną dokumentacją dowodów bezpieczeństwa oraz analiza luk. Spójna i aktualna argumentacja wraz z dowodami daje wiarygodną podstawę do certyfikacji systemu.
- Narzędzia wspierające assurance case stosują zasady zarządzania konfiguracją, wersjonowania i zarządzania zmianami. Assurance case żyje przez cały czas realizacji oraz eksploatacji systemu. Narzędzia mogą kontrolować, które dowody lub fragmenty argumentacji wymagają aktualizacji. Gdy są stosowane technologie DevOps, assurance case może być też aktuzowane automatycznie w pipeline CI/CD. Ważne jest, aby reprezentować aktualny stan wiedzy o bezpieczeństwie systemu
- Assurance case można budować dzieląc je na moduły z jawnie określonymi interfejsami. Umożliwia to dobre skalowanie dla dużych systemów oraz podział pracy między zespołami. Jednocześnie struktura assurance case jest dostosowywane do faz procesu rozwoju systemu. Punkty kontrolne i kamienie milowe są realizowane jako jawnie określone etapy w assurance case.
Podsumowując, assurance case zamienia stos dokumentów w spójną i weryfikowalną argumentację bezpieczeństwa. Daje to przejrzystość, która ułatwia audytowanie, redukuje nieporozumienia i przyspiesza kwalifikację. Jawna struktura powiązań i relacji daje też możliwości sprawnego zarządzania zmianami.
Czym technicznie jest assurance case?
Assurance case to ogranizacja danych w formie zrozumiałek dla użytkownika argumentacji, gdzie użytkownik może swobodnie przechodzić od definicji celów danej argumentacji, poprzez kroki pośrednie, do dokumentacji dowodowej, że dane cele zostały osiągnięte.
Assurance case to cała metoda budowy argumentacji opisana w standardach, takich jak ISO 15026. Elementem metody jest stosowanie diagramów do prezentacji argumentacji i powiązań. Popularną formą prezentacji argumentacji są diagramy GSN zdefiniowane w GSN Community Standard.
- Prostokąty (kolor niebieski w diagramie poniżej) to twierdzenia (claims), dla których ma być przedstawiona argumentacja oraz dowody.
- Dla twierdzeń podawane są dodatkowe informacje definiujące kontekst (context) – elementy z szarym tłem. Może to być na przykład dokumentacja systemu, standardy i regulacje prawne.
- Elementy pomarańczowe przedstawiają logikę argumentacji: strategię realizacji oraz uzasadnienie.
- Okragłe elementy (kolor zielony) to odwołania do dowodów. Dowodem może być dokumentacja lub wszelkie formy zapisów.
Proces stosowania assuarance case
Assurance case jest zwykle tworzony i rozwijany przez cały czas cyklu życia systemu, od fazy koncepcji, do wycofania systemu w użytkowania. Kamienie milowe tego procesu są zwykle związane w etapami weryfikacji lub kwalifikacji systemu. Dodatkowo, jeżeli system jest modyfikowany, z każdą wersją systemu powinna być związania wersja assurance case.
Kilka etapów życia assurance case jest typowych i spotykanych we wszystkich branżach:
- Koncepcja systemu – assurance case określa zakres argumentacji: system, specyfikę jego stosowania, wymogi regulacji i standardów, cele bezpieczeństwa.
- Projekt systemu – uwzględnienie wyników analizy ryzyka oraz decyzji projektowych. Ten etap mówi nam najwięcej jakie dowody (evidence) będą stosowane
- Implementacja i integracja – argumentacja powinna wykazywać osiągnięcie celów produkcyjnych. W przypadku zmian projektowych w tym etapie mamy już potrzebę zarządzania zmianami i wersjonowania argumentacji
- Weryfikacja i walidacja – teraz argumentacja jest uzupełniana o główne dowody potwierdzające bezpieczeństwo, jakość i zgodność systemu
- Przygotowanie do kwalifikacji / certyfikacji – końcowe przeglądy i aktualizacje, aby przygotować zamrożoną wersję assurance case do formalnej akceptacji
- Utrzymanie / Etap post-market – Aktualizacje systemu i assurance case wynikające ze zgłoszonych incydentów oraz zmian wprowadzanych przez wytwórcę. Każda nowa wersja produktu powinna mieć swoja wersję assurance case.
Powyższe etapy będę trochę się różniły zależnie od branży i mających zastosowanie regulacji oraz standardów. Ogólny schemat jest jednak podobny – mamy kilka wersji assurance case od fazy koncepcji systemu do jego kwalifikacji, a następnie utrzymanie aktualności argumentacji i nowe wersje.
Każda kolejna wersja argumentacji powinna przejść przez przegląd, który obejmuje zarówno argumentację, jak i powiązaną dokumentację. Oceniana jest kompletność, spójność i poprawność. Wszelkie problemy wymagają rozwiązania dla zatwierdzenia danej wersji argumentacji. Argumentacja na diagramie po prawej stronie ma jedno miejsce oznaczone czerwonym kolorem, gdzie są uwagi od audytorów wymagające poprawy.
Więcej informacji
Poczytaj więcej na naszej stronie dotyczącej assurance case. Zapoznaj się z narzędziem PREMIS, które służy do rozwoju i zarządzania assurance case.
Chętnie pomożemy w przygotowaniu wdrożenia assurance case w Twoim projekcie.