2009 06 Unikanie systemów IDS

background image

68

OBRONA

HAKIN9 6/2009

S

ystemy komputerowe podłączone do
Internetu wystawione są nieustannie
na różnego rodzaju zagrożenia i ataki.

Dynamicznemu rozwojowi globalnej sieci
komputerowej towarzyszy równie intensywny
wzrost poziomu związanych z nią zagrożeń.
Ponieważ większość stosowanych dziś systemów
komputerowych podatna jest na te zagrożenia,
rozpoczęto poszukiwanie nowoczesnych metod
pozwalających na wykrywanie, przeciwdziałanie
oraz odpowiedź na tego rodzaju ataki. Od
dobrych kilku lat eksperci zajmujący się
bezpieczeństwem systemów komputerowych są
zgodni co do tego, że tradycyjna zapora ogniowa
nie jest w stanie zapewnić odpowiedniego
poziomu bezpieczeństwa. Filtrowanie ruchu
sieciowego na podstawie zdefiniowanych na
sztywno reguł określających dozwolone adresy i
porty to stanowczo za mało. Kolejnym kamieniem
milowym w rozwoju systemów bezpieczeństwa
stały się systemy IDS (ang. Intrusion Detection
System
).

IDS to system wykrywania włamań, jeden

z mechanizmów ochrony sieci i systemów
komputerowych, pozwalający na wykrywanie
ataków, np. przez analizę ruchu sieciowego i
wykrywanie zdefiniowanych sygnatur ataków,
lub przez raportowanie nieprawidłowości
komunikacyjnych. Niektóre systemy IDS oparte są
o algorytmy zdolne do nauki, które automatycznie
dostosowują się do charakterystyki danej sieci
komputerowej.

WOJCIECH SMOL

Z ARTYKUŁU

DOWIESZ SIĘ

o rodzajach, funkcjonalności i

ograniczeniach stosowanych

obecnie systemów wykrywania

włamań,

o klasycznych metodach

unikania systemów IDS,

o nowatorskich metodach

unikania systemów IDS,

o metodach oszukiwania

systemów HIDS,

o dobrych praktykach w

administrowaniu systemami IDS.

CO POWINIENEŚ

WIEDZIEĆ

znać podstawowe zagadnienia

dotyczące najważniejszych

protokołów sieciowych, takich

jak IP i TCP,

znać podstawowe rodzaje

ataków sieciowych i hostowych,

znać podstawy działania

systemów klasy IDS.

Na Rysunku 1 przedstawiona została

ogólna idea działania systemów wykrywania
włamań. Elementy podpisane jako NIDS
reprezentują sieciowe systemy IDS
monitorujące na bieżąco pakiety przesyłane
siecią komputerową. Elementy HIDS to
rezydentne programy zainstalowane na
każdej ze stacji roboczych, monitorujące na
bieżąco działanie programów oraz systemu
operacyjnego komputera.

Istnieją różne, często bardzo skomplikowane,

podziały i klasyfikacje systemów IDS. Tradycyjnie
wyróżnić należy jednak dwa typy systemów
wykrywania włamań: HIDS (ang. Host-based
intrusion detection system
) oraz NIDS (ang.
Network-based intrusion detection system).
Prezentują one skrajnie odmienny sposób
działania.

HIDS to rodzaj systemu wykrywania włamań

monitorujący wewnętrzne działanie systemu
komputerowego. Rozwiązanie to opiera się
na modułach agentów rezydujących na
monitorowanych hostach. Analizuje on stan
systemu oraz jego zachowania dynamiczne.
HIDS może również monitorować zachowanie
poszczególnych aplikacji, wykrywając ich
anormalne i niebezpieczne zachowania
mogące być wynikiem ataku, takie jak dostęp
do chronionych obszarów pamięci lub plików
i ich modyfikowanie. Zazwyczaj działanie
tego rodzaju systemu polega na utworzeniu
bazy danych (fotografii stanu) chronionych

Stopień trudności

Unikanie

systemów IDS

Poziom bezpieczeństwa zapewniany przez systemy IDS jest

zazwyczaj odwrotnie proporcjonalny do zaufania jakim darzą

go jego administratorzy. Sprawdź, które z ataków nie zostaną

zauważone przez Twój system, zanim zrobi to za Ciebie

komputerowy włamywacz...

background image

69

UNIKANIE SYSTEMÓW IDS

HAKIN9

6/2009

obiektów (plików, programów, obszarów
pamięci) wraz z ich atrybutami
(rozmiar, uprawnienia, sumy kontrolne
itd.) i stałym monitorowaniu ich
poprawności. Baza ta tworzona jest
podczas instalacji systemu HIDS (np.
poprzez odpowiednie przeskanowanie
systemu komputerowego). Głównym
zadaniem osoby administrującej tego
rodzaju systemem wykrywania włamań
jest aktualizowanie (w przypadku
zmian w systemie komputerowym,
oprogramowaniu itd.) oraz ochrona
integralności wspomnianej bazy.

