Drzewa ataku (ang. Attack Trees)

Transkrypt

Drzewa ataku (ang. Attack Trees)
Bezpieczeostwo funkcjonalne i ochrona informacji w systemach komputerowych (sem. IX AiR)
Drzewa ataku (ang. Attack Trees)
Opracował: mgr inż. Tomasz Barnert
Wprowadzenie
System, którego awaria może doprowadzid do zniszczenia mienia, zanieczyszczenia
środowiska lub nawet utraty życia ludzkiego można nazwad systemem krytycznym. Każdy system
pełniący tak odpowiedzialną funkcję musi zostad poddany gruntownej analizie, mającej na celu
określenie oraz późniejszą weryfikację jego poziomu bezpieczeostwa. W systemach sterowania,
monitorowania oraz zabezpieczeo w coraz większym stopniu korzysta się z szeroko rozumianych
systemów komputerowych, którymi mogą byd np. komputery przemysłowe, kanały komunikacyjne,
urządzenia sieciowe, itp. W związku z tym, każda awaria, czy też niepoprawne zadziałanie
komponentu należącego do tego typu systemu może nieśd ze sobą bardzo poważne konsekwencje.
Wprowadzając do systemu sterowania lub zabezpieczeo elementy należące do systemu
komputerowego należy zdawad sobie sprawę z zagrożeo jakie to ze sobą niesie. W takim przypadku
do nieprawidłowego zadziałania systemu może przyczynid się osoba trzecia, czyli taka, która swoje złe
zamiary przenosi na grunt praktyczny i wykorzystuje swoje umiejętności, a także istniejące luki w
systemie komputerowym do wyrządzenia jakiejś szkody. Znaczenie ochrony informacji i dostępu do
zasobów w systemach komputerowych pełniących odpowiedzialne funkcje w systemach sterowania,
monitorowania i zabezpieczeo jest więc 0niepodważalne.
Każda osoba mająca stycznośd z technologią informacyjną powinna zdawad sobie sprawę z
tego, że nie ma systemu w stu procentach bezpiecznego, do którego nie da się włamad. Istnieją
dziesiątki, czy nawet setki znanych metod i narzędzi, za pomocą których osoba mająca złe zamiary
może dostad się do systemu informatycznego, który może byd powiązany z większą infrastrukturą
sterującą, np. dostawcy energii elektrycznej. Metody te wykorzystują pewne słabe punkty systemu,
np. błędy oprogramowania, sprzętu, czy też słabości człowieka. Za najprostsze przykłady mogą służyd
chodby słabe hasła, czy złe administrowanie systemem informatycznym. Dodatkowo, istnieje wiele
dostępnych narzędzi, dzięki którym można skanowad system w poszukiwaniu jego podatności, np.
tzw. sniffery czy rootkity. Narzędzia te, użyte poprawnie mogą pomagad administratorowi systemu
dbad o jego bezpieczeostwo. Jednak w rękach osób mających złe zamiary mogą stad się groźnym
narzędziem, umożliwiającym wykrycie i skorzystanie z luk w systemie.
Mówiąc o bezpieczeostwie systemu komputerowego należy rozważyd aspekty analizy
ochrony informacji lub ochrony dostępu (ang. Security). Aby przeprowadzid taką analizą istnieje
potrzeba zamodelowania zagrożeo jakie w systemie występują. Jeśli zrozumiemy i znajdziemy
wszystkie możliwe drogi, za pomocą których można zaatakowad analizowany system, będziemy
mogli zaprojektowad odpowiednie przeciwdziałania, które pozwolą nam takie ataki odeprzed.
Dodatkowo jeśli poznamy, kto może byd potencjalnym agresorem, włączając w to jego umiejętności,
1
Bezpieczeostwo funkcjonalne i ochrona informacji w systemach komputerowych (sem. IX AiR)
motywację i cele, jakie nim kierują, będziemy mogli zaimplementowad w systemie poprawne,
zaprojektowane wcześniej metody przeciwdziałania prawdziwym atakom na system.
Czym jest drzewo ataku?
Drzewo ataku (termin wprowadzony przez Schneiera *1,2+) jest wygodną formą
przedstawienia i skategoryzowania różnych dróg, które mogą byd wykorzystanie do zaatakowania
systemu/obiektu. Metoda ta pozwala nam opisad w sposób formalny bezpieczeostwo i ochronę
systemów przy zróżnicowanych technikach wykorzystywanych do zaatakowania tego systemu.
Drzewo ataku ma strukturę graficzną i przypomina znaną z analizy bezpieczeostwa
funkcjonalnego metodę drzewa niezdatności FTA (ang. Fault Tree Analysis). Zasadniczo, atak
przeciwko systemowi przedstawiony jest strukturalnie w postaci drzewa, przy założeniu, że
korzeniem tego drzewa jest globalny cel ataku, a każda gałąź drzewa reprezentuje inny sposób
osiągnięcia tego celu. Liście drzewa reprezentują zdarzenia, które nie można już przedstawid bardziej
szczegółowo.
Rys. 1. Przykładowe drzewo ataku
Przedstawione drzewo (rys.1) (uproszczone i nie zawierające wszystkich możliwości ataku)
dotyczy sytuacji, w której osoba niepowołana (tzw. atakujący) uzyska sposób przejścia przez drzwi do
pomieszczenia chronionego kodem dostępu. Aby taka sytuacja mogła zajśd atakujący może
wykorzystad sytuację, w której drzwi pozostają niedomknięte, wykorzystad błąd w instalacji systemu
dostępowego (byd może sam go instalował i celowo pozostawił lukę w zabezpieczeniach), wyważyd
drzwi lub użyd poprawnego szyfru. Ostatnie zdarzenie wymaga poznania takiej kombinacji liczb, która
umożliwi otworzenie drzwi. Atakujący może więc albo znaleźd przypadkowo szyfr zapisany na jakimś
2
Bezpieczeostwo funkcjonalne i ochrona informacji w systemach komputerowych (sem. IX AiR)
nośniku, albo przejąd szyfr przy znacznym udziale własnym. I tak dalej. Każdy węzeł w
przedstawionym drzewie staje się celem pośrednim, prowadzącym do celu głównego.
Należy zwrócid uwagę, że podobnie jak to ma miejsce w analizie FTA, w drzewie ataku
występują bramki AND i OR. Bramka typu OR oznacza alternatywę, czyli przykładowo w opisywanym
drzewie istnieją cztery różne metody otworzenia drzwi przez atakującego. Bramka AND z kolei
określa kroki które trzeba podjąd aby dotrzed do tego samego celu określanego przez tą bramkę.
Zgodnie z przykładem, aby uzyskad szyfr podsłuchując kogoś, muszą zajśd dwa zdarzenia. Po pierwsze
należy znaleźd się w pobliżu interesującej konwersacji (interesującej z punktu widzenia
atakującego ;-). Po drugie osoba posiadająca szyfr musi wypowiedzied kombinację cyfr tworzącą go.
Bez spełnienia obu tych warunków nie uzyska się szyfru podsłuchując.
Wykorzystanie drzewa w analizie systemu
Kiedy możliwe ataki na system zostaną zamodelowane w drzewie ataku, może ono zostad
wykorzystane w procesie analizy bezpieczeostwa opisywanego systemu. Istnieje możliwośd
wykorzystania szeregu atrybutów przypisanych do różnych węzłów i gałęzi analizowanego drzewa,
m.in. prawdopodobieostwa, koszty, koniecznośd posiadania specjalistycznej wiedzy, narzędzi, itp.
Proces analizy przebiega wtedy w sposób następujący: najpierw szacuje się wartości atrybutów dla
każdego pojedynczego elementu w drzewie, po czym wylicza się wartości atrybutów w węźle na
podstawie wartości z elementów z nim powiązanych. Stąd wniosek, że największy wpływ na
otrzymane wyniki ma poprawne oszacowanie wartości pojedynczych, koocowych elementów drzewa,
tzw. liści.
Rys. 2. Przykładowe drzewo ataku – określenie dwustopniowych miar
3
Bezpieczeostwo funkcjonalne i ochrona informacji w systemach komputerowych (sem. IX AiR)
Tak więc wynikiem analizy może byd wartośd pewnego atrybutu dla węzła nadrzędnego (np.
koszt najtaoszego ataku), jak również pewna wynikowa gałąź zawierająca węzły spełniające określone
wymagania (np. tylko te ataki, które kosztują mniej niż ustalona suma pieniędzy lub te, które nie
wymagają użycia specjalistycznego sprzętu). Ponadto można także ustalid wartości różnych innych
parametrów branych pod uwagę w procesie analizy systemu, np. w celu znalezienia najtaoszego
ataku, do którego nie potrzeba specjalistycznych narzędzi.
Najprostszą metodą analizy z wykorzystaniem drzewa ataku jest przyporządkowanie jednej z
dwóch wartości każdemu węzłowi (1 – możliwe, 0 – niemożliwe) (patrz rys.2). Następnie można
przeprowadzid obliczenia dla każdego z węzłów, biorąc pod uwagę typ występującej bramki. Bramka
typu OR da wartośd 1 (możliwe) jeśli którykolwiek z podległych mu węzłów ma wartośd 1. Z kolei cel
określony przez bramkę AND będzie możliwy tylko w przypadku, jeśli wszystkie podległe jej węzły
oznaczają czynności możliwe do wykonania. Wszystkie możliwe ataki, biorąc pod uwagę
poszczególne węzły drzewa od pojedynczego liścia do węzła głównego, dla przykładowej analizy
przedstawione są na rysunku nr 3 za pomocą czerwonej pogrubionej linii.
Rys. 3. Przykładowe drzewo ataku – możliwe ścieżki ataku
Przypisanie wartości 0 lub 1 poszczególnym węzłom jest tylko jedną z możliwych opcji. Każda
wartośd podlegająca działaniom logicznym może zostad przypisana do niezależnych węzłów i później
wykorzystana w obliczeniach dla hierarchii utworzonego drzewa. Takimi wartościami mogą byd m.in.:
łatwy – trudny, tani – kosztowny, legalny – nielegalny, nie wymagający specjalistycznej wiedzy –
wymagający takiej, itp. Istnieje w koocu możliwośd przypisania poszczególnym węzłom konkretnych
wartości liczbowych odpowiadających wybranym atrybutom. Mogą byd nimi koszty,
prawdopodobieostwo sukcesu dla danego ataku, prawdopodobieostwo podjęcia próby przez
atakującego, itp. Na podstawie analizy dla różnych wartości można uzyskad wiedzę na temat
4
Bezpieczeostwo funkcjonalne i ochrona informacji w systemach komputerowych (sem. IX AiR)
zagrożeo w systemie i podjąd decyzję w sprawie wprowadzenia odpowiednich zabezpieczeo dla
konkretnych ataków.
Kolejny przykład bazowad będzie już na wartościach liczbowych opisujących koszty
wykonania konkretnej operacji, przypisanych do wszystkich niezależnych węzłów w drzewie.
Rys. 4. Przykładowe drzewo ataku – koszty ataku
W tym przypadku każda bramka OR przyjmuje najniższą wartośd z węzłów jej podległych,
natomiast bramka AND jest sumą tych wartości. Na rysunku nr 4 przedstawiono przykładowe
wartości wprowadzone do węzłów, obliczone w hierarchii drzewa oraz zaznaczono najtaoszą metodę
ataku na cel. I tym razem analizę można przeprowadzid dla różnych warunków, na przykład znaleźd
wszystkie metody ataku na cel, których koszt ataku jest mniejszy od zadanej wartości.
Tworzenie własnego drzewa ataku
W jaki sposób utworzyd drzewo ataku? Po pierwsze, należy zidentyfikowad możliwe cele
ataku w rozpatrywanym systemie. Każdy znaleziony cel utworzy odrębne drzewo, mogące jednak
współdzielid swoje gałęzie lub węzły z innym drzewem utworzonym dla odrębnego celu ataku.
Następnie należy rozpatrzyd wszystkie możliwe ataki jakie można przeprowadzid na każdy ze
znalezionych celów i dodawad je sukcesywnie do drzewa. Oczywiście w procesie tworzenia drzewa
przydatna staje się wiedza ekspercka.
Po stworzeniu drzewa należy podjąd decyzję jakie atrybuty będą brane pod uwagę w procesie
analizy systemu, po czym danym atrybutom powinno przyporządkowad się oszacowane wartości.
5
Bezpieczeostwo funkcjonalne i ochrona informacji w systemach komputerowych (sem. IX AiR)
W tym momencie można przeprowadzid analizę i ocenid, poprzez obliczenie wartości w węźle
głównym, czy cel ataku w analizowanym systemie jest podatny na zadane zagrożenia.
Bibliografia
1. Bruce Schneier: „Attack trees: Modeling security threats”, Dr. Dobb's journal, grudzieo 1999
2. Bruce Schneier: „Secrets & Lies: Digital Security in a Networked World”, Wiley, 2000
3. Sjouke Mauw, Martijn Oostdijk: „Foundations of Attack Trees”, Lecture Notes in Computer
Science, Springer Berlin, 2006
6