SSLv3 POODLE Zafiyeti

SSLv3 POODLE (Padding Oracle On Downgraded Legacy Encryption) zafiyeti bir çeşit kriptografik tasarım zafiyetidir. Zafiyet esas olarak SSLv3’ün kripto bloğunun sonuna eklenen padding bitlerinin içeriğini belirlememesi ve önce deşifre sonra kimlik doğrulama işlemini yapmasından kaynaklanmaktadır.

Bu açık sayesinde bir saldırgan 1/256 ihtimalle SSLv3 ile şifrelenmiş trafiği başarılı bir şekilde deşifre edebilir. Bu ihtimal bir byte içindir, dolayısıyla toplamda N byte’lık bir veriyi deşifre etmek için ortalama 256*N adet deneme yapmak gerekmektedir.

Zafiyetin en uygulanabilir saldırı vektörü MITM (man in the middle) durumudur. İstemci ile sunucu arasındaki trafiğin kendi üzerinden geçmesini sağlayan saldırgan, SSL el sıkışması adımlarına müdahele edip bağlantıda SSLv3 kullanılmasını zorlayabilir. Tabi istemci ve sunucunun, daha güncel protokollerin yanısıra SSLv3’ü de destekliyor olması gerekmektedir.

Yukarıdaki koşulları sağlayan bir saldırgan istemci ve sunucu arasındaki SSLv3 ile şifrelenmiş trafiği kısmen de olsa deşifre etme şansı bulacaktır. Trafik içerisinden elde edilen bazı önemli bölümler (örneğin HTTP çerezleri) oturum hırsızlığı gibi son derece tehlikeli saldırıların gerçekleştirilmesine imkan tanır.

Bir sunucunun SSLv3’ü destekleyip desteklemediği aşağıdaki bash betiği kullanılarak kontrol edilebilir.

#!/bin/bash
ret=$(echo Q | timeout 5 openssl s_client -connect “${1-`hostname`}:${2-443}” -ssl3 2> /dev/null)
if echo “${ret}” | grep -q ‘Protocol.*SSLv3’; then
  if echo “${ret}” | grep -q ‘Cipher.*0000’; then
    echo “SSL 3.0 disabled”
  else
    echo “SSL 3.0 enabled”
 fi
else
  echo “SSL disabled or other error”
fi

İstemci tarafında ise tarayıcıları test etmek için https://www.poodletest.com/ adresi kullanılabilir.

Kaynaklar:
https://access.redhat.com/articles/1232123
https://www.imperialviolet.org/2014/10/14/poodle.html