NIDS to zazwyczaj dedykowane

urządzenie lub specjalny program
monitorujący ruch sieciowy w czasie
rzeczywistym, sprawdzający szczegółowo
pakiety w celu rozpoznania ataków
sieciowych czy też innej niebezpiecznej
zawartości przez nie przenoszonej, zanim
osiągną one miejsce przeznaczenia.
W swoim działaniu opierają się na
porównywaniu pakietów z wzorcami
(sygnaturami) ataków, przechowywanymi
w bazie danych. Bazy danych sygnatur
uaktualnianie są przez dostawców
pakietów IDS w miarę pojawiania się
nowych ataków. Wiele tego typów
rozwiązań jest integrowanych z
zaporami ogniowymi, co pozwala na
dynamiczną zmianę reguł blokowania
ruchu umożliwiającą natychmiastowe
zatrzymania atakującego.

Nigdy nie wierz

producentom (wady IDS)

Producenci systemów IDS zapewniają
zazwyczaj o stuprocentowej
skuteczności swych produktów. Działania
marketingowe mają zazwyczaj na celu
zapewnienie nabywców, że wdrożenie
danego produktu rozwiąże wszystkie
problemy związane z bezpieczeństwem
systemu informatycznego. Tworzy się
więc wizje systemów, które są w stanie
automatycznie rozpoznać i powstrzymać
dowolny atak. Jedyną rolą administratora
ma być w tym wypadku odebranie
wiadomości SMS, za pomocą której
system IDS automatycznie powiadomi go
o udanej interwencji.

Tak jak i w innych dziedzinach, nie

należy wierzyć we wszystkie zapewnienia
producentów. Systemy IDS stale ewoluują,
jednak od momentu ich powstania, nie ma

mowy o rewolucji. Obecna generacja tego
rodzaju oprogramowania ciągle boryka
się z wieloma problemami. Szczególnie
niebezpieczne może się więc okazać
nadmierne zaufanie systemowi wykrywania
włamań i zignorowanie zagrożeń, którym
nie jest on w stanie zapobiegać. Należy
więc zawsze pamiętać, że systemy IDS nie
zapewnią bezpieczeństwa chronionemu
przez nie systemowi informatycznemu w
przypadku:

• słabych mechanizmów

uwierzytelniania i autoryzacji
użytkowników – jeśli intruzowi uda się
uzyskać dostęp do sieci lub usługi za
pomocą tożsamości uprawnionego
użytkownika, system IDS nie zauważy
niczego podejrzanego,

• zagrożeń wynikających z luk w samych

protokołach sieciowych,

• braku dostępności samego systemu

IDS – np. w wyniku jego przeciążenia,
zawieszenia się lub nieprawidłowego
zakończenia działania,

• skutecznego ataku (np. typu Denial of

Service) wymierzonego w sam system
IDS.

Poza tymi ogólnymi ograniczeniami,
wspomniane wcześniej dwie klasy
systemów wykrywania włamań posiadają
swoje charakterystyczne ograniczenia,

wynikające bezpośrednio z odmiennej
zasady działania.

Typowe ograniczenia systemów

sieciowych (NIDS) to:

• brak możliwości nadzoru nad stanem

poszczególnych hostów i serwerów
– niemożliwe jest określenie
dokładnego stanu poszczególnych
systemów na podstawie samej
analizy ruchu sieciowego w
poszczególnych węzłach sieci,

• skanowanie sieciowych połączeń

szyfrowanych jest zazwyczaj niemożliwe
lub bardzo utrudnione,

• przełączniki sieciowe najczęściej

ograniczają możliwość monitorowania,
gdyż na pojedynczym porcie
przełącznika nie jest widoczny cały
przechodzący przez urządzenie ruch
sieciowy. Problem ten co prawda
rozwiązują urządzenia z funkcją
nadzorowania – tzw. replikowaniem
ruchu na wybranym porcie (funkcja
Roving Analysis Port w urządzeniach
firmy 3Com lub Switched Port Analyzer
w urządzeniach Cisco),

• nadmierne natężenie ruchu sieciowego,

którego system nie jest w stanie
analizować w czasie rzeczywistym.

Hostowe systemy HIDS cechują natomiast
następujące ograniczenia:

Rysunek 1.

Schemat sieci LAN zabezpieczonej systemami NIDS oraz HIDS

���������������

���������������������

����

����

����

���������������

���������������������

���������������

���������������������

�����������

����

����

������

������

