Pewność

36
n Sommerville 2000 Inżynieria oprogramowania, Rozdział 16 Pewność Celem tego rozdziału jest wprowadzenie pojęcia pewności i uzasadnienie jego ważności w systemach krytycznych.

description

Pewność. Celem tego rozdziału jest wprowadzenie pojęcia pewności i uzasadnienie jego ważności w systemach krytycznych. Cele. Znać cztery wymiary pewności, tzn. dostępność, niezawodność, bezpieczeństwo i zabezpieczenie. - PowerPoint PPT Presentation

Transcript of Pewność

Page 1: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Pewność

• Celem tego rozdziału jest wprowadzenie pojęcia pewności i uzasadnienie jego ważności w systemach krytycznych.

Page 2: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Cele Znać cztery wymiary pewności, tzn. dostępność,

niezawodność, bezpieczeństwo i zabezpieczenie. Rozumieć pojęcie systemu krytycznego, którego

awaria może mieć poważne konsekwencje dla ludzi i gospodarki.

Wiedzieć, że do osiągnięcia pewności konieczne jest unikanie pomyłek w trakcie budowania systemu, wykrywanie i usuwanie błędów w trakcie użytkowania systemu i ograniczenie szkód powodowanych przez awarie w czasie działania.

Page 3: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Zawartość Systemy krytyczne Dostępność i niezawodność Bezpieczeństwo Zabezpieczenie

Page 4: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Wymiary pewności

Zabezpieczenie Bezpieczeństwo Niezawodność Dostępność

Pewność

Zdolność systemu do realizacji usług, gdy są potrzebne

Zdolność systemu dorealizacji usług zgodnie ze specyfikacją

Zdolność systemu do działania bezkatastroficznych awarii

Zdolność systemu do zabezpieczenia siebie przed przypadkowymlub celowym włamaniem

Page 5: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Pojęcie pewności Pewność systemu komputerowego jest właściwością systemu

odpowiadającą zaufaniu, którym jest obdarzony. Zaufanie oznacza stopień przekonania użytkownika, że system

będzie działał tak jak należy i nie będzie się „psuł” przy normalnym użytkowaniu.

Ta właściwość nie może być wyrażona liczbowo, ale da się ją zapisać nieformalnie.

Określenia, takie jak „niepewny”, „bardzo pewny” i „ultrapewny”, odpowiadają różnym poziomom zaufania, którym obdarzamy system.

Zasługiwanie na zaufanie nie jest oczywiście tym samym co użyteczność.

Page 6: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Krzywa zależności kosztu i pewności

Koszt

Mała Średnia Duża Bardzo Ultra- duża duża

Pewność

Page 7: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Pewność a efektywność Systemy niepewne, niebezpieczne lub

niezabezpieczone zwykle pozostają nieużywane. Koszt awarii systemu może być olbrzymi. Trudno jest odzyskać pewność. Zwykle można zrekompensować brak efektywności

systemu. Systemy niegodne zaufania mogą spowodować

utratę informacji.

Page 8: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Systemy krytyczne

Awarie wielu systemów sterowanych komputerami powodują niewygody, a nie poważne długotrwałe zniszczenia. Istnieją jednak systemy, których awarie mogą powodować znaczne straty gospodarcze, fizyczne zniszczenia lub zagrożenia życia ludzkiego. Systemy te zwykle nazywa się systemami krytycznymi. Pewność jest zasadniczym atrybutem systemów krytycznych. Każdy z jej aspektów (dostępność, niezawodność, bezpieczeństwo i zabezpieczenie) może być ważny.

Page 9: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Rodzaje systemów krytycznych Systemy krytyczne dla bezpieczeństwa to systemy,

których awaria może powodować obrażenia i utratę życia lub poważne zniszczenie środowiska.

Systemy krytyczne dla zadania to systemy, których awaria może powodować niepowodzenie pewnej czynności mającej jakiś cel.

Systemy krytyczne dla przedsiębiorstwa to systemy, których awaria może powodować kłopoty korzystających z nich przedsiębiorstw.

Page 10: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Awarie systemu krytycznego Koszt awarii systemu krytycznego jest zwykle

