Skip to content
Siber Vatan

Ağ Trafiği Analizi

Yağız Eren Kotan · @yagizdll

Bedirhan İhtiyar · @acegladd

Giriş

Ağ trafiği analizi; siber saldırıları, kötü amaçlı yazılımları ve yetkisiz erişim girişimlerini tespit etmek açısından ağ güvenliğinde önemli bir yere sahiptir. Ağ üzerindeki veri akışının incelenmesi sayesinde şüpheli davranışlar ve olası güvenlik tehditleri daha erken fark edilebilir. Bunun yanında ağ trafiği analizi yalnızca güvenlik amacıyla değil, performans sorunlarının tespit edilmesi için de kullanılır. Ağdaki yoğunluklar, veri darboğazları, gecikmeler ve bağlantı problemleri analiz edilerek sistem yöneticilerine ağın genel durumu hakkında görünürlük sağlanır. Bu sayede hem ağ performansının iyileştirilmesi hem de olası veri sızıntıları ve güvenlik ihlallerine karşı daha güçlü bir savunma oluşturulması mümkün olur.

Temel Ağ Protokolleri

DHCP (Dynamic Host Configuration Protocol)

DHCP, bir ağa bağlanan cihazlara otomatik olarak IP adresi ve temel ağ ayarlarını atayan protokoldür. Bu sayede IP adresi, ağ geçidi veya DNS sunucusu gibi bilgilerin her cihaz için manuel olarak yapılandırılması gerekmez.

Bir cihaz ağa bağlandığında DHCP sunucusu genellikle şu bilgileri sağlar:

  • IP Address: Cihazın ağ üzerindeki adresidir.
  • Subnet Mask: Cihazın hangi ağda bulunduğunu ve ağ sınırlarını belirler.
  • Default Gateway: Cihazın yerel ağ dışındaki ağlara ulaşmak için kullandığı ağ geçididir.
  • DNS Server: Alan adlarının IP adreslerine çevrilmesini sağlayan DNS sunucusudur.

DHCP Nasıl Çalışır?

DHCP işlemi genellikle DORA olarak adlandırılan dört temel adımda gerçekleşir:

  • DISCOVER: Cihaz ağa bağlandığında DHCP sunucusu aramak için yayın mesajı gönderir.
  • OFFER: DHCP sunucusu, cihaza kullanabileceği bir IP adresi ve diğer ağ ayarlarını teklif eder.
  • REQUEST: Cihaz, sunucunun teklif ettiği IP adresini kullanmak istediğini bildirir.
  • ACK: DHCP sunucusu isteği onaylar ve IP adresini cihaza tahsis eder.

DHCP

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol), yerel ağ içerisinde bir IP adresine karşılık gelen MAC adresini bulmak için kullanılan protokoldür. Bir cihaz, aynı ağdaki başka bir cihaza veri göndermek istediğinde hedefin IP adresini bilse bile Ethernet üzerinden iletişim kurabilmek için MAC adresine de ihtiyaç duyar. ARP, IP adresi ile MAC adresi arasındaki eşleşmeyi sağlar.

ARP Nasıl Çalışır?

  • Cihaz, hedef IP adresine veri göndermek ister ancak hedefin MAC adresini bilmez.
  • Ağ üzerinde bir ARP Request mesajı broadcast olarak gönderilir. Örneğin: 192.168.1.5 adresi kimde?
  • Bu IP adresine sahip cihaz bir ARP Reply göndererek kendi MAC adresini bildirir.
  • Gönderen cihaz, öğrendiği IP-MAC eşleşmesini ARP önbelleğine (ARP cache) kaydeder.
  • Sonraki iletişimlerde aynı eşleşme tekrar gerektiğinde doğrudan bu kayıt kullanılabilir.

Her iletişim öncesinde ARP sorgusu yapmak gereksiz ağ trafiği oluşturacağından, cihazlar öğrendikleri IP-MAC eşleşmelerini belirli bir süre boyunca ARP tablosunda saklar.

ARP tablosunu görüntülemek için komut satırında aşağıdaki komut kullanılabilir:

bash
arp -a

DNS (Domain Name System)

DNS (Domain Name System), internet üzerindeki alan adlarını IP adreslerine çeviren dağıtık bir isim çözümleme sistemidir. Bu sayede kullanıcılar, hatırlanması zor IP adresleri yerine google.com gibi daha kolay hatırlanabilir alan adlarını kullanabilir.

DNS Bileşenleri

  • DNS Resolver: Kullanıcının gönderdiği alan adı sorgusunu alır ve gerekli DNS sunucularıyla iletişim kurarak IP adresini bulmaya çalışır.
  • Root Name Server: DNS hiyerarşisinin en üst seviyesinde yer alır. İstenen alan adının hangi TLD sunucusuna yönlendirilmesi gerektiğini belirtir.
  • TLD Name Server: .com, .net, .org veya .tr gibi üst seviye alan adlarından sorumludur. Sorgulanan alan adının yetkili DNS sunucusunun nerede olduğunu bildirir.
  • Authoritative Name Server: Alan adına ait gerçek DNS kayıtlarını tutan yetkili sunucudur. Örneğin alan adının hangi IP adresine karşılık geldiğini kesin olarak bu sunucu bildirir.
  • DNS Cache: Daha önce yapılan DNS sorgularının sonuçlarının belirli bir süre boyunca saklandığı önbellektir. Bu sayede aynı alan adı tekrar sorgulandığında çözümleme işlemi daha hızlı gerçekleştirilebilir.

DNS

DNS Saldırıları