�����������������

������

��������

���������

background image

OBRONA

70

HAKIN9 6/2009

UNIKANIE SYSTEMÓW IDS

71

HAKIN9

6/2009

• stałe monitorowanie zachowania

systemu i programów zużywa zasoby,

• luki w samym systemie operacyjnym

mogą pozwalać na obejście tego
rodzaju zabezpieczeń,

• brak możliwości analizowania ruchu

sieciowego w całym segmencie sieci.

Warto w tym momencie podkreślić
jeszcze raz, że systemy oparte na
hostach mają przewagę w połączeniach
szyfrowanych, takich jak sesje
webowe SSL (Secure Socket Layer)
czy połączeniach VPN (Virtal Private
Network
), ponieważ posiadają dostęp
do danych niezaszyfrowanych. Systemy
sieciowe zazwyczaj nie są w stanie
deszyfrować danych, muszą więc
przepuszczać pakiety zaszyfrowane,
i niektóre typy ataków wykorzystują
właśnie ten fakt.

Widać więc bardzo wyraźnie, że nie

należy zbytnio przeceniać możliwości
systemów IDS. Jednak co najważniejsze,
poznanie ograniczeń stosowanego
oprogramowania pozwala na lepsze
zabezpieczenie całej infrastruktury. To,
czego nie jest w stanie wykryć system
IDS, z pewnością można zabezpieczyć za
pomocą innego rozwiązania lub zmiany
konfiguracji samej usługi. Słabe punkty
technologii IDS wynikające z ograniczeń
technicznych to jedno. Druga, jeszcze
ważniejsza kwestia, to znajomość ataków
mających na celu zmylenie lub uniknięcie
systemów IDS.

Jak to zwykle bywa z systemami

zabezpieczeń, od samego początku
istnienia technologii IDS rozwijane

były ataki pozwalające na uniknięcie
wykrycia w trakcie przeprowadzanego
ataku. Chcąc skutecznie administrować
systemem IDS, należy poznać te
techniki i dogłębnie je zrozumieć. Tylko
wtedy administrator będzie świadomy
istniejących zagrożeń (pomimo
posiadania systemu wykrywania
włamań) i będzie w stanie kompleksowo
zabezpieczyć cały system informatyczny.
Poznanie metod unikania systemów
wykrywania włamań stanowi również
świetną okazję do lepszego zrozumienia
zasad działania samych systemów IDS.

Klasyczne metody

unikania systemów NIDS

Klasyczne metody oszukiwania systemów
NIDS wymierzone są przede wszystkim
w systemy bazujące na sygnaturowej
metodzie wykrywania włamań. Generalnie
rzecz biorąc, metoda wykrywania ataków
na podstawie ich sygnatur bazuje na
analizie zawartości strumienia danych
przesyłanych siecią i wyszukiwaniu ciągów
mogących świadczyć o przeprowadzanym
ataku. Jako stan świadczący o ataku,
może zostać zdefiniowana przykładowo
pewna kombinacja wartości pul
nagłówkowych lub określona zawartość
pola danych.

Wykrywanie włamań na podstawie

sygnatur ataków jest obecnie nadal
podstawową metodą stosowaną w
sieciowych systemach wykrywania
włamań. Praktycznie każdy z obecnie
szeroko stosowanych systemów
komercyjnych i otwartych (w tym
również SNORT) wykorzystuje tę metodę.

Wyjątek mogą stanowić jedynie pewne
systemy eksperymentalne, bazujące
na eksploracji danych (np. MINDS
Minnesota INtrusion Detection
System
), sieciach neuronowych i innych
alternatywnych metodach.

Jak łatwo można się domyślić, unikanie

sygnaturowego wykrycia ataku opiera się
zazwyczaj na niskopoziomowej manipulacji
zawartością pakietów IP lub segmentów
TCP, mającej na celu oszukanie sygnatur
wychwytujących określone ciągi lub
wartości.

Pierwszą z klasycznych i zarazem

