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.

Slides:



Advertisements
Podobne prezentacje
Usługi sieciowe Wykład 5 DHCP- debian
Advertisements

Sieci komputerowe Protokół TCP/IP Piotr Górczyński 27/09/2002.
POWIAT MYŚLENICKI Tytuł Projektu: Poprawa płynności ruchu w centrum Myślenic poprzez przebudowę skrzyżowań dróg powiatowych K 1935 i K 1967na rondo.
ZAPORY SIECIOWE Firewall – ściana fizycznie oddzielająca silnik od pasażerów w samochodzie Sposób zabezpieczenia komputera/sieci przed osobami niepowołanymi.
Sieci komputerowe Usługi sieciowe Piotr Górczyński 27/09/2002.
Domy Na Wodzie - metoda na wlasne M
Rozszerzalność systemów rozproszonych
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
ANALIZA WYNIKÓW EGZAMINU GIMNAZJALNEGO
Architektura systemu Gra strategiczna „Strusia Jama”
Poj ę cia Sieciowe. IMAP-to internetowy protokół pocztowy zaprojektowany IMAP-to internetowy protokół pocztowy zaprojektowany POP3-to protokół internetowy.
Typy zachowań firmy w procesie internacjonalizacji (projekt badawczy)
Prezentacja poziomu rozwoju gmin, które nie korzystały z FS w 2006 roku. Eugeniusz Sobczak Politechnika Warszawska KNS i A Wykorzystanie Funduszy.
Burze pyłowe na Marsie.
Usługi sieciowe Wykład 5 DHCP- debian Jarosław Kurek WZIM SGGW 1.
Obsługa serwera zdalnego przez klienta FTP
Honorata Prokop, Izabela Ubowska
Piotr Doskocz Aleksandra Lechki Krzysztof Lewicki
Proxy (WWW cache) Sieci Komputerowe
Konfiguracja DHCP i dzielenie łącza
Sieci komputerowe: Firewall
USŁUGI INTERNETOWE TCP/IP WWW FTP USENET.
Protokoły sieciowe.
Klamki do drzwi Klamki okienne i inne akcesoria
KONFIGURACJA KOMPUTERA
Matura 2005 Wyniki Jarosław Drzeżdżon Matura 2005 V LO w Gdańsku
Ogólnopolski Konkurs Wiedzy Biblijnej Analiza wyników IV i V edycji Michał M. Stępień
Protokół Komunikacyjny
MODEL WARSTWOWY PROTOKOŁY TCP/IP
RODZAJE TRANSMISJI PRZESYŁANIE INFORMACJI W MODELU WARSTWOWYM
BUDOWA I DZIAŁANIE SIECI KOMPUTEROWYCH
Sieci komputerowe.
Sieciowe Systemy Operacyjne
KOLEKTOR ZASOBNIK 2 ZASOBNIK 1 POMPA P2 POMPA P1 30°C Zasada działanie instalacji solarnej.
EGZAMIN GIMNAZJALNY W SUWAŁKACH 2009 Liczba uczniów przystępująca do egzaminu gimnazjalnego w 2009r. Lp.GimnazjumLiczba uczniów 1Gimnazjum Nr 1 w Zespole.
Kuratorium Oświaty w Szczecinie WYNIKI EGZAMINU MATURALNEGO 2008 W SZKOŁACH WOJEWÓDZTWA ZACHODNIOPOMORSKIEGO Wyniki opracowano na podstawie danych zamieszczonych.
1. Pomyśl sobie liczbę dwucyfrową (Na przykład: 62)
Analiza matury 2013 Opracowała Bernardeta Wójtowicz.
SYSTEMY OPERACYJNE Adresowanie IP cz3.
Laboratorium systemów operacyjnych
Podstawy teleinformatyki
Sieci komputerowe.
Aplikacje TCP i UDP. Łukasz Zieliński
Wstępna analiza egzaminu gimnazjalnego.
EcoCondens Kompakt BBK 7-22 E.
EcoCondens BBS 2,9-28 E.
TECHNOLOGIA P2P.
Rachunek różniczkowy funkcji jednej i wielu zmiennych
Projekt Badawczo- Rozwojowy realizowany na rzecz bezpieczeństwa i obronności Państwa współfinansowany ze środków Narodowego Centrum Badań i Rozwoju „MODEL.
User experience studio Użyteczna biblioteka Teraźniejszość i przyszłość informacji naukowej.
WYNIKI EGZAMINU MATURALNEGO W ZESPOLE SZKÓŁ TECHNICZNYCH
Testogranie TESTOGRANIE Bogdana Berezy.
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
Jednym z podstawowych celów tworzenia sieci komputerowych jest współdzielenie zasobów, takich jak pliki lub drukarki. Każdy z takich zasobów musi być udostępniony,
Systemy operacyjne i sieci komputerowe
Zagrożenia.
Współrzędnościowe maszyny pomiarowe
Systemy operacyjne i sieci komputerowe
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
FTP i www Informatyka Zakres podstawowy 1 Zebrał i opracował : Maciej Belcarz 11.
Elementy geometryczne i relacje
Strategia pomiaru.
LO ŁobżenicaWojewództwoPowiat pilski 2011r.75,81%75,29%65,1% 2012r.92,98%80,19%72,26% 2013r.89,29%80,49%74,37% 2014r.76,47%69,89%63,58% ZDAWALNOŚĆ.
PODSTAWY SIECI KOMPUTEROWYCH - MODEL ISO/OSI. Modele warstwowe a sieci komputerowe Modele sieciowe to schematy funkcjonowania, które ułatwią zrozumienie.
HISTORIA Ludzie od dawnych czasów próbowali się ze sobą porozumiewać. Nauczyli oni się komunikować ze sobą za pomocą przeróżnych środków: od wyrazu twarzy,
Elementy przeglądarki internetowej Pasek menu Pasek kart Pasek adresowy Pasek wyszukiwania Okno z zawartością strony internetowej Zakładki (ulubione)
 Wi-Fi  światłowody  skrętka Protokół komunikacyjny to zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez urządzenia.
