Testy penetracyjne.
Transkrypt
Testy penetracyjne.
8. Testy penetracyjne Testy penetracyjne cieszą się dużą sławą spowodowaną zarówno pewnym niestandardowym podejściem do zachowania w systemach komputerowych, jaki i popularyzacją w mediach. Tymczasem w testach penetracyjnych praktycznie większą część zajmuje żmudne ich projektowanie, niż efektowne w biegu „włamywanie” się do systemu. 8.1. Wprowadzenie Istnieje wiele podejść do przeprowadzania testu penetracyjnego: od bardzo sformalizowanego, przeprowadzanego według zadanej metodyki, do przeprowadzonego niejako „na czuja” przez byłych hackerów, wykorzystujących swoje dotychczasowe doświadczenia. Pierwsze rozwiązanie gwarantuje skuteczność poprzez stosowanie sprawdzonej już metody czy metod. Drugie pokazuje na ile system jest odporny przy stosowaniu metod obarczonych bardzo dużą fantazją potencjalnych włamywaczy. 8.2. Definicja Przez test penetracyjny rozumie się proces mający na celu praktyczną ocenę bezpieczeństwa teleinformatycznego. Weryfikuje skuteczność zastosowanych zabezpieczeń w implementacji produkcyjnej (lub możliwie najbardziej zbliżonej do rzeczywistości) poprzez skonfrontowanie obligatoryjnych wybranych zagrożeń z zadanymi podatnościami [Wikipedia wraz z modyfikacją autora]. 8.3. Testy penetracyjne a audyt W większości przypadków bardziej lubimy testy penetracyjne niż audyt. Audyt uważany jest proces wykonywany jako „sztuka dla sztuki”, natomiast test penetracyjny pokazuje rzeczywiste zagrożenia i jest po prostu efektowny. Zakłada się, że audyt jest skostniały i z tego względu nie zauważa nowych podatności i związanych z nim narażeń. Nadawane certyfikaty mają wartość papieru, na którym zostały wydrukowane. Innym argumentem jest brak zaufania do administratorów, którzy według obiegowych opinii ukrywają wiele swoich niedoróbek. Tak więc chcemy praktycznie zweryfikować poziom bezpieczeństwa systemów informatycznych. Testy penetracyjne określają faktyczny stan bezpieczeństwa danego obiektu. Nie muszą posiadać sformalizowanej metodologii jak ma miejsce w przypadku audytu (choć jest to wskazane). Weryfikują mocne i słabe strony zabezpieczeń podczas gdy w audycie otrzymujemy odpowiedź binarną jako ocenę zgodności z zadanymi warunkami czy regulacjami. Testy penetracyjne są bardzo zależne od bieżącego stanu wiedzy na temat stosowanych współcześnie technik włamań do systemów komputerowych. Tym samym istotną rolę odgrywa dostęp do najnowszych informacji z tej dziedziny, jak również doświadczenie i umiejętności zespołu przeprowadzającego testy. Tak więc audyt prowadzi do jednoznacznego określenia stopnia zgodności audytowanego obiektu z formalną specyfikacją pożądanego stanu, określonego poprzez zadane regulacje, np. normy, itp. 8.4. Rodzaje testów penetracyjnych Testy penetracyjne można podzielić na dwa rodzaje: Black Box Crystal Box 1 Podział na te dwa rodzaje nie jest ostry, bowiem z reguły wykonywane testy penetracyjne mieszczą się gdzieś pomiędzy zdefiniowanymi powyższymi rodzajami. 8.4.1. Black Box Test penetracyjny należący do rodzaju „Black Box” charakteryzuje się minimalną wiedzą zespołu o penetrowanym systemie. Zaletą jego jest odzwierciedlenie sytuacji, kiedy intruz jest spoza firmy, której system podlega penetracji. Należy zwrócić uwagę, że działalność zespołu przeprowadzającego test penetracyjny podlega zasadniczemu ograniczeniu – zespół taki nie może łamać prawa. Wydłuża to czas czynności wykonywanych przez zespół penetracyjny, co stanowi w tym momencie wadę takiego rozwiązania. 8.4.2. Crystal Box Testy penetracyjne należące do rodzaju „Crystal Box” polegają na tym, że zespół realizujący go ma pełen dostęp do dokumentacji systemu. Właściwie w tym momencie jest bardziej sprawdzenie zgodności istniejącej dokumentacji z rzeczywistym systemem. Jest bardzo korzystne, bowiem w trakcie intensywnego „życia” systemu często następuje rozsynchronizowanie zawartości dokumentacji z postacią systemu. 8.5. Metodyki Aby zapewnić odpowiednią jakość testów penetracyjnych zostały opracowane metodyki ich przeprowadzenia. Do najbardziej znanych należą: Open Source Security Testing Methodology Manual (OSSTMM) (szczegóły: http://www.isecom.org/osstmm/ ) Guideline on Network Security Testing, 2003 (NIST SP 800-42) (szczegóły: http://www.iwar.org.uk/comsec/resources/nets ) Technical Guide To Information Security Testing (NIST SP 800-115) (szczegóły: http://csrc.nist.gov/publicztions/nistpubs/800-115/SP800-115.pdf OISSG Penetration Testing Framework (ISAAF) (szczegóły: http://www.oisgg.org/wiki/idex.php/ISAAFPENETRATION_TESTING_FRAMEWORK Metodyka P-PEN (Adam E.Patkowski) Ta ostatnia metodyka, o pełnej nazwie: „Metodyka P-PEN przeprowadzania testów penetracyjnych systemów teleinformatycznych” ,opracowana przez Adama E. Patkowskiego (http:// www.ita.wat.edu.pl/data/ita/storage/RSWportal/Pligins/Commno/Content/Show/PPENv4all_biul.pdf ;WAT, 2007) pokaże poniżej najważniejsze elementy takiej metodyki. Celem metodyki P-PEN jest z jednej strony minimalizacja sytuacji, w której zostanie pominięta jakakolwiek ważna podatność, z drugie zaś strony pozostawienie specjalistom wykonującym testy penetracyjne swobody, ograniczonej jedynie pewnymi formalnymi wymaganiami. Metodyka ta składa się z trzech etapów: analizy właściwego badania syntezy (integracji wyników) W trakcie analizy następuje skompletowanie zespołu specjalistów. Ponadto dokonuje się opisu możliwych scenariuszy ataku, wraz z jego rozpisaniem na techniki, umożliwiające jego realizację. Właściwe badanie polega na sprawdzeniu możliwości realizacji przygotowanego scenariusza działania. Synteza polega na wygenerowaniu zbiorczej informacji o skali 2 skuteczności przygotowanych scenariuszy ataku. Bardzo rzadko pojawiają się uwagi dotyczące wskazania czynności zmierzających do poprawiania zastanego stanu – nie jest to celem testów penetracyjnych. Struktura metodyki P-PEN jest następująca: Wykaz używanych terminów i symboli Skład zespołu, kwalifikacje jego członków i zakresy kompetencji Wyposażenie narzędziowe zespołu: o szablony edycyjne dokumentów o aktualny zbiór exploit’ów o skanery portów o skanery bezpieczeństwa o skanery konfiguracji o itp., Procesy Specyfikacja dokumentów: o Tabele Input-Process-Output o Specyfikacja zbiorcza dokumentów Diagramy przepływu danych Rzetelne praktyki Kategorie ataków Podsumowanie Przy przygotowaniu testów penetracyjnych rodzi się pytanie: czy należy dokonywać demonstracji skutecznych ataków przed zleceniodawcą? Zależy to od indywidualnej oceny sytuacji w danej firmie. Z jednej strony pokazanie ataków i ich potencjalnej skuteczności może wpłynąć pozytywnie na świadomość istniejących niebezpieczeństw wśród pracowników zleceniodawcy i tym samym wywołać pozytywne skutki w postaci podniesienia poziomu odporności na ataki socjotechniczne. Z drugiej zaś strony brak zrozumienia skutków, a tym samym sensu, prowadzonych działań może prowadzić do sprowokowania niepożądanych działań pracowników na terenie ich firmy, w postaci zabawy „w miejscowych hackerów”. 8.6. Rzetelne praktyki Stosowanie zadanej metodyki nie zwalnia nas z rzetelnych praktyk stosowanych podczas testów penetracyjnych. Praktyki te są systematycznie rozwijane na bazie indywidualnych doświadczeń i wzbogacają kulturę realizacji testów penetracyjnych przez dany zespół czy organizację. Brak ich przestrzegania, w krótszym lub dłuższym okresie czasu, generuje problemy w realizacji testów penetracyjnych. Podstawową zasadą jest to, że każde badanie czy rozmowa przeprowadzana jest przez (przynajmniej) dwóch członków zespołu. Jednocześnie, z każdego takiego badania lub rozmowy sporządzana jest notatka wewnętrzna, która w razie potrzeby może być (powinna być) autoryzowana przez wszystkie strony badania lub rozmowy. Przed przeprowadzaniem jakichkolwiek czynności przez zespół przeprowadzający testy penetracyjne, zespół ten powinien zebrać się i szczegółowo przeanalizować swój plan działania i w razie potrzeby go uzupełnić. Kolejną zasadą, którą trzeba bezwzględnie przestrzegać, to że wszelkie działania inwazyjne realizowane są przez upoważnionych pracowników firmy zlecającej pod kierunkiem członków zespołu realizującego testy penetracyjne. Dzięki temu członkowie zespołu nie przejmują odpowiedzialności kompetentnych pracowników zleceniodawcy w żadnym zakresie. Tak więc na przykład przegląd konfiguracji zadanego systemu komputerowego 3 wykonuje specjalnie oddelegowany przez zleceniodawcę pracownik zleceniodawcy (zazwyczaj współodpowiedzialny za ten system), kierowany przez członka zespołu realizującego testy penetracyjne, za zgodą zleceniodawcy. Być może takie podejście wydaje się na początku (przede wszystkim zleceniodawcy) przesadzone, ale praktyka pokazuje, że takie podejście jest jedynie słuszne. Jeżeli w trakcie realizowanych prac zostaną wykryte sytuacje – podatności, których wykorzystanie może prowadzić do szczególnie groźnych konsekwencji, zespół realizujący testy penetracyjne zobowiązany jest do niezwłocznego zasygnalizowania zleceniodawcy w celu podjęcia odpowiednich działań. 8.7. Przykładowe kategorie ataków Podczas przygotowywania testów penetracyjnych można uwzględnić poniższe kategorie ataków. Oczywiście, liczba i rodzaje kategorii, jak ich zawartość ulega zmianom w takt pojawiających się zagrożeń. Poniżej omówiono kilka najbardziej podstawowych kategorii ataków. 8.7.1. Odmowa usług Jedną z podstawowych kategorii ataków jest atak prowadzący do tzw. odmowa usług [ang. DoS – Denial-of-Service]. Ataki takie polegają na generacji bardzo dużej liczby żądań, których system nie jest w stanie obsłużyć właśnie z powodu ich liczby, czasem również z powodu wykorzystywania niestandardowych zachowań obiektu generującego żądania, co powoduje negatywne konsekwencje po stronie serwera usług. Takimi typowymi znanymi atakami jest przeciążanie systemów analizy żądań poprzez zmuszanie do buforowania zbyt dużych jednostek informacji. Za klasyczne można uznać nadużycia własności danej usługi lub protokołu czy też błędy implementacyjne oprogramowania zadanego systemu. Obecnie często używa się sieciowej wersji tego ataku [ang. DDoS – Distributed Denial-ofService]. Polega on na generacji dużej liczby żądań generowanych z różnych miejsc (adresów) sieci w celu uniemożliwienia skutecznego blokowania takich żądań poprzez dyskryminację ich adresów. 8.7.2. Kryptoanaliza Inną kategorią ataków jest wykorzystanie kryptoanalizy. Najprostsza realizacja to wykorzystanie ogólnie znanych haseł domyślnych, ustawianych przez producenta oprogramowania lub sprzętu. Wykazy takich haseł dostępne są w internecie i mogą stanowić w wielu przypadkach prostą drogę do włamania się do systemów komputerowych. Kryptoanaliza może być wykorzystywana w dwóch trybach: „off-line” lub „on–line”. Tryb „off-line” polega na zbieraniu materiału w istniejącej sieci, po czym następuje przy wykorzystaniu wysoko wydajnych systemów komputerowych próba złamania hasła. Przykładem takiego zastosowania jest łamanie hasła do sieci WiFi zabezpieczonej poprzez WEP. Tryb „on-line” polega na próbach złamania istniejących haseł bezpośrednio na istniejącym systemie. Często ten ostatni tryb, przy bezskutecznym jego działaniu” przeradza się w inną kategorię ataków – przeciwko mechanizmom ochronnym, tzw. atak „HIV”. 8.7.3. Ataki przeciwko mechanizmom obronnym Czasami stosowanie mechanizmów obronnych daje szanse na zastosowanie właściwości tych mechanizmów w celu naruszenia bezpieczeństwa systemów komputerowych. Kategoria takich ataków nosi popularnie nazwę atak „HIV”. 4 Przykładem ataku należącego do wyżej wymienionej kategorii jest blokada konta po wielokrotnych próbach logowania z błędnym hasłem. Wielokrotne próby nieudanego logowania mogą prowadzić do przepełnienia dopuszczalnego rozmiaru logów (do przepełnienia systemu dyskowego logami). Zaawansowane ataki tego rodzaju to wygenerowanie takich działań, które będą powodowały przeciążenie systemu wygenerowanym ruchem przez rozproszony system wykrywania włamań [ang. IDS – Intrusion Detection System]. 8.7.4. Manipulowanie ludźmi Jedną z kategorii ataków jest manipulowanie ataków [ang. social engineering]. Jest to najbardziej różnorodna kategoria, stosująca różne techniki psychologiczne. Do tej kategorii można zaliczyć podrzucanie nośników, zawierających toksyczne oprogramowania (np. pamięć USB), poprzez wyłudzanie danych autentykacyjnych, nakłaniania do wykonania drobnych, „niewinnych” czynności, werbowania do zadań „pod fałszywą flagą” (klasyczna technika szpiegowska) do wykorzystywania kompromitujących informacji o pracownikach pozyskanych z wykorzystywanych przez nich systemów komputerowych. 8.7.5. Przejęcie sesji Często występującą kategorią ataków jest przejęcie sesji. Polega to na wykorzystaniu zainicjowanej poprawnie sesji i podszycie się pod jej użytkownika. Klasycznym przykładem jest technika zwana Man-in-the-middle, polegają na ustawieniu się napastnika pomiędzy dwóch uczestników sesji i dokonywanie odpowiedniej manipulacji na komunikatach wysyłanych pomiędzy jej uczestnikami. 8.7.6. Ataki wewnętrzne Wiele badań wskazuje, że większość ataków na systemy komputerowe odbywa się z wewnątrz sieci. Niezależnie, czy wykonują te ataki sami pracownicy czy też źródłem są lokalne komputery z zainstalowanym przez nieuwagę niebezpiecznym oprogramowanie. Przykładem pierwszej sytuacji jest atak legalnego operatora jednej stacji roboczej na inną stację roboczą (z wykorzystaniem kont wspólnych, z wykorzystaniem błędów i specyficznych cech konfiguracji). Druga sytuacja to instalacja różnego rodzaju oprogramowanie, umożliwiającego niedozwolony zdalny dostęp do systemu. Oczywiście, może też wystąpić sytuacja, w której napastnik włącza się do sieci z wykorzystaniem własnego komputera (z powodu braku odpowiedniego poziomu nadzoru nad infrastrukturą sieciową). Część ataków może także wynikać z błędów występujących w oprogramowaniu. 8.7.7. Exploity W Internecie istnieje wiele miejsc, gdzie publikowane są „gotowce” [ang. exploit], umożliwiające wykorzystanie błędów występujących w systemach komputerowych. Obecnie zdecydowana większość firm przyjęła taktykę „zero-time” – polegającą na publikowaniu informacji o błędach w systemie dopiero po opracowaniu poprawek usuwających wykryty błąd. Tym samym pojawiający się exploit przygotowany w celu wykorzystania danego błędu nie będzie już tak skuteczny, bowiem czujny administrator zainstaluje najpóźniej w momencie jego pojawienia odpowiednią poprawkę. Do stron internetowych, które publikują informacje o exploitach, należą między innymi: http://www.securteam.com/exploits/archive.html http://packetstormsecurity.nl 5 Internet w tym momencie spełnia podwójną rolę: miejsce, gdzie można znaleźć ostrzeżenia, oraz miejsce, gdzie „handluje” się exploitami w niecnych celach. 8.8. Podsumowanie Testy penetracyjne stanowią skuteczną metodę weryfikacji poziomu bezpieczeństwa rozproszonych systemów komputerowych. Jak we wszystkich rozwiązaniach ważną sprawą jest uwzględnienie przy ich projektowaniu specyfiki danego systemu. Ważne tez jest monitorowanie tendencji występujących na rynku „włamań komputerowych”. 6