chyba najczęściej stosowaną metodę
unikania IDS stanowi wstawianie (ang.
insertion). Założenia tej metody są
stosunkowo proste i opierają się na
rozszerzeniu strumienia danych o
dodatkowe informacje nieakceptowane
przez system docelowy, natomiast
prawidłowe z punktu widzenia sensora
IDS. Przykładowo, system wykrywający
atak PHF może poszukiwać wystąpienia
ciągu phf w żądaniu HTTP GET. Wniosek
z tego taki, że żądanie typu GET /cgi-
bin/phf?
zostanie wykryte jako atak. Jeśli
jednak intruz rozszerzy strumień danych
do postaci GET /cgi-bin/pleasedontd
etecttthisforme?,
system IDS może nie
zauważyć już niczego podejrzanego. Jeśli
jednak system docelowy traktuje dodane
przez intruza ciągi: leasedontdetectt ,
is oraz orme jako nieprawidłowe i
zignoruje je, wtedy odbierze wiadomość
w postaci GET /cgi-bin/phf?, czyli atak
uda się. Ataki polegające na wstawianiu
mogą więc mieć miejsce w sytuacji,
gdy system IDS mniej restrykcyjnie
filtruje strumień danych wejściowych niż
system docelowy. Jako rozwiązanie tego
problemu nasuwa się więc od razu ścisłe
filtrowanie danych wejściowych przez
IDS, jednak tego typu podejście może
poskutkować sytuacją odwrotną, czyli
umożliwieniem ataków polegających na
przesyłaniu pakietów odrzucanych (nie
przetwarzanych) przez zbyt restrykcyjny
system IDS, natomiast akceptowanych
przez system docelowy (ang. evasion
attacks
).

Oczywiście prawdziwe ataki

polegające na wstawianiu i unikaniu
są w praktycznym wykonaniu bardziej
skomplikowane niż teoretyczne dopisanie
kilku znaków w ciągu. Opierają się

Rysunek 2.

Snort dał się oszukać – testowy atak nie wygenerował alertu TCP

background image

OBRONA

70

HAKIN9 6/2009

UNIKANIE SYSTEMÓW IDS

71

HAKIN9

6/2009

zazwyczaj na manipulowaniu składaniem
(ang. reassembly) strumienia danych
TCP lub fragmentacją IP. Zazwyczaj
w praktyce polega to na wysłaniu
dodatkowych pakietów powodujących
inną reasemblację (np. poprzez
zmianę numerów sekwencyjnych) TCP
przez system IDS w stosunku do tego
samego procesu przeprowadzanego
przez system docelowy, co skutkuje
odebraniem odmiennych danych
przez oba systemy. W przypadku
ataków wykorzystujących manipulację
fragmentacją IP, intruz przesyła
zazwyczaj sztucznie pofragmentowane
lub celowo niekolejne pakiety IP, w
nadziei, że system IDS nie będzie w
stanie poprawnie odtworzyć strumień
danych i nie wykryje ataku. Wystarczy
również, że system IDS odrzuci dany
pakiet IP lub segment TCP z powodu
celowych błędów występujących w
nagłówku (np. błędnych kombinacji flag),
natomiast system docelowy przetworzy
go jako poprawny, by dany atak został
skutecznie ukryty.

Wiele klasycznych technik unikania

systemów NIDS, polegających na
manipulacji zawartością danych,
pojawiło się w 1999 r. w momencie
przedstawienia oprogramowania
specjalnie stworzonego w tym celu,
mowa tu o programie Whisker. Były
to metody wykorzystujące przede
wszystkim akceptowanie przez różne
systemy różnych rodzajów zapisu i
kodowania danych wejściowych, takie
jak:

• wykorzystywanie wrażliwości na

wielkie i małe litery, np. podmiana abc
na AbC,

• wykorzystywanie różnych formatów

zapisu ścieżek katalogów, np.
podmiana /katalog1/katalog2 na
\katalog1\katalog2,

• wstawianie długich losowych ciągów,

np. GET /<losowy ciąg>/dir/a.cgi,

• podmiana metod HTTP, np.

wykorzystanie metody HEAD zamiast
GET,

• heksadecymalne kodowanie URL za

pomocą zapisu %xx, np. podmiana cgi-
bin
na %63%67%69%2d%62%69%6e,

• podwojenie znaków, np. podmiana /

na //,

• odmienny zapis tej samej ścieżki, np.

podmiana /cgi-bin/some.cgi na /cgi-
bin/blahblah/../some.cgi
,

• sztuczne wskazania na ten sam

katalog, np. podmiana /tmp/ na /tmp/./
././././
.

Oprócz powyższych metod
manipulowania ciągami, Whisker został
wyposażony w jedną metodę operującą
w warstwie sieciowej. Tak zwany Session
splicing
polega na wysyłaniu żądania
podzielonego na części przesyłane
w różnych pakietach. Należy zwrócić
uwagę, że nie jest to fragmentacja IP,
lecz po prostu wysłanie danych w kilku
oddzielnych pakietach. Fragmentacja IP
występuje automatycznie w przypadku,
gdy pakiet jest za duży, natomiast
splicing to umyślne utworzenie wielu
pakietów zawierających niewielką ilość
danych. Przykładowo, żądanie

GET /

HTTP/1.0

, może zostać podzielone na

kilka pakietów o zawartości: "GE ", "T ", "/ ", "
H ", "T", "TP ", "/1", ".0 ".

Rozwiązanie problemu z tego typu