materiały dla uczestników
Wydział Matematyki, Informatyki i Architektury Krajobrazu
Sieci komputerowe Usługi sieciowe 27/09/2002.
Zapis prezentacji:

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 adamd@top.iinf.polsl.gliwice.pl Ryszard MACELUCH rmac@top.iinf.polsl.gliwice.pl Piotr KASPRZYK kwadrat@top.iinf.polsl.gliwice.pl

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.

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.

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

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.

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.

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.

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.

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),

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.

Przykładowa analiza ruchu w sieci Gnutella. Pakietu wysyłany zaraz po nawiązaniu połączenia TCP T 192.168.0.1:1913 -> 82.224.246.167:41942 [AP] 47 4e 55 54 45 4c 4c 41 20 43 4f 4e 4e 45 43 54 GNUTELLA CONNECT 2f 30 2e 36 0d 0a 55 73 65 72 2d 41 67 65 6e 74 /0.6..User-Agent 3a 20 53 68 61 72 65 61 7a 61 20 32 2e 30 2e 30 : Shareaza 2.0.0 2e 30 0d 0a 52 65 6d 6f 74 65 2d 49 50 3a 20 38 .0..Remote-IP: 8 32 2e 32 32 34 2e 32 34 36 2e 31 36 37 0d 0a 41 2.224.246.167..A 63 63 65 70 74 3a 20 61 70 70 6c 69 63 61 74 69 ccept: applicati 6f 6e 2f 78 2d 67 6e 75 74 65 6c 6c 61 32 2c 61 on/x-gnutella2,a 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 67 6e 75 pplication/x-gnu 74 65 6c 6c 61 2d 70 61 63 6b 65 74 73 0d 0a 41 tella-packets..A 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 ccept-Encoding: 64 65 66 6c 61 74 65 0d 0a 47 47 45 50 3a 20 30 deflate..GGEP: 0 2e 35 0d 0a 50 6f 6e 67 2d 43 61 63 68 69 6e 67 .5..Pong-Caching 3a 20 30 2e 31 0d 0a 56 65 6e 64 6f 72 2d 4d 65 : 0.1..Vendor-Me 73 73 61 67 65 3a 20 30 2e 31 0d 0a 58 2d 51 75 ssage: 0.1..X-Qu 65 72 79 2d 52 6f 75 74 69 6e 67 3a 20 30 2e 31 ery-Routing: 0.1 0d 0a 58 2d 55 6c 74 72 61 70 65 65 72 3a 20 46 ..X-Ultrapeer: F

