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