Şifrelenmiş oturumu kurmak için el sıkışma (SSL handshake) yöntemi kullanır. SSL el sıkışması sırasında sertifika doğrulaması, kullanılacak şifreleme algoritmaları, desteklenen versiyon bilgileri vs. belirlenir. Bu protokolün çalışması sırasında uygulanan sertifika doğrulama işlemi, sertifikayı web sitesinin kimliği şeklinde ifade edersek istemci ile sunucu arasında yapılacak olan haberleşmenin gerçekten doğru kişiler arasında mı olduğunu ispatlamak için uygulanır.
SSL protokolü kullanılan bir trafikte araya girip trafik dinlenebilir (MITM: Man in the middle attack). Fakat SSL’ de araya girme saldırılarının başarılı olmama sebeplerinden biri de, araya giren saldırganın (attacker – hacker) ürettiği sahte sertifikayı bir şekilde kurbana kabul ettirmesi gerekliliğidir. Saldırgan sahte sertifika ile trafiği dinlemeye başladığında onaylı bir sertifika olmadığı için kurban tarayıcı tarafından uyarı ile karşılaşır ve trafiği dinlemesi engellenir.

Günümüz tarayıcıları bu duruma karşılık gerekli önlemleri almış ve hatta sertifika hatası alınmış olan sayfayı terk etmesi için kullanıcıyı ikna etmek adına bir takım önlemler almıştır. Ne yazık ki bu önlemlerin kullanışlılık ve kullanıcıyı ikna etme açısından çok başarılı olduğu söylenemez. Birçok kullanıcı tehlikenin farkında olmadan gelen uyarıyı kabul edip işlemlerine devam etmektedir. Aşağıdaki ekran görüntüsün de Google Chrome tarayıcısının trafikte araya girildiğini tespit etmesi durumunda verdiği hatayı görebiliriz. Kullanıcı böyle bir uyarıdan sonra devam etmesi eskiye oranlı daha az bir ihtimal haline gelmiştir. Fakat kesin bir çözüm değildir.

Peki bu aşamada SSL trafiği’nde bir şekilde araya girilip, kurbanın haberi olmadan ve yukarıdaki gibi sahte sertifika hatası alınmadan trafik dinlenebilir mi?
Kurulan trafiğin güvenliğinden bahsederken SSL’in yanında kullanılan diğer protokollerinde güvenliği göz önünde bulundurulmalıdır. Günümüzde birçok web sitesinde HTTP ve HTTPS protokollerinin birlikte desteklendiğini görebiliriz. E-ticaret, internet tabanlı E-Posta uygulamaları bu tür web sayfalarından sayılabilir. HTTP protokolü ile HTTPS protokolünün beraber kullanılması ile birlikte HTTP protokolünün güvenlik zafiyetinden HTTPS’te etkilenir. Bu duruma rağmen web siteleri her iki protokolü de destekleme sebebi olarak performans sorunu gösterilebilir. HTTPS protokolü kullanımı sırasında belirlenen parametreler sırasında yoğun bir trafik akışı olması sistem performansına yansır. Bunun için web siteleri önemli bir işlem gerçekleştirileceği zaman HTTPS protokolüne yönlendirme yaparlar. Gmail, Yahoo gibi internet tabanlı E-Posta uygulamaları web siteleri yönlendirme yapan web sitelerine örnek olarak verilebilir.
Uygulamaların yukarıda anlatılan her iki protokol’ün birlikte kullanılması sonucu ortaya çıkan zafiyeti istismar eden araçlar yazılmıştır. Bu araçlardan biri kullanılarak bu zafiyetin istismar edilmesi ve ayrıca bu tür saldırılara karşı alınabilecek önlemlerden bahsedilecektir.
SSL Strip HTTP ve HTTPS protokollerinin birlikte desteklendiği sistemlerde ortaya çıkan güvenlik zafiyetini kullanarak aradaki trafiği dinlemek ve değişiklik yapmak için geliştirilen bir araçtır [1].