bardzo wysoki. Obejmuje bezpośrednie koszty awarii (np. konieczność wymiany systemu) oraz koszty pośrednie (koszty procesów sądowych, utracone zyski w związku z niedostępnością systemu).

W rezultacie systemy krytyczne są zwykle budowane raczej za pomocą starannie sprawdzonych metod, a nie nowinek, z którymi dotychczas nie wiążą się znaczące praktyczne doświadczenia.

Page 11: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Typy komponentów systemu najbardziej podatnych na awarie Sprzęt systemu, który może się popsuć z powodu

błędów projektowych, błędów przy ich produkcji lub z powodu naturalnego zmęczenia materiału.

Oprogramowanie systemu, które może ulec awarii z powodu błędów w specyfikacji, projekcie lub implementacji.

Operatorzy systemu, którzy mogą niewłaściwie go obsługiwać.

Page 12: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Prosty system krytyczny dla bezpieczeństwa

• System podawania insuliny może składać się z wszczepionego pacjentowi mikroskopijnego detektora, który mierzy pewien parametr krwi proporcjonalny do poziomu cukru.

• Odczyt jest przesyłany do sterownika pompy.

• Sterownik wyznacza poziom cukru, ocenia ilość potrzebnej insuliny i wysyła sygnał do miniaturowej pompy, która tłoczy insulinę przez wkłutą na stałe igłę.

• Systemy podawania insuliny będą sterowane przez oprogramowanie.

Page 13: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Struktura pompy insulinowej

Igła Igła Pompa Pompa Zegar Zegar

Miernik Miernik Alarm Alarm Sterownik Sterownik

Wyświetlacz1

Wyświetlacz1

Wyświetlacz

2

Wyświetlacz

2

Zbiornik insuliny

Zasilanie

Page 14: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Model przepływu danych w pompie insulinowej

Detektor cukruwe krwi

Detektor cukruwe krwi

Wyznaczaniepotrzebnej

Ilości insuliny

Wyznaczaniepotrzebnej

Ilości insuliny

Analiza cukruwe krwi

Analiza cukruwe krwi

Sterownikpompy

insulinowej

Sterownikpompy

insulinowejPompa

insulinowa

Pompa insulinowa

Krew

Insulina

Parametry krwi

Polecenia sterujące pompą

Poziom cukru we krwi

Potrzebna ilość insuliny

Page 15: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Wymiary pewności dotyczą systemu podawania insuliny Dostępność

• System powinien być gotowy do wstrzyknięcia insuliny, gdy jest ona potrzebna.

Niezawodność• System powinien działać niezawodnie i dostarczać właściwą ilość

insuliny w celu zrównoważenia aktualnego poziomu cukru we krwi.

Bezpieczeństwo • Awaria systemu może w zasadzie spowodować wstrzykiwanie

nadmiernych dawek insuliny, które mogą być zagrożeniem życia użytkownika. Ten rodzaj awarii systemu nie powinien się zdarzać.

Page 16: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Dostępność i niezawodność Dostępność systemu to prawdopodobieństwo, że

będzie on realizował usługi dla użytkowników, gdy mu to zlecą.

Niezawodność to prawdopodobieństwo, że system zaoferuje usługi zgodne ze specyfikacją.

Niezawodność wymaga dostępności, ponieważ niezrealizowanie wyspecyfikowanych usług nie jest oczywiście zachowaniem zgodnym ze specyfikacją.

Page 17: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Przykład Dobrym przykładem takiego systemu jest centrala telefoniczna.

Podnosząc słuchawkę, użytkownicy chcą usłyszeć sygnał, więc wymagania stawiane dostępności systemu są duże.

Jeżeli awaria systemu spowoduje przerwanie połączenia, to zwykle łatwo jest to naprawić.

Centrale mogą mieć udogodnienia naprawcze, które ponownie uruchamiają system i próbują nawiązać połączenie.

Można to zrobić bardzo szybko, a użytkownik telefonu może nawet nie zauważyć awarii.

Dostępność, a nie niezawodność, jest w tym wypadku głównym wymaganiem stawianym pewności.

Page 18: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Bardziej precyzyjne definicje Niezawodność.

• Prawdopodobieństwo bezawaryjnego działania w ciągu ustalonego czasu w zadanym środowisku w określonym celu.

Dostępność.• Prawdopodobieństwo, że w ustalonej

