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