atakami wydaje się bardzo proste.
Mianowicie system NIDS musi tylko
zachowywać się dokładnie tak samo
jak system docelowy, czyli w identyczny
sposób traktować i przetwarzać każdy
pakiet i strumień danych sieciowych.
Zapewnienie tego nie jest jednak
takie proste, gdyż każdy system
operacyjny dysponuje w praktyce
odmienną implementacją obsługi
TCP/IP. Każdy skuteczny system NIDS
musi więc zostać przystosowany
do konkretnego, monitorowanego
systemu docelowego. Należy również
pamiętać, że zainstalowanie poprawek,
service packów lub zmiana wersji
jądra systemowego mogą wpłynąć na
sposób obsługi TCP/IP przez system
docelowy. Czyli po tego rodzaju
operacjach należałoby sprawdzić, czy
system NIDS nadal jest w tym zakresie w
pełni zgodny z chronionym przez siebie
systemem. Właśnie tego rodzaju różnice
w poszczególnych implementacjach
oraz nieścisłości w obsłudze wyjątków,
powodują, że takie ataki, pomimo tego,
że znane są od ponad dekady, mogą być
nadal z powodzeniem wykorzystywane
przeciwko współczesnej generacji
systemów NIDS.

Innym popularnym rodzajem ataku

na systemy NIDS jest atak typu DoS
(ang. Denial of Service). Jest to tak
naprawdę cała grupa niezwykle groźnych
ataków, istniejąca praktycznie od
samego początku systemów IDS. Ataki
na samą usługę lub wykorzystywane
przez nią zasoby są w przypadku
systemów NIDS niezwykle groźne ze
względu na to, że systemy tego rodzaju
działają zazwyczaj w trybie fail-open.
Oznacza to, że w przypadku awarii samej
usługi lub braku dostępnych zasobów,
system NIDS przepuści bez jakiejkolwiek
kontroli cały ruch sieciowy. Dzieje się
tak, ponieważ zwykle NIDS działa w
danym węźle sieci jako bierny sensor,
a nie jako element pośredniczący
w transmisji. Brak aktywności NIDS,
bez specjalnych mechanizmów, nie
zostanie w ogóle zauważony przez inne
urządzenia (w tym system docelowy)
biorące udział w transmisji. Ataki typu
DoS skierowane przeciwko sensorom
NIDS mogą wyczerpywać zasoby
systemu operacyjnego, pod kontrolą
którego działa agent, taki jak: pamięć
operacyjna czy procesor. Mogą również
wyczerpywać dostępne pasmo poprzez
generowanie nadmiernego ruchu
sieciowego. Tego typu ataki nie są
zazwyczaj skierowane w sam system
NIDS, a sposób ich wykonania jest
niezależny od rodzaju zastosowanego
sensora, nie będę się więc nad nimi
szczegółowo rozwodził.

Nowoczesne

metody unikania NIDS

Opisane w poprzednim punkcie metody
unikania systemów NIDS są nadal
aktualne i mogą być z powodzeniem
wykorzystywane nawet dziś. Jednak
obecna generacja systemów wykrywania
włamań, przy odpowiedniej konfiguracji
wynikającej ze świadomości i wiedzy
administratorów, jest w stanie poradzić
sobie z tego rodzaju atakami. Oczywiście,
komputerowi włamywacze nie poddają
się i opracowują coraz to nowe metody
zwodzenia sieciowych sensorów.
Jednym z głównych trendów, jaki można
zauważyć, jest stałe przesuwanie się
nowoczesnych ataków w górę sieciowego
modelu OSI. Podczas gdy dawniej
większość ataków dotyczyła warstwy

background image

OBRONA

72

HAKIN9 6/2009

sieciowej, nowe ataki oscylują głównie
wokół warstw najwyższych, szczególnie
w warstwie aplikacji. Dzieje się tak
prawdopodobnie w wyniku tego, że
niższe warstwy, szczególnie warstwa
sieciowa, są obecnie zazwyczaj bardzo
dobrze zabezpieczone za pomocą zapór
ogniowych oraz systemów wykrywania
włamań.

Również ewoluują same metody

zwodzenia systemów NIDS. Metod
bazujących wyłącznie na manipulacji
strumieniami danych, reasemblacją
TCP lub fragmentacją IP nie można
dziś na pewno nazwać skutecznymi.
Współczesne systemy NIDS (w tym
Snort) są w stanie rozpoznawać i
dekodować najróżniejsze formaty zapisu
danych oraz ścieżek do katalogów,
rozpoznawać i usuwać elementy i ciągi
umyślnie dodane w celu zmiany postaci
danych, radzą sobie z fragmentacją
oraz zamierzonym podziałem danych
na kilka oddzielnych pakietów. Jak więc
oszukać nowoczesny system NIDS?
Prawdopodobnie dziś jedynym w pełni
skutecznym sposobem na uniknięcie
wykrycia przez sieciowy sensor jest...
indywidualne podejście do każdego
przypadku.

