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 Fiddler
'ı Forward 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. Fiddler
'ı Reverse 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.