DNS altyapısı, alan adlarının IP adreslerine çözümlenmesinde kritik bir rol oynadığı için saldırganların sıkça hedef aldığı yapılardan biridir. DNS'e yönelik saldırılar; kullanıcıların sahte adreslere yönlendirilmesine, hizmet kesintilerine veya DNS çözümleme sürecinin manipüle edilmesine neden olabilir.

  • DNS Cache Poisoning: DNS çözümleyicisinin önbelleğine sahte DNS kayıtlarının yerleştirilmesi saldırısıdır. Bu durumda kullanıcı, meşru bir alan adını sorguladığında saldırganın belirlediği sahte bir IP adresine yönlendirilebilir.
  • DNS Hijacking: Kullanıcının DNS ayarlarının veya DNS trafiğinin saldırgan tarafından değiştirilerek sorguların meşru DNS sunucuları yerine saldırganın kontrolündeki DNS sunucularına yönlendirilmesidir.
  • NXDOMAIN Attack: DNS sunucularına çok sayıda var olmayan alan adı veya alt alan adı sorgusu gönderilerek kaynak tüketiminin artırılmasını amaçlayan saldırı türüdür.

DNSSEC (DNS Security Extensions)

DNSSEC, DNS yanıtlarının gerçekten yetkili bir kaynaktan gelip gelmediğini doğrulamak için geliştirilmiş bir güvenlik mekanizmasıdır. DNS kayıtlarına dijital imzalar ekleyerek DNS yanıtlarının bütünlüğünün ve kaynağının doğrulanmasını sağlar.

DNSSEC, güven ilişkisini chain of trust (güven zinciri) adı verilen bir yapı üzerinden kurar:

  • Root: DNS güven zincirinin başlangıç noktasıdır ve altındaki TLD bölgesine ait doğrulama bilgisini sağlar.
  • TLD Name Server: .com, .net veya .tr gibi uzantılar için ilgili alan adının doğrulama bilgilerini sağlar.
  • Authoritative Name Server: Alan adına ait imzalı DNS kayıtlarını tutar ve sorguya yanıt verir.

Örneğin example.com alan adı sorgulandığında doğrulama zinciri genel olarak şu şekilde ilerler:

Root → .com → example.com

DNS çözümleyicisi bu zincirdeki dijital imzaları doğrular. Eğer DNS yanıtı saldırgan tarafından değiştirilmişse veya geçerli bir imzaya sahip değilse, doğrulama başarısız olur ve sahte yanıt güvenilir olarak kabul edilmez.

HTTP (Hypertext Transfer Protocol)

HTTP (Hypertext Transfer Protocol), web tarayıcıları ile web sunucuları arasında veri alışverişini sağlayan uygulama katmanı protokolüdür. Bir web sitesini ziyaret ettiğimizde tarayıcı ile sunucu arasındaki iletişim büyük ölçüde HTTP istekleri ve yanıtları üzerinden gerçekleşir.

HTTP Nasıl Çalışır?

HTTP, request-response (istek-yanıt) modeline dayanır.

  • Tarayıcı, sunucuya bir HTTP Request gönderir.
  • Sunucu isteği işler ve tarayıcıya bir HTTP Response döndürür.
  • Tarayıcı, gelen HTML, CSS, JavaScript, görsel veya diğer içerikleri işleyerek kullanıcıya gösterir.

HTTP

HTTPS (Hypertext Transfer Protocol Secure)

HTTPS, HTTP protokolünün şifrelenmiş ve daha güvenli hâlidir. HTTP ile arasındaki temel fark, iletişimin TLS kullanılarak şifrelenmesidir. Bu sayede tarayıcı ile sunucu arasında gönderilen verilerin üçüncü kişiler tarafından okunması veya değiştirilmesi zorlaştırılır.

HTTPS Nasıl Çalışır?

  1. Tarayıcı, sunucuya bağlantı isteği gönderir.
  2. Sunucu, kimliğini doğrulamak için TLS sertifikasını tarayıcıya iletir.
  3. Tarayıcı, sertifikanın geçerli ve güvenilir olup olmadığını kontrol eder.
  4. Tarayıcı ve sunucu, şifreli iletişim için gerekli anahtarları oluşturur.
  5. Bağlantı kurulduktan sonra HTTP verileri şifrelenmiş şekilde iletilir.

ICMP (Internet Control Message Protocol)

ICMP (Internet Control Message Protocol), ağ cihazlarının birbirlerine hata, durum ve tanılama mesajları göndermek için kullandığı protokoldür. ICMP, uygulama verisi taşımak için değil; ağ üzerindeki iletişimle ilgili bilgi vermek için kullanılır.

ICMP Ne İşe Yarar?

Bir paket hedefe ulaşamadığında, yönlendirme sırasında bir sorun oluştuğunda veya paketin yaşam süresi dolduğunda ICMP mesajları kullanılabilir:

  • Destination Unreachable: Hedefe ulaşılamadığını belirtir.
  • Time Exceeded: Paketin TTL değerinin tükendiğini belirtir.
  • Echo Request / Echo Reply: Bir cihazın erişilebilir olup olmadığını test etmek için kullanılır.

En Bilinen ICMP Araçları

  • Ping: Bir cihazın erişilebilir olup olmadığını kontrol etmek için kullanılır. Kaynak cihaz, hedefe bir ICMP Echo Request gönderir. Hedef cihaz cevap verirse ICMP Echo Reply döner. Ancak cevap gelmemesi her zaman cihazın kapalı olduğu anlamına gelmez; ICMP trafiği bir güvenlik duvarı tarafından engelleniyor olabilir.
  • Traceroute: Paketlerin hedefe ulaşırken geçtiği yönlendiricileri adım adım göstermeye yardımcı olur. Bu işlem sırasında paketlerin TTL (Time to Live) değeri kontrollü şekilde artırılır. TTL değeri bir yönlendiricide sıfıra düştüğünde yönlendirici genellikle ICMP Time Exceeded mesajı gönderir. Bu sayede hedefe giden yol üzerindeki cihazlar tespit edilebilir.

TCP/IP Katman Modeli

TCP, iki cihaz arasında güvenilir ve sıralı veri iletimi sağlayan bir protokoldür. Ancak TCP tek başına bir katman değildir; TCP/IP modelinde Taşıma Katmanı'nda (Transport Layer) çalışır.

Bir veri ağ üzerinden gönderilirken TCP/IP modelindeki katmanlardan geçer ve her katman veriye kendi kontrol bilgilerini ekler. Bu işleme kapsülleme (encapsulation) adı verilir.