Załóżmy, że komputerowy włamywacz

chce uniknąć wykrycia przez system
Snort. Wiedząc, że system docelowy
jest monitorowany przez Snort'a,
włamywacz może uruchomić własny
sensor i testować skuteczność
przyjętej przez siebie strategii unikania
wykrycia. Rozważmy przedstawioną
wcześniej metodę session splicing
zaimplementowaną w programie
Whisker. Testując przeprowadzanie

ataku zamaskowanego klasyczną
techniką splicing'u, włamywacz szybko
przekona się, że Snort nie da się tak
łatwo oszukać; pomimo maskowania,
atak zostanie wykryty. Dzieje się tak,
ponieważ limit czasu przechowywania
informacji o stanie połączenia (ang.
stateful inspection timeout) dla tego
systemu wynosi domyślnie 30 sekund.
Jeśli w tym czasie Snort odbierze
wszystkie pakiety z poszczególnymi
fragmentami żądania, dane zostaną
złożone w całość, a atak zostanie bez
trudu wykryty. Sprytny intruz bez kłopotu
znajdzie jednak sposób na sprytnego
Snort'a. Wystarczy odpowiednio podzielić
dane na pakiety (największe możliwe
fragmenty niepowodujące wykrycia),
a następnie wprowadzić opóźnienia
czasowe pomiędzy wysyłaniem kolejnych
pakietów w taki sposób, by cały proces
wykonania ataku przekroczył limit czasu
reasemblacji sesji (domyślnie 30 sekund)
systemu Snort. Jeśli atakowana aplikacja
zachowuje informacje o sesji dłużej niż
30 sekund, przeprowadzenie skutecznego
ataku bez wszczęcia alarmu (Rysunek 2)
staje się jak najbardziej możliwe! Warto w
tym momencie nadmienić, że domyślne
czasy wygaśnięcia sesji dla popularnych
obecnie serwerów są znacznie dłuższe i
wynoszą odpowiednio:

• Apache: 10 minut,
• IIS 5.0: 15 minut,
• IIS 6.0: 20 minut,
• IIS 7.0: 20 minut.

Reasumując, udane uniknięcie wykrycia
stało się możliwe dzięki poznaniu zasady
działania samego systemu NIDS oraz

zastosowaniu połączenia różnych metod
maskowania ataku (session splicing oraz
timing attack). Warto w tym momencie
również zauważyć, że jeśli administrator
odpowiednio (np. dla serwera Apache
na 10 minut) ustawiłby parametr stateful
inspection timeout
systemu Snort, udany
i jednocześnie niewykrywalny atak byłby
niemożliwy. W takim wypadku, jeśli
intruz chcąc uniknąć wykrycia, ustawiłby
opóźnienie pomiędzy przesyłanymi
pakietami na ponad 10 minut, serwer
zresetowałby takie połączenie,
gdyż całkowity czas przekroczyłby
dopuszczalny czas sesji. Nadal więc
najwięcej zależy od wiedzy i umiejętności
administratorów, którzy odpowiednio
strojąc system NIDS są w stanie
zapobiec nawet bardzo wyrafinowanym
atakom. Pozostawienie domyślnych
ustawień zapewni wykrywalność
wyłącznie typowych ataków.

Unikanie systemów HIDS

Systemy wykrywania włamań typu
HIDS (ang. host-based intrusion
detection system
) opierają się na
module agenta rezydującego w
monitorowanym hoście. Zadaniem
modułu jest analiza logów zdarzeń,
plików systemowych i innych zasobów
systemowych w poszukiwaniu zmian
mogących świadczyć o wystąpieniu
nieautoryzowanego dostępu do systemu.
W wypadku wykrycia nietypowego
zdarzenia, HIDS automatycznie generuje
odpowiedni alarm. Monitorowane mogą
być między innymi próby logowania do
systemu, stan (sumy kontrolne) plików
systemowych i aplikacji. Zazwyczaj
systemy HIDS opierają się na okresowym

W Sieci

http://www.cert.org/ – Computer Emergency Response Team,
http://www.cs.umn.edu/research/MINDS/ – MINDS (Minnesota Intrusion Detection System),
http://www.wiretrip.net/rfp/ – rfp.labs libwhisker,
http://www.irongeek.com/i.php?page=videos/rob-ragan-filter-evasion-houdini-on-the-wire – Rob Ragan – Filter Evasion,
http://www.witczak.priv.pl/index2.php?option=com_content&do_pdf=1&id=250 – Rodzaje systemów IDS/IPS,
http://www.skaion.com/research/tgc-rsd-raid.pdf Combining Evasion Techniques to Avoid Network Intrusion Detection Systems,
http://www.icir.org/vern/papers/norm-usenix-sec-01-html/Network Intrusion Detection: Evasion, Traffic Normalization, and End-to-End Protocol

