DROWN atağı TLS protokol takımının, artık güvensiz olarak bilinen SSL v2 protokolünü desteklemesi sebebiyle yapılabilmektedir.[1][2] DROWN, TLS ile hizmet veren bununla birlikte SSL v2 protokolünü destekleyen ve iki protokol arasında aynı açık anahtar bilgilerini paylaşan tüm sunucular üzerinde etkilidir.[3] Ek olarak eğer açık anahtar sertifikası SSLv2 destekleyen farklı bir sunucu üzerinde kullanılıyor ise, TLS sunucusu yine bu zafiyetten etkilenerek bilgi sızıntısına maruz kalmaktadır.[3]

Bu atak ile ilgili ayrıntılı bilgiler Mart 2016 da yayınlandı ve CVE ID CVE-2016-0800 olarak zafiyet veritabanlarında yerini aldı (20 Mart 2016 tarihinde Wayback Machine sitesinde arşivlendi.[4]). Eğer sertifika SSL v2'yi destekleyen başka bir sunucu üzerinde bulunuyor ise uygulanan yama işe yaramamaktadır.

Araştırmacılar HTTPS sitelerinin yaklaşık %33'ünün bu zafiyetten etkilendiğini belirtmektedirler[5]

Atağın temsili resimi olarak sağdaki resim kullanılmaktadır.

Detaylar değiştir

DROWN, İngilizce bir kısaltma olup "Decrypting RSA with Obsolete and Weakened eNcryption" kelimelerinden türemektedir.[6] Bu zafiyet bir uygulama zafiyetinden ziyade protokollerin kombinasyonu ve sunucu konfigürasyonlarını sömürmektedir. Zafiyeti keşfedenlere göre, zafiyet istemci yazılımlarında (örneğin web tarayıcıları) yapılacak değişiklikler ile giderilemeyecek bir zafiyet olarak nitelendirilmektedir.[3]

Zafiyetin sömürülmesi "seçilen şifreli mesaj atağı" (chosen-ciphertext attack)'nın SSLv2 sunucusunun Bleichenbacher Oracle olarak kullanılmasını içermektedir. Örnek atak bulut üzerinde ve çoklu GPU kullanan platformlarda denenmiştir. Başarılı bir atak ile, ağ dinleme yoluyla, TLS el sıkışma paketleri içerisindeki oturum anahtarı elde edilebilmektedir.

Saldırgan, öncelikle istemci ve sunucu arasında belirli bir sayıda herhangi bir versiyondaki TLS protokolünün oturum bilgisini toplamalıdır. Kaydedilen oturum bilglerinden birisinin şifresi çözülecektir. Araştırmacılara göre yaklaşık 1000 oturum bilgisi atağın başarılı olması için yeterlidir.

Saldırgan oturum bilgilerini topladıktan sonra sunucuya birçok SSLv2 bağlantısı açar. Bu bağlantıların bazılarında, saldırgan 40-bit (SSLv2 EXPORT şifreleme) veya 56-bit (DES takımları) oturum anahtarına kaba-kuvvet saldırısı yapmak zorundadır. Araştırmacılara göre yaklaşık 40000 bağlantı yeterli olmaktadır.

Kaba-kuvvet atağından sonra saldırgan "premaster gizli anahtarı"nın şifresini çözebilmektedir. Bu anahtar simetrik oturum anahtarlarını üretmekte kullanılmakta böylelikle kaydedilen tüm SSL/TLS oturumlarının şifreleri çözülebilmektedir. Şifresi çözülen oturumlar üzerinde oturum doğrulama bilgileri veya çerezler gibi kritik bilgiler elde edilebilir.

Zafiyeti ilk olarak açıklayanlar Nimrod Aviram and Sebastian Schinzel[7] adında güvenlik araştırmacılarıdır.

Önleme/İndirgeme değiştir

DROWN atağından korunmak için sunucuyu yöneten kişilerin açık anahtarlamalı altyapılarda kullanılan özel anahtarın SSLv2 desteklenen bir sunucu yazılımı üzerinde kullanılmadığından emin olmalıdırlar.

WEB, SMTP, IMAP ve POP sunucularının yanında SSL/TLS kullanan tüm yazılımların kontrol edilmesi gerekmektedir.[8]

OpenSSL grubu güvensiz ve ömrünü doldurmuş protokol ve şifreleme algorithmalarının kaldırılması için bir güvenlik önerisi yayınladı.[9]

Kaynakça değiştir

  1. ^ Leyden, John (1 Mart 2016). "One-third of all HTTPS websites open to DROWN attack". The Register. 11 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mart 2016. 
  2. ^ Goodin, Dan (1 Mart 2016). "More than 11 million HTTPS websites imperiled by new decryption attack". Ars Technica. 13 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mart 2016. 
  3. ^ a b c Nimrod Aviram, Sebastian Schinzel, Juraj Somorovsky, Nadia Heninger, Maik Dankel, Jens Steube, Luke Valenta, David Adrian, J. Alex Halderman, Viktor Dukhovni, Emilia Käsper, Shaanan Cohney, Susanne Engels, Christof Paar, and Yuval Shavitt. DROWN: Breaking TLS using SSLv2 13 Nisan 2016 tarihinde Wayback Machine sitesinde arşivlendi., 2016
  4. ^ "National Cyber Awareness System Vulnerability Summary for CVE-2016-0800". web.nvd.nist.gov. 20 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mart 2016. 
  5. ^ "DROWN Attack". drownattack.com. 24 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Mart 2016. 
  6. ^ "New TLS decryption attack affects one in three servers due to legacy SSLv2 support". PCWorld. 6 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mart 2016. 
  7. ^ "DROWN - Cross-protocol attack on TLS using SSLv2 - CVE-2016-0800 - Red Hat Customer Portal". access.redhat.com. 8 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mart 2016. 
  8. ^ "DROWN Attack". 1 Mart 2016. 5 Nisan 2016 tarihinde kaynağından arşivlendi. 
  9. ^ "Cross-protocol attack on TLS using SSLv2 (DROWN) (CVE-2016-0800)". OpenSSL. 1 Mart 2016. 11 Nisan 2016 tarihinde kaynağından arşivlendi.