Veri Gönderilirken Ne Olur?

  • 4. Uygulama Katmanı (Application Layer): Kullanıcının veya uygulamanın verisi burada oluşur. Örneğin bir web sayfasına yapılan HTTP isteği bu katmanda hazırlanır. Bu veri genel olarak mesaj (message) olarak adlandırılabilir.
  • 3. Taşıma Katmanı (Transport Layer): TCP kullanılıyorsa veriye kaynak ve hedef port numaraları, Sequence Number, Acknowledgement Number ve diğer TCP başlık bilgileri eklenir. TCP tarafından oluşturulan veri birimine segment adı verilir.
  • 2. İnternet Katmanı (Internet Layer): Segmentin başına IP başlığı eklenir. Bu başlık içerisinde kaynak ve hedef IP adresleri gibi bilgiler bulunur. Oluşan veri birimine paket (packet) adı verilir.
  • 1. Ağ Erişim Katmanı (Network Access Layer): Pakete yerel ağda iletim için gerekli bağlantı katmanı bilgileri eklenir. Ethernet kullanılıyorsa kaynak ve hedef MAC adresleri Ethernet başlığında bulunur. Oluşan veri birimine frame (çerçeve) adı verilir.

Veri alıcıya ulaştığında ise bu işlem tersine gerçekleşir. Her katman kendisine ait başlık bilgilerini kaldırır ve veriyi bir üst katmana iletir. Bu işleme kapsülden çıkarma (decapsulation) adı verilir.

TCP/IP Modeli

Karşılıklı İletişim

TCP protokolünün çalışma mantığını bir telefon konuşmasına benzetebiliriz. Birisiyle telefonda konuşmaya başlamadan önce genellikle “Sesim geliyor mu?” diye sorarız. Karşı taraf sesimizi duyduğunda bunu onaylar ve ardından kendi sesinin gelip gelmediğini sorar. Biz de sesini duyduğumuzu onayladıktan sonra konuşmaya başlarız.

TCP protokolünde de benzer bir süreç gerçekleşir. İki cihaz arasında veri alışverişi başlamadan önce bağlantının sağlıklı bir şekilde kurulup kurulmadığı kontrol edilir. Her iki taraf da iletişime hazır olduğunu onayladıktan sonra veri aktarımı başlar.

TCP Kontrol Bayrakları

TCP bayrakları, ağ üzerindeki cihazlar arasındaki TCP iletişiminin başlatılması, sürdürülmesi, yönetilmesi ve sonlandırılması sırasında kullanılan kontrol bitleridir. Bu bayraklar TCP başlığı içerisinde yer alır ve bağlantının hangi durumda olduğunu belirtir.

Temel TCP bayrakları şunlardır:

  • SYN (Synchronization): İki cihaz arasında TCP bağlantısı kurulurken kullanılır. Üçlü el sıkışma (Three-Way Handshake) sürecinin başlatılmasında önemli bir rol oynar.
  • ACK (Acknowledgement): Gönderilen verinin veya bağlantıyla ilgili bir isteğin başarıyla alındığını onaylamak için kullanılır.
  • FIN (Finish): Mevcut TCP bağlantısının düzgün bir şekilde sonlandırılmasını talep etmek için kullanılır.
  • RST (Reset): Bağlantının beklenmeyen bir durum nedeniyle hemen sonlandırılması gerektiğinde kullanılır. Geçersiz veya istenmeyen TCP bağlantılarının sıfırlanmasını sağlar.
  • URG (Urgent): TCP segmenti içerisinde acil olarak işlenmesi gereken veriler bulunduğunu belirtir.
  • PSH (Push): Alınan verinin daha fazla veri beklenmeden uygulama katmanına iletilmesini talep eder. Böylece verinin arabellekte gereğinden fazla beklemesinin önüne geçilir.

TCP Segment Başlığı

TCP segment başlığı, ağ üzerinden iletilen verinin başına eklenen ve verinin doğru hedefe, güvenilir ve sıralı bir şekilde ulaşabilmesi için gerekli yönetim bilgilerini içeren yapıdır. Kaynak ve hedef portlar, sıra numaraları, onay numaraları ve kontrol bayrakları gibi birçok önemli bilgi bu başlık içerisinde bulunur.

TCP Segment Başlığı

TCP başlığının uzunluğu, kullanılan seçeneklere bağlı olarak genellikle 20 ile 60 byte arasında değişir. Yukarıdaki resim üzerinden temel alanları kısaca inceleyebiliriz:

  • İlk olarak Source Port ve Destination Port alanları bulunur. Bu alanlarda segmentin hangi kaynak porttan gönderildiği ve hedefte hangi porta ulaştırılacağı bilgisi tutulur.
  • Ardından Sequence Number ve Acknowledgement Number alanları gelir. Bu iki alan TCP’nin güvenilir ve sıralı veri aktarımı sağlamasında önemli bir role sahiptir.
  • Data Offset alanı, TCP başlığının uzunluğunu belirtir ve böylece asıl verinin segment içerisinde nereden başladığının anlaşılmasını sağlar. Bu değer 32 bitlik, yani 4 byte’lık kelimeler üzerinden ifade edilir. Örneğin Data Offset değeri 5 ise TCP başlığının uzunluğu 5 × 4 = 20 byte olarak hesaplanır. Bu durumda ilk 20 byte TCP başlığına, sonrasındaki bölüm ise taşınan veriye aittir.
  • Daha sonra daha önce bahsettiğimiz TCP bayrakları gelir. SYN, ACK, FIN ve RST gibi bayraklar bu bölümde bitler hâlinde tutulur ve bağlantının yönetilmesinde kullanılır.
  • Window Size alanı 2 byte uzunluğundadır ve alıcının ne kadar veriyi kabul edebileceği hakkında bilgi verir.
  • Checksum alanı, TCP başlığı ve taşınan veride iletim sırasında bir bozulma meydana gelip gelmediğinin tespit edilmesinde kullanılır. Gönderici tarafından hesaplanan checksum değeri, alıcı tarafında tekrar hesaplanarak karşılaştırılır.
  • Ardından Urgent Pointer alanı gelir. Bu alan, URG bayrağı aktif olduğunda kullanılır ve acil olarak işaretlenen verinin sınırının belirlenmesine yardımcı olur.
  • Son olarak Options alanı bulunur. Bu alan her TCP segmentinde bulunmak zorunda değildir ve kullanıldığında TCP başlığının uzunluğunu artırır. Maximum Segment Size (MSS) ve Window Scale gibi TCP seçenekleri bu bölümde taşınabilir.

