Wireshark

Wireshark özgür ve açık kaynaklı bir paket çözümleyicisidir. Ağ sorunlarını giderme, çözümleme, yazılım ve iletişim protokolü geliştirme ve eğitim amaçlı olarak kullanılır. Esas olarak Ethereal adıyla başlayan proje, ticari marka sorunları nedeniyle Mayıs 2006'da Wireshark olarak yeniden adlandırıldı.

Wireshark, kullanıcı arayüzü mevcut sürümlerde Qt widget araç setini ve paketleri yakalamak için pcap kullanan çapraz platform bir yazılım olarak Linux, macOS, BSD, Solaris ve diğer bazı Unix benzeri işletim sistemleri ve Microsoft Windows üzerinde çalışabilir. TShark adlı bir terminal tabanlı (GUI olmayan) sürümü de vardır. Wireshark ve onunla birlikte TShark gibi dağıtımlar, GNU Genel Kamu Lisansı koşulları altında yayınlanan ücretsiz yazılımlardır.

Wireshark, tcpdump'a çok benzer, ancak grafiksel bir başlangıç ekranı ve bazı bütünleşik sıralama ve filtreleme seçeneklerine sahiptir. Wireshark, kullanıcının ağ arabirimi denetleyicilerini sıra dışı kipe (ağ arabirimi denetleyicisi tarafından destekleniyorsa) almasına olanak tanır; böylece, bu ağ arabirimi denetleyicisi MAC adresine gönderilen tek noktaya yayın trafiği de dahil, bu arabirimde görünen tüm trafiği görebilir. Bununla birlikte, ağ anahtarı üzerindeki bir bağlantı noktasında sıra dışı kipte bir paket, çözümleyiciyle yakalanırken, anahtar üzerinden tüm trafik mutlaka yakalamanın yapıldığı bağlantı noktasına gönderilmez, bu yüzden sıra dışı kipte yakalama yapmak tüm ağ trafiğini görmek için mutlak yeterli değildir. Bağlantı noktası yansıtma (port mirroring) veya çeşitli ağ kılavuzları, yakalamayı ağdaki herhangi bir noktaya kadar genişletir. Basit edilgen bağlantılar kurcalamaya karşı oldukça dirençlidir.

GNU/Linux, BSD ve macOS'ta, libpcap 1.0.0 veya sonraki sürümlerinde, Wireshark 1.4 ve sonraki sürümleri kablosuz ağ arabirimi denetleyicilerini de ekran kipine geçirebilir.

Bir uzak makine paketlerini yakalar ve yakalanan paketleri TZSP protokolünü veya OmniPeek tarafından kullanılan protokolü kullanarak Wireshark çalıştıran bir makineye gönderirse, Wireshark bu paketleri ayırır ve uzak bir makinede yakalanan paketleri çözümleyebilir.

1990'ların sonunda, Missouri-Kansas City Üniversitesi'nden bilgisayar bilimi mezunu olan Gerald Combs küçük bir internet servis sağlayıcısı için çalışıyordu. O zamanki ticari protokol analiz ürünleri 1500 dolar civarında fiyatlandırılmış ve şirketin birincil platformlarında (Solaris ve Linux) yayınlanmamıştı; bu yüzden Gerald, Ethereal'i yazmaya başladı ve ilk sürümünü 1998'de piyasaya sürdü. Ethereal ticari markası Network Integration Services'e aittir.

Mayıs 2006'da Combs, CACE Technologies'den gelen iş teklifini kabul etti. Combs, Ethereal'in kaynak kodunun çoğunda (ve gerisi GNU GPL kapsamında yeniden dağıtılabilir) telif hakkına sahipti, bu yüzden Wireshark deposu için Ethereal Subversion deposunun içeriğini kullandı. Ancak, Ethereal ticari markasına sahip değildi, bu yüzden adını Wireshark olarak değiştirdi. 2010'da Riverbed Technology, CACE'i satın aldı ve Wireshark'ın ana destekçisi konumuna erişti. Ethereal'in geliştirilmesi durdu ve Ethereal güvenlik danışmanı, Wireshark'a geçiş yapmayı önerdi.

Wireshark, eWeek, InfoWorld ve PC Magazine gibi yayınlarda dahil birçok uzman kuruluşlardan yıllar boyunca birçok endüstri ödülü kazandı. Ayrıca, Insecure.Org ağ güvenliği araçları anketinde en fazla puan alan paket dinleyicisi ve Ağustos 2010'da "Ayın SourceForge Projesi" oldu.

Combs, Wireshark'ın genel kodunu korumaya ve yazılımın yeni sürümlerini yayınlamaya devam ediyor. Yazılımın resmi sitesi 600'den fazla ek katkıda bulunan yazarı listeler.

Wireshark, farklı ağ protokollerinin yapısını (kapsülleme) "anlayan" bir veri yakalama programıdır. Farklı ağ protokolleri tarafından belirtilen anlamları ile birlikte alanları ayrıştırabilir ve görüntüleyebilir. Wireshark, paketleri yakalamak için pcap kullanır, bu nedenle yalnızca pcap'ın desteklediği ağ türlerinde paketleri yakalayabilir.

Wireshark'ın yerel ağ izleme dosyası biçimi libpcap ve WinPcap tarafından desteklenen libpcap biçimidir, bu nedenle tcpdump ve CA NetMaster da dahil olmak üzere aynı biçimi kullanan diğer uygulamalarla yakalanan ağ izleri değiştirilebilir. Ayrıca snoop, Network General Sniffer ve Microsoft Network Monitor gibi diğer ağ analiz programlarından gelen çekimleri de okuyabilir.

Ham ağ trafiğini bir arabirim üzerinden yakalamak, bazı platformlarda yükseltilmiş ayrıcalıklar gerektirir. Bu nedenle, Ethereal/Wireshark ve tethereal/TShark'ın eski sürümleri genellikle üstün kullanıcı ayrıcalıklarına sahipti. Trafik yakalandığı zaman çağrılan çok sayıda protokol ayrıştıcısını (protocol dissector) dikkate alarak, bu bir ayrıştıcıda (dissector) bir hata olasılığı göz önüne alındığında ciddi bir güvenlik riski oluşturabilir. Geçmişte (birçoğu uzaktan kod yürütülmesine izin veren) oldukça fazla sayıda güvenlik açığı ve geliştiricilerin gelecekteki daha iyi gelişim şüpheleri nedeniyle, OpenBSD, OpenBSD 3.6'dan önce bağlantı noktası ağacından (ports tree) Ethereal'i kaldırmıştı.

Tüm işlemler için yükseltilmiş ayrıcalıklara gerek yoktur. Örneğin, bir seçenek tcpdump veya bir dosyaya paketleri yakalamak için üstün kullanıcı ayrıcalıklarıyla Wireshark ile gelen dumpcap yardımcı programını çalıştırmak ve daha sonra sınırlı ayrıcalıklarla Wireshark çalıştırarak paketleri çözümlemektir. Gerçek zamanlıya yakın çözümlemelerin yaklaşık benzetimi için, ele geçirilen her dosya Wireshark tarafından işlenen, büyüyen bir dosyada mergecap (birleşik ilişkilendirme) ile birleştirilebilir. Mergecap, dosyayı birkaç çıkış biçiminde yazabilir.. Kablosuz ağlarda, IEEE 802.11 çerçevelerini yakalamak ve ortaya çıkan döküm dosyalarını Wireshark ile okumak için Aircrack gibi kablosuz güvenlik araçlarını kullanmak mümkündür.

Wireshark 0.99.7'den itibaren, Wireshark ve TShark trafik yakalama işlemini gerçekleştirmek için dumpcap kullanmaktadır. Trafiği yakalamak için özel ayrıcalıklar gerektiren platformlar, yalnızca bu ayrıcalıklarla dumpcap çalıştırılmasını gerektirir. Ne Wireshark ne de TShark'ın özel ayrıcalıklarla çalıştırılması gerekmemektedir.

Wireshark, kullanıcının bir bakışta trafik türlerini tanımlamasına yardımcı olmak için paketlerdeki belirli alanlarla eşleşen kuralları temel alarak paketleri renklendirebilir. Varsayılan bir kural kümesi verilebilir; kullanıcılar paketleri renklendirmek, yeni kurallar eklemek veya kuralları kaldırmak için var olan kuralları değiştirebilir.