Wireshark Temelleri — 7
HTTPS Trafiği Analizi
Ağ Güvenliği diyince akla ilk gelen araçlardan biri olan Wireshark Temelleri serimize HTTPS Trafiği Analizi ile devam ediyoruz.
HTTPS Trafiği
HTTPS (Hypertext Transfer Protocol Secure), paket analizi bakış açısından anlaşılması en can sıkıcı protokollerden biri olabilir ve HTTPS paketlerini analiz etmek için atılması gereken adımları anlamak biraz kafa karıştırıcı olabilir.
Bu bölümün sonunda incelenecek olan HTTPS Trafiği için bazı sorular bulunmaktadır. Bu soruların çözümü için gerekli dosyalara buradan ulaşabilirsiniz.
HTTPS Trafiğine İlk Bakış
Şifrelenmiş bilgileri göndermeden önce istemci ve sunucu birbiriyle güvenli bir tünel oluşturmak için çeşitli adımlar üzerinde anlaşması gerekir.
- İstemci ve sunucu bir protokol sürümü üzerinde anlaşır.
- İstemci ve sunucu bir kriptografik algoritma seçer.
- İstemci ve sunucu birbirlerine kimlik doğrulaması yapabilir ancak bu adım isteğe bağlıdır.
- Public Key’lerle güvenli bir tünel oluşturur.
İstemci ve sunucu arasındaki el sıkışma için paketlere bakarak HTTPS trafiğini analiz etmeye başlayabiliriz. Aşağıda SSLv2 Record Layer, Handshake Type ve SSL Versionu gösteren bir Client Hello paketi bulunmaktadır.
Aşağıda, Client Hello paketiyle benzer bilgileri gönderen Server Hello paketi gösterilmektedir. Ayrıca session ayrıntılarını ve SSL sertifika bilgilerini içermektedir.
Aşağıda Client Key Exchange paketi bulunmaktadır, el sıkışmanın bu kısmı Client ve Server arasındaki sonraki mesajları şifrelemek için kullanılacak genel anahtarı belirleyecektir.
Bir sonraki pakette sunucu public keyi doğrulayacak ve güvenli tüneli oluşturacak, bu noktadan sonraki tüm trafik yukarıda listelenen ve üzerinde anlaşılan özelliklere göre şifrelenecektir.
Client ve Server arasındaki trafik artık şifrelenmiş durumda ve iki host arasında gönderilen veri akışının şifresini çözmek için secret keye ihtiyacımız olacak.
Pratik HTTPS Trafik Analizi
Bu bölümde başta indirdiğimiz PCAP dosyası ile alakalı bazı örnekler, sorular ve cevapları yer almaktadır. Soruları önce çözüp sonra cevaplarına bakmamız bize fayda sağlayacaktır.
Yukarıdaki paket yakalamaya baktığımızda tüm isteklerin şifrelendiğini görebiliriz. Paketlere daha yakından baktığımızda HTTPS el sıkışmasını ve şifrelenmiş isteklerin kendilerini görebiliriz. Şifrelenmiş isteklerden Paket 36'ya daha yakından bakalım.
Paket detaylarından Uygulama Verilerinin şifrelendiğini doğrulayabiliriz. Verileri şifrelenmemiş olarak görüntülemek için Wireshark’ta bir RSA anahtarı kullanabiliriz. Bir RSA anahtarı yüklemek için Edit > Preferences > Protocols > TLS > [+] seçeneğine tıklayın. Wireshark’ın eski bir sürümünü kullanıyorsanız bu TLS yerine SSL olacaktır. Menüdeki çeşitli bölümleri aşağıdaki tercihlerle doldurmanız gerekecektir:
- IP Adresi: 127.0.0.1
- Bağlantı Noktası: start_tls
- Protokol: http
- Anahtar Dosyası: RSA anahtarının konumu
Artık Wireshark’a bir RSA anahtarı aktardığımıza göre, paket yakalama işlemine geri dönersek veri akışının artık şifrelenmemiş olduğunu görebiliriz.
Artık HTTP isteklerini şifrelenmemiş veri akışlarında görebiliriz. Paketin ayrıntılarından birine daha yakından baktığımızda şifrelenmemiş veri akışını görebiliriz.
Paket ayrıntılarına baktığımızda Request URI’si, Threat Hunting ve ağ yönetimi gibi Wireshark’ın pratik uygulamalarında çok faydalı olabilecek User-agent gibi bazı çok önemli bilgileri görebiliriz.
Artık veri akışını düzenlemek için Export HTTP Objects özelliğini kullanmak gibi diğer özellikleri kullanabiliriz, bu özelliğe erişmek için File > Export Objects > HTTP seçeneğine gidebiliriz.
Sıra Sizde!
- Soru 1: Veri akışına bakıldığında Paket 31'in Full Request URI’si nedir?
- Soru 2: Veri akışına bakıldığında Paket 50'nin Full Request URI’si nedir?
- Soru 3: Paket 50'nin User-Agent’i nedir?
- Cevap 1
Paket 31'in ayrıntılarından Full Request URI’sine ulaşabiliriz.
Cevap 1: https://localhost/icons/apache_pb.png
- Cevap 2
Paket 50'nin ayrıntılarından Full Request URI’sine ulaşabiliriz.
Cevap 2: https://localhost/icons/back.gif
- Cevap 3
Paket 50'nin ayrıntılarına baktığımızda yanıta ulaşmış oluyoruz.
Cevap 3: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2\r\n
Bu bölümde HTTPS Trafiği Analizi ve Örnek HTTPS Trafiğinin İncelenmesi konularından bahsettik. Benimle birlikte analizi gerçekleştirdiğiniz için teşekkür ederim. İyi Çalışmalar Dilerim.