Implementacja algorytmu wykrywania i zapobiegania atakom sieciowym opartego o ograniczenie pasma

Podobne dokumenty
Wybrane metody obrony przed atakami Denial of Service Synflood. Przemysław Kukiełka

9. System wykrywania i blokowania włamań ASQ (IPS)

Podstawy bezpieczeństwa

Bezpieczeństwo w M875

Sieci Komputerowe Translacja adresów sieciowych

dostępu do okręslonej usługi odbywa się na podstawie tego adresu dostaniemu inie uprawniony dostep

SPECYFIKACJA TECHNICZNA PRZEDMIOTU UMOWY DOTYCZĄCA CZĘŚCI AKTYWNEJ ŁĄCZA

Architektura oraz testowanie systemu DIADEM Firewall Piotr Piotrowski

7. Konfiguracja zapory (firewall)

WLAN bezpieczne sieci radiowe 01

Przesyłania danych przez protokół TCP/IP

Wykład 6: Bezpieczeństwo w sieci. A. Kisiel, Bezpieczeństwo w sieci

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

Router programowy z firewallem oparty o iptables

Laboratorium Sieci Komputerowych - 2

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

Projektowanie bezpieczeństwa sieci i serwerów

Robaki sieciowe. + systemy IDS/IPS

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

ZiMSK NAT, PAT, ACL 1

Skanowanie podsieci oraz wykrywanie terminali ABA-X3

Zarządzanie systemami informatycznymi. Zagrożenia w sieci

Najprostsza odpowiedź, jaka przychodzi mi do głowy to, z powodu bezpieczeństwa.

Zadanie1: Odszukaj w Wolnej Encyklopedii Wikipedii informacje na temat NAT (ang. Network Address Translation).

Monitorowanie aplikacji i rozwiązywanie problemów

Audytowane obszary IT

Zapory sieciowe i techniki filtrowania danych

Wykład 3 Filtracja i modyfikacja pakietów za pomocą iptables.

Zagrożenia warstwy drugiej modelu OSI - metody zabezpieczania i przeciwdziałania Autor: Miłosz Tomaszewski Opiekun: Dr inż. Łukasz Sturgulewski

Laboratorium 6.7.2: Śledzenie pakietów ICMP

Wprowadzenie do zagadnień związanych z firewallingiem

Przegląd zagrożeń związanych z DNS. Tomasz Bukowski, Paweł Krześniak CERT Polska

Zarządzanie bezpieczeństwem w sieciach

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

ZiMSK. VLAN, trunk, intervlan-routing 1

Co to jest iptables?

Rys. 1. Wynik działania programu ping: n = 5, adres cyfrowy. Rys. 1a. Wynik działania programu ping: l = 64 Bajty, adres mnemoniczny

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Wdrażanie i zarządzanie serwerami zabezpieczającymi Koncepcja ochrony sieci komputerowej

Wyciąg z ogólnej analizy ataków na witryny administracji państwowej RP w okresie stycznia 2012r.

ANALIZA BEZPIECZEŃSTWA SIECI MPLS VPN. Łukasz Polak Opiekun: prof. Zbigniew Kotulski

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zarządzanie bezpieczeństwem w sieciach dr inż. Robert Banasiak, mgr inż. Rafał Jachowicz, Instytut Informatyki Stosowanej PŁ, 2013

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Paweł Pokrywka, Ispara.pl. multispoof: Zaawansowany mac spoofing w sieciach lokalnych

Różnice pomiędzy hostowanymi rozwiązaniami antyspamowymi poczty firmy GFI Software

Wykaz zmian w programie SysLoger

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

BEZPIECZEŃSTWO W SIECIACH

Protokoły sieciowe - TCP/IP

iptables/netfilter co to takiego?

Ataki na serwery Domain Name System (DNS Cache Poisoning)

Firewall bez adresu IP

iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter echo "1" > /proc/sys/net/ipv4/ip_forward