chwili system będzie działał i będzie zdolny do realizacji żądanych usług.

Page 19: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Uwagi Niezawodność i dostępność uważa się zwykle za

najważniejsze wymiary pewności. Jeśli system jest zawodny, to trudno zapewnić jego bezpieczeństwo lub go zabezpieczyć, ponieważ może to być zniweczone przez awarie systemu.

Jeśli system jest niedostępny, to wynikające z tego straty gospodarcze mogą być bardzo duże. Zawodne oprogramowanie powoduje wysokie koszty ponoszone przez użytkowników. Twórcy zawodnych systemów mogą zyskać złą opinię o jakości ich produktów i utracić przyszłe możliwości zarabiania.

Page 20: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Pojęcia związane z niezawodnością

Pojęcie Opis

Awaria Zdarzenie zachodzące w chwili, w której system przestajesystemu realizować usługi oczekiwane przez użytkowników.

Błąd Błędne zachowanie systemu niezgodne z jego systemu specyfikacją.

Usterka Niepoprawny stan systemu, tzn. stan, którego nie systemu spodziewali się projektanci systemu.

Błąd lub Działanie człowieka, które powoduje usterki systemu.pomyłka człowieka

Page 21: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Poprawianie niezawodności systemu Unikanie usterek.

• Stosuje się metody tworzenia, które zmniejszają możliwość pomyłek lub umożliwiają wychwytywanie ich, zanim doprowadzą do awarii systemu.

Wykrywanie i usuwanie usterek.• Stosuje się metody weryfikacji i zatwierdzania, które zwiększają

szansę wykrycia i usunięcia usterek przed przystąpieniem do użytkowania systemu.

Tolerowanie usterek.• Stosuje się metody, które zapewniają, że usterki w systemie nie

powodują błędów, a błędy systemu nie powodują awarii.

Page 22: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

System jako odwzorowanie danych wejściowych na dane wyjściowe

Zbiór danychwejściowych

Program Program

Zbiór danychwyjściowych

Wejb

Wyjb

Dane wejściowe powodujące błędne dane wyjściowe

Błedne dane

wyjściowe

Błędne dane wyjściowe

Page 23: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Wzorce użycia oprogramowania Program może zawierać znane błędy, a mimo tego

użytkownicy mogą go uważać za niezawodny. Niektórzy nigdy nie wprowadzą błędnych danych

wejściowych, awaria nigdy się więc nie zdarzy. Co więcej, doświadczeni użytkownicy zwykle „obchodzą”

usterki oprogramowania, o których wiadomo, że powodują awarie.

Świadome unikają korzystania z udogodnień systemu, o których wiedzą, że spowodują kłopoty.

Naprawienie usterek w tych udogodnieniach praktycznie nie zmienia niezawodności postrzeganej przez użytkowników.

Page 24: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Wzorce użycia oprogramowania

Użytkownik1

Użytkownik2

Użytkownik 3

Błędne danewejściowe

Dopuszczalne dane wejściowe

Page 25: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Bezpieczeństwo Bezpieczeństwo systemu to atrybut odzwierciedlający

zdolność systemu do normalnego lub nienormalnego działania bez wywoływania zagrożeń dla ludzi lub środowiska.

Jeśli bezpieczeństwo jest zasadniczą cechą systemu krytycznego, to nazywamy go systemem krytycznym dla bezpieczeństwa.

Przykładami takich systemów są systemy sterowania i kontroli w samolocie, systemy sterowania procesami w reaktorach chemicznych i farmaceutycznych oraz systemy sterowania samochodami.

Page 26: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Oprogramowanie krytyczne dla bezpieczeństwa Podstawowe oprogramowanie krytyczne dla bezpieczeństwa

jest oprogramowaniem w postaci sterownika wbudowanego w system. Niewłaściwe działanie takiego oprogramowania może powodować niewłaściwe działanie sprzętu, które powoduje szkody lub zniszczenia środowiska.

Pomocnicze oprogramowanie krytyczne dla bezpieczeństwa jest oprogramowaniem, które może pośrednio powodować szkody. Przykładami takich systemów są systemy komputerowego wspomagania projektowania, których niewłaściwe działanie może doprowadzić do usterek w projektowanym obiekcie.