Zrzut pakietu następujący po nim, odsyłany jako odpowiedź T 82.224.246.167:41942 -> 192.168.0.1:1913 [AP] 47 4e 55 54 45 4c 4c 41 2f 30 2e 36 20 32 30 30 GNUTELLA/0.6 200 20 4f 4b 0d 0a 55 73 65 72 2d 41 67 65 6e 74 3a OK..User-Agent: 20 53 68 61 72 65 61 7a 61 20 31 2e 38 2e 31 31 Shareaza 1.8.11 2e 32 0d 0a 4c 69 73 74 65 6e 2d 49 50 3a 20 38 .2..Listen-IP: 8 32 2e 32 32 34 2e 32 34 36 2e 31 36 37 3a 34 31 2.224.246.167:41 39 34 32 0d 0a 52 65 6d 6f 74 65 2d 49 50 3a 20 942..Remote-IP: 36 32 2e 38 37 2e 31 38 38 2e 39 36 0d 0a 41 63 62.87.188.96..Ac 63 65 70 74 3a 20 61 70 70 6c 69 63 61 74 69 6f cept: applicatio 6e 2f 78 2d 67 6e 75 74 65 6c 6c 61 32 0d 0a 43 n/x-gnutella2..C 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 61 70 70 ontent-Type: app 6c 69 63 61 74 69 6f 6e 2f 78 2d 67 6e 75 74 65 lication/x-gnute 6c 6c 61 32 0d 0a 41 63 63 65 70 74 2d 45 6e 63 lla2..Accept-Enc 6f 64 69 6e 67 3a 20 64 65 66 6c 61 74 65 0d 0a oding: deflate.. 43 6f 6e 74 65 6e 74 2d 45 6e 63 6f 64 69 6e 67 Content-Encoding 3a 20 64 65 66 6c 61 74 65 0d 0a 58 2d 55 6c 74 : deflate..X-Ult

W przypadku, gdy węzeł nie może obsłużyć nowego klienta, odsyła następujący pakiet: T 63.147.88.88:15193 -> 192.168.0.1:1890 [AP] 47 4e 55 54 45 4c 4c 41 2f 30 2e 36 20 35 30 33 GNUTELLA/0.6 503 20 4d 61 78 69 6d 75 6d 20 63 6f 6e 6e 65 63 74 Maximum connect 69 6f 6e 73 20 72 65 61 63 68 65 64 0d 0a 55 73 ions reached..Us 65 72 2d 41 67 65 6e 74 3a 20 53 68 61 72 65 61 er-Agent: Sharea 7a 61 20 32 2e 30 2e 30 2e 30 0d 0a 41 63 63 65 za 2.0.0.0..Acce 70 74 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f pt: application/ 78 2d 67 6e 75 74 65 6c 6c 61 32 0d 0a 43 6f 6e x-gnutella2..Con 74 65 6e 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 tent-Type: appli 63 61 74 69 6f 6e 2f 78 2d 67 6e 75 74 65 6c 6c cation/x-gnutell 61 32 0d 0a 58 2d 54 72 79 2d 55 6c 74 72 61 70 a2..X-Try-Ultrap

Ostatecznie komputer (klient) potwierdza zaakceptowanie połączenia poprzez wysyłanie pakietu T 192.168.0.1:1913 -> 82.224.246.167:41942 [AP] 47 4e 55 54 45 4c 4c 41 2f 30 2e 36 20 32 30 30 GNUTELLA/0.6 200 20 4f 4b 0d 0a 4c 69 73 74 65 6e 2d 49 50 3a 20 OK..Listen-IP: 36 32 2e 38 37 2e 31 38 38 2e 39 36 3a 36 33 34 62.87.188.96:634 36 0d 0a 41 63 63 65 70 74 3a 20 61 70 70 6c 69 6..Accept: appli 63 61 74 69 6f 6e 2f 78 2d 67 6e 75 74 65 6c 6c cation/x-gnutell 61 32 0d 0a 43 6f 6e 74 65 6e 74 2d 54 79 70 65 a2..Content-Type 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d : application/x- 67 6e 75 74 65 6c 6c 61 32 0d 0a 41 63 63 65 70 gnutella2..Accep 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 64 65 66 6c t-Encoding: defl 61 74 65 0d 0a 43 6f 6e 74 65 6e 74 2d 45 6e 63 ate..Content-Enc 6f 64 69 6e 67 3a 20 64 65 66 6c 61 74 65 0d 0a oding: deflate..

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/.

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.

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.

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

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

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).

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.