ASQ: ZALETY SYSTEMU IPS W NETASQ

Projekt i implementacja filtra dzeń Pocket PC

Zapory sieciowe i techniki filtrowania.

PROJEKT ARAKIS DOŚWIADCZENIA Z OBSERWACJI ZAGROŻEŃ W SIECI Tomasz Grudziecki (CERT Polska / NASK)

ZAPYTANIE OFERTOWE. Z dopiskiem:

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

Firewalle, maskarady, proxy

MODUŁ: SIECI KOMPUTEROWE. Dariusz CHAŁADYNIAK Józef WACNIK

Metody ataków sieciowych

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN

Monitoring ruchu sieciowego w nk.pl w oparciu o protokół netflow oraz rozwiązania opensource

Systemy Firewall. Grzegorz Blinowski. "CC" - Open Computer Systems. Grzegorz.Blinowski@cc.com.pl

Sieci komputerowe laboratorium

Firewalle, maskarady, proxy

Sieci Komputerowe Modele warstwowe sieci

Filtr Połączeń. nie. tak odrzucenie

Rodzaje, budowa i funkcje urządzeń sieciowych

router wielu sieci pakietów

Funkcje systemu infokadra

ArcaVir 2008 System Protection

Wykaz zmian w programie SysLoger

TCP/IP formaty ramek, datagramów, pakietów...

Stan faktyczny bezpieczeństwa w polskich przedsiębiorstwach- 1/3

Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć

ARP Address Resolution Protocol (RFC 826)

Bezpieczeństwo Systemów Telekomunikacyjnych 2014 / 2015 Bezpieczeństwo aplikacji sieciowych, Ataki (D)DoS Prowadzący: Jarosław Białas

Czy ochrona sieci jest nadal wyzwaniem, czy tylko jednorazową usługą?

11. Autoryzacja użytkowników

TEST GPON/1GE. Spis treści:

Translacja adresów - NAT (Network Address Translation)

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Zadania do wykonania Firewall skrypt iptables

BRINET Sp. z o. o.

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Emil Wilczek. Promotor: dr inż. Dariusz Chaładyniak

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Wykaz zmian w programie SysLoger

Skanowanie portów. Autorzy: Jakub Sorys, Dorota Szczpanik IVFDS

Transkrypt:

Implementacja algorytmu wykrywania i zapobiegania atakom sieciowym opartego o ograniczenie pasma Maciej Korczyński, Lucjan Janowski, email: {korczynski, janowski}@kt.agh.edu.pl, Akademia Górniczo-Hutnicza im. Stanisława Staszica, Al. Mickiewicza 30, 30-059 Kraków Słowa kluczowe: Wykrywanie anomalii, ograniczenie ruchu, zapobieganie atakom sieciowym Abstrakt Przedstawiony algorytm umożliwia odrzucania pakietów, których ruch wskazuje na anomalie spowodowane atakami z wnętrza sieci. Potrzeba stosowania takich rozwiązań jest coraz większa i spowodowana jest zwiększającą się aktywnością sieci botnet w obrębie sieci lokalnych. 1. Wstęp Robaki sieciowe oraz ataki typu odmowy usługi (ang. distributed denial of service DDoS) mają silny wpływ na bezpieczeństwo w Internecie i stały się przedmiotem zintensyfikowanych badań w ostatniej dekadzie. Robaki internetowe wykorzystują sieć do wysyłania swoich kopi do innych komputerów w sieci. Proces jest zautomatyzowany, zazwyczaj nie wymaga interakcji z człowiekiem i przeważnie odbywa się bez wiedzy użytkownika. Robaki zwykle zawierają kod mający na celu np. zbieranie poufnych danych, usunięcie lub uszkodzenie plików systemowych lub całkowite przejęcie kontroli nad zainfekowanym hostem i wiele innych. Ataki DDoS różnią się od większość ataków sieciowych pod względem formy oraz towarzyszącego im zagrożenia. Agresor przejmuje kontrolę nad ogromną liczbą komputerów, które w dalszej fazie wykorzystuje do przeprowadzenia ataku. Pierwszy krok jest zwykle przeprowadzany za pomocą robaków sieciowych. Następnie napastnik przechodzi do samego ataku typu DDoS. Jego celem jest blokada zasobów serwera lub nawet całych podsieci i uniemożliwienie legalnym użytkownikom skorzystania z oferowanych usług. Tradycyjne podejście wskazuje, że aktywność robaków sieciowych i ataków DDoS różnią się pod względem strategii ataku, formy, zagrożenia i w konsekwencji powinny one być rozpatrywane niezależnie. Oba typy ataków powodują anomalie sieciowe, co stwarza możliwość ich wykrycia, a nawet zapobiegania. Najtrudniejszym wyzwaniem jest rozróżnienie niebezpiecznego zachowania od ruchu normalnego w początkowej fazie ataku w celu ograniczenia zużycia zasobów sieciowych. Natężenie ruchu w szybkich sieci optycznych ciągle rośnie i nieustannie zmienia się w czasie. W związku z tym, nie możemy zakładać, że anomalie ruchu są następstwem szkodliwego zachowania. Takie założenie prowadzi zwykle do wzrostu współczynnika fałszywych alarmów (ang. false positives) tzn. sytuacji, w której legalne pakiety zaklasyfikowane są jako część ataku. Inny problem stanowi złożoność algorytmów np. bazujących na entropii ze względu na brak skalowalności. Efektywność nie jest zapewniona gdyż na poziomie sieci szkieletowych właściwości ruchu mogą pozostać niezmienne nawet podczas zmasowanego ataku typu odmowy usługi (np. rozkład adresów źródłowych IP). Koszty obecnie używanych systemów są bardzo wysokie, ponieważ zakładają analizę każdego pojedynczego pakietu w celu spełnienia wymagań efektywności algorytmów. W związku z tym konieczne wydaje się zastosowanie metod próbkowania pakietów jak np. zaproponowany przez Cisco NetFlow [1] w celu zmniejszenia ilości danych pomiarowych ruchu. Wreszcie, dostępny czas odpowiedzi systemów zabezpieczeń na np. epidemię robaków może wynosić nie więcej niż kilkadziesiąt sekund ze względu na bardzo duże prędkości rozprzestrzeniania się złośliwego kodu. Ataki typu DDoS oraz robaki sieciowe wymagają kompleksowego i zautomatyzowanego mechanizmu obronny. W przedstawionym artykule prezentujemy algorytm wykrywający skanowania portów oraz aktywność 1

