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

Bu flood’da Web Debugging Proxy araçları kullanarak bir cihazın (örneğin bir cep telefonunun) dış dünya ile yaptığı HTTP/HTTPS trafiğinin nasıl izlenebileceğini inceleyeceğiz.

Bir önceki flood’da Web Debugging Proxy araçlarından Fiddler ile bilgisayarın dış dünya ile konuştuğu HTTP/HTTPS trafiğini nasıl yakalayabileceğimizi görmüştük. Bir önceki flood'da FiddlerForward Proxy olarak kullanmış ve bilgisayarımızdan çıkan paketleri incelemiştik.

Forward Proxy, bilgisayar ve internet arasında yer alarak bilgisayardan çıkan trafiği yakalamamıza izin verir fakat bilgisayarda yayınladığımız bir servise (örneğin web sunucuya) gelen istekleri yakalayamaz. Aşağıda tipik bir Forward Proxy görselleştirilmiştir.

Reverse Proxy de Forward Proxy gibi yine internet ve bilgisayarımız arasında yer alır fakat Forward Proxy'nin aksine internet üzerinden bilgisayarımıza gelen trafiği yakalamamızı sağlar. Aşağıda tipik bir Reverse Proxy görselleştirilmiştir.

Popüler Web Debugging Proxy araçlarından olan Fiddler bir Reverse Proxy olarak da kullanılabilir. FiddlerReverse Proxy olarak kullanmak için aşağıda gösterilen ayar etkinleştirilmelidir.

Bir cihazın yaptığı HTTP/HTTPS trafiği izlemek için trafiğin izleneceği bilgisayara Fiddler kurulmalı ve Fiddler, Reverse Proxy olarak ayarlanmalıdır. Trafiğin izleneceği cihazda ise önceki flood'da gördüğümüz System Proxy ayarında proxy sunucusu olarak Fiddler çalıştırılan bilgisayarın IP bilgileri verilmelidir. Yapılan bu ayarla birlikte cihaz yapacağı HTTP/HTTPS trafiğini üzerinde Fiddler kurulu bilgisayar üzerinden yapacak ve cihazın yapacağı bütün trafik kaydedilebilecektir.

Aşağıdaki görselde yukarıda anlatılan konfigürasyon özetlenmiştir.

Aşağıdaki ekran görüntülerinde ise iOS uyumlu bir cihazda proxy ayarı ağdaki Fiddler koşturulan bilgisayarı gösterecek şekilde yapılmış, cihaz üzerinde bir web sitesine girilmiş ve HTTP trafiği bilgisayar üzerinde koşan Fiddler'dan yakalanmıştır.

Önceki flood’da anlatıldığı gibi Fiddler HTTPS trafiğini yakalayabilmek için kurulduğu bilgisayarın kök sertifika dizinine kendi sertifikasını koymakta, gelen HTTPS istekler için bu kök sertifikanın Private Key'ini kullanarak sertifikalar üretmekte ve istemciye ürettiği bu dummy sertifikayı göndermektedir. Bir cihazın trafiği dinlenirken Fiddler'ın sertifikası dinleme yapılacak cihazın kök sertifika dizinine manuel olarak eklenmelidir. Bu sayede cihaz üzerindeki istemci Fiddler'ın sertifikasından şikayet etmeyip iletişime devam edecektir.

Fiddler, dinlediği port (8888) üzerinden kullandığı kök sertifikayı sunmaktadır. Cihaz üzerinden varsa bir tarayıcı yoksa curl veya wget ile sertifika cihazın güvenilen kök sertifika dizinine indirilebilir. Aşağıda bu işlem iOS cihaz için gösterilmiştir.

Trafiği dinlenen cihaz üzerinde koşan uygulama, detaylarına ilerleyen flood’ların birinde değineceğimiz Certificate Pinning ya da Public Key Pinning adı verilen güvenlik mekanizmalarını kullanıyorsa Fiddler tarafından on-the-fly üretilen sertifika istemci tarafından kabul edilmeyecek, istemci trafiği başlatmadan sonlandıracak ve trafik dinlenemeyecektir. Bu durumda maalesef trafiği çözmek için genelgeçer bir mekanizma bulunmamaktadır. iOS cihazlarda Jailbreak yöntemi ile bahsedilen kontroller devre dışı bırakılıp dinleme sağlanabilir.

Son olarak, bahsedilen yöntemle Fiddler kurulu bir bilgisayarda proxy ve sertifika ayarları yapılmak kaydı ile başka bir bilgisayarın da HTTP/HTTPS trafiği dinlenebilir. Aslında Proxy Ayarı yapmanızı bekleyen birçok kurum/kuruluş Fiddler benzeri endüstriyel ölçekte bir Reverse Proxy ile ağdaki bütün bilgisayarların web trafiğini yasal ve güvenlik gerekçeleri ile izlemektedir. Bilgisayarın kurum/kuruluş tarafından yapılandırıldığı durumda proxy/sertifika ayarları ön tanımlı olarak gelecek ve kullanıcı proxy varlığından haberdar olmayacaktır.