Paket analizi, protokol analizi kavramları

Paket ve protokol birbirleri yerine sık kullanılan ama gerçekte birbirinden farklı iki kavramdır. Paket kavramı protokol kavramına göre daha kuşatıcıdır(paket>protokol). Paket’den kastımız TCP/IP ağlarda tüm iletişimin temelidir. Protokol ise paketlerin detayıdır.

Gönderip aldığımız mailler, web sayfalarına girişimiz, mesaj gönderişimiz hatta 3g kullanıyorsak telefon konuşmalarımız vs arka planda hep paketler vasıtasıyla kotarılır. Bu paketleri görmek Sniffer adı verilen programlar vasıtasıyla mümkün olur. 

Bir de bu paketler içerisinde gidip gelen protokoller vardır. Mesela web sayfalarına giriş için HTTP, 3G ya da GPRS bağlantıları için GTP, mail için SMTP . Bir de bunlar için güvenli ulaşım sağlayan alt seviye protokoller vardır TCP, IP, UDP gibi. Tüm bu protokoller iletişime geçmek isteyen uçlar arasında azami standartları belirlemek için düşünülmüştür.

Paket ve protokol analizi için sniffer araçları kullanılır. Bazı snifferlar kısıtlı protokol analizi yapabilirken b azı snifferlar detaylı paket ve protokol analizi yapmaya olanak sağlar. Kısıtlı paket ve protokol analizine imkan sağlayan sniffer olarak tcpdump’ı, gelişmiş paket ve protol analizine örnek olarak da Wireshark/Tshark’ı örnek verebiliriz.

Sniffer aracılığıyla paket analizi

tcpdump ile HTTP trafigi analizi

~# tcpdump -i eth0 -ttttnn tcp port 80 -vv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
2009-09-08 05:47:23.057285 IP (tos 0x0, ttl 64, id 28117, offset 0, flags [DF], proto TCP (6), length 52) 10.200.169.163.45196 > 64.233.169.147.80: S, ck                 sum 0xfdbf (correct), 906286265:906286265(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 6>

2009-09-08 05:47:23.191048 IP (tos 0x0, ttl 52, id 58446, offset 0, flags [none], proto TCP (6), length 52) 64.233.169.147.80 > 10.200.169.163.45196: S,                  cksum 0x535f (correct), 2146314999:2146314999(0) ack 906286266 win 5720 <mss 1430,nop,nop,sackOK,nop,wscale 6>

2009-09-08 05:47:23.191090 IP (tos 0x0, ttl 64, id 28118, offset 0, flags [DF], proto TCP (6), length 40) 10.200.169.163.45196 > 64.233.169.147.80: ., ck                 sum 0xaa0e (correct), 1:1(0) ack 1 win 92

2009-09-08 05:47:23.191924 IP (tos 0x0, ttl 64, id 28119, offset 0, flags [DF], proto TCP (6), length 239) 10.200.169.163.45196 > 64.233.169.147.80: P 1:                 200(199) ack 1 win 92
2009-09-08 05:47:23.325691 IP (tos 0x0, ttl 52, id 58447, offset 0, flags [none], proto TCP (6), length 40) 64.233.169.147.80 > 10.200.169.163.45196: .,                  cksum 0xa938 (correct), 1:1(0) ack 200 win 107
2009-09-08 05:47:23.328801 IP (tos 0x0, ttl 52, id 58448, offset 0, flags [none], proto TCP (6), length 608) 64.233.169.147.80 > 10.200.169.163.45196: P                  1:569(568) ack 200 win 107
2009-09-08 05:47:23.328818 IP (tos 0x0, ttl 64, id 28120, offset 0, flags [DF], proto TCP (6), length 40) 10.200.169.163.45196 > 64.233.169.147.80: ., ck                 sum 0xa6fe (correct), 200:200(0) ack 569 win 109
2009-09-08 05:47:23.328826 IP (tos 0x0, ttl 52, id 58449, offset 0, flags [none], proto TCP (6), length 40) 64.233.169.147.80 > 10.200.169.163.45196: F,                  cksum 0xa6ff (correct), 569:569(0) ack 200 win 107
2009-09-08 05:47:23.368014 IP (tos 0x0, ttl 64, id 28121, offset 0, flags [DF], proto TCP (6), length 40) 10.200.169.163.45196 > 64.233.169.147.80: ., ck                 sum 0xa6fd (correct), 200:200(0) ack 570 win 109

Yukardaki çıktıya bakılacak olursa her bir satır bir paketi işsaret eder. Satırlar incelenirse HTTP protokolüne ait   bilgi edinilemez, sadece TCP protokolüne ait bazı bilgiler elde edilebilir.

Bunun sebebi analiz için kullandığımız yazılımın(tcpdump) kısıtlı protokol analizine sahip olmasıdır(tcpdump tcp, ip, udp vs gibi alt seviye protokollere ait analiz imkanı sunar). Bizim görmek istediğimiz HTTP’e ait başlık bilgileri ise tcpdump ile görüntülenemez. Bunun için Wireshark/Tshark kullanmamız gerekir.

Sniffer aracılığıyla protokol analizi

Aşağıdaki çıktılar Tshark sniffer programından alınmıştır. Görüleceği üzere bir HTTP paketine ait tüm detaylar bulunmaktadır.

Capturing on eth0


Transmission Control Protocol, Src Port: 56537 (56537), Dst Port: http (80), Seq: 1, Ack: 1, Len: 199
    Source port: 56537 (56537)
    Destination port: http (80)
    Sequence number: 1    (relative sequence number)
    [Next sequence number: 200    (relative sequence number)]
    Acknowledgement number: 1    (relative ack number)
    Header length: 20 bytes
    Flags: 0x18 (PSH, ACK)
        0… …. = Congestion Window Reduced (CWR): Not set
        .0.. …. = ECN-Echo: Not set
        ..0. …. = Urgent: Not set
        …1 …. = Acknowledgment: Set
        …. 1… = Push: Set
        …. .0.. = Reset: Not set
        …. ..0. = Syn: Not set
        …. …0 = Fin: Not set
    Window size: 5888 (scaled)
    Checksum: 0x9f9e [incorrect, should be 0xf736 (maybe caused by “TCP checksum offload”?)]
        [Good Checksum: False]
        [Bad Checksum: True]
Hypertext Transfer Protocol
    GET / HTTP/1.0\r\n
        Request Method: GET
        Request URI: /
        Request Version: HTTP/1.0
    Host: www.google.com\r\n
    Accept: text/html, text/plain, text/css, text/sgml, */*;q=0.01\r\n
    Accept-Encoding: gzip, bzip2\r\n
    Accept-Language: en\r\n
    User-Agent: Lynx/2.8.6rel.4 libwww-FM/2.14\r\n
    \r\n

This entry was posted in IDS/IPS/IDP, Linux Security, Network Security, Network Tools. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

6 + sixteen =