przejawiającą się dużym natężeniem wysyłanych pakietów np. w celu wyczerpania zasobów procesora w sieciach szerokopasmowych. Szczególną uwagę zwróciliśmy na wykrywanie robaków sieciowych i ataków typu DDoS wychodząc na przeciw głównym ograniczeniom istniejących algorytmów tzn. skuteczności, wydajności oraz brakowi wsparcia dla technik próbkowania. 2. Algorytm Podstawą działania przedstawionego algorytmu jest wydobycie szeregu istotnych informacji dotyczących w szczególności koncentracji źródłowych i docelowy adresów IP. Badamy również sesje TCP z nowej perspektywy tak, aby z łatwością można było wykryć asymetrię ruchu w przypadku ataków DDoS lub skanowania portów. Wreszcie, łączymy mechanizm ograniczenia przepustowości (ang. rate limiting) z metodami próbkowania. Ma to na celu ograniczenie ilości analizowanego ruchu sieciowego przy jednoczesnym zapewnieniu wysokiego współczynnika wykrywalności ataków (ang. attacking dropping ratio) oraz niskiego współczynnika fałszywych alarmów. Naszą pracą wykazujemy, że w celu skutecznego wykrycia ataku należy wziąć pod uwagę odpowiednie parametry ruchu i ich integrację ze skuteczną metodą wykrywania oraz odpowiednią techniką próbkowania pakietów. Nasze doświadczenia są oparte na śladach ruchu (ang. packet traces) przechwyconych podczas rzeczywistych ataków sieciowych, w przeciwieństwie do publikacji opartych na niewiarygodnych symulacjach sieciowych lub przestarzałych zestawach danych z nieaktualnym ruchem tła [2] [3]. Podstawy działania algorytmu. W tej części przedstawimy przegląd kluczowych założeń dotyczących algorytmu i ogólny opis proponowanej metody wykrywania. Techniki próbkowania są powszechne stosowane przy pomiarach sieci, aby nie marnować zasobów urządzeń sieciowych na analizę ruchu pakiet po pakiecie. Celem analiz może być klasyfikacja, statystki ruchu, również wykrywanie anomalii itd. Pewna grupa algorytmów przeciwdziałających atakom sieciowym stosuje metody próbkowania, ale ich efektywność jest niezadowalająca. Jedynie przy niskim współczynniku próbkowania osiąga dobre rezultaty. Nasz algorytm został skonstruowany w celu optymalnego dopasowania wymyślonej przez nas metody z istniejącymi technikami próbkowania: systematyczną, losową 1-spośród-N oraz jednolitych prawdopodobieństw. Zaproponowane zostały one przez grupę PSAMP IETF [5] i dokładnie opisane w literaturze [4]. Technika systematycznego próbkowania polega na pobieraniu np., co dziesiątego lub co setnego pakietu, etc. Metoda 1- spośród-n zakłada losowy wybór jednego pakietu spośród grupy zawierającej N pakietów np. wszystkie pakiety dzielimy na grupy po 10 i z każdej z nich losujemy jeden pakiet. Technika jednolitych prawdopodobieństw zakłada wybór każdego pakietu z takim samym, niewielkim prawdopodobieństwem. Rys.1. Trzy zastosowane metody próbkowania. Opisany algorytm jest techniką tzn. ograniczenia przepustowości. Jeżeli zdefiniowane wskaźniki ruchu wychodzącego z sieci LAN są mniejsze lub równe wartościom granicznym, wówczas ruch jest uznany za część ataku i odfiltrowany w celu poprawy jakości QoS np. sieci bezprzewodowych. W celu zwiększenia skalowalności, szczególnie w obliczu zwiększających się przepustowości sieci, konieczne jest monitorowanie ruchu w pobliżu potencjalnych źródeł ataku. Celem jest wykrycie ataku na najwcześniejszym 2

jego stadium, aby zminimalizować skutki dla potencjalnej ofiary np. ataku DDoS oraz ograniczyć spadek parametrów jakości usług w sieciach tranzytowych. Aby lepiej zrozumieć zasady proponowanego systemu, możemy rozważyć sieć standardu IEEE 802.11 a/b/g/e z punktem dostępowym w postaci routera brzegowego. Proponowany algorytm, zaimplementowany w routerze brzegowym, będzie monitorował pakiety opuszczające sieć bezprzewodową. System wykrywania składa się z 5 modułów opisanych poniżej (Rys. 2.). Filtrowanie wstępne (M1): Moduł kontroli fałszywych adresów źródłowych (ang. IP spoofing) wszystkich pakietów opuszczających sieć lokalna. W następnej kolejności pakiety poddawane są procesowi próbkowania, co umożliwi zmniejszenie ilości analizowanych pakietów w kolejnych modułach. Kontrola przepływu pakietów UDP/ICMP (M2): Moduł zezwala na wysłanie pakietów ICMP oraz UDP na dany adres docelowy IP, jeżeli ich ilość nie przekracza wcześniej zdefiniowanych wartości granicznych. Sprawdzane historii połączeń TPC (M3): Moduł ten składa się z dwóch części: pierwszy z nich obejmuje skanowanie portów, druga wykrywa ataki polegające na zalewaniu ofiary pakietami TCP SYN. Obie części sprawdzają jedynie pakiety inicjujące połączenie TCP czy ich ilość nie przekraczają wartości granicznych. Kontrola pakietów TCP (M4): Moduł kontroli wszystkich przychodzących pakietów TCP ACK oraz przyporządkowania adresów źródłowych i docelowych na odpowiednich listach dostępowych. Metoda zastosowana w opisanym module pozwala na zachowanie wysokiej skuteczności wykrycia ataków przy zastosowaniu metod próbkowania. Filtrowanie (M5): W module M5 dokonywane są wszelkie aktualizacje na liście dostępowej routera lub ścianie ognia (ang. firewall), które są następstwem poprzednich modułów. Rys. 2. Schemat ogólny zaproponowanego systemu. Szczegółowy opis działania algorytmu. W dalszej części przedstawiony jest szczegółowy opis proponowanego systemu obrony (Rys. 3). Notacja użyta do prezentacji algorytmu przedstawiona została w tabeli 1. 3