Semantics,

http://www.sans.org/reading_room/whitepapers/detection/intrusion_detection_evasion_how_attackers_get_past_the_burglar_alarm_1284?show

=1284.php&cat=detectionIntrusion detection evasion: How Attackers get past the burglar alarm,

http://complianceandprivacy.com/WhitePapers/iDefense-IDS-Evasion/iDefense_IDSEvasion_20060510.pdf Intrusion Detection System (IDS)

Evasion.

background image

OBRONA

74

HAKIN9 6/2009

wykonywaniu fotografii stanu (obliczaniu
sum kontrolnych) istotnych plików i
porównywaniu ich z utworzoną wcześniej
bazą wzorcową. Jeśli włamywaczowi
uda się uzyskać dostęp do systemu
i wprowadzić do niego własny kod
– system wykrywania włamań
podniesie alarm. Tego typu mechanizm
może jednak zostać stosunkowo
łatwo oszukany przez włamywacza
poprzez odpowiednie (uwzględniające
sumy kontrolne złośliwego kodu)
zaktualizowanie bazy wzorcowej.

Programów zapewniających

dodatkowe bezpieczeństwo serwerów
stworzono mnóstwo i z pewnością
włamywacz nie jest w stanie ręcznie
sprawdzić obecność każdego z nich
w atakowanym systemie. Możliwe jest
również, że administrator napisał swój
własny program sprawdzający sumy
kontrolne plików, gdyż nie jest to nic
szczególnie trudnego. Jednak jeśli w
danym systemie używany jest jeden z
bardzo popularnych systemów, taki jak
np.Tripwire (typowe ścieżki: /usr/adm/
tcheck
, /usr/local/adm/tcheck), należy
się spodziewać, że doświadczony cracker
zauważy jego obecność na pierwszy rzut
oka. W normalnych warunkach Tripwire
powinien wszcząć alarm, gdy tylko suma
kontrolna któregoś z kontrolowanych
plików ulegnie zmianie. Cracker
może jednak w dość prosty sposób
uśpić czujność tego programu po
wprowadzeniu własnego, złośliwego kodu
na przynajmniej dwa sposoby:

• zaktualizować bazę sum kontrolnych po

wykonaniu podmiany lub modyfikacji
kodu (w przypadku programu Tripwire
polecenie:

tripwire -update /bin/

podmieniony _ plik

),

• zmodyfikować listę plików objętych

procedurą sprawdzania sum
kontrolnych (wykluczyć z listy
zmodyfikowany lub dodany przez siebie
plik).

Te proste przecież czynności spowodują,
że pomimo wprowadzenia do systemu
złośliwego kodu, niczego nieświadomy
administrator będzie spał spokojnie, gdyż
jego system HIDS nie zauważy niczego
podejrzanego... Również przeprowadzana
po ewentualnym wykryciu włamania

analiza powłamaniowa może zostać w
ten sposób zmylona i przez to nie wykryć
prawdziwych intencji intruza.

Jak widać, systemy HIDS opierające

się na okresowej, statycznej analizie
systemu operacyjnego nie są zbyt
wyrafinowane i mogą zostać w prosty
sposób oszukane. Włamywacz może
jednak na swej drodze napotkać również
bardziej skomplikowane systemy HIDS
bazujące na wykrywaniu anomalii.
Tego typu oprogramowanie analizuje
dynamiczny stan systemu poprzez
ciągłe monitorowanie i przechwytywanie
odwołań do jądra systemu operacyjnego
lub API, i ich rejestrowanie w dzienniku
zdarzeń. Systemy wykrywania anomalii
rozpoczynają swą pracę od fazy
uczenia się. Na tym etapie system
tworzy profil typowych zachowań
monitorowanego systemu operacyjnego
i działających w nim aplikacji poprzez
nauczenie się występujących w nim
typowych odwołań systemowych. Faza
właściwego działania systemu polega
natomiast na wykrywaniu wystąpień
nietypowych zachowań (odwołań do
jądra lub API) monitorowanego systemu,
które najprawdopodobniej świadczą
o wystąpieniu nieautoryzowanego
dostępu do systemu. Ponieważ systemy
tego rodzaju tworzą pewien model
normalnego działania monitorowanego
systemu, muszą zawsze zakładać pewien
margines błędu. Gdyby prawidłowe
zachowanie systemu zostało bardzo
ściśle zdefiniowane, taki system
generowałby ogromne ilości fałszywych
wykryć (ang. false positive). Właśnie ten
margines dozwolonych operacji może
zostać wykorzystany przez włamywacza
do ukrycia swej działalności. Sam
pomysł jest dość prosty i sprowadza
się do takiego przeprowadzenia ataku,
by imitował (ang. mimicry attacks) on
prawidłowe działanie systemu i tym
samym nie spowodował wszczęcia
alarmu przez system HIDS.

