SSL-TLS DoS Saldırısı ile Apache Web Sunucuları Servis Dışı Bırakma | |||||||||||
SSL / TLS Renegotiation dos saldırısı Openssl uygulamasındaki Renegotiation zafiyetinden yararlanarak sunucuların CPU kullanımını tüketmek üzerine kurulu bir servis dışı bırakma saldırısıdır. Bu saldırı OpenSSL 0.9.8l ve öncesi tüm sürümlerde, ilgili OpenSSL’leri kullanan Apache 2.2.14 ve öncesi tüm sürümlerde ve ilgili OpenSSL’leri kullanan diğer başka uygulamalarda uygulanabilmektedir. Bu açıklık OpenSSL’in sonraki sürümlerinde kapatılmıştır. Bu açıklık ile Slow Http servis dışı bırakma saldırılarında olduğu gibi sıradan bir laptop’la ve düşük bant genişliğiyle hedef sunucular servis dışı bırakılabilmektedir.
Zafiyetli OpenSSL sürümlerinde varsayılanda açık gelen Renegotiation SSL/TLS bağlantısının ortasında yeni bir handshake’te tekrardan bulunmaya denir. Regenotitation açıklığı istemcinin bir SSL/TLS bağlantısı başlatırken bağlantının ortasında, gelen handshake’i (yani session’ı) basitçe sürekli reddetmesine dayanır. İstemci SSL/TLS bağlantısı başlatıp bağlantının ortasında gelen handshake’leri reddeder. Sunucu ise otomatik olarak sürekli renegotiation yaparak yeniden handshake’te bulunmak ister. İstemcinin yaptığı retler sunucuda belli bir işlemci gücü tüketimine yol açar. Bir istemci SSL/TLS bağlantısı başlattığında kendi makinasına göre sunucuda 15 kat daha fazla işlemci gücü tüketir. Çünkü SSL/TLS bağlantısının temini istemci tarafa göre sunucu tarafta daha fazla işlemler uygulanmasını gerektirir. İstemcinin SSL/TLS bağlantısı ortasında handshake’leri her reddi sunucuda nispeten daha fazla bir işlemci gücü tüketimine sebep olur. Bunun sonucunda istemci aynı işleme devam ettiğinde sunucu handshake’i tamamlamak için sürekli çabaladığından işlemci gücünü tamamen tüketir ve servis dışı kalır. SSL/TLS Renegotiation açıklığı OpenSSL uygulamasında var olduğundan dolayı bu açıklık OpenSSL’lerden yararlanan HTTPS uygulamalarla sınırlı değildir. Örneğin bu açıklık OpenSSL’lerden yararlanan SMTPS ve POP3S (Secure Email) gibi uygulamalarda veya güvenli bağlantı sunan veritabanı uygulamalarında da geçerlidir ve açıklık yoluyla bu uygulamalar servis dışı kalabilmektedir. THC adlı alman bir hacker grup SSL/TLS Renegotiation açıklığı yoluyla sunuculardaki SSL/TLS performansını yoran bir araç geliştirmiştir (bkz. thc-ssl-dos). Bu araç ile SSL/TLS protokolü üzerinden kaynak yorma uygulanmaktadır ve sunucudaki işlemci gücü tamamen tüketilerek sunucu servis dışı bırakılmaktadır. Uygulama (+) Birebir denenmiştir ve başarıyla uygulanmıştır. Gereksinimler
- OpenSSL 0.9.8l Kurulumu - Apache 2.2.14 Kurulumu
(Not 1: Bu dos saldırısı Kali 2021.2’deki apt-get ile indirilen thc-ssl-dos tool’uyla denenmiştir, fakat kali repolarından inen thc-ssl-dos tool’u hata vermiştir ve çalışmamaktadır. Github hesabından klasör halinde ana makineye indirildiğinde ve kurulum yapılıp çalıştırıldığında ise tool hata vermemiştir ve çalışarak başarılı olunmuştur. Dolayısıyla Kali’de her araç düzgün çalışıyor diye bir durum söz konusu değildir. Kali sürümünden sürümüne içerisindeki araçlarda çalışmayan, veya tutarlı olmayan araç sürümleri kullanılabilmekte. Örneğin geçmişten gelen metasploit ms08_067 netapi modülünün eski kali’lerde çalışması ve xp’de shell alabilmesi ama yeni kali’lerde shell alamaması örneği gibi).
(Not 2: Güncel işletim sistemlerinde web tarayıcılar minimum tls 1.2 yi desteklediğinden eski openssl kullanan apache web sunucuya https üzerinden erişememiştir. Dolayısıyla eski ssl’li apache web sunucuya https üzerinden erişmek için Ubuntu 14.04 LTS vm seçilmiştir ve chromium web tarayıcısı ile https erişimi sağlanabilmiştir. DoS saldırısında erişimler gidiyor mu görüntülemesi bu VM üzerindeki web tarayıcıda yapılmıştır.) Bu başlıkta thc-ssl-dos aracı ile https erişimlerinde openssl 0.9.8l zafiyetli sürümünü kullanan bir Apache 2.2.14 web sunucuya SSL/TLS dos saldırısı uygulaması yapılacaktır. Apache 2.2.14 web sunucusu https bağlantılarında zafiyetli OpenSSL uygulamasından yararlandığından SSL/TLS’e (yani arkaplanda OpenSSL’e) yapılan dos saldırısında sunucudaki cpu kaynakları tamamen tükeneceğinden web sunucu genel olarak servis dışı kalacaktır. Öncelikle https ve http üzerinden apache 2.2.14 web sunucuya erişelim ve web sunucunun sunduğu sayfayı normal bir şekilde görüntüleyelim.
Slow Http POST Vulnerability - Nginx - Ubuntu 14.04 LTS VM ( Eski Chromium Web Tarayıcı ):
( https üzerinden erişim ) ( http üzerinden erişim ) Not: Apache’nin 2.2.14 sürümündeki mod_ssl’de bir bug var olması nedeniyle https üzerinden erişimlerde sayfa yenilenirken ara ara 400 Bad Request hatasına düşülebilmektedir. Bu 400 Bad Request hatası mod_ssl’deki bug nedeniyledir ve apache bir sonraki sürümle beraber bu sorunu çözüme kavuşturmuştur. Bu bug dos zafiyeti ile ilgili değildir ve dos saldırısını tatbik etmede mani bir durum teşkil etmemektedir. Bkz: https://serverfault.com/questions/226040/intermittent-400-bad-request-header-field-is-missing-with-apache-and-ssl https://pagure.io/freeipa/issue/691 https://stackoverflow.com/questions/9484334/apache-https-redirection-results-in-400-error Resimlerden görüldüğü gibi ana makinede https üzerinden eski sürüm openssl 0.9.8l kullanan eski sürüm apache 2.2.14 web sunucuya erişebildik. Şimdi ana makineden thc-ssl-dos aracı ile bu web sunucuya (openssl’e) ssl/tls dos saldırısı başlatalım ve web sunucuyu genel olarak servis dışı bırakalım.
Ubuntu 18.04 LTS Ana Makine Terminal:
Tool ile saldırı başlatıldıktan birkaç saniye sonra https üzerinden erişimler kopmaktadır.
cd /home/hefese/thc-tls-dos-master/src/ ./thc-ssl-dos 192.168.201.205 443 --accept Not: -l parametresi ile connection sayısı belirtilebiliyor. Default’ta -l 400’dür. Çıktı: ______________ ___ _________ \__ ___/ | \ \_ ___ \ | | / ~ \/ \ \/ | | \ Y /\ \____ |____| \___|_ / \______ / \/ \/ http://www.thc.org Twitter @hackerschoice Greetingz: the french underground Handshakes 0 [0.00 h/s], 1 Conn, 0 Err Secure Renegotiation support: no Handshakes 0 [0.00 h/s], 140 Conn, 0 Err Handshakes 0 [0.00 h/s], 142 Conn, 0 Err Handshakes 0 [0.00 h/s], 144 Conn, 0 Err Handshakes 0 [0.00 h/s], 147 Conn, 0 Err Handshakes 0 [0.00 h/s], 155 Conn, 0 Err Handshakes 0 [0.00 h/s], 171 Conn, 0 Err Handshakes 0 [0.00 h/s], 203 Conn, 0 Err Handshakes 0 [0.00 h/s], 235 Conn, 0 Err Handshakes 0 [0.00 h/s], 267 Conn, 0 Err Handshakes 0 [0.00 h/s], 284 Conn, 0 Err Handshakes 0 [0.00 h/s], 299 Conn, 0 Err Handshakes 0 [0.00 h/s], 331 Conn, 0 Err Handshakes 0 [0.00 h/s], 363 Conn, 0 Err Handshakes 0 [0.00 h/s], 386 Conn, 0 Err Handshakes 0 [0.00 h/s], 388 Conn, 0 Err Handshakes 0 [0.00 h/s], 390 Conn, 0 Err Handshakes 0 [0.00 h/s], 392 Conn, 0 Err Handshakes 0 [0.00 h/s], 394 Conn, 0 Err Handshakes 0 [0.00 h/s], 396 Conn, 0 Err Handshakes 0 [0.00 h/s], 398 Conn, 0 Err Handshakes 0 [0.00 h/s], 400 Conn, 0 Err Handshakes 0 [0.00 h/s], 400 Conn, 0 Err Handshakes 0 [0.00 h/s], 400 Conn, 0 Err Handshakes 0 [0.00 h/s], 400 Conn, 0 Err Handshakes 0 [0.00 h/s], 400 Conn, 0 Err ... ... ... ( https erişimler kopar ) Https üzerinden erişilmeye çalışıldığında sürekli yükleniyor sayfası karşılamaktadır ve web tarayıcıya sayfaya ulaşılamamakta bilgisi gelmektedir. Belli bir müddet sonra http üzerinden erişimler de ayrıca kopmaktadır (çünkü web sunucudaki cpu kaynağı tükenir ve web sunucu genel itibariyle servis dışı kalır). ( http erişimler kopar ) Thc-ssl-dos aracı çalışma sırasında durdurulduğunda erişimler anlık olarak geri gelmektedir. ( https “ulaşılamıyor ve sürekli yükleniyor” gider, erişim gelir ) ( http “ulaşılamıyor ve sürekli yükleniyor” gider, erişim gelir ) Sonuç olarak thc-ssl-dos aracıyla yapılan ssl/tls dos saldırısı ile apache 2.2.14 web sunucusu servis dışı kalmıştır. Not: Apache 2.2.14 web sunucuda http isteği yapıldığında dönen yanıttaki Server başlığına bakarak zafiyetli OpenSSL sürümü kullanıldığı görülebilir.
Ubuntu 18.04 LTS Ana Makine Terminal:
curl -k -i -X HEAD https://192.168.201.205 Çıktı: EK: Demo Video Video I Video II [Alternatif Video] [Daha Detaylı] [FPS ve Ses Kalitesi Düşük] EK: Materyaller Yararlanılan Kaynaklar
|
|||||||||||
Bu yazı 08.10.2024 tarihinde, saat 10:23:15'de yazılmıştır. 08.10.2024 tarihi ve 08:02:39 saatinde ise güncellenmiştir. | |||||||||||
|
|||||||||||
Yorumlar |
|||||||||||
Henüz yorum girilmemiştir. | |||||||||||
Yorum Ekle | |||||||||||