Tab. 1. Notacja użyta do opisu algorytmu wykrywającego anomalie sieciowe Srate D t UI th UI max UI cnt R th R max R cnt W t W th W max W cnt CX Współczynnik próbkowania Odstęp czasu (s) zastosowany przy wykrywaniu ataków DDoS Brzegowa wartość współczynnika wysyłania pakietów UDP/ICMP względem adresu docelowego; uzyskany podczas wstępnej analizy ruchu sieciowego (#pakietów/ Dt) Maksymalna wartość współczynnika wysyłania pakietów UDP/ICMP względem adresu docelowego; zależna od Srate oraz UIth (#pakietów/ Dt) Chwilowa wartość współczynnika wysyłania pakietów UDP/ICMP względem adresu docelowego (#pakietów/ Dt). Brzegowa wartość współczynnika wysyłania pakietów inicjalizacyjnych TCP względem adresu docelowego; uzyskany podczas wstępnej analizy ruchu sieciowego (#pakietów/ Dt) Maksymalna wartość współczynnika wysyłania pakietów inicjalizacyjnych TCP względem adresu docelowego; zależna od Srate oraz Rth (#pakietów/ Dt) Chwilowa wartość współczynnika wysyłania pakietów inicjalizacyjnych TCP względem adresu docelowego (#pakietów/ Dt). Odstęp czasu (s) zastosowany w wykrywaniu skanowania portów Brzegowa wartość współczynnika wysyłania pakietów inicjalizacyjnych TCP względem adresu źródłowego; uzyskany podczas wstępnej analizy ruchu sieciowego (#pakietów/ Wt) Maksymalna wartość współczynnika wysyłania pakietów inicjalizacyjnych TCP względem adresu źródłowego; zależna od Srate oraz Wth (#pakietów/ Wt) Chwilowa wartość współczynnika wysyłania pakietów inicjalizacyjnych TCP względem adresu źródłowego (#pakietów/ Wt). Stała wartość zależna od wykrywanej anomalii sieciowej M1 (Filtrowanie wstępne): Na wstępnie algorytm sprawdza czy adres źródłowy pakietu przesyłanego z lokalnej sieci bezprzewodowej został sfałszowany (ang. source IP spoofed). Jeżeli adres znajdujący się w nagłówku pakietu nie należy do puli adresów z sieci lokalnej wówczas pakiet zostaje odrzucony. Następnie, algorytm próbkuje pakiety przy użyciu jednej z wcześniej przedstawionych metod. M2 (Kontrola przepływu pakietów UDP / ICMP): Jeżeli wysyłany pakiet jest dostarczany przy użyciu protokołu UDP lub ICMP, algorytm porównuje chwilową liczbę wysyłanych pakietów UI cnt danego typu na adres docelowy z wartością graniczną UI max. Jeżeli UI cnt > UI max w czasie D t pakiety zaadresowane do konkretnego miejsca przeznaczenia będą odrzucane. M3 (Sprawdzane historii połączeń TPC): Kolejne dwa moduły sprawdzają połączenia TCP, gdyż znaczna cześć ruchu w obrębie sieci Internet to ruch połączeniowy. W konsekwencji większość ataków sieciowych wykorzystuje pakiety TCP w celu wykrywania potencjalnych ofiar poprzez skanowanie portów lub też do przeprowadzania właściwego ataku typu DDoS. W omawianym module wykorzystane są dwie struktury pamięci typu hashmap, aby usprawnić klasyfikację pakietów synchronizacyjnych TCP: Czarna Lista Adresów Źródłowych (ang. Black Source List - BSL) oraz Biała Lista Adresów Docelowych (ang. White Destination List - WDL). Jeżeli pakiet TCP SYN wysłany z lokalnej sieci bezprzewodowej nie jest zaklasyfikowany na żadnej z list, wówczas jest on przepuszczony przez filtr i system oczekuje na jego potwierdzenie (TCP ACK). Jeżeli adres źródłowy wysłanego pakietu znajduje się na czarnej liście adresów źródłowych, wówczas algorytm sprawdza czy lista nie wygasła (W t ). W zależności od rezultatu lista zostaje zresetowana i pakiet zostaje przepuszczony przez filtr lub chwilowa wartość współczynnika wysyłania pakietów inicjalizacyjnych TCP względem adresu źródłowego W cnt zostaje zwiększona. Dla przykładu wyobraźmy sobie skanowanie sieci, którego celem jest znalezienie i zainfekowania np. serwera SQL. W tym celu atakujący wysyła znaczną ilość zapytań typu TCP SYN na różne adresy docelowe. Większość z połączeń nie zostanie potwierdzona pakietami TCP ACK. Jeżeli warunek W cnt <= W max przestanie być spełniony wówczas następne pakiety wysłane z danego adresu IP zostaną odrzucone. 4

Rys. 3. Architektura zaproponowanego algorytmu 5

Gdy adres docelowy znajduje się na białej liście adresów docelowych (w następstwie weryfikacji odbywającej się w module 4), wówczas zwiększany jest współczynnik R cnt. Jeżeli w ciągu wcześniej zdefiniowanego odstępu czasu D t zostanie przekroczona chwilowa wartość współczynnika wysyłania pakietów inicjalizacyjnych TCP względem adresu docelowego R cnt > R max wówczas taka aktywność zostanie zaklasyfikowana, jako atak TCP SYN i dalsze pakiety wysyłane na adres docelowy potencjalnej ofiary zostaną odfiltrowane. M4 (Kontrola pakietów TCP): Moduł ten został stworzony głównie z myślą o minimalizacji utraty informacji podczas procesu próbkowania pakietów. Jego celem jest weryfikacja czy połączenie TCP (ang. Three-way handshake) zostało zestawione. Strategia kontroli pakietów zakłada, że jeżeli dowolny przychodzący pakiet ma ustawiona flagę ACK, wówczas połączenie zakończyło się sukcesem. Jeżeli adres docelowy pakietu opuszającego sieć bezprzewodową nie znajduje się na białej liście adresów docelowych, algorytm czeka na przychodzący pakiet ACK i wówczas kolejne pakiety mogą zostać sklasyfikowane na białej liście ze względu na adresy docelowe. Jeżeli przychodzący pakiet ACK zostaje przechwycony i jego adres docelowy znajduje się na czarnej liście adresów źródłowych wówczas wartość W cnt zostaje zmniejszona. Może wystąpić sytuacja, w której warunek W cnt < W max przestaje być spełniony. Wówczas odświeżona zostaje lista dostępowa, na której umieszczony zostaje wpis umożliwiający przepływ pakietów opuszczających sieć z danego adresu źródłowego. M5 (Filtrowanie): Wszelkie zmiany będące konsekwencją poprzednich modułów są wprowadzone w liście kontroli dostępu (ang. Access Control List) w routerze brzegowym, w ścianie ognia lub w innym urządzeniu filtrującym. Dzięki temu wszystkie pakiety będące częścią ataku zostaną odfiltrowane nawet, jeżeli algorytm analizuje tylko część z nich. Wybór parametrów bazowych algorytmu. Podczas fazy wstępnej algorytm analizuje zachowanie sieci oraz wyznacza wartości brzegowe algorytmu w odniesieniu do normalnej aktywności użytkowników. System wyznacza trzy wartości: R th, W th, oraz UI th na podstawie analizy pakietów synchronizacyjnych TCP oraz wszystkich pakietów UDP oraz ICMP opuszczających sieć. Nie możemy założyć, że w czasie fazy wstępnej ruch sieciowy zawiera jedynie legalne pakiety. Potencjalny atakujący może oszukać system generując atak w czasie wyznaczania maksymalnych wartości brzegowych. Zaleca się, aby po zakończeniu fazy wstępnej administrator zweryfikował uzyskane wartość przed wykorzystaniem ich w wykrywaniu ataków sieciowych. W dalszej części musimy wyznaczyć wartości algorytmu w zależności od uzyskanych parametrów bazowych oraz współczynnika próbkowania. Empiryczne doświadczenia dokonane na dostępnych śladach ruchu wskazują, że maksymalne wartości brzegowe algorytmu są liniową funkcją próbkowania ze stałą w postaci wartości brzegowej wyznaczonej w fazie początkowej dla analizy każdego pojedynczego pakietu: X max (S rate ) = X th * S rate, gdzie: X max to wartość maksymalna dla jednej z anomalii sieciowych (tzn. R max, W max, lub UI max ), której wartość zależy od X th (wartość brzegowa wyznaczona w fazie początkowej tzn. R th, W th, lub UI th ) oraz od współczynnika próbkowania S rate przyjmującego wartości z przedziału (0,1>. 3. Implementacja Algorytm przedstawiony w poprzednim rozdziale został zaimplementowany w C++. Szczegóły tej implementacji przedstawia ten rozdział. 3.1. Omawiany system składa się z trzech współpracujących ze sobą modułów przedstawionych na Rys. 4 i opisanych poniżej: Modułu Iptables programu sterującego filtrowaniem pakietów głównie używanego jako zapora sieciowa lub NAT opracowana dla systemu operacyjnego Linux. W naszym przypadku spełnia podwójną rolę: w sposób losowy pobiera pakiety przychodzące do urządzenia sieciowego umieszczonego w pobliżu routera brzegowego (możliwa jest również analiza całego ruchu bez zastosowania metod próbkowania). Drugą spełnianą rolą jest filtracja pakietów uznanych za potencjalnie szkodliwe. Zaletą powyższego rozwiązania jest fakt, że filtracja obywa się na poziomie jądra systemu, co zapewnia minimalizację obciążenia systemu oraz nie jest konieczna analiza każdego pakietu na poziomie użytkownika. 6

Przestrzeń użytkownika Algorytm Modu MWNA++ Przestrzeń jądra systemu Sieć lokalna IPtables losowy wybor pakietów IPtables blokada adresów IP Internet Rys. 4. Architektura zaproponowanego systemu trzy moduły składowe oraz umiejscowienie w sieci. Modułu MWNA++ został zaproponowany jako samodzielny program napisany w oparciu o bibliotekę netfilter/netqueque [6]. Służy do kontroli i interakcji z komputerami będącymi częścią sieci botnet. Ze względu na fakt, że program podejmuje decyzje o odrzuceniu pakietów na poziomie użytkownika wykorzystujemy go jedynie w celu przetwarzania pakietów przekazanych przez moduł Iptables, pobrania interesujących nas cech z nagłówka i przesłania go do właściwego programu. Algorytm stanowiący główną część systemu zostanie szczegółowo przedstawiony w następnym podrozdziale. 3.2. Implementacja algorytmu. Główną część programu (ang. core package) stanowi interfejs, dzięki któremu możliwe było stworzenie wersji programu działającej w czasie rzeczywistym umieszczonego w pobliżu zapory sieciowej (ang. firewall) jak również wersji, która analizuje ślady ruchu (ang. packet traces) przechwycone wcześniej poprzez np. Wiresharka lub Tcpdumpa. Druga wersja stanowi bardzo ciekawe narzędzie pomocne w przeprowadzaniu testów i udoskonalaniu algorytmu. Program posiada również prosty interfejs użytkownika oparty o bibliotekę ncurses. Składowe programu (ang. core package) Lista : Adresy IP Menedżer zasad (singleton) Mapa list pól nagłówka TCP/IP (static) Rys. 5. Główna część zaproponowanego systemu (ang. core package) trzy części składowe: lista adresów IP, menedżer zasad (ang. rules manager) oraz mapa list pól nagłówka TCP/IP. Części składowe programu przedstawione są na Rys. 5. i opisane poniżej: Kluczową częścią programu jest kontener Std::map przechowujący rekordy (kluczem są adresy IP), co zapewnia szybki dostęp do danych i podejmowanie decyzji w czasie 7

rzeczywistym. Co pewien okres czasu z list usuwane są stare rekordy, co zapewnia wysoką wydajność algorytmu. Wraz z usunięciem rekordu możliwa jest zmiana wpisu w Iptables, który jest z nim powiązany. Lista skonstruowana jest w sposób umożliwiający rozwój oprogramowania poprzez poszerzenie spektrum badanych cech (pól w nagłówku pakietu np. portu źródłowego i docelowego, wielkości pakietu, wartości TTL, itd.). Menedżer zasad, będący singletonem, odpowiedzialny jest za komunikacje z Iptables. Za każdym razem, gdy algorytm sygnalizuje możliwość ataku menedżer zasad wykonuje polecenie mające na celu wpis w zaporze sieciowej opartej o Iptables. Klasa ta również ma za zadanie utrzymać prosty mechanizm logowania. Ostatnia część została zaprojektowana z myślą o użytkowniku i ma za zadanie przejrzyste przedstawienie danych oraz komunikacje z interfejsem graficznym 4. Podsumowanie W prezentowanym artykule zaproponowano praktyczną implementację systemu opartego o autorski algorytm w celu przeciwdziałania atakom typu odmowy usługi oraz skanowania portów. Biorąc pod uwagę najczęściej występujące ataki typu DDoS oraz aktywność robaków sieciowych, proponujemy nowe techniki właściwe dla wykrywania ataków w sieciach szerokopasmowych właściwe dla metod próbkowania. Aby zminimalizować problem utraty informacji w procesie próbkowania proponujemy szereg rozwiązań m. in. nowe podejście w analizie sesji TCP. W fazie wstępnej algorytm jest w stanie określić progi algorytmu dla różnych sieci. Implementacja algorytmu cechuje się prostotą, przejrzystym interfejsem użytkownika i możliwością poszerzenia spektrum badanych pól w nagłówkach pakietów. Bibliografia [1] www.cisco.com/web/go/netflow [2] Cheng, J. Yin, J. Liu, Y. Cai, Z. Li M.: DDoS Attack Detection Algorithm Using IP Address Features., Frontiers in Algorithmics, June 2009, Springer Berlin / Heidelberg [3] Guo, S-Q. Zhao, Z-H.: An Anomaly Intrusion Detection Model Based on Limited Labeled Instances., 2008 International Symposium on Electronic Commerce and Security, August 2008 [4] Androulidakis, G. Chatzigiannakis, V. Papavassiliou, S. Grammatikou, M. Maglaris, V.: Understanding and Evaluating the Impact of Samplingon Anomaly Detection Techniques., Military Communications Conference, 2006. MILCOM 2006. IEEE [5] Packet Sampling (PSAMP) IETF Working Group Charter. http://www.ietf.org/html.charters/psampcharter.html [6] http://www.inf.ufrgs.br/~pempaganela/mwna++.html 8