Podsumowanie

Nowoczesne systemy wykrywania
włamań stanowią ważny element systemu
bezpieczeństwa informatycznego. Kolejne
generacje IDS są w stanie wykryć coraz
bardziej wyrafinowane ataki. Również wiele
powszechnie stosowanych metod unikania

wykrycia nie robi już na systemach IDS
żadnego wrażenia. Rozwojowi technik
wykrywania włamań towarzyszy jednak
równie intensywny rozwój technik unikania
wykrycia. Intruz znający doskonale
atakowany system oraz chroniący go
IDS, nadal jest w stanie przeprowadzić
niewykrywalny atak. Taki atak będzie
wymagał od intruza sporej wiedzy,
dostosowania jego parametrów dokładnie
do atakowanego systemu, zastosowania
jednocześnie kilku technik unikania, jednak
jest jak najbardziej możliwy! Okazuje się
więc, że pomimo wielu lat intensywnego
rozwoju, technologia IDS wciąż nie jest
doskonała. Nadal najwięcej zależy od
administratora, który musi odpowiednio
sparametryzować pracę IDS, w zależności
od chronionego przez niego systemu
docelowego. Bez tego nadal nie ma mowy
o wysokim poziomie bezpieczeństwa
infrastruktury informatycznej. Systemu IDS
nie należy więc w żadnym razie traktować
jako czarnej skrzynki, której fabryczna
konfiguracja jest optymalna do każdych
warunków. Jest wręcz przeciwnie, gdyż
zazwyczaj domyślna konfiguracja pozwala
zaledwie na wykrywanie najbardziej
popularnych typów ataków.

Nadal nie istnieje również jeden

system IDS zapewniający bezpieczeństwo
zarówno sieciowe, jak i hostowe.
Historyczny podział na systemy sieciowe
i rezydentne jest wciąż aktualny. Oba
rodzaje nadal cechują charakterystyczne
wady, zalety oraz obszary zastosowań.
Niestety, w chwili obecnej maksymalne
bezpieczeństwo może zapewnić wyłącznie
jednoczesne wykorzystanie wykrywania
włamań sieciowego oraz hostowego, a
takie rozwiązanie jest mało wygodne (brak
centralnego zarządzania IDS) i zazwyczaj
kosztowne (komercyjne systemy HIDS są
stosunkowo drogie i licencjonowane na
poszczególne hosty). Doskonale skuteczny,
bezobsługowy i kompletny system
wykrywania włamań pozostaje więc nadal
jedynie w sferze marzeń administratorów
systemów informatycznych.

Wojciech Smol

Autor jest absolwentem wydziału Automatyki, Elektroniki

i Informatyki Politechniki Śląskiej w Gliwicach. Ukończył

studia na kierunku Informatyka, o specjalności Bazy

danych, sieci i systemy komputerowe. Pracuje jako

administrator sieci i systemów komputerowych w firmie

Mostostal Zabrze Holding S.A.

Kontakt z autorem: wojciech.smol@mz.pl


Wyszukiwarka

Podobne podstrony:
2009 06 15 21;42;51
Elektroinstalator 2009 06 koordynacja ochronników klasy I [B] i II [C]
2009 06 BO Egzamin
Makroekonomia I 11 Cykl koniunkturalny (2009 06 02)
2013 05 06 Ustawa o systemie oświaty
06 Klasy systemow MRP ERPid 6315 ppt
2009 06 09 Kolokwium 2
06 MODELE-SYSTEMOW-FINANSOWYCH-NA-SWIECIE, UEP lata 2014-2019, Bankowość inwestycyjna
2009 06 29 Caritas In Veritate
2009 06 26 20;05;26
2009 06 Szkoła konstruktorów klasa II
Lubie Gotowac 2009 06
2009 10 OpenCV – systemy wizyjne [Programowanie]
2009 06 03 POZ 11id 26815 ppt
06 Klasy systemow MRP ERP Kopiaid 6316 ppt
bd w3 (aga's conflicted copy 2009 06 10)
Egzamin 2009 06 22 teoria, MEiL, [NW 125] Podstawy konstrukcji maszyn II, Egzaminy
egzamin 2009.06 (X-92) - czesc 1, odpowiedzi

więcej podobnych podstron