TCP Üçlü El Sıkışma Süreci

TCP Three-Way Handshake

TCP protokolünde veri gönderip alabilmek için öncelikle iki cihaz arasında bağlantı kurulması gerekir. Bu bağlantı, Three-Way Handshake (Üçlü El Sıkışma) adı verilen süreç ile gerçekleştirilir.

İlk olarak bağlantıyı başlatmak isteyen cihaz, karşı tarafa SYN bayrağı aktif bir TCP segmenti gönderir. Karşı taraf bu isteği aldığında, paketin ulaştığını ACK ile onaylar ve aynı zamanda kendi bağlantı isteğini belirtmek için SYN bayrağını da aktif eder. Bu iki bayrak genellikle tek bir SYN-ACK segmenti içerisinde gönderilir.

Son olarak bağlantıyı başlatan cihaz, karşı taraftan gelen SYN-ACK segmentini ACK ile onaylar. Böylece üçlü el sıkışma tamamlanır ve iki cihaz arasında TCP bağlantısı kurulmuş olur.

Veri Transferi: SEQ ve ACK Numaraları Nasıl Çalışır?

  • Sequence Number (SEQ): TCP akışı içerisindeki verilerin sırasını takip etmek için kullanılır. Sequence Number, gönderilen segmentteki ilk veri byte’ının sıra numarasını belirtir.
  • Acknowledgement Number (ACK): Karşı taraftan hangi byte’a kadar verinin başarıyla alındığını belirtir ve bir sonraki beklenen Sequence Number değerini bildirir.
  • TCP Payload / Data: TCP başlığı dışında kalan ve uygulama tarafından karşı tarafa gönderilmek istenen asıl veridir.

Wireshark 1

Bu kısmı yukarıdaki Wireshark çıktısı üzerinden inceleyebiliriz:

İlk olarak bilgisayarın (192.168.84.148) sunucuya (192.168.84.145) SYN bayrağı aktif bir TCP segmenti gönderdiğini görüyoruz. Bu segmentin gerçek Sequence Number değeri 3275320503 olarak görülmektedir.

Wireshark, varsayılan olarak Sequence ve Acknowledgement Number değerlerini daha kolay takip edebilmemiz için relative sequence number biçiminde gösterebilir. Bu nedenle paket listesinde başlangıç Sequence Number değeri genellikle 0 olarak görünür. İstenirse bu özellik Wireshark ayarlarından kapatılarak gerçek Sequence Number değerleri görüntülenebilir.

Burada ayrıca SYN ve FIN bayraklarının Sequence Number üzerindeki etkisini bilmemiz gerekir. SYN ve FIN segmentleri herhangi bir uygulama verisi taşımıyor olsalar bile sequence space içerisinde 1 byte tüketirler. Bu nedenle SYN segmentinin Sequence Number değeri 3275320503 ise karşı tarafın göndereceği Acknowledgement Number değeri: 3275320503 + 1 = 3275320504 olur.

38 numaralı paketi incelediğimizde ACK = 3275320504 olduğunu görüyoruz. Bu değer, karşı tarafın SYN segmentini aldığını ve bir sonraki beklediği Sequence Number değerinin 3275320504 olduğunu gösterir.

39 numaralı pakette ise SEQ = 3275320504 değerini görürüz. Böylece bağlantı kurulduktan sonra veri aktarımı bu Sequence Number üzerinden devam eder.

40 numaralı paketi incelediğimizde bilgisayarın bir HTTP GET isteği gönderdiğini görüyoruz. Bu segment içerisinde toplam 78 byte TCP payload gönderilmişse, bir sonraki beklenen Sequence Number değeri mevcut Sequence Number üzerine 78 eklenerek hesaplanır:

3275320504 + 78 = 3275320582

41 numaralı pakette sunucunun ACK = 3275320582 göndermesi, gönderilen 78 byte verinin başarıyla alındığını ve sunucunun artık 3275320582 numaralı byte’tan itibaren gelecek veriyi beklediğini ifade eder.

Akış Kontrolü ve Segment Boyutu

  • Window Size: Alıcının, ACK göndermeden önce ne kadar veriyi kabul edebileceğini belirtir. Başka bir ifadeyle, göndericinin onay beklemeden iletebileceği veri miktarını sınırlar.
  • Window Scale: TCP başlığındaki 16 bitlik Window Size alanının kapasitesini artırmak için kullanılan bir ölçekleme mekanizmasıdır.
  • Maximum Segment Size (MSS): Bir TCP segmentinde taşınabilecek maksimum TCP payload miktarını belirtir.

Window Size ve Window Scale

TCP başlığındaki Window Size alanı 2 byte, yani 16 bit uzunluğundadır. Bu nedenle tek başına en fazla 65.535 byte değerini gösterebilir. Ancak yüksek hızlı ağlarda bu değer yetersiz kalabilir. Örneğin büyük boyutlu bir dosya indirirken her yaklaşık 64 KB veriden sonra bağlantının tamamen durup ACK beklemesi verimsiz olurdu. Bu noktada Window Scale özelliği devreye girer.

Window Scale değeri, TCP bağlantısı kurulurken gerçekleştirilen Three-Way Handshake sırasında taraflar arasında belirlenir:

Calculated Window Size = Window Size × 2^Window Scale

Maximum Segment Size (MSS)

MSS, tek bir TCP segmentinde taşınabilecek maksimum uygulama verisi miktarını belirtir. Örneğin MSS değerinin 1460 byte olduğu bir bağlantıda 4380 byte veri gönderilmek istenirse, bu veri uygun koşullarda üç TCP segmentine bölünebilir:

4380 / 1460 = 3

