Systemy wykrywania włamań IDS (snort)

Transkrypt

Systemy wykrywania włamań IDS (snort)
Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT
Bezpieczeństwo systemów komputerowych - Systemy wykrywania włamań
IDS (snort)
Autor: Patryk Krawaczyński, Damian Zelek
21.09.2007.
Zmieniony 30.07.2010.
Bezpieczeństwo każdego komputera znajdującego się w "sieci" staje się sprawą priorytetową. Aby
zapewnić należyty poziom bezpieczeństwa naszemu systemowi nie wystarczy już tylko, co jakiś czas
ręcznie przeglądać pliki dziennika (tzw. logi systemowe). Trzeba nam czegoś więcej! Tu z pomocą
przychodzą nam programy kategorii IDS. Zapewnienie wysokiego poziomu bezpieczeństwa komputera
podłączonego do Internetu w dzisiejszych czasach staje się rzeczą trudną. W Internecie przez cały czas
rozgrywa się szybki i chaotyczny wyścig pomiędzy administratorem a intruzem. Ten drugi z reguły ma
nad Nami przewagę, gdyż atakuje on z zaskoczenia i mało kiedy jesteśmy w stanie przewidzieć jego
niepowołane przymiarki do naszego serwera. Jeżeli chcesz, aby Twój serwis lub komputer prywatny był w
odpowiedni sposób zabezpieczony przed tym nierównym wyścigiem, powinieneś przyjrzeć się bliżej
programom z rodziny IDS.
Systemy IDS (Intrusion Detection Systems) - detekcji intruzów - są to programy - filtry pakietów
oraz plików. Wiemy już, że Linux potrafi rejestrować wszystko, od procesu logowania po wychodzenia z
systemu, żądania połączeń, awarie sprzętowe, odmowę obsługi i polecenia użytkowników. To bardzo
istotna część systemu, ale specjaliści od zabezpieczeń od dawna poszukują rozwiązań jeszcze lepszych.
Bo przecież, jeśli dobrze się nad tym zastanowić, pliki dziennika to tylko ślad po czymś, co już zostało
dokonane. Tymczasem potrzeba systemu, który wykryje trwające właśnie włamanie. Wykrywanie włamań
(intrusion detection) to detekcja naruszenia bezpieczeństwa systemu w czasie rzeczywistym (za czas
rzeczywisty należy rozumieć czas, w którym trwają czynności prowadzone przez program IDS). Pierwsze
systemy IDS powstały już na początku lat 80. Do dziś przeprowadzono ogromną ilość badań w tym
kierunku i powstały setki systemów wykrywania włamań (choć większość z nich nie jest dostępna dla
użytku publicznego). Istnieją dwa podstawowe typy systemów wykrywania włamań:
1) Systemy oparte na zbiorze zasad - wykorzytują one bazy danych znanych ataków i ich sygnatur. Kiedy
pakiety przychodzące spełnią określone kryterium lub zasadę, oznaczane są jako usiłowanie włamania.
Wadą tych systemów jest fakt, że muszą zawsze korzystać z jak najbardziej aktualnych baz danych, a
także to, że jeśli atak określono zbyt precyzyjnie - to podobne, ale nie identyczne włamanie nie zostanie
rozpoznane.
2) Systemy adaptacyjne - tutaj wykorzystane są bardziej zaawansowane techniki, w tym nawet sztuczna
inteligencja. Rozpoznawane są nie tylko istniejące ataki na podstawie sygnatur - system taki potrafi także
uczyć się nowych ataków. Ich główną wadą jest cena, skomplikowana obsługa i konieczność posiadania
dużej wiedzy z zakresu matematyki oraz statystyki.
W systemach wykrywania włamań stosuje się dwa podejścia: profilaktyczne i reakcyjne. W pierwszym,
system nasłuchuje (jak sniffer), czy w sieci nie dzieje się nic podejrzanego i w razie potrzeby podejmuje
odpowiednie działanie. W drugim natomiast system bada pliki rejestru i znów - w razie znalezienia
podejrzanych zapisów, odpowiednio reaguje. Różnica może wydawać się niewielka, ale w rzeczywistości
jest bardzo istotna. System reakcyjny to po prostu rozbudowany system rejestrowania - alarmuje, gdy
atak już nastąpił, nawet jeśli stało się to tylko 3 i pół sekundy temu. Z drugiej strony, system
profilaktyczny reaguje już w czasie ataku. W niektórych systemach możliwe jest nawet obserwowanie
przebiegu ataku przez obsługującego. Teoretycznie, model reakcyjny można stworzyć poprzez
wykorzystanie standardowych narzędzi bezpieczeństwa systemu Linux: skrypt lokalizujące określone
zachowania w plikach dziennika oraz skrypt, który dodaje adres atakującego (lub nawet całą sieć) do
pliku hosts.deny i tcpd nie pozwoli na więcej połączeń z tego adresu. Taka strategia ma troche wad.
Jedna z nich wynika z faktu, że nie zawsze adres pod który podszywa się atakujące jest prawdziwy.
Intruz może więc przeprowadzać kolejne próby spod innych adresów. Lecz rozwiązania profilaktyczne też
nie są idealne. Przede wszystkim bardzo wykorzystują zasoby systemu. Po pierwsze, jeśli atakujący
posiada świadomość, że mamy profilaktyczny system wykrywania włamań, może poczynić kilka założeń na przykład takie, że nasz system IDS podejmie takie samo działanie w przypadku wykrycia takiego
samego ataku. A więc "zalewając" host takimi samymi atakami z różnych adresów, atakujący może
doprowadzić do nadmiernego wykorzystania zasobów i unieruchomić sam system IDS poprzez atak DoS.
System taki może na przykład, po wykryciu każdego ataku, uruchamiać proces powłoki. Ile takich
procesów da się uruchomić, zanim system przestanie być użyteczny? Po drugie, w zależności od mocy
naszego procesora i ograniczeń pamięci, możemy być zmuszeni do wybrania analizy ruchu sieciowego
zamiast analizy zawartości. Takie podejście jest mniej wymagające - analizowane są nagłówki, a nie treść
http://www.witczak.priv.pl
Kreator PDF
Utworzono 7 March, 2017, 01:33
Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT
pakietów. To wyklucza wiele ataków, ale nie wszystkie. Wiele sygnatur ataków ukrywa się w zawartości
pakietu i prosta analiza ruchu sieciowego nie wystarczy. Wreszcie, oba systemy mogą generować
fałszywe trafienia, co może mieć poważne konsekwencje. Na przykład, wielu administratorów tak
konfiguruje systemy wykrywania włamań, aby po wykryciu intruza powiadamiały o tym sygnałem
dźwiękowym. Po kilku fałszywych trafieniach sygnały takie zaczynają być ignorowane. A co, jeśli każemy
naszemu systemowi wykonywać blokade systemu lub kontratak? Wracając do ogólnego zarysu systemów
IDS - do głównych (priorytetowych) zadań tych systemów należą:
-
analiza aktywności systemu i użytkowników,
wykrywanie zbyt dużych przeciążeń,
analiza plików dziennika,
rozpoznawanie standardowych działań włamywacza,
natychmiastowa reakcja na wykryte zagrożenia,
tworzenie i uruchamianie pułapek systemowych,
ocena integralności poszczególnych części systemu wraz z danymi.
Jak już wspomniałem zadania systemów IDS zostały skonstruowane przez wieloletnie doświadczenia
różnych ludzi zajmujących się bezpieczeństwem. Zauważyli oni, że intruzi włamują się do systemów z
wielu powodów, najczęściej w celu uzyskania poufnych danych, lub w przypadku hackerów osiągnięcia
uznania w kręgu własnej społeczności. Przy próbie penetracji systemu agresor działa w sposób
metodyczny, zazwyczaj metodą kolejnych kroków. Na kroki te składają się:
-
rozpoznanie systemu,
wejście do systemu,
wykorzystanie słabych punktów systemu,
wyprowadzenie z niego interesujących informacji.
Ostatni punkt jest najbardziej lekkim przewinieniem intruzów, którzy po jego wykonaniu zacierają ślady i
opuszczają odwiedzoną sieć. Wiele włamywaczy podmienia główne strony systemów informatycznych,
usuwa krytyczne zasoby, doszczętnie niszczy system. Techniki ataku, będącego efektem takiego
rozpoznania, można podzielić na trzy kategorie: sieciowe, ataki na system operacyjny i na aplikacje
(więcej informacji na temat ataków możemy dowiedzieć się z artykułu: "rodzaje ataków internetowych").
Ataki sieciowe - dotyczą infrastruktury komunikacyjnej, a ich celem mogą być urządzenia sieciowe, takie
jak routery i przełączniki, a także protokoły poziomu sieci na serwerze (warstwa 3 modelu OSI). Celem
takiego ataku jest zazwyczaj uzyskanie uprawnień pozwalających na manipulowanie ustawieniami
konfiguracyjnymi, mającymi wpływ na trasowanie ruchu komunikacyjnego. Ataki w warstwie 3 lub niższej
- często są to ataki typu DoS - dotyczą modułów oprogramowania sieciowego na serwerze. W tym
przypadku celem jest załamanie serwera lub co najmniej znaczne spowolnienie jego pracy.
Ataki na system operacyjny - wykorzystują błędy i luki w powszechnie stosowanych systemach
operacyjnych. Najczęściej wykorzystywana jest koncepcja superużytkownika (root w systemach *nix, czy
administrator w MS Windows). Tak uprzywilejowany użytkownik przechodzi bez przeszkód przez
wszystkie środki ochrony wbudowane w system operacyjny - może mieć dostęp do wszystkich plików
(łącznie z systemowymi) i urządzeń, i nadawać uprawnienia nowym użytkownikom. Większość technik
uzyskiwania uprawnień superużytkownika wykorzystuje tzw. efekt przepełnienia bufora (buffer overflow b0f). Technika ta pozwala atakującemu na wprowadzenie swojego kodu do innego programu pracującego
na komputerze i wykonaniu go w kontekście uprawnień przewidzianych dla tego programu. Zazwyczaj
taki podrzucony kod zakłada konto nowego, uprzywilejowanego użytkownika. Umożliwia to potem
intruzowi legalne wejście do systemu przez zalogowanie się jako ten nowy użytkownik.
Ataki aplikacyjne - wraz z rozwojem Internetu pojawiły się powszechnie stosowane aplikacje, takie jak
serwery WWW, e-mail, DNS. Takie aplikacje są idealnym celem, ponieważ - z definicji - nastawione są na
ciągłe oczekiwanie na komunikację wchodzącą z Internetu, a użytkownicy zewnętrzni mogą uzyskiwać do
nich dostęp bez pośrednictwa zapór ogniowych. Na pierwszy ogień idą przeważnie serwery webowe. Do
ataku na nie wykorzystywane są odpowiednio przygotowane zlecenia HTTP, uznawane za legalne z
punktu widzenia zapory ogniowej, ale przygotowane do pokonania słabych punktów serwera WWW i
uzyskania dostępu do poufnych informacji zgromadzonych w bazach danych lub do wykonania własnego
programu na zaatakowanym serwerze webowym. Inne sposoby ataków związane są z programami CGI
(Common Gateway Inerface). Programy te są podstawowym środkiem do implementacji aplikacji
webowych. Serwer webowy po otrzymaniu zlecenia CGI, wywołuje odpowiedni program CGI przekazując
do niego otrzymane parametry. Błędy projektowe, popełniane często na etapie tworzenia takich
http://www.witczak.priv.pl
Kreator PDF
Utworzono 7 March, 2017, 01:33
Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT
programów, zwłaszcza w kontroli zakresu danych, stwarzają okazję do ataków.
Stosowane w systemach IDS rozwiązania można obecnie podzielić na trzy kategorie:
1) Host IDS (HIDS). Rozwiązania te opierają się na modułach agentów rezydujących na wszystkich
monitorowanych hostach. Moduły te analizują logi zdarzeń, kluczowe pliki systemu i inne sprawdzalne
zasoby, poszukując nieautoryzowanych zmian lub podejrzanej aktywności. Wszystko, co odbiega od
normy, powoduje automatyczne generowanie alarmów lub uaktywnienie pułapek SNMP. Monitorowane są
m.in. próby logowania do systemu i odnotowywane używanie niewłaściwego hasła - jeżeli próby takie
powtarzają się wielokrotnie w krótkich odstępach, można założyć, że ktoś próbuje dostać się do systemu
nielegalnie. Innym sposobem jest monitorowanie stanu plików systemowych i aplikacyjnych. Wykonuje
się to metodą "fotografii stanów", rejestrując na początku stany istotnych plików (na tej zasadzie działa
program Tripwire). Jeżeli napastnikowi (lub niektórym postaciom konia trojańskiego) uda się uzyskać
dostęp do systemu i wykonać zmiany, zostanie to zauważone (na ogół jednak nie w czasie
rzeczywistym). Większość systemów hostowych to systemy reaktywne - oczekujące na pojawienie się
jakichś zdarzeń przed podniesieniem alarmu. Są jednak wśród nich także systemy działające z
wyprzedzeniem (proaktywne), monitorujące i przechwytujące odwołania do jądra systemu operacyjnego
lub API, w celu zapobiegania atakom, jak również zarejestrowania tych faktów w dzienniku zdarzeń.
Działania proaktywne mogą polegać także na monitorowaniu strumieni danych i środowisk specyficznych
dla poszczególnych aplikacji i demonów (np. lokalizacji plików i ustawień rejestrów dla serwerów WWW)
w celu ich ochrony przed nowymi atakami, dla których nie istnieją jeszcze odpowiednie sygnatury w
bazach danych IDS. Rozwiązania takie noszą czasem nazwę systemów zapobiegania włamaniom (IPS Intrusion Prevention Systems), ponieważ ukierunkowane są na powstrzymywanie ataków, a nie na proste
tylko informowania o nich.
Serwer www + system Host IDS
/
/
/
Wezeł(router+firewall)--- Serwer SQL + system Host IDS
\
\
\
Serwer poczty + system Host IDS
2) Network IDS (NIDS). Rozwiązania te monitorują ruch sieciowy w czasie rzeczywistym, sprawdzając
szczegółowo pakiety w celu namierzenia ataków typu DoS, czy też 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 (attack signatures), przechowywanymi w
bazie danych anomalii w ich wykonywaniu (na tej zasadzie działa m.in. program SNORT). Bazy danych
sygnatur uaktualnianie są przez dostawców pakietów IDS w miarę pojawiania się nowych form ataków.
Po wykryciu podejrzanej aktywności monitor sieciowy może zaalarmować obsługę sieci, a także zamknąć
natychmiast podejrzane połączenie. Wiele tego typów rozwiązań jest integrowanych z zaporami
ogniowymi w celu ustalenia dla nich nowych reguł blokowania ruchu, umożliwiających zatrzymania
atakującego już na zaporze ogniowej przy próbie kolejnego ataku. Rozwiązania oparte na metodzie
sieciowej funkcjonują w tzw. trybie rozrzutnym (promiscous mode - tak jak sniffery), polegającym na
przeglądaniu każdego pakietu w kontrolowanym segmencie sieci, niezależnie od adresu przeznaczenia
pakietu. Z uwagi na duże obciążenie, jakie niesie ze sobą przeglądanie każdego pakietu, rozwiązania te
wymagają zazwyczaj dedykowanego hosta (specjalnie do tego przeznaczonego).
Serwer www
/
/
/
Wezeł(router+firewall+network IDS)--- Serwer SQL
\
\
\
Serwer poczty
3) Network Node IDS (NNIDS). Jest to stosunkowo nowy typ hybrydowego agenta IDS, wolny od
niektórych ograniczeń sieciowych IDS. Agent taki pracuje w sposób podobny do sieciowych IDS - pakiety
http://www.witczak.priv.pl
Kreator PDF
Utworzono 7 March, 2017, 01:33
Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT
przechwytywane w sieci są porównywane z sygnaturami ataków z bazy danych - interesuje się jednak
tylko pakietami adresowanymi do węzła (ang. node), na którym rezyduje (stąd nazwa IDS węzła sieci,
czasami też Stack-based IDS). Systemy takie są niekiedy określone jako "hostowe", jednak termin ten
dotyczy systemów skupiających się na monitorowaniu plików logu i analizie zachowań (np. Hostsentry),
natomiast sieciowe i węzłowe IDS skupiają się na analizie ruchu TCP - z tą jedynie różnicą, że NIDS
pracuje w trybie "rozrzutnym", podczas gdy NNIDS skupiają się na wybranych pakietach sieci. Fakt, że
systemy NNIDS nie zajmują się analizą wszystkich pakietów krążących w sieci, powoduje, iż pracują one
znacznie szybciej i wydajniej, co pozwala na instalowanie ich na istniejących serwerach bez obawy ich
przeciążenia. W tym przypadku trzeba zainstalować cały szereg agentów - jeden na każdym chronionym
serwerze - a każdy z nich musi przekazywać raporty do centralnej konsoli lub serwera logów.
Warto także zauważyć, ż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 wykrywania włamań nie
mogą deszyfrować danych, muszą więc przepuszczać pakiety zaszyfrowane i, niektóre typy ataków
wykorzystują właśnie ten fakt. Dodatkowo, aby system IDS mógł pracować prawidłowo, musi rozłożyć
wszystkie docierające dane / procesy na kilka etapów, gdyż zwykle funkcjonują one w odrebnych
warstwach stosu sieciowego. Pierwsza badana warstwa to warstwa sieciowa i transportowa. Właśnie przy
tych warstwach (chociaż nie tylko) mamy ogromną możliwość zmylenia systemu IDS przez ingerencje w
pakiety protokołu TCP/IP. Na przykład stosowanie techniki wstawiania i unikania podczas zmiany
sygnatur umożliwia nam zmylenie systemu.
Wstawienie - technika ta jest używana, jeżeli aktywny system IDS przyjmuje pewne informacje,
twierdząc (już z początkowego założenia), że podobnie zrobi także maszyna docelowa. Jeżeli jednak nie
zdarzyło by się tak - IDS nie zinterpretuje strumienia danych w taki sam sposób jak maszyna docelowa to nie będzie mogła ona w odpowiedni sposób Nas zaalarmować (a przecież o to chodzi włamywaczom).
Prościej mówiąc: sygnatura systemu IDS nie będzie odpowiadać danym monitorowanym w sieci np. jeżeli
IDS szuka w sygnaturach ciągu znaków "Zły-pakiet" (IDS szuka dokładnie takiego ciągu) to zmieniając
ciąg na "Nie-zły-pakiet" IDS zatwierdzi przesyłkę jako bezpieczną.
Unikanie - to technika, którą można określić niczym innym jak przeciwieństwem wstawiania. Występuje
ona m.in. wtedy, gdy system docelowy przyjmuje pewne dane, a system IDS ignoruje je. Jeśli system
IDS nieprawidłowo zinterpretuje komunikaty ze strony atakującego i nie zostanie zaakceptowany przez
maszynę docelową (docelowy system nie zostanie o niczym poinformowany), wtenczas otrzymujemy
dowolność komunikacji z "podatnym" serwerem.
Innymi sposobami zmylenia systemów IDS jest już inżynieria sieciowa, czyli modyfikowanie nagłówków
TCP/IP. W przypadku nagłówka IP istnieje wiele pól, podczas modyfikacji których można uzyskać złe
efekty (trzeba jednak pamiętać, iż modyfikacje tych nagłówków trzeba przeprowadzać bardzo ostrożnie,
gdyż muszą one mieć możliwość krążenia po internecie):
- modyfikowanie rozmiaru pakietu może znacznie utrudnić jakiemuś nieprzystosowanemu systemowi
rozpoznanie (system nie będzie w stanie znaleźć wyższych warstw pakietu),
- można także dokonać modyfikacji samych sum kontrolnych pakietów IP. System będzie uznawał je za
poprawne, jednak one wcale takie nie będą (no chyba, że IDS będzie przeliczał sumy kontrolne każdego
pakietu z osobna, wtedy takie obejście nie wyjdzie),
- składanie pofragmentowanych pakietów IP (jeśli IDS składa pakiety w inny sposób niż sam system,
wtedy taki host jest podatny na ten atak), w których chodzi o kolejność docierania pakietów (pakiety
takie składa się w takiej samej kolejności w jakiej były wysłane), jakie docierają do systemu. Jeśli to
zmienimy, system może się pogubić, zgubić parę pakietów i ulec załamaniu).
Podobnie jest w przypadku nagłówków TCP. W pakietach tych (tak samo jak miało to miejsce w
nagłówkach IP) istnieje także wiele potencjalnych luk (patrząc poprzez pryzmat włamywacza, nie w
sensie komunikacji sieciowej) i pól, w których, przy drobnych zmianach, można uzyskać kompromis
włamaniowy. Np. gdy wyślemy pakiet TCP bez znacznika ACK, to system operacyjny mogłby go odrzucić,
ale IDS przyjmie go. Inną potencjalną luką w oczach włamywacza może być pole CHECKSUM - kiedy IDS
nie oblicza oddzielnie sum kontrolnych każdego segmentu TCP (przeważnie producenci IDS tak właśnie
robią, z uwagii na to, iż narzut czasowy takich działań byłby zbyt duży), dlatego można wstawić
segmenty o niepoprawnej sumie kontrolnej. A już sama reakcja zależy od systemu operacyjnego i
względnie firewalla jeśli taki został zainstalowany. Należy także wspomnieć, że systemy IDS nie są łatwe
do wdrożenia i wymagają dużego zaangażowania. Choć ich konstruktorzy wprowadzają to coraz nowsze
rozwiązania przedstawionych wyżej problemów to wymagają one także coraz to wyższej wiedzy z zakresu
budowy i zasad działania Internetu.
IPS (Intrusion Prevention Systems) - jeszcze do niedawna były to rozwiązania, które masowo były
http://www.witczak.priv.pl
Kreator PDF
Utworzono 7 March, 2017, 01:33
Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT
porównywane do "trochę" bardziej rozbudowanych, intuicyjnych i efektywnych systemów IDS. Nic
bardziej mylnego. Do głównych zadań systemów IPS należy sama prewencja, nie kładzie się tu nacisku
na alarmowanie administratora o mającym właśnie miejsce włamaniu, a szybkim zakończeniu trwającego
właśnie ataku. System IDS jest potencjalnie powolny - analizuje pakiety, komunikuje się ze swoimi
bazami sygnatur, przekazuje informacje do firewalla, tworzy określone reguły etc. Daje to wystarczająco
dużo czasu (niestety, zbyt dużo) potencjalnemu włamywaczowi. W systemach IPS wszystkie te procedury
schodzą na dalszy plan; system taki ma za zadanie natychmiast przerwać atak a dopiero w następnej
kolejności podjąć odpowiednie procedury formalne (tutaj funkcja informowania o mającym miejsce
zajściu).
W dobie dzisiejszego szybkiego rozwoju techniki, bardzo często już istniejące systemy IDS przejmują bądź już przejęły - niektóre funkcje systemów IPS. Dlatego trudno jest rozróżniać poszczególne produkty
pod względem ich przynależności. Jednak odnośnie ich funkcjonalności chyba najlepiej mówi nam ich
sama nazwa:
- IDS, Intrusion Detection Systems, systemy mające na celu wykrywać potencjalne ataki (a więc nie jako
powiadomić nas o określonym zajściu, nawet udanym),
- IPS, Intrusion Prevention Systems, systemy, których głównym zadaniem jest czynna ochrona naszej
sieci, niekoniecznie identyfikacja czy chociażby ew. raportowanie.
Dla przykładu, typowym zachowaniem WŁAŚNIE dla systemu IPS jest m. in. przechwytywanie wywołań
systemowych, "uodparnianie" stosu, podkładki programowe czy zmiana danych w warstwie aplikacji.
Należy pamiętać także o tym, iż dokładność (tutaj trafność) systemu IPS musi być znacząco większa niż
ma to miejsce w systemach IDS. Często rozważa się instalowanie programów (lub ich całych pakietów) z
rodziny IPS na różnych warstwach jednocześnie, m. in. warstwa łącza danych, warstwa transportu oraz
warstwa aplikacji (np. poprzez oddzielny proces serwera internetowego w celu analizowania szyfrowanych
strumienii czy chociażby dla ogólnego podniesienia poziomu bezpieczeństwa samego serwera).
Ostatnimi czasy bardzo często zdarza się (niejako przyjęło się), iż systemy IPS przybierają także formę
całościowych i kompleksowych rozwiązań mających na celu chronić maszynę w sieci. W takim znaczeniu znaczeniu kompleksowym - IPS to z reguły Firewall + IDS/IPS [właściwe] + AntyVirus + narzędzia
zapewniające prywatność i poufność [asortyment może być rzeczywiście bardzo szeroki]. Tak więc jak
widać, rozwiązania typu IPS, które niejako powstały i ewoluowały ze statycznych systemów IDS, poprzez
dynamiczne i intuicyjne systemy IDS/IPS, coraz częściej przybierają formę całościowych zestawów
oprogramowania [z reguły także intuicyjncyh i dynamicznych], których priorytetem jest zapewnienie
bezpieczeństwa Naszemu komputerowi. Produkty takie [IPS w znaczeniu kompleksowym] przeważnie
sprzedawane są jako All-in-One - cały zestaw narzędzi do kupienia w jednym "pudełku", kwestia wyboru
producenta i marki.
Zastosowanie systemów wykrywania włamań
Główną przyczyną stosowania rozwiązań IDS/IPS w środowiskach sieciowych jest wzrastająca liczba
różnego rodzaju ataków przeprowadzanych automatycznie np. za pomocą robaków internetowych czy
wirusów jak i tych groźniejszych w których intruz aktywnie pracuje nad uzyskaniem nieuprawnionego
dostępu do chronionego systemu. Ochrona systemów komputerowych jest kosztowna i czasochłonna.
Systemy IDS/IPS w założeniach mają pomóc obniżyć koszty takiej ochrony oraz podnieść jej efektywność
poprzez automatyzację analizy zdarzeń, które mogą świadczyć o potencjalnym naruszeniu polityki
bezpieczeństwa danej organizacji.
System Snort
Przykładem systemu IDS jest program Snort. Obecnie Snort jest uważany za najlepsze tego typu
rozwiązanie Open Source. Mimo, że Snort jest darmowy okazał się na tyle dobry, że wiele firm
szkoleniowych oferuje płatne profesjonalne kursy uczące zarządzania aplikacją Snort. Również firmy
zajmujące się komercyjnie tworzeniem systemów IDS doceniły Snorta i oferują wsparcie dla reguł Snorta
w swoich produktach.
Podstawy
Uruchomienie programu Snort w trybie wykrywania intruzów z plikiem konfiguracyjnym snort.conf. Snort
będzie działał jako demon:
http://www.witczak.priv.pl
Kreator PDF
Utworzono 7 March, 2017, 01:33
Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT
snort -c snort.conf -D
Możliwe jest również uruchomienie programu Snort w trybie sniffera:
snort -v -e -i eth0
Inny tryb pozwala logować pakiety:
snort -l /ścieżka/do/katalogu
W przypadku logowania pakietów możliwe jest również logowanie do formatu akceptowanego przez
program tcpdump, co jest bardzo dużą zaletą tego programu Snort. Logowanie binarne o którym mowa
jest o wiele szybsze i pozwala zastosować Snorta w sieciach o szybkości 100Mbit/s:
snort -l /scieżka/do/katalogu -b
Snort posiada jeden plik konfiguracyjny. W domyślnej konfiguracji wystarczy zmienić kilka opcji aby
uruchomić program. Plik konfiguracyjny posiada komentarze pomocne przy konfiguracji. Najważniejsze
opcje to:
* HOME_NET – definiuje lokalną przestrzeń adresową, ustawić można ja na wartość
$eth0_ADDRESS lub jawnie podać adres podsieci wraz z maską postaci /xx
* EXTERNAL_NET – definiuje przestrzeń adresową nie należącą do sieci HOME_NET, można
ustawić na any lub podać adres lub adresy sieci.
Koncepcja preprocesorów
Aby umożliwić użytkownikom łatwe dodawanie nowych funkcjonalności do programu Snort, powstała
koncepcja modułów nazywanych preprocesorami. Każdy preprocesor zawiera nową funkcjonalność wraz z
możliwościami konfiguracji. Przykładowy preprocesor portscan loguje początek i koniec skanowania
portów. Skanowanie portów w tym przypadku jest definiowane jako próby połączeń do więcej niż p
portów w przeciągu t sekund. Preprocesor portscan zawiera kilka parametrów:
*
*
*
*
adres sieci dla której ma być monitorowane skanowanie portów
ilość przeskanowanych portów w założonym czasie
okres w sekundach w którym następuje skanowanie portów
ścieżka do pliku w którym będą zapisywane informacje o próbach skanowania
Załączenie w snort.conf preprocesora portscan:
preprocessor portscan: 20.1.2.0/24 5 7 /var/llog/snort/portscan.log
Preprocesor portscan-ignorehosts pozwala ignorować niektóre hosty lub całe sieci przed wykrywaniem ich
przez preprocesor portscan. Dzięki temu możliwe jest ograniczenie podatności preprocesora portscan na
fałszywe komunikaty o próbach skanowania portów. Załączenie preprocesor portscan-ignorehosts:
preprocesor portscan-ignorehosts: 192.168.1.432
Moduły wyjściowe
Dzięki modułom wyjściowym użytkownik ma możliwość określić, gdzie mają trafiać informacje od
systemu Snort. Ogólna postać polecenia ładującego moduł wyjściowy wygląda następująco:
output <name>: <options> np: output alert_syslog: log_auth log_alert
http://www.witczak.priv.pl
Kreator PDF
Utworzono 7 March, 2017, 01:33
Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT
Moduł alert_fast pozwala logować skróconą postać komunikatu bez nagłówka pakietu, który spowodował
uaktywnienie reguły tworzącej zapis w logach. Inne dostępne moduły to alert_full, alert_unixsock,
log_tcpdump. Możliwe jest również logowanie do bazy danych jak również wyłączenie logowania za
pomocą modułu log_null.
Reguły Snorta
To, co stanowi o sile systemu Snort to tryb wykrywania włamań i systemem tworzenia reguł, dzięki
którym Snort potrafi wykrywać różnego rodzaju ataki. Język tworzenia reguł Snorta jest dość
skomplikowany . Zostaną tutaj zaprezentowane tylko podstawowe elementy niezbędne do wykonania
ćwiczeń. Przykład kompletnej reguły:
alert tcp any any -> 192.168.1.0/24 111 (content: 00 01 86 a5 ; msg: mount access ;)
Reguła Snorta jest podzielona na dwie logiczne części: część nagłówka i cześć z opcjami. Część
nagłówkowa zawiera akcję jaką należy wykonać, rodzaj protokołu, adres ip źródła , port źródłowy oraz
adres ip docelowy oraz numer docelowego portu. Możliwe jest równie użycie wieloznacznego słowa any,
które symbolizuje dowolny adres ip, dowolny port. Część w nawiasach okrągłych zawiera zestaw opcji
użytych dla tej reguły, Każda opcja zakończona jest średnikiem. Po odebraniu pakietu porównuje
nagłówki reguł oraz opcje zawarte w regułach z pakietem. Jeśli nastąpi porównanie wykonywana jest
zapisana w regule akcja. Możliwe do wykonania akcje to:
*
*
*
*
*
alert, generuje alarm i loguje pakiet
log, tylko loguje pasujący pakiet
pass, przepuszcza pakiet
activate, wywołuje alarm i uruchamia dynamiczną regułę
dynamic, reguła pozostająca w bezczynności aż do momentu aktywacji przez regułę typu activate
Opcje w regułach programu Snort
Dzięki rozbudowanym i licznym opcjom jest możliwe wykonywanie wielu testów na pakietach. Każda
opcja składa się z słowa kluczowego, po nim dwukropka i argumentu dla danej opcji. Przykładowe opcje:
Opcja: msg: <tekst>;
Opcja pozwala dodawać tekst do reguł, dzięki temu informacje zapisane w plikach logu są bardziej
czytelne.
Opcja flag:[!|*|+]<FSRPAU0>[,<FSRPAU0>];
Opcja pozwala analizować nagłówek pakietu pod kątem ustawionych w nim flag:
F &ndash; FIN
S - SYN
R &ndash; RST
P &ndash; PSH
A &ndash; ACK
U &ndash; URG
0 &ndash; brak ustawionych flag
+ - dopasuj do danej flagi i opcjonalnie do reszty
* - dopasuj do którejkolwiek z podanych flag
! - dopasuj jeśli podanej flagi nie są ustawione w pakiecie
Np. alert tcp any any -> any any (flags:SF;)
Podsumowanie
http://www.witczak.priv.pl
Kreator PDF
Utworzono 7 March, 2017, 01:33
Piotr Witczak - audyt bezpieczenstwa informacji, systemów IT
Program Snort jest zaawansowanym narzędziem IDS/IPS. Istnieje szereg dodatkowych funkcjonalności
dla programu Snort ,co sprawia, że jest to rozbudowane narzędzie którym nie łatwo zarządzać. Nauka
posługiwania Snortem może zająć trochę czasu ale warto poświęcić czas na naukę obsługi tego
rozwiązania ponieważ może ono pomóc lepiej chronić środowisko sieciowe.
Bibliografia
Strona domowa projektu nmap: http://insecure.org/nmap
&bdquo;100 sposobów na bezpieczeństwo sieci&rdquo; Andrew Lockhart, Wydawnictwo HELION2004
Dokumentacja systemowa programu tcpdump: man tcpdump
http://www.symantec.com - Intruder Alert (HIDS)
http://www.cisco.com - Cisco Secure IDS (NIDS)
http://www.iss.com - RealSecure Server Sensor (NNIDS)
http://www.snort.org - SNORT (NIDS)
http://www.witczak.priv.pl
Kreator PDF
Utworzono 7 March, 2017, 01:33

Podobne dokumenty