Page 27: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Pojęcie Definicja

Wypadek (lub Niezaplanowane zdarzenie lub ciąg zdarzeń, które powodują obrażenia lub śmierć

nieszczęście) osób, szkody w majątku lub środowisku. Maszyna sterowana komputerem raniąca swego operatora to dobry przykład wypadku.

Zagrożenie Sytuacja, która może spowodować lub przyczynić się do wypadku. Awaria detektora wykrywającego przeszkody na drodze maszyny jest przykładem zagrożenia.

Szkoda Miara strat powstałych w wyniku nieszczęścia. Zakres szkód może być rozmaity, od śmierci wielu osób do mniejszych obrażeń i zniszczenia majątku.

Waga zagrożenia Oszacowanie największych szkód, które mogą być wynikiem konkretnego zagrożenia. Waga zagrożenia może być rozmaita, od katastroficznej (gdy ginie

wielu ludzi) do niewielkiej (jedynie niewielkie szkody).

Prawdopodobieństwo Prawdopodobieństwo wystąpienia zdarzeń powodujących zagrożenie.

zagrożenia Prawdopodobieństwo może być dowolne; zwykle waha się od prawdopodobne (np. zagrożenie wystąpi w jednym na sto przypadków) do niewiarygodne (nie można wyobrazić sobie sytuacji, w których to zagrożenie występuje).

Ryzyko Miara prawdopodobieństwa, że system spowoduje wypadek. Ryzyko szacuje się na podstawie prawdopodobieństwa zagrożenia, wagi zagrożenia i prawdopodobieństwa, że zagrożenie będzie przyczyna wypadku.

Pojęcia związane z bezpieczeństwem

Page 28: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Unikanie zagrożeń.System jest zaprojektowany tak, aby uniknąć zagrożeń.• System tnący, którego zadziałanie wymaga od operatora naciśnięcia dwóch

przycisków w tej samej chwili, wystrzega się na przykład ryzyka umieszczenia rąk operatora w zasięgu noża.

Wykrywanie i eliminowanie zagrożeń. System jest zaprojektowany tak, aby wykrywać i eliminować zagrożenia, zanim doprowadzą do wypadku.

• System reaktora chemicznego może na przykład wykrywać nadmierne ciśnienie i otwierać zawór bezpieczeństwa w celu zmniejszenia ciśnienia, zanim dojdzie do eksplozji.

Ograniczanie szkód. System może obejmować udogodnienia zabezpieczające, które ograniczają szkody będące konsekwencją wypadku.

• Silnik lotniczy zawiera na przykład automatyczne gaśnice. Gdy pojawi się ogień, zwykle można go ugasić, zanim stanie się zagrożeniem dla pasażerów i załogi.

Sposoby zapewnienia bezpieczeństwa

Page 29: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Zabezpieczenie systemu to oszacowanie stopnia zabezpieczenia systemu przed atakami z zewnątrz zarówno przypadkowymi, jak i celowymi.

Przykładami ataków są wirusy, nieuprawnione użycie usług systemu, nieuprawnione aktualizowanie systemu lub jego danych itd.

Bez rozsądnego poziomu zabezpieczeń dostępność, niezawodność i bezpieczeństwo systemu mogą być zniweczone przez zewnętrzne ataki, które wywołały szkody w systemie.

Zabezpieczenie

Page 30: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Przykłady • Istnieją pewne rodzaje systemów krytycznych , w których zabezpieczenie jest najważniejszym wymiarem pewności systemu.• Systemy wojskowe, systemy handlu elektronicznego i systemy przetwarzające i wymieniające poufne dane muszą być zaprojektowane tak, aby osiągnąć wysoki poziom zabezpieczenia. Jeśli system rezerwacji biletów lotniczych jest na przykład niedostępny, to powoduje niewygody i opóźnienia w wydawaniu biletów.• Jeśli jednak byłby niezabezpieczony i akceptował fałszywe rezerwacje, to obsługiwana przestrzeń lotnicza ponosiłaby w wyniku tego problemu znaczne straty finansowe.

Page 31: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Trzy typy szkód, które mogą być wynikiem ataku z zewnątrz

• Zaprzestanie usługi. System może być zmuszony do przyjęcia stanu, w którym nie jest możliwe normalne realizowanie usług.