MSS'nin tüm IP paketinin boyutunu değil, yalnızca TCP payload kısmının maksimum boyutunu ifade ettiğini unutmamak gerekir.

TCP'de Kayıp Paketlerin Yeniden İletilmesi

TCP, güvenilir veri aktarımı sağlamak için kaybolduğu düşünülen verileri yeniden gönderebilir. Bu işleme Retransmission (Yeniden İletim) denir.

  • Retransmission Timeout (RTO): Gönderilen veri için belirlenen süre içerisinde gerekli ACK alınamazsa ilgili veri yeniden gönderilir.
  • Fast Retransmit: Zaman aşımı süresinin dolması beklenmeden, aynı Acknowledgement Number değerini taşıyan birden fazla Duplicate ACK alınması sonucunda eksik olduğu düşünülen veri yeniden gönderilir.

Fast Retransmit Nasıl Çalışır?

Sunucunun sırasıyla beş parça veri gönderdiğini düşünelim. İlk iki parça başarıyla ulaşmış, ancak üçüncü parça ağ üzerinde kaybolmuş olsun. Buna rağmen dördüncü ve beşinci parçalar alıcıya ulaşabilir.

TCP'de alıcı, doğrudan “3 numaralı paket kayboldu” şeklinde bir mesaj göndermez. Bunun yerine hâlâ beklediği bir sonraki byte'ı Acknowledgement Number olarak bildirmeye devam eder. Örneğin 4. ve 5. segmentler ulaşmasına rağmen 3. segment eksikse, alıcı aynı ACK değerini tekrar tekrar gönderir. Bunlara Duplicate ACK adı verilir.

Gönderici aynı ACK değerinin tekrarlanmasından arada bir verinin eksik olduğunu anlayabilir. Klasik Fast Retransmit mekanizmasında yeterli sayıda Duplicate ACK alındığında, zaman aşımı süresi beklenmeden eksik segment yeniden gönderilir.

Retransmission Timeout Nasıl Çalışır?

Eğer Fast Retransmit mekanizması devreye girmez ve gönderici belirlenen Retransmission Timeout süresi boyunca gerekli ACK'yi alamazsa, ilgili veri zaman aşımı sonucunda yeniden gönderilir.

TCP Bağlantısının Sonlandırılması

Wireshark 2

Yukarıdaki resim üzerinden TCP bağlantısının nasıl sonlandırıldığını inceleyebiliriz:

44 numaralı pakette bilgisayar, bağlantıyı sonlandırmak istediğini belirtmek için FIN bayrağı aktif bir TCP segmenti gönderir.

45 numaralı pakette sunucu bu isteği aldığını ACK ile onaylar ve aynı zamanda kendi tarafındaki bağlantıyı sonlandırmak için FIN bayrağını da gönderir. Bu nedenle segment içerisinde FIN-ACK bayrakları birlikte görülür.

Sequence Number değerine baktığımızda değerin 1 arttığını görebiliriz. Bunun sebebi, daha önce bahsettiğimiz şekilde FIN bayrağının sequence space içerisinde 1 değer tüketmesidir. Bazı kaynaklarda bu durum “phantom byte” olarak da ifade edilir.

Son olarak 46 numaralı pakette bilgisayar, sunucudan gelen FIN isteğini ACK ile onaylar. Böylece TCP bağlantısı normal ve kontrollü bir şekilde sonlandırılmış olur.

RST ile Bağlantının Sonlandırılması

Wireshark 3

Yukarıdaki resme baktığımızda, bağlantı kurulmaya çalışıldıktan hemen sonra bir RST segmenti gönderildiğini görüyoruz.

İlk olarak istemci, bağlantıyı başlatmak için SYN bayrağı aktif bir TCP segmenti gönderir. Hemen ardından karşı taraftan RST bayrağı aktif bir segment gelir. Bu durum, bağlantının normal şekilde kurulamadığını veya karşı tarafın bağlantıyı kabul etmediğini gösterir:

  • Hedef port kapalı olabilir.
  • Hedef sistemde o portu dinleyen bir uygulama bulunmuyor olabilir.
  • Bir güvenlik duvarı bağlantıyı aktif olarak reddediyor olabilir.
  • Uygulama, gelen bağlantıyı kabul etmiyor olabilir.
  • TCP bağlantısında beklenmeyen veya geçersiz bir durum oluşmuş olabilir.

Bu gibi durumlarda TCP bağlantısı Three-Way Handshake tamamlanmadan sonlandırılmış olur.

UDP Protokolü

UDP protokolünü, uzak mesafedeki bir kişiye megafonla seslenmeye benzetebiliriz. Bir cümle söylediğimizde, karşı tarafa tüm kelimelerin eksiksiz ulaşıp ulaşmadığını bilemeyiz. Çünkü karşı taraftan bize herhangi bir onay gelmez.

UDP'de verinin alınıp alınmadığı doğrulanmaz ve TCP'deki gibi önceden bir bağlantı kurulmaz. Bu nedenle kaybolan veriler UDP tarafından otomatik olarak tekrar gönderilmez. Bağlantı kurulumu ve onay mekanizmalarının bulunmaması, UDP'nin TCP'ye göre daha düşük gecikmeyle çalışabilmesini sağlar.

Bu özellikleri nedeniyle UDP; çevrim içi oyunlar, canlı yayınlar, sesli ve görüntülü görüşmeler gibi düşük gecikmenin önemli olduğu alanlarda sıkça kullanılır.

TCP ve UDP Protokolleri Arasındaki Farklar

ÖzellikTCPUDP
Bağlantı YapısıBağlantı yönelimliBağlantısız
Durum TakibiDurum bilgisi tutulurDurumsuzdur
Veri YapısıBayt akışıDatagram
Veri SırasıSıralı iletim sağlarSıra garantisi yoktur
GüvenilirlikGüvenilir iletim sağlarTeslim garantisi yoktur
Kayıp VeriYeniden iletim yapılabilirUDP tarafından yeniden iletim yapılmaz
Hata KontrolüHatalı veri tespit edilir ve güvenilirlik mekanizmaları uygulanırHatalı datagramlar tespit edilip atılabilir
Bağlantı KurulumuThree-Way Handshake vardırEl sıkışma yoktur
Akış KontrolüVardırYoktur
Tıkanıklık KontrolüVardırYoktur
GecikmeGörece daha yüksektirGörece daha düşüktür
İletişim TürüGenellikle noktadan noktayaUnicast, broadcast ve multicast kullanılabilir
GüvenlikTLS gibi üst katman protokolleri kullanılabilirDTLS gibi üst katman protokolleri kullanılabilir

Pratik Paket Analizi: Wireshark ile Katman Katman Trafik İncelemesi

Teorik kavramları geride bıraktıktan sonra, ağ güvenliğinin ve SOC analistliğinin asıl uygulama sahasına adım atıyoruz. Gerçek dünya senaryolarında bir analistin önündeki pcap dosyası binlerce satırdan oluşur. Burada fark yaratan yetenek; doğru filtrelerle şüpheli trafiği izole etmek ve seçilen tek bir paketi donanım seviyesinden (L1/L2) başlayıp uygulama katmanına kadar mikroskop altına alabilmektir.

Şüpheli Trafiği İzole Etme: Wireshark Filtreleme Stratejisi

Canlı analizde veya devasa pcap dosyalarında her paketi tek tek incelemek imkansızdır. Bir güvenlik analisti, ilk olarak Wireshark'ın görüntüleme filtrelerini (Display Filters) kullanarak gürültüyü eler ve şüpheli aktiviteleri öne çıkarır:

  • Bağlantı Başlatma İstekleri (SYN Taramaları): Ağda kimlerin yeni oturum açmaya çalıştığını veya port taraması yaptığını görmek için yalnızca SYN bayrağı aktif olan paketler filtrelenir:
    bash
    tcp.flags.syn == 1 && tcp.flags.ack == 0
  • Reddedilen Bağlantılar (RST Paketleri): Kapalı portlara çarpıp dönen veya aniden koparılan oturumları bulmak için:
    bash
    tcp.flags.reset == 1
  • Belirli Bir Host Trafiği: Şüpheli bir IP tespit edildiğinde tüm giriş-çıkış trafiğini izole etmek için:
    bash
    ip.addr == 192.168.84.146

Laboratuvar senaryomuzda tcp.flags.syn == 1 && tcp.flags.ack == 0 filtresi uygulandığında, 192.168.84.146 adresinin hedef sunucudaki 587 numaralı porta yönelik tekil bir bağlantı denemesi yaptığı fark edilmiştir. Bu aktivitenin ilk adımı olan 122 numaralı şüpheli paketi seçerek analizimize başlıyoruz.


Fiziksel Çerçeve ve Genel Yakalama Parametreleri (Frame Metadata)

Wireshark'ın paket detayları penceresinde en üstte yer alan Frame bölümü, kablodan veya kablosuz ortamdan geçen paketin fiziksel yakalanma koşullarını ve pcapng formatına ait metaverileri sunar:

Frame 122 Yakalama ve Zaman Detayları

  • Paket ve Yakalama Boyutu (Wire vs. Captured Length): Paket fiziksel ağ kablosunda (on wire) 58 bayt (464 bit) yer kaplamış ve diske kaydedilen boyut da eksiksiz şekilde 58 bayt olmuştur. Bu eşitlik, yakalama arayüzünde paket kesintisi (snaplen / packet slicing) yaşanmadığını ve paketin tam olarak kaydedildiğini gösterir.
  • Ağ Kartı Arabirimi (NIC Metadata): Dinleme, işletim sistemindeki eth0 arabiriminden (Wireshark içindeki Interface ID: 0) yapılmıştır.
  • Kapsülleme Türü (Encapsulation Type): Fiziksel iletim standardı Ethernet (1) olarak etiketlenmiştir.
  • Zaman Damgaları (Timestamps & SIEM Korelasyonu):
    • Yerel Saat & UTC: Paket, 7 Nisan 2026 14:32:11.307811684 (UTC: 11:32:11) anında ağ kartına ulaşmıştır.
    • Unix Epoch Zamanı: 1775561531.307811684. 1 Ocak 1970'ten itibaren geçen bu saniye değeri, dağıtık log yönetim sistemlerinde (SIEM/EDR) farklı coğrafyalardaki cihazların loglarını mikrosaniye hassasiyetinde sıraya dizmek için kritik referanstır.
    • Delta Süreleri: Bir önceki yakalanan paketten bu pakete kadar geçen süre 518.995 ms'dir. Yakalamanın başladığı ilk referans paketinden itibaren geçen toplam süre ise 3 dakika 7.46 saniyedir.
  • Protokol Sıralaması: Çerçeve içerisindeki protokol dizilimi eth -> ethertype -> ip -> tcp hiyerarşisindedir.
  • Paket İşaretleme Durumu: Frame is marked: False ve Frame is ignored: False. Paketin analist tarafından özel bir filtreleme amacıyla işaretlenmediğini gösterir.
  • Wireshark Renklendirme Kuralı (Coloring Rule): Paket, Wireshark'ın varsayılan TCP SYN/FIN renklendirme kuralına takılarak açık mavi/yeşil tonda listelenmiştir. Kuralın arkasındaki filtre formülü: tcp.flags & 0x02 || tcp.flags.fin == 1 Bu kural, TCP oturumunu başlatan (SYN) veya sonlandıran (FIN) sınır paketlerini görsel olarak anında ayırt etmeyi sağlar.

Veri Bağlantı Katmanı: Ethernet II Başlık Yapısı (L2 Analizi)

Ethernet II standardı, paketin yerel ağ segmentinde (Layer 2 broadcast domain) hangi fiziksel karttan çıkıp hangi cihaza iletildiğini denetler:

Ethernet II Başlığı ve Bit Analizi

  • Hedef Donanım Adresi (Destination MAC): 00:0c:29:b4:b7:ff (VMware OUI).
  • Kaynak Donanım Adresi (Source MAC): 00:0c:29:52:3f:1e (VMware OUI).
  • MAC Adres Bitlerinin Derinlemesine Anlamı:
    • LG Biti (Locally Administered / Globally Unique): Her iki MAC adresinde de bu bit 0 değerindedir. Adresin IEEE tarafından üretici donanımına (burada VMware sanal bağdaştırıcısına) fabrikasyon olarak tahsis edildiğini, yazılımsal sahte bir yerel adres olmadığını gösterir.
    • IG Biti (Individual / Group): Değer 0'dır. Paketin yayın (Broadcast) veya çoklu yayın (Multicast) olmadığını, doğrudan tek bir hedefe (Unicast) yönlendirildiğini kanıtlar. Standartlar gereğince kaynak MAC adresi daima Unicast olmak zorundadır.
  • EtherType Değeri: IPv4 (0x0800). Ethernet başlığının bittiğini ve yükün 3. katmanda IPv4 protokolüne devredileceğini belirtir. (Örn: ARP için 0x0806, IPv6 için 0x86DD olur).
  • Stream Index (0): Wireshark'ın bu soket çifti için arka planda tuttuğu oturum takip indeksidir.

Bilgi

SOC İpucu: MAC Spoofing & OUI Anomali Tespiti İç ağ sızma testlerinde veya gelişmiş tehdit aktörlerinin (APT) yerel keşiflerinde, saldırganlar kendi fiziksel donanımlarını gizlemek için MAC adreslerinin LG bitini 1 yapabilir veya rastgele OUI blokları üretebilir. Kurumsal ağ anahtarlarında (Switch) 802.1X ve Port Security politikaları bu tip anomalileri yakalamada birincil savunma hattıdır.

Ağ Katmanı: Internet Protocol v4 (IPv4) Derin Analizi (L3)

IPv4 başlığı, paketlerin mantıksal adresleme ile yönlendirilmesini ve gerekiyorsa ağ sınırlarına göre parçalanmasını (fragmentation) yönetir. İncelediğimiz pakette standart 20 baytlık sabit IPv4 başlığı mevcuttur:

IPv4 Başlık ve Parçalanma Detayları

  • Sürüm (Version) & Başlık Uzunluğu (IHL): Sürüm IPv4 (0100). Başlık uzunluğu 20 bayt (5 adet 32-bit sözcük). Ek bir opsiyon alanı barındırmadığı için minimum boyuttadır.
  • Hizmet Farklılaştırma (DSCP & ECN): 0x00. Ağda herhangi bir paket önceliklendirmesi (QoS) tanımlanmamıştır (CS0) ve Explicit Congestion Notification (açık sıkışıklık bildirimi) devre dışıdır (Not-ECT).
  • Toplam Boyut (Total Length): 44 bayt. 20 bayt IP başlığı + 24 bayt TCP başlığı. Buradan paketin içerisinde herhangi bir uygulama verisi (payload) taşınmadığını net olarak görüyoruz.
  • Paket Kimliği (Identification): 0x68d9 (26841). Paket parçalanırsa hedef sistemin bu parçaları doğru birleştirmesi için üretilen benzersiz kimliktir.
  • IP Bayrakları (Flags) ve Parçalanma Bilgisi:
    • Reserved Bit (Evil Bit): 0. RFC 3514 şakasında kötü niyetli paketleri işaretlemek için önerilen bu rezerve bit daima 0 kalmalıdır.
    • Don't Fragment (DF): 0. Paketin gerekirse yönlendiriciler tarafından parçalanabileceğini ifade eder. (Genellikle modern işletim sistemleri MTU Discovery için bunu 1 yapar; 0 olması otomatik araçların eski/özel paket üretim motorlarına işaret edebilir).
    • More Fragments (MF): 0. Bu paketin arkasından gelen devam parçası yoktur.
    • Fragment Offset: 0. Paketin bölünmediğini ve sıfırıncı bayttan başladığını kanıtlar.
  • Yaşam Süresi (TTL - Time to Live) ve OS Fingerprinting: 45.
    • Her yönlendirici (hop) üzerinden geçişte bu sayı 1 azaltılır ve 0 olduğunda paket düşürülerek sonsuz döngüler engellenir.
    • Analist Yorumu: Varsayılan başlangıç TTL değerleri Linux sistemlerde 64, Windows sistemlerde 128, ağ anahtarları ve Cisco cihazlarında 255'tir. Ağ hattında yakalanan 45 değeri; paketin Linux tabanlı bir makineden çıkıp yaklaşık 19 yönlendirici aşarak geldiğini ya da saldırganın Nmap/Scapy gibi araçlarla TTL değerini işletim sistemi tespitini yanıltmak amacıyla manuel olarak 45 belirlediğini gösterir.
  • Taşınan Protokol (Protocol): TCP (6). Veri yükünün TCP motoruna iletileceğini teyit eder (ICMP: 1, UDP: 17).
  • Header Checksum: 0xfa7e [unverified]. Wireshark üzerinde doğrulama kapalıdır; modern ağ kartları TCP/IP sağlama toplamını donanım seviyesinde (checksum offload) hesapladığından işletim sistemi seviyesinde doğrulama yapılmamış görünebilir.
  • Uç Noktalar: Kaynak IP: 192.168.84.146 -> Hedef IP: 192.168.84.145.

Uyarı

Güvenlik İncelemesi: IP Fragmentation & Firewall Evasion Saldırıları Normalde parçalanan paketler offset değerine göre sıralı birleştirilir. Ancak saldırganlar Teardrop ve Ping of Death gibi saldırılarda kasıtlı olarak çakışan veya negatif offset değerleri göndererek hedef işletim sisteminin bellek yönetimini çökertmeyi hedeflerler. Günümüzde ise saldırganlar, zararlı yüklerini ağ güvenlik duvarlarının (Firewall/IDS/IPS) imza kontrollerinden gizlemek için kasıtlı olarak küçük parçalara bölerek hedefte birleştirmeyi (Firewall Evasion) amaçlamaktadır.

Taşıma Katmanı: Transmission Control Protocol (L4 Analizi)

Paketin asıl niyetini ve siber güvenlik boyutunu ortaya koyan en can alıcı katman TCP başlığıdır. Bu paketin sıradan bir istemci bağlantısı mı yoksa yetkisiz bir keşif/tarama aktivitesi mi olduğunu buradaki bayrak ve oturum alanları ele verir:

TCP Başlığı ve Oturum Detayları

TCP AlanıDeğerTeknik Açıklama ve Güvenlik Yorumu
Source Port51006İstemci işletim sistemi tarafından atanan dinamik/geçici (ephemeral) rastgele port.
Destination Port587Hedef servis: SMTP Submission (E-posta gönderme/aktarım portu).
Stream Index & PktStream 4, Pkt 1Wireshark'ın yakaladığı 5. farklı TCP oturumunun ilk paketidir. İletişim bu adımla başlar.
Sequence Number0 (Raw: 2918753529)İlk Sıra Numarası (ISN). Rastgele 32-bit değer üretilmiştir (TCP Session Hijacking önlemi).
Next Sequence No1Paket yükü 0 olsa da, SYN bayrağı sanal olarak 1 baytlık sıra numarası tüketir.
Acknowledgment No0 (raw: 0)İlk paket olduğu için karşı taraftan henüz onaylanacak bir veri yoktur.
Header Length24 bayt (6)Standart 20 bayt TCP başlığına ek olarak 4 baytlık TCP MSS opsiyonu yer alır.
TCP Flags0x002 (SYN: Set)12 bitlik kontrol alanında yalnızca SYN aktiftir (........S.). Diğer tüm bayraklar kapalıdır.
Window Size1024Karşı taraftan onay beklemeden kabul edilebilecek tampon boyutu (Window Scale kullanılmamıştır).
Urgent Pointer0Acil bayrağı (URG) set edilmediği için devre dışıdır.
TCP OptionsMSS = 1460 bytesMaximum Segment Size (Kind: 2, Len: 4). Karşıdan gelebilecek azami segmenti 1460 bayt ile sınırlar.

Akış Durumu (Conversation Completeness) ile Stealth SYN Taraması Tespiti

Wireshark'ın modern sürümlerinde yer alan en güçlü analiz yeteneklerinden biri akış bütünlüğü takibidir:

text
[Conversation completeness: Incomplete (37)]
[Completeness Flags: RA S]

Bu alanda yer alan RA S kodlaması şu olaylar zincirini ortaya koyar:

  1. S (SYN: Present): İstemci makine (192.168.84.146), sunucunun 587 portuna bir bağlantı isteği (SYN) iletmiştir.
  2. SYN-ACK: Absent: Sunucudan istemciye normal üçlü el sıkışmanın (3-Way Handshake) ikinci adımı olan SYN-ACK dönmemiştir (veya port kapalı olduğu için doğrudan RST dönmüştür).
  3. RA (RST / ACK: Present): Bağlantı hiçbir veri aktarımı gerçekleşmeden doğrudan RST (Reset) bayrağıyla düşürülmüştür.
  4. SOC Çıkarımı: Bu profil kusursuz bir TCP SYN Port Taraması (Half-Open / Stealth Scan) örneğidir (Nmap -sS parametresi). Saldırgan sunucu üzerinde tam bir oturum açıp uygulama seviyesinde log bırakmamak için el sıkışmayı kasıtlı olarak yarıda kesmiştir.

İpucu

Güvenlik İncelemesi: TCP Session Hijacking ve Kriptografik ISN Eski işletim sistemlerinde TCP Sıra Numaraları tahmin edilebilir bir matematiksel artış gösteriyordu. Saldırganlar bu artışı tahmin ederek araya girip oturum çalabiliyordu (TCP Session Hijacking). Günümüz modern işletim sistemleri bu saldırıyı engellemek için ISN değerini kriptografik olarak rastgele üretmektedir.

TCP Bayrakları Detayı (SYN Set)

Wireshark Uzman Bilgisi (Expert Info) İncelemesi

Wireshark'ın analiz motoru bu paket için iki önemli kayıt üretmiştir:

  • [Severity level: Chat / Group: Sequence]: Connection establish request (SYN): server port 587. Paket bazında standart bir oturum başlatma isteği olduğunu doğrular.
  • [Severity level: Note / Group: Protocol]: The SYN packet does not contain a SACK PERM option. Paketin Seçici Onaylama (SACK) desteği barındırmadığını belirtir. SACK olmadığında, tek bir kayıp pakette tüm pencerenin baştan gönderilmesi gerekir; modern işletim sistemlerinde SACK'in kapalı olması tarama araçlarının özel paket yapılandırıcılarına işaret eden ek bir anomalidir.

SOC Analisti İçin Çıkarımlar ve Olay Müdahale Planı

İncelediğimiz tek bir 58 baytlık paket ve akış verisinden elde ettiğimiz operasyonel güvenlik sonuçları şunlardır:

  1. Yetkisiz Keşif Tespiti: Hedef sunucudaki 587 (SMTP) portu, 192.168.84.146 IP adresi tarafından hedef alınmıştır. Üçlü el sıkışmanın bilinçli olarak tamamlanmaması aktivitenin arkasında bir port tarama aracının olduğunu kanıtlar.
  2. SIEM Kural Korelasyonu: SOC izleme panellerinde şu mantıkla bir korelasyon kuralı devreye alınmalıdır:
    yaml
    rule: Port_Scan_Detected
    condition:
      selection:
        ip.src: 192.168.84.146
        tcp.flags.syn: 1
        tcp.flags.ack: 0
      timeframe: 10s
      threshold: count(distinct tcp.dstport) > 5
    action: Trigger_Alert_P2_Containment
  3. Ağ İzolasyonu ve Firewall Kuralı: 192.168.84.146 adresinin pcap genelinde başka hangi IP ve portlara yönelik SYN paketi yolladığı tcp.flags.syn==1 && tcp.flags.ack==0 filtresiyle araştırılmalı, tarama faaliyeti doğrulandığında host yerel ağdan izole edilerek adli bilişim incelemesi başlatılmalıdır.

Kaynakça

Kaynakça

Ağ Trafiği Analizi İçin Kaynakça