Table of Contents

X36LOS: Úloha 1

Pomocí programů na odchyt a záznam síťové komunikace (packet sniffer) zaznamenejte relaci níže zadaného typu, kterou budete dále analyzovat.

Zadání má dvě části: společnou a specifickou.

I. - Společná část

První stupeň analýzy: Napište program, který analyzuje vaši relaci na úrovni TCP spojení (přes L2, IP k TCP - nepoužívat filtr z pcapu). Vstupem programu bude záznam síťové komunikace ve formátu tcpdump, výstupem bude

  1. Soubor obsahující již jen vlastní data (data streams) vaší relace bez hlaviček paketů, poskládaná z příslušných TCP paketů. Formát souboru si určete sami.
  2. Soubor s textovým výpisem informací o daném TCP spojení. Výpis bude obsahovat hlavičky jednotlivých TCP packetů (patřících do téhož spojení) v lidsky čitelné formě. Soustřeďte se především na typy paketů (SYN, SYN-ACK, ACK) a hodnoty čítačů relace. Ve výpisu budou vyznačeny (vloženým řádkem s příslušnou zprávou) zajímavé okamžiky:
    1. jednotlivé fáze navazování spojení (pro kontrolu použijte jednoduchý stavový automat)
    2. jednotlivé fáze ukončování spojení (pro kontrolu použijte jednoduchý stavový automat)
    3. ztráta paketu či potvrzení (tj. opakování dat) (vyskytne-li se)
    4. fragmentované pakety (vyskytnou-li se)
    5. hodnotu MSS (maximum segment size) - vypsat hodnotu MSS

Výpis bude také obsahovat hlavičku udávající IP adresy a čísla IP portů obou komunikujících stran relace. Program bude zpracovávat jen jednu zadanou relaci. Relace může být zadána na příkazové řádce jako adresy a porty komunikujících stran. Budou-li ve vstupním souboru i pakety patřící do jiné relace, musí být ignorovány.

Poznámka: Prosím dodržte formát vstupního souboru (libpcap). Jako ověření funkčnosti Vašeho programu můžete dostat ke zpracování data odchytnutá někým jiným.

Nutné předpoklady

II. - Specifická část

Druhý stupeň analýzy: Napište program, který analyzuje vaši relaci na úrovni příslušného aplikačního protokolu. Vstupem je výstupní datový soubor z 1. fáze analýzy, výstupem je textový soubor, popisující průběh relace “v lidsky čitelné” formě.

Možné aplikační protokoly

(výběr je ponechán zcela na Vaší fantazii - zde uvedené berte jako možné volby)

1. FTP řídící relace Výstupem bude text jednotlivých příkazu a odpovědí včetně vyznačeného směru.

Př.:

>>> USER abcd
<<< 200 OK
>>> PASS xyz
<<< 200 OK

atd…

2. FTP datová relace Výstupem bude celý prenášený soubor nebo data (napr. výstup příkazu DIR, LS).

3. HTTP relace Výstupem budou 3 soubory: HTTP požadavek, hlavička HTTP odpovědi, a vlastní přenášený soubor. (Předpokládáme požadavek typu GET.)

4. TELNET relace Výstupem bude text relace včetně vyznačeného směru.

Př.:

<<< Username:
>>> a
<<< a (tohle je echo napsaných písmen)
>>> b
>>> b (opět echo)
...

Pokud TELNET relace obsahuje vyjednávání jednotlivých nastavení (TELNET options), uveďte také odpovídající výzvu i odpověď v textové (lidsky čitelné) podobě.

5. SMTP relace Výstupem bude text jednotlivých příkazu a odpovědí včetně vyznačeného směru.

Př.: Obdobný jako u zadání č.1

6. POP3 relace Výstupem bude text jednotlivých příkazu a odpovědí včetně vyznačeného směru.

Př.: Obdobný jako u zadání č.1

Vítaným (~ bodově ohodnoceným) rozšířením práce jsou různá vylepšení. Třeba statistické údaje, časové závislosti, různé dynamické změny parametrů …

Pro odchyt paketů použijte programy Wireshark (linux/windows), nebo tcpdump (linux). tcpdump spusťte s parametry:

tcpdump -s 1530 -w (jmeno_dump_souboru)

K ulehčení analýzy souboru použijte knihovny WinPcap, resp. libpcap.

Odkazy

Podmínky odevzdání

~~DISCUSSION~~