• Uszkodzenie programów lub danych. Komponenty programowe systemu mogą być podmienione w nieuprawniony sposób.

• Ujawnienie poufnej informacji. Informacja przechowywana w systemie może być poufna. Atak z zewnątrz może ujawnić ją nieuprawnionym osobom.

Page 32: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Pojęcia związane z zabezpieczeniem

Pojęcie Definicja

Odsłonięcie Możliwość starty lub szkody w systemie komputerowym.

Słabość Słaby punkt systemu komputerowego, który można wykorzystać do spowodowania start lub szkód.

Atak Wykorzystanie słabości systemu.

Groźba Sytuacja, która może doprowadzić do strat lub szkód.

Nadzór Miara ochrony, która zmniejsza słabości systemu.

Page 33: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Podejścia do zabezpieczenia systemu Unikanie słabości.

• System projektuje się tak, aby nie miał słabości. Jeśli system nie jest połączony na przykład z zewnętrzna siecią publiczną, to ludzie z zewnątrz nie maja możliwości ataku.

Wykrywanie i neutralizacja ataków.• System projektuje się tak, aby wykrywał słabości i eliminował je,

zanim spowodują odsłonięcie. Przykładami wykrywania i usuwania słabości jest zastosowanie programu antywirusowego.

Ograniczanie odsłonięć.• Minimalizuje się konsekwencje udanego ataku. Przykładami

ograniczania odsłonięć są systematyczne tworzenie kopii zapasowych.

Page 34: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Pewne aspekty zabezpieczenia Zabezpieczenie stało się bardziej istotne z powodu

podłączania coraz większej i większej liczby systemów do Sieci. Połączenie z Siecią daje dodatkową funkcjonalność systemu (np. klient może bezpośrednio działać na swoim koncie bankowym), ale oznacza to także możliwość zaatakowania systemu przez ludzi o złych intencjach.

Innym podobnym i bardzo ważnym atrybutem systemów w Sieci jest zdolność przetrwania (Ellison i inni, 1999). Zdolność przetrwania jest zdolnością systemu do ciągłej realizacji usług nawet w czasie ataku i ewentualnego odłączenia części systemu.

Page 35: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Główne tezy Pewność systemu komputerowego jest jego właściwością, która

odzwierciedla stopień zaufania użytkownika do systemu. Najważniejszymi wymiarami pewności są: dostępność, niezawodność, bezpieczeństwo i zabezpieczenie.

System krytyczny to system, którego awarie mogą powodować znaczne straty gospodarcze, fizyczne zniszczenia lub śmierć ludzi. Trzema ważnymi rodzajami systemów krytycznych są systemy krytyczne dla bezpieczeństwa, systemy krytyczne dla zadania i systemy krytyczne dla przedsiębiorstwa.

Dostępność systemu to prawdopodobieństwo, że będzie on realizował usługi dla użytkowników, gdy o to poproszą. Niezawodność to prawdopodobieństwo, że usługi systemu będą wykonywane zgodnie ze specyfikacją.

Niezawodność i dostępność są czasem uważane za najważniejsze wymiary pewności. Jeśli system jest zawodny, to trudno jest zapewnić jego bezpieczeństwo lub zabezpieczenie, ponieważ niweczą je awarie systemu.

Page 36: Pewność

©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 16

Główne tezy Niezawodność jest związana z prawdopodobieństwem wystąpienia

błędu w czasie użytkowania systemu. Program może zawierać usterki, a mimo tego użytkownicy mogą uważać go za niezawodny, ponieważ nie korzystają z udogodnień systemu niepełnowartościowych wskutek tych usterek.

Bezpieczeństwo systemu to jego atrybut, który odzwierciedla zdolność systemu do poprawnego lub niepoprawnego działania bez powodowania zagrożeń dla ludzi i środowiska. Jeśli bezpieczeństwo jest główną cechą systemu krytycznego, to nazywamy go systemem krytycznym dla bezpieczeństwa.

Zabezpieczenie jest ważne we wszystkich systemach krytycznych. Bez rozsądnego poziomu zabezpieczeń dostępność, niezawodność i bezpieczeństwo systemu mogą być zniweczone przez zewnętrzne ataki, które wywołały szkody w systemie.