Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałWłodzisław Grajewski Został zmieniony 10 lat temu
1
Moduł dla firewalla umożliwiający oznaczanie pakietów wchodzących w skład połączeń sieci peer-to-peer Adam DOMAŃSKI Politechnika Śląska, Instytut Informatyki Ryszard MACELUCH Piotr KASPRZYK
2
Rozwój technik wymiany danych pomiędzy użytkownikami stał się podstawą do zaproponowania, a następnie stworzenia nowego sposobu wymiany plików. Nowe protokoły są ukierunkowane jedynie na szybką wymianę plików pomiędzy anonimowymi użytkownikami połączonymi w ramach Internetu. Zlikwidowano wąskie gardło, jakim była szybkość wysyłania danych przez serwery (węzeł pobiera fragmenty plików od kilku sąsiadów jednocześnie) oraz zwiększono skalowalność (za funkcjonowanie sieci odpowiedzialne są setki komputerów, nie jeden serwer). Aktualnie jesteśmy świadkami zjawiska niekontrolowanej ekspansji sieci peer-to-peer.
3
Siecią peer-to-peer (w skrócie zwaną p2p) nazywamy sieć, w której nie istnieje podział komputerów na klientów i serwerów, lecz występują tzw. węzły (ang. nodes), pełniące rolę zarówno klienta, jak i serwera dla innych węzłów (ang. peers) w danej sieci.
4
Model sieci peer-to-peer jest wykorzystywany w popularnych usługach internetowych.
sieć serwerów grup dyskusyjnych USENET, wykorzystujących protokół NNTP (Network News Transfer Protocol) W dzisiejszych czasach termin sieci peer-to-peer jest powszechnie utożsamiany z sieciami wymiany plików: Gnutella FastTrack eDonkey BitTorrent DirectConnect
5
Aktualnie działają i są ciągle rozwijane różne odmiany sieci peer-to-peer. Wszystkie działają równolegle, niezależnie od siebie. Każda z nich korzysta z innego protokołu do komunikacji pomiędzy poszczególnymi węzłami. Sieci implementują również własne protokoły wymiany danych.
6
Wykrywanie sieci peer-to-peer
Wymiana danych pomiędzy węzłami w ramach pierwszych sieci peer-to-peer odbywała się przy użyciu stałych numerów portów. Znając je i dysponując prostym firewallem filtrującym można było bez większych problemów wyizolować ruch generowany pomiędzy węzłami Współczesne sieci peer-to-peer komunikują się ze sobą przy wykorzystaniu zmiennych numerów portów w ramach protokołu transportowego. W takim przypadku standardowe firewalle działające na warstwie sieciowej i transportowej stają się bezużyteczne.
7
Identyfikowanie i izolowanie ruchu w ramach sieci wykorzystujących zmienne numery portów jest nadal możliwe, lecz wymaga wykorzystania firewalla aplikacyjnego, oferującego możliwość filtrowana pakietów w oparciu o zawarte w nich dane. Analizując pakiety sieci peer-to-peer można określić ciągi symboli pojawiające się w niektórych pakietach. Stwierdzenie, że w ramach połączenia przesłano pakiet („charakterystyczny”), który zawiera określony ciąg symboli, jest jednoznaczne z wykryciem ruchu peer-to-peer.
8
Niebezpieczeństwa metody:
zastosowanie błędnego wzorca (wieloznacznego) może spowodować, że ruch nie związany z sieciami peer-to-peer będzie błędnie klasyfikowany, fragmentacja pakietów może uniemożliwić poprawne klasyfikowanie ruchu; konieczna jest defragmentacja pakietów przed ich analizą, duże wymagania na moc obliczeniową - firewall musi przeglądać dane wszystkich pakietów, nie tylko ich nagłówki, pakiet odpowiadający wzorcu („charakterystyczny”) przesyłany jest najczęściej tylko raz w ramach pojedynczego połączenia peer-to-peer - nie wykrycie pakietu uniemożliwi późniejszą poprawną klasyfikację połączenia.
9
Zastosowanie wyrażeń regularnych
Metoda pozwala na: • korzystanie z tzw. symboli wieloznacznych, które mogą przyjąć jedną z kilku wartości, • tworzenie dodatkowych powiązań pomiędzy symbolami (np. znak pasujący do symbolu wieloznacznego musi zostać powtórzony),
10
Analiza ruchu sieciowego generowanego przez sieci peer-to-peer
Celem analizy było poznanie budowy (zawartości) przynajmniej pakietów („charakterystycznych”) przesyłanych w ramach pojedynczego połączenia peer-to-peer i wypracowanie wyrażeń regularnych, umożliwiających identyfikację tych pakietów.
11
Przykładowa analiza ruchu w sieci Gnutella.
Pakietu wysyłany zaraz po nawiązaniu połączenia TCP T :1913 -> :41942 [AP] 47 4e c 4c f 4e 4e GNUTELLA CONNECT 2f 30 2e 36 0d 0a d e 74 /0.6..User-Agent 3a a e 30 2e 30 : Shareaza 2.0.0 2e 30 0d 0a d 6f d a Remote-IP: 8 32 2e e e d 0a A a c ccept: applicati 6f 6e 2f 78 2d 67 6e c 6c c 61 on/x-gnutella2,a c f 6e 2f 78 2d 67 6e 75 pplication/x-gnu c 6c 61 2d b d 0a 41 tella-packets..A d 45 6e 63 6f e 67 3a 20 ccept-Encoding: c d 0a a deflate..GGEP: 0 2e 35 0d 0a 50 6f 6e 67 2d e Pong-Caching 3a e 31 0d 0a e 64 6f 72 2d 4d 65 : 0.1..Vendor-Me a e 31 0d 0a 58 2d ssage: 0.1..X-Qu d 52 6f e 67 3a e 31 ery-Routing: 0.1 0d 0a 58 2d 55 6c a X-Ultrapeer: F
12
Zrzut pakietu następujący po nim, odsyłany jako odpowiedź
T : > :1913 [AP] 47 4e c 4c 41 2f 30 2e GNUTELLA/ 20 4f 4b 0d 0a d e 74 3a OK..User-Agent: a e 38 2e Shareaza 2e 32 0d 0a 4c e 2d a Listen-IP: 8 32 2e e e a :41 d 0a d 6f d a Remote-IP: e e e d 0a Ac a c f cept: applicatio 6e 2f 78 2d 67 6e c 6c d 0a 43 n/x-gnutella2..C 6f 6e e 74 2d a ontent-Type: app 6c f 6e 2f 78 2d 67 6e lication/x-gnute 6c 6c d 0a d 45 6e 63 lla2..Accept-Enc 6f e 67 3a c d 0a oding: deflate.. 43 6f 6e e 74 2d 45 6e 63 6f e 67 Content-Encoding 3a c d 0a 58 2d 55 6c 74 : deflate..X-Ult
13
W przypadku, gdy węzeł nie może obsłużyć nowego klienta, odsyła następujący pakiet:
T : > :1890 [AP] 47 4e c 4c 41 2f 30 2e GNUTELLA/ 20 4d d 75 6d f 6e 6e Maximum connect 69 6f 6e d 0a ions reached..Us d e 74 3a er-Agent: Sharea 7a e 30 2e 30 2e 30 0d 0a za Acce a c f 6e 2f pt: application/ 78 2d 67 6e c 6c d 0a 43 6f 6e x-gnutella2..Con e 74 2d a c 69 tent-Type: appli f 6e 2f 78 2d 67 6e c 6c cation/x-gnutell d 0a 58 2d d 55 6c a2..X-Try-Ultrap
14
Ostatecznie komputer (klient) potwierdza zaakceptowanie połączenia poprzez wysyłanie pakietu
T :1913 -> :41942 [AP] 47 4e c 4c 41 2f 30 2e GNUTELLA/ 20 4f 4b 0d 0a 4c e 2d a 20 OK..Listen-IP: e e e a :634 36 0d 0a a c Accept: appli f 6e 2f 78 2d 67 6e c 6c cation/x-gnutell d 0a 43 6f 6e e 74 2d a2..Content-Type 3a c f 6e 2f 78 2d : application/x- 67 6e c 6c d 0a gnutella2..Accep 74 2d 45 6e 63 6f e 67 3a c t-Encoding: defl d 0a 43 6f 6e e 74 2d 45 6e 63 ate..Content-Enc 6f e 67 3a c d 0a oding: deflate..
15
Do identyfikacji pakietów należy użyć wyrażenia regularnego o postaci
(wyrażenie pasuje do drugiego i trzeciego pakietu) /^GNUTELLA/[0-9.]+ 200 OK/.
16
Moduł regexp Moduł regexp to filtr rozszerzający funkcjonalność linuksowego firewalla o możliwość wyszukiwania pakietów, których zawartość odpowiada określonemu wyrażeniu regularnemu. IPTABLES oferuje już funkcjonalność oznaczania połączeń, filtr koncentruje się jedynie na analizowaniu zawartości pakietów. Zastosowanie odpowiednich wyrażeń regularnych umożliwia stworzonemu rozwiązaniu wykrywanie i oznaczanie połączeń generowanych przez sieci peer-to-peer.
17
iptables ... -m regexp --regexp '/wyrażenie regularne/opcje' [--begin-offset przesunięcie] [--end-offset przesunięcie] ... --regexp określa wyrażenie regularne, które jest kryterium klasyfikacji pakietów. --offset-begin określa opcjonalne przesunięcie względem początku danych, od którego należy rozpocząć analizę danych ‑‑offset-end określa miejsce, do którego należy analizować dane.
18
iptables -A FORWARD -m regexp --regexp '/wyrażenie/' -j DROP
Przykłady: Blokowanie połączeń: iptables -A FORWARD -m regexp --regexp '/wyrażenie/' -j DROP Blokada wraz z jednoczesnym poinformowaniem nadawcy o odrzuceniu pakietu: iptables -A FORWARD -p tcp -m regexp --regexp '/wyrażenie/' -j REJECT --reject-with tcp-reset To samo dla połączeń UDP: iptables -A FORWARD -p udp -m regexp --regexp '/wyrażenie/' -j REJECT --reject-with icmp-port-unreachable
19
Oznaczanie połączeń: iptables -A FORWARD -m connmark --mark 0x0 -m regexp --regexp '/wyrazenie/' -j CONNMARK --set-mark 0x1 Limitowanie liczby równoległych połączeń: iptables -A FORWARD -p tcp -m connmark --mark 0x0 -m regexp --regexp '/wyrażenie1/' -j CONNMARK 0x1 iptables -A FORWARD -p tcp -i eth1 -m connmark --mark 0x1 -m connlimit --limit-above 100 -j REJECT --reject-with tcp-reset Kształtowanie ruchu
20
Wnioski W wyniku prac uzyskano moduł firewalla aplikacyjnego dla systemu operacyjnego Linux, w którym wzorce przekazywane do modułu nie są na sztywno umieszczone w jego kodzie, lecz przekazywane jako parametr przez użytkownika. W rezultacie testów związanych z badaniem skuteczności wykrywania i oznaczania pakietów prawie wszystkie programy służące wymianie plików, nie nawiązały połączeń z siecią peer-to-peer. Wyjątek stanowiły BitTorrent i Kazaa (klient sieci FastTrack). Pomimo nawiązania połączenia, nie udało się jednak rozpocząć pobrania żadnego z plików. Podczas testów nie stwierdzono zakłóceń w pracy pozostałych aplikacji (przeglądarka WWW, klient FTP oraz gra sieciowa).
21
Wykorzystanie wyrażeń regularnych w procedurach analizujących zawartość pakietów jest celowe, gdyż elastyczna konfiguracja oraz współpraca z wszystkimi filtrami i celami firewalla czyni zaprezentowany moduł uniwersalnym narzędziem, pozwalającym na filtrowanie dowolnego rodzaju ruchu sieciowego, nie tylko połączeń peer-to-peer.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.