Ağ trafiği dinleme araçları — 1

Bu flood’da bilgisayarımızın ağ ile yaptığı iletişimi dinlememizi sağlayan araçlardan biri olan Wireshark'ı inceleyeceğiz.

Wireshark bilgisayarımızın ağ üzerinden başka ağ elemanları ve başka bilgisayarlarla yaptığı paket alışverişini gerçek zamanlı olarak kaydederek incelememize olanak tanır. Wireshark genellikle hata ayıklama için kullanılsa da bir protokolün eğitim amaçlı olarak nasıl çalıştığını öğretmek ya da aşina olunmayan bir programın çalışma dinamiğini anlamak için de ara ara kullanılmaktadır. Kışın bitmesi ile birlikte şort giymeye başlayan sakallı sistemci abilerin “Bir Ethereal trace alıp bakalım” demelerinin sebebi Wireshark’ın önceki adının Ethereal olmasıdır.

Wireshark direkt olarak Ethernet frame seviyesinde bilgisayardan çıkan veya bilgisayara giren raw (çıplak) paketleri elde ettiği için program çıktısı dış dünya tarafından nasıl görünüyorsa Wireshark tarafından da o şekilde gösterilir ve doğru analize olanak tanınır. Wireshark paketleri frame seviyesinden yakalayabilmek için ağ kartının (NIC - Network Interface Card) sürücüsüne dahil olmaktadır. Windows üzerine link seviyesinde paketleri yakalayabilmek için Wireshark'a ek olarak WinPcap adlı kütüphanenin de kurulması gerekmektedir.

Wireshark ilk açıldığında aşağıda gösterildiği gibi bilgisayarda bulduğu bütün ağ arayüzlerini (Network Interface) listeler ve kullanıcıdan hangi ağ arayüzü üzerinden dinleme yapacağını seçmesini bekler.

Üzerinde trafik bulunan bir ağ kartı seçildiğinde Wireshark paketleri yakalamaya başlar ve aşağıdaki gibi bir görüntü oluşur. Üstteki ekranda paketler teker teker gösterilir ve alttaki ekranda ise seçilen paketin bütün içeriğine katman katman yer verilir.

Aşağıdaki ekran görüntüsünde 8.8.8.8 adresli sunucuya yapılan ping istekleri ve cevapları gösterilmiştir. Görüldüğü gibi Wireshark gerek protokol seviyesinde (IP) gerekse de uygulama seviyesinde bütün paket içeriğini göstermektedir.

Wireshark yoğun trafik altında uzun süreli olarak açık bırakıldığında sunduğu kullanıcı arabiriminden dolayı trace alınan bilgisayarın gerek hafızası gerekse de diski üzerinde baskı oluşturabilir. Uzun süreli paket yakalama yapılacağı durumlarda Wireshark yerine komut satırından çalışırılabilen ve Wireshark ile birlikte dağıtılan dumpcap adlı aracın kullanılması uygun olacaktır. Ek olarak yine uzun süreli paket yakalama durumlarında disk alanını tamamen bitirmemek için Ring Buffer opsiyonu tercih edilmelidir.

Wireshark, dumpcap ya da ilerleyen flood'larda ele alacağımız tcpdump ile elde edilen ağ paketi kayıt (Network Packet Capture) dosyalarını görselleştirilebilir. Bu dosyalar genellikle cap ve pcap formatında olsa da Wireshark birçok dosya formatını tanımaktadır.

Wireshark’ın bir başka önemli özelliği birden fazla paket (örneğin TCP paketi) ile iletilen istekleri (örneğin HTTP) takip ederek kullanıcı kolaylığı sağlamasıdır. Aşağıdaki ekran çıktısında bir web sayfasına yapılan istek, paketlerin birine sağ tıklanarak takip edilmiştir.

Aşağıdaki ekran çıktısında bir önceki çıktıda verilen akış (stream) HTTP olarak takip edilmiş ve HTTP isteği ve cevabı görüntülenmiştir. İstenen web sayfası HTTP olduğu için Wireshark ile rahatlıkla görüntülenebilmiştir.

HTTPS protokolü kullanıldığında Wireshark şifrelenmiş trafiği çözemeyecek ve ekranda ancak şifreli hali ile gösterebilecektir. Neyse ki Wireshark, SSL/TLS trafiğini çözebilmek için kullanıcının Private Key'ini alarak üzerinden geçen trafiği deşifre edip kullanıcıya paketleri şifresiz çözülmüş halde sunabilmektedir. Bu yöntem kulağa hoş gelse de Private Key'in gizliliğinden dolayı pek kullanışlı değildir. Ayrıca istemci tarafının trafiğinin izlendiği durumlarda (Private Key'in ilgili program tarafından oluşturulduğu) bir işe yaramamaktadır.

Yukarıda sıralanan problemlere ek olarak önceki flood’larda bahsedilen Forward Secrecy ile geçici anahtarların kullanıldığı ve güncel olarak en güvenli kabul edilen SSL/TLS yapılandırmasında Wireshark ile Private Key kullanılarak trafiğin dinlenebilmesi mümkün değildir. Chrome ve Firefox, NSS Key Log adı verilen bir dosyaya her bir session'da kullanılan simetrik anahtarları yazarak external programların (Wireshark) bu anahtarları kullanarak şifreyi çözmesine olanak tanımaktadır.