Şekilde de görüldüğü üzere kurban her iki protokolünde (HTTP-HTTPS) desteklendiği uygulamaya (Örn: E-Posta,E-Ticaret) öncelikle HTTP üzerinden (“http://www.gmail.com.tr“) giriş yapar. Bu durumda araya giren saldırgan SSL Strip ile kurbanın yapmış olduğu istek içerisinde bulunan HTTPS bağlantılarını da HTTP’ye çevirerek kurban ile arasında HTTP trafiği başlatır. Aynı zamanda kurbanın yapmış olduğu isteği de sunucu ile kendisi arasında HTTPS bağlantısı kurarak başlatır. Bu aşamada kullanıcı bir istekte bulunduğunda saldırgana HTTP ile bağlanır ve saldırgan yapılan isteğin içerisindeki değişiklikleri (Kullanıcı adı, parola gibi) algılayarak sunucuya yönlendirir. Saldırgana gelen sunucu cevabı da daha sonra kurbana HTTP’ye çevrilerek yönlendirilir. Bu konumda kurbanın yapmış olduğu tek hata HTTPS gerektiren bir işlem için uygulamaya erişim yöntemi olarak öncelikle HTTP ile siteye girip ordan HTTPS gerektiren uygulamaya yönlenmesi şeklinde ifade edilebilir.
Aşağıda SSL Strip aracı ile HTTPS trafiğinin nasıl dinleneceği ile alakalı bir uygulama gerçekleştirilecektir.
Uygulama Linux dağıtımı olan Backtrack [2] üzerinde gerçekleştirilecektir. SSL Strip, Backtrack içerisinde kurulu olarak gelmektedir. SSL Strip ile alakalı ayrıntılı bilgi için Şekil -1 incelenebilir. Yapılacak adımlar adım adım anlatıldıktan sonra uygulamaya geçilecektir.
Öncelikle makinemizi yönlendirme moduna almamız gerekiyor.Kurban ile sunucu arasındaki trafiğin saldırgan üzerinden geçmesini sağlamak amacı ile şu komut çalıştırılır.
echo “1” > /proc/sys/net/ipv4/ip_forward
Tüm HTTP trafiğini saldırgan üzerinden geçirmek için iptables içerisine kural girilir. 80 port’una gelen istekler SSL Strip’in dinlediği porta yönlendirilir. SSL Strip için varsayılan port 10000. porttur. Iptables güvenlik duvarına girdiğimiz kuralın çalışması için /etc/etter.conf dosyası altında bulunan #if you use iptables ile başlayan kısmın şekilde gösterildiği gibi başındaki # işareti silinmelidir.

Ve daha aşağıdaki mot ile sonra iptables kural girişi tamamlanır.
iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-port <listenPort>
SSL Strip uygulaması çalıştırılır. Bu şekilde 10000. port dinlemeye alınmış olunur.
- -a: parametresi ile HTTP ve HTTPS olan bütün trafik kaydedilir.
- -k: parametresi ile daha önce var ise kurulmuş bütün oturumlar iptal edilir.
- -f:parametresi ile normal şartlarda HTTPS ile yapılan isteklerde tarayıcıda bulunan sol üst taraftaki kilit işareti yerine bir favicon yerleştirilerek saldırının gücü arttırılmış olunur.
/pentest/web/sslstrip altında sslstrip.py çalıştırılır.
./sslstrip.py -a -k –f
Tüm trafiğin saldırganın üzerinden akmasını ikna etmek için kurbana arpspoof [3] yapılır. Bu şekilde sunucudan gelen cevap ve istemciden giden istekte saldırganın üzerimizden geçmiş olacaktır.
Bu aşamaya kadar saldırı tamamlanmış olup saldırgan sadece bekleme aşamasına girer. Kurbanın yapmış olduğu istekler ve trafik sırasında akan parametreleri gözlemlemek için ettercap ağ izleme aracı başlatılır [5].

Yukarıda anlatılan saldırı parametrelerini Backtrack üzerinde gerçekliyoruz. Aşağıda her bir sorgu ayrı terminal üzerinde çalıştırılarak gösterilmiştir. Saldırı yukarıda ip bilgileri 192.168.59.131 makinesine yönelik yapılmıştır. Bu şekilde kurbanın makinesi ile sunucu arasındaki trafik dinlenmeye başlanacak ve trafikte değişiklik yapabilecek düzeye gelinecektir.

Bu aşamadan sonra saldırgan sadece kurbanın E-Posta, E-Ticaret vs uygulamalarına HTTP ile ziyaret etmesini ve kritik uygulamaya buradan yönelmesini bekler. Örnekte Gmail E-Posta uygulamasına “http://www.google.com” üzerinden erişilmiştir.

Kurban “http://www.google.com” adresini ziyaret etmesi ile aslında Ssl Strip devreye girip yukarıda anlatıldığı gibi tüm HTTPS linklerini HTTP’ye dönüştürmüş oldu. Yukarıdaki ekran çıktısında görmüş olduğunuz gibi Gmail linki üzerinde durulmuş ve alt taraftan link adresinin “http://mail.google.com” olduğu gözlemlenmiştir. Normal şartlarda Google mail sistemi HTTPS ile çalışmaktadır.

Kurban mail sisteme giriş yapmak ister ve kullanıcıadı, parola bilgilerini girer. Bu durumda saldırgan tarafında olan biteni aşağıdaki ekran çıktısı ile görebiliriz.

Saldırgan HTTPS trafiğinde araya girmiş olup kurbanın kullanıcıadı ve şifre bilgilerini elde etmiş oldu. Dikkat edilmesi gereken nokta kurbanın mail sistemine giriş yaparken herhangi bir sertifika hatasını alınmamış olmasıdır.
Kaynaklar:
[1] http://www.thoughtcrime.org/software/sslstrip/
[2] http://www.backtrack-linux.org/
[3] http://tr.wikipedia.org/wiki/Arp_zehirlenmesi
[4] https://addons.mozilla.org/en-us/firefox/addon/noscript/
[5] http://ettercap.github.io/ettercap/index.html
[6] https://www.bilgiguvenligi.gov.tr/ag-guvenligi/ssl-de-araya-girme-saldirilari-ve-guvenlik-onlemleri.html