İstatistik görünümleri: protokol hiyerarşisi ve IO grafiği
- Protocol Hierarchy ile beklenmeyen protokolü, I/O Graphs ile ani yığılmayı bulmayı ve aynı tabloları tshark ile taban çizgisine çevirmeyi öğren.
- Protocol Hierarchy bir yakalamanın hangi protokollerden oluştuğunu tek bakışta özetler; IO grafiği aynı yakalamayı zaman eksenine yayar.
- Bu derste Expert Information, Decode As, io,phs ve io,stat tablolarını okuyacak, gece yarısı sıçraması için bir karar ağacı kuracaksın.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Bir yakalama dosyası binlerce paket taşır ve hiçbiri tek başına anlam taşımaz. Asıl soru toplamın nasıl dağıldığıdır: trafik hangi protokollerden oluşuyor, zamana nasıl yayılıyor, hangi anda olağandışı bir şey oldu.
Wireshark'ın Statistics menüsü bu sorulara birkaç pencereyle cevap verir. Bu derste bir kayda ilk bakışı öğrenecek, Protocol Hierarchy ile beklenmeyen protokolü, I/O Graphs ile ani yığılmayı bulacaksın. Aynı tabloları tshark ile komut satırında üretecek ve düzenli bir taban çizgisinin (baseline) neden gerektiğini göreceksin.
İlk bakış: dosya özeti ve Expert Information
Bir kaydı açınca ilk iş ayrıntıya dalmak değil, çerçeveyi görmektir. Statistics > Capture File Properties penceresi, önceki derste gördüğün capinfos çıktısının grafik karşılığıdır. Kaydın ne zaman başlayıp bittiğini, kaç paket içerdiğini ve ortalama hızı gösterir.
Kayıt bu bilgiyi taşıyorsa yakalama filtresini ve düşen paket sayısını da yazar. Bu sayılar sonraki bütün yorumların zeminidir. Yarım saatlik bir kayıtta 3 gigabayt görmekle üç günlük bir kayıtta 3 gigabayt görmek aynı şey değildir. Yakalama filtresi dar tutulmuşsa bazı protokollerin kayıtta hiç görünmemesi de normaldir.
İkinci durak Analyze > Expert Information penceresidir. Wireshark ayrıştırırken dikkat çeken olayları dört önem seviyesinde toplar. Chat (mavi) olağan akıştır, örneğin SYN bayrağıyla açılan bir bağlantı.
Note (camgöbeği) dikkat çeken ama olağan bir olaydır, örneğin HTTP 404 cevabı. Warn (sarı) olağandışı bir durumdur, örneğin bağlantının RST ile sıfırlanması. Error (kırmızı) ciddi bir sorundur, örneğin bozuk (malformed) paket.
Olaylar ayrıca Sequence, Protocol, Malformed gibi gruplara ayrılır. Aşağıdaki çıktının Chat bölümünde 22, 445, 3389 ve 8080 gibi dağınık portlara birer SYN görünür. Hepsi aynı kaynaktan geliyorsa bu bir taramayı düşündürür. Uyarı bir sorunu kanıtlamaz, yalnız nereye bakacağını söyler.
$ tshark -r olay.pcap -q -z expert
Warns (1)
=============
Frequency Group Protocol Summary
1 Sequence TCP Connection reset (RST)
Chats (25)
=============
Frequency Group Protocol Summary
2 Sequence TCP Connection establish request (SYN): server port 80
1 Sequence TCP Connection establish request (SYN): server port 21
1 Sequence TCP Connection establish request (SYN): server port 22
1 Sequence TCP Connection establish request (SYN): server port 445
1 Sequence TCP Connection establish request (SYN): server port 3389
1 Sequence TCP Connection establish request (SYN): server port 8080Uzun bir kayıtta çıktıyı önem seviyesine göre süzersin: -z expert,warn yalnız Warn ve Error düzeyini, -z expert,note bunlara ek olarak Note düzeyini listeler. Olay incelemesinde üç tür uyarı en çok işe yarar. Yeniden iletimler (tcp.analysis.retransmission) artıyorsa hatta tıkanıklık ya da aşırı yük olabilir.
RST sayısı yüksekse kapalı portlara bağlantı denemesi yapılıyor olabilir. "Previous segment not captured" uyarıları çoksa sorun ağda değil, yakalamanın kendisindedir. Bu üçünü ayırmak yanlış alarmı azaltır ve kaydın ne kadar güvenilir olduğunu gösterir.
Etkinlik 1 / 8
Expert Information önem seviyesini örnek olayla eşleştir.
Protocol Hierarchy: trafik neyden oluşuyor
Statistics > Protocol Hierarchy penceresi trafiğin dağılımını katman katman gösterir. En üstte Frame durur ve bütün paketleri temsil eder. Altında Ethernet, onun altında IP, onun altında TCP ya da UDP, en altta da HTTP, DNS, TLS gibi uygulama protokolleri sıralanır.
Her satır kendi altındaki protokollerin toplamını kapsar, bu yüzden yüzdeler yukarıdan aşağı azalır. Bir paket birden çok protokol taşıdığı için farklı düzeylerdeki yüzdeleri toplamak anlamsızdır; IP ile TCP satırlarının toplamı yüzü aşar. Görüntüleme filtresi uygulanmışsa pencere yalnız süzülen paketleri sayar ve filtreyi altta gösterir.
Her satırda Percent Packets, Packets, Percent Bytes, Bytes ve Bits/s sütunları bulunur. End Packets sütunu, o protokolün yığındaki en üst protokol olduğu paketleri sayar. TCP satırında End Packets yüksekse, bunların çoğu el sıkışma, ACK ve kapanış paketleri ya da büyük bir mesajın ara segmentleridir. Beklenmedik bir satır ilk bakışta göze çarpar.
Bir web sunucusunun kaydındaki Telnet satırı, o makinede olmaması gereken şifresiz bir yönetim servisinin açık kaldığını düşündürür. Satıra sağ tıklayıp Apply as Filter seçtiğinde Wireshark o protokolün filtresini kendisi yazar. Böylece hiyerarşi genel bakışı, filtre ise derine inmeyi üstlenir.
Etkinlik 2 / 8
Bir web sunucusunun trafiğini yakaladın. Protocol Hierarchy'de TCP altında hem HTTP hem de beklenmeyen bir Telnet satırı çıktı. Bu ne anlama gelir?
Önce kodu oku, sonra çıktıyı seç.
Frame
Ethernet
IP
TCP
HTTP 72%
Telnet 15%Etkinlik 3 / 8
Doğru mu, yanlış mı?
Protocol Hierarchy penceresindeki yüzdeler her katmanda birbirinden bağımsızdır, alt satır üst satırı kapsamaz.
Beklenmeyen satır: data ve Decode As
Wireshark bir protokolü önce port numarasından tanır. Bazı protokoller için içeriğe bakan sezgisel ayrıştırıcılar (heuristic dissector) da çalışır, bu yüzden 8081 portundaki HTTP çoğu zaman yine HTTP görünür. Tanıyamadığı yükü ise data adıyla gösterir.
Hiyerarşide TCP'nin altında data satırı görmek, standart dışı bir portta çalışan bir protokolün işaretidir. Saldırganlar da bu boşluğu kullanır. MITRE ATT&CK bu davranışı T1571 (Non-Standard Port) olarak tanımlar: komuta kontrol trafiği alışılmış protokol ve port eşleşmesinin dışına çıkar. Analyze > Decode As penceresiyle Wireshark'a "bu porttaki trafiği şu protokol olarak çöz" dersin.
$ tshark -r ofis.pcap -q -z io,phs
===================================================================
Protocol Hierarchy Statistics
Filter:
frame frames:30 bytes:1778
eth frames:30 bytes:1778
ip frames:30 bytes:1778
tcp frames:30 bytes:1778
http frames:2 bytes:205
ssh frames:2 bytes:150
data frames:2 bytes:127
===================================================================
$ tshark -r ofis.pcap -q -d tcp.port==4444,ftp -z io,phs
...
tcp frames:30 bytes:1778
http frames:2 bytes:205
ssh frames:2 bytes:150
ftp frames:2 bytes:127İlk tabloda 8081'deki HTTP ve 2222'deki SSH tanınmış, 4444 portundaki iki paket ise data kalmış. Follow Stream ile o akışı açtığında USER ve 331 satırlarını görürsün; bu bir FTP oturumudur. tshark'ta -d bayrağı Decode As'in karşılığıdır ve katman, seçici ve protokol adını tcp.port==4444,ftp biçiminde alır. İkinci tabloda aynı paketler artık ftp olarak sayılır.
Savunma tarafında iki soru sorarsın: bu port bu makinede neden açık, bu protokol bu portta neden konuşuluyor? Çıkış güvenlik duvarında ve vekil sunucuda yalnız gereken portlara izin vermek, MITRE'nin T1571 için önerdiği önlemlerden biridir.
Derinleş:Wireshark protokolü nasıl seçer
Wireshark her paketi bir ayrıştırıcı (dissector) zinciriyle çözer. Ethernet ayrıştırıcısı tür alanına bakıp IP'yi, IP ayrıştırıcısı protokol numarasına bakıp TCP'yi çağırır. TCP'nin üstünde seçim zorlaşır, çünkü TCP başlığında "sıradaki protokol" alanı yoktur. Wireshark önce port tablosuna bakar: el sıkışmada gördüğü sunucu portunu dener, o sonuç vermezse küçük numaralı portu.
Tablo sonuç vermezse sezgisel ayrıştırıcılar yükün ilk baytlarını sırayla sınar. SSH'nin "SSH-2.0" ile başlayan tanıtım satırı ya da "GET /" ile başlayan bir HTTP isteği kolay tanınır. TCP ayarlarındaki Try heuristic sub-dissectors first seçeneği bu sırayı tersine çevirir. Decode As penceresindeki Save düğmesi seçimini profile kaydeder; kaydetmezsen yalnız o oturumda geçerli olur.
Analyze > Enabled Protocols penceresi ise bir ayrıştırıcıyı ya da sezgisel denemeyi tamamen kapatır. Yanlış tanınan protokol yanlış alan adları ve yanlış alarm üretir. Bir kuralın beklediğin paketi yakalamadığını görürsen önce ayrıştırıcının doğru seçildiğini kontrol et.
Etkinlik 4 / 8
tshark'ta 4444 portundaki trafiği FTP olarak çözmek için -d tcp.port==4444,____ yazarsın. Boşluğa yalnız protokol adını yaz.
I/O Graphs: trafiği zamana yaymak
I/O Graphs farklı bir soruya bakar: ne kadar değil, ne zaman. Statistics > I/O Graphs penceresi seçtiğin aralıkta paket ya da bayt sayısını bir çizgide gösterir. Yatay eksen zaman, dikey eksen ölçüdür. Düz bir hat olağan yükü, sivri bir tepe ani bir olayı işaret eder.
Birden fazla çizgi ekler ve her çizgiye ayrı bir görüntüleme filtresi bağlarsın. Bir çizgi bütün trafiği, bir başkası yalnız tcp.flags.syn==1 && tcp.flags.ack==0 filtresiyle yeni bağlantı denemelerini sayar. Aralığı (interval) küçültmek grafiği keskinleştirir. Bir saniyelik aralık, bir dakikalık aralığın yuvarladığı kısa tepeyi ortaya çıkarır.
Dikey eksenin birimi soruyu belirler. Packets, Bytes ve Bits ham sayımdır; hacim sorusunda bayta, bağlantı sayısı sorusunda pakete bakarsın. Gelişmiş birimler bir alanı hesaba katar.
SUM(Y Field) seçilen alanın değerlerini toplar, örneğin tcp.len ile taşınan yükü. COUNT FIELDS(Y Field) bir alanın kaç kez geçtiğini sayar. AVG(Y Field) ortalamayı verir; frame.time_delta_displayed ile paketler arası ortalama süreye bakarsın.
MAX ve MIN uç değerleri gösterir. SMA Period ayarı basit hareketli ortalama çizer ve gürültülü grafikte eğilimi görünür kılar. Tek bir tepe kanıt değildir; yedekleme ya da büyük bir güncelleme de aynı şekli çizer.
$ tshark -r gece.pcap -q -z io,stat,60,"tcp.flags.syn==1 && tcp.flags.ack==0" =============================================== | IO Statistics | | | | Duration: 359.900000 secs | | Interval: 60 secs | | | | Col 1: tcp.flags.syn==1 && tcp.flags.ack==0| |---------------------------------------------| | |1 | | | Interval | Frames | Bytes | | |------------------------------| | | 0 <> 60 | 42 | 2268 | | | 60 <> 120 | 38 | 2052 | | | 120 <> 180 | 45 | 2430 | | | 180 <> 240 | 1870 | 100980 | | | 240 <> 300 | 40 | 2160 | | | 300 <> Dur | 39 | 2106 | | ===============================================
Tablo altı dakikalık kaydı birer dakikalık dilimlere böler. Col 1, verdiğin filtreye uyan paketleri, yani yalnız bağlantı açma denemelerini sayar. İlk üç dilimde dakikada 40 civarı SYN görünür; bu ağın olağan yüküdür.
180 ile 240. saniye arasında sayı 1870'e sıçrar, sonra olağana döner. Bu örüntü, bir makinenin kısa sürede yüzlerce hedefe ya da porta bağlanmaya çalıştığını düşündürür.
Sıradaki adım o dakikayı süzüp kaynağı bulmaktır. frame.time_relative >= 180 && frame.time_relative < 240 filtresini uygular, sonra Conversations penceresini Limit to display filter seçeneğiyle açarsın.
Etkinlik 5 / 8
IO Graph'ta 1 saniyelik bir dilimde 12000 bayt taşındığını okudun. Aynı dilimde ortalama paket boyutu 600 bayt. Bu saniyede kaç paket geçmiştir?
Tahminini kaydır, sonra gönder.
Etkinlik 6 / 8
Birer dakikalık io,stat tablosundan olağandışı satırı seç. Col 1 filtresi yalnız bağlantı açma denemelerini (SYN) sayıyor.
Şüpheli satırlara tıkla. Birden fazla olabilir.
Komut satırı tabloları ve taban çizgisi
tshark -z io,phs Protocol Hierarchy tablosunu metin olarak basar. Her satırda kısa protokol adı, çerçeve ve bayt sayısı durur, girinti katmanı gösterir. Aşağıdaki kayıtta 121 çerçevenin 115'i TCP, 6'sı UDP'dir. TCP'nin altında http, ftp ve telnet görünür, UDP'nin altındaki bütün çerçeveler DNS'tir.
ftp ve telnet açık metin taşır ve bir önceki dersteki kimlik bilgisi bulgusuyla örtüşür. Aynı yaklaşım uygulama protokollerinde de çalışır. -z dns,tree sorgu türlerini ve cevap kodlarını, -z http,tree istek yöntemlerini ve durum kodlarını sayar. Kısa sürede yüzlerce NXDOMAIN ya da yüzlerce 404 cevabı, var olmayan adları ya da dosyaları deneyen bir yazılımı düşündürür.
$ tshark -r olay.pcap -q -z io,phs
===================================================================
Protocol Hierarchy Statistics
Filter:
frame frames:121 bytes:70484
eth frames:121 bytes:70484
ip frames:121 bytes:70484
tcp frames:115 bytes:69966
http frames:6 bytes:2324
data-text-lines frames:1 bytes:170
media frames:1 bytes:372
ftp frames:7 bytes:495
telnet frames:5 bytes:309
udp frames:6 bytes:518
dns frames:6 bytes:518
===================================================================Gece yarısı bayt grafiğinde ani bir sıçrama gördüğünü düşün. Karar ağacını sırayla yürürsün.
Önce hangi protokol arttı: o dilimi süzüp hiyerarşiye bak ya da grafiğe protokol filtreli çizgiler ekle. Sonra hangi uçlar konuşuyor: Conversations penceresini Limit to display filter seçeneğiyle aç. Üçüncü soru takvimdir: bu saatte planlı bir yedekleme ya da güncelleme var mı, değişiklik kaydına bak.
Son soru hedeftir: karşı adres kurumun onaylı bir hizmeti mi, daha önce görülmüş mü? Bu sorular sıçramayı açıklamıyorsa olay müdahale sürecini başlatırsın. NIST SP 800-61 Rev. 3 bu adımları CSF 2.0'ın Tespit (Detect) ve Müdahale (Respond) işlevleriyle ilişkilendirir.
Bir tepeyi olağandışı sayabilmek için olağanı bilmen gerekir. Tek bir yakalama taban çizgisi değildir. Mesai içi ile dışı, hafta içi ile hafta sonu farklı davranır ve her biri ayrı bir taban ister. Basit bir yöntem aşağıdaki betikte duruyor.
Her gece aynı saatte on dakikalık bir kayıt alırsın, io,phs çıktısını tarihli bir dosyaya yazarsın ve iki haftanın tablolarını diff ile karşılaştırırsın. Yeni bir protokol satırı ya da payı iki katına çıkan bir protokol hemen göze çarpar. CIS Control 13 (Ağ İzleme ve Savunma) kurumlardan bu tür sürekli izlemeyi ister. Olgun ekipler aynı işi akış kayıtlarıyla otomatik yapar; sıradaki dersin konusu budur.
# cron ile her gece 02:00'de çalışır GUN=$(date +%F) dumpcap -i eth0 -a duration:600 -w /veri/taban/$GUN.pcapng tshark -r /veri/taban/$GUN.pcapng -q -z io,phs > /veri/taban/$GUN.phs diff /veri/taban/2026-09-06.phs /veri/taban/$GUN.phs
Etkinlik 7 / 8
kayit.pcap dosyasının protokol hiyerarşisi tablosunu, paket paket döküm basmadan çıkar.
Etkinlik 8 / 8
Bir yakalamada Protocol Hierarchy'de her şey normal görünüyor ama IO Graph'ta gece yarısı ani bir bayt artışı var. Sıradaki en doğru adım hangisidir?
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.
- Etkinlik 1· İlk bakış: dosya özeti ve Expert Information
- Etkinlik 2· Protocol Hierarchy: trafik neyden oluşuyor
- Etkinlik 3· Protocol Hierarchy: trafik neyden oluşuyor
- Etkinlik 4· Beklenmeyen satır: data ve Decode As
- Etkinlik 5· I/O Graphs: trafiği zamana yaymak
- Etkinlik 6· I/O Graphs: trafiği zamana yaymak
- Etkinlik 7· Komut satırı tabloları ve taban çizgisi
- Etkinlik 8· Komut satırı tabloları ve taban çizgisi