IIS'de, SSL 3.0 POODLE güvenlik açığını (CVE-2014-3566) nasıl düzeltebilirim?


53

CVE-2014-3566’yı IIS çalıştıran bir Windows Server 2012 sistemine nasıl eklerim ?

Windows Update'te bir düzeltme eki var mı, yoksa SSL 3.0'ı devre dışı bırakmak için bir kayıt defteri değişikliği yapmam gerekir mi?


1
Bağladığınız MS KB sayfasında bir Microsoft Düzelt 50495 var.
MattBianco

3
Fix it 50495'i Windows 2008'de çalıştırmayı denedim ve "Bu Microsoft Düzeltme işletim sistemi veya uygulama sürümünüz için geçerli değil" hatasıyla başarısız oldu. Oh iyi.
Josh

Yanıtlar:


58

"Yama" yok. Protokoldeki bir güvenlik açığıdır, uygulamadaki bir hata değil.

Windows Server 2003 - 2012 R2’de, SSL / TLS protokolleri, ayarlanan kayıt defterinde bayraklarla kontrol edilir HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols.

POODLE açığı ile ilgilidir SSLv3, devre dışı bırakmak için, yukarıdaki konumda bir alt anahtar oluşturun (zaten mevcut değilse) adında SSL 3.0, bunun altında, adlı bir alt anahtar ve Server(zaten mevcut değilse). Bu konumda ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server) adlı bir DWORD değeri oluşturun Enabledve bu değerin altında bırakın 0.

Yapmanız gereken SSL 2.0'ı devre dışı bırakmak SSL 2.0, yukarıdaki kayıt defteri yolunda adlandırılmış bir anahtar kullanmanız dışında aynı şekilde yapılır .

Tüm sürümleri test etmedim, ancak muhtemelen bu değişikliğin geçerli olması için yeniden başlatmanın gerekli olduğunu varsaymanın güvenli olduğunu düşünüyorum.


3
en azından Windows Server 2012'de yeniden başlatmaya gerek yoktur. poodlebleed.com adresinden önce ve sonra URL'nizi ve SSL bağlantı noktasını 443 girerek doğrulama yapabilirsiniz
Simon

Teşekkürler, varsayılan olarak devre dışı bırakıldığı ve bu şekilde devre dışı bırakılmadığı iddia edildiğinden PCT'yi de devre dışı bırakmam gerekip gerekmediğini biliyor musunuz?
Mark Broadhurst

@Simon, değişikliklerin yürürlüğe girmesi için yapmanız gereken başka bir şey var mı? Sunucu 2012 makinesinde kayıt defteri güncellemelerini yeni yaptım, ancak hala SSL3'ün etkin olduğu bildiriliyor.
Abe Miessler

Ben buna inanmıyorum. Sanırım iis ve Apache kullandığımı ve bizi bu web sitesinden kontrol ettiğinizi düşünüyorum. Tam bir kayıt defteri anahtarının olduğundan emin misin?
Simon

* DEĞİL apache ('Apache'imin nerden geldiğini bilmiyorum!)
Simon

24

Sadece kurulum kolaylığı için bu "disable ssl 2 and 3.reg" dosyasını yukarıdaki Evan'ın cevabından aldım :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000

12

SSL2 ve SSL3'ü devre dışı bırakmak için Powershell:

2..3 | %{ New-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL $_.0\Server" -Name Enabled -PropertyType "DWORD" -Value 0 -Force }

Maalesef yukarıdakiler yalnızca kayıt defteri alt anahtarları zaten mevcutsa çalışır. Varsa onları yaratabilecek PS'yi görmek ya da varsa güncellemek iyi olurdu.
Jaans

Emin misiniz? Benimki onları benim için yaratıyor. Powershell ve Windows'un daha düşük sürümlerinde farklı olabilir (Server 2008 R2'de v2 kullanıyorum)
Vasili Syrakis

2
Evet ... yüklenen ekran görüntüsüne bakın: i.imgur.com/rctFH4D.png PS 3.0 ve WSMan 3.0 uygulamasını kullanma.
Jaans


8

İşte kayıt defteri anahtarlarının varlığını test edecek, gerektiğinde bunları oluşturacak ve ardından SSL 2.0 ve SSL 3.0'ı devre dışı bırakmak için gerekli değerleri girecek bir PowerShell

$regPath1 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0'
$regPath2 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 2.0\Server'
$regPath3 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0'
$regPath4 = 'HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server'


If(!(Test-Path -Path $regPath1))
{
New-Item -Path $regPath1 -Force
}

If(!(Test-Path $regPath2))
{
New-Item -Path $regPath2 -Force
}
   New-ItemProperty -Path $regPath2 -Name DisabledByDefault -PropertyType DWORD -Value "1" -Force
   New-ItemProperty -Path $regPath2 -Name Enabled -PropertyType DWORD -Value "0" -Force 

If(!(Test-Path $regPath3))
{
New-Item -Path $regPath3 -Force
}

If(!(Test-Path $regPath4))
{
New-Item -Path $regPath4 -Force
}
   New-ItemProperty -Path $regPath4 -Name DisabledByDefault -PropertyType DWORD -Value "1" -Force
   New-ItemProperty -Path $regPath4 -Name Enabled -PropertyType DWORD -Value "0" -Force

Bu, SCCM veya komut satırı kullanılarak dağıtılabilir - yalnızca SCCM işini veya komut satırını Yönetici olarak çalıştırdığınızdan emin olun. Kayıt defteri bilgisine sahip bazı web siteleri, kayıt defteri anahtarları oluşturulduktan ve / veya değiştirildikten sonra yeniden başlatmanın gerekli olduğunu gösterir.


4

Veya bir IISCrypto kopyası alın ve en iyi uygulamalar düğmesini tıklayın, ardından SSL 3.0'ın işaretini kaldırın ve ardından uygulayın, ardından yeniden başlatın.


3

SSL3'ü devre dışı bırakmak zorunda değilsiniz. SSL3'ü etkinleştirebilir ve POODLE'ı hafifletebilirsiniz .

# Copy and paste this in PowerShell then restart your server
$cipherSuitesOrder = @(
    'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256',
    'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384',
    'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256',
    'TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384',
    'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256',
    'TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384',
    'TLS_RSA_WITH_AES_128_CBC_SHA256',
    'TLS_RSA_WITH_AES_128_CBC_SHA',
    'TLS_RSA_WITH_AES_256_CBC_SHA256',
    'TLS_RSA_WITH_AES_256_CBC_SHA',
    'TLS_RSA_WITH_RC4_128_SHA',
    'TLS_RSA_WITH_3DES_EDE_CBC_SHA',
    'TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256',
    'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256',
    'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384',
    'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384',
    'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256',
    'TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384',
    'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256',
    'TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384'
)
$cipherSuitesAsString = [string]::join(',', $cipherSuitesOrder)
New-ItemProperty -path 'HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002' \
-name 'Functions' -value $cipherSuitesAsString -PropertyType 'String' -Force | Out-Null

Bu ayarlarla, yine de IE6 desteğine sahip olacaksınız (RC4 kullanarak SSLv3 ile) ve kabul edilebilir bir yapılandırma güvenliğinden daha akıllıca olabilirsiniz. Yalnızca IE6 ve gerçekten eski istemci SSLv3 veya RC4 şifrelerini kullanıyor olabilir.


3

IIS 7.5 ve 8 yapılandırmasına yardımcı olan iyi bir PowerShell betiği var:

Bu PowerShell betiği, Microsoft Internet Information Server 7.5 ve 8.0'ı (IIS) TLS 1.1 ve TLS 1.2 protokolünü Forward gizliliği ile desteklemek üzere ayarlar. Ek olarak, güvensiz SSL2 ve SSL3'ü ve ayrıca bir tarayıcının geri düşebileceği güvensiz ve zayıf şifreleri devre dışı bırakarak SSL bağlantılarınızın güvenliğini artırır. Bu script mevcut en iyi uygulama kurallarını uygular.

https://www.hass.de/content/setup-your-iis-ssl-perfect-forward-secrecy-and-tls-12


Hmm, bunun neden oylandığına emin değilim. Bu yardımcı programı kendim kullandım ve mükemmel çalışıyor.
David Thomas

Bu iyi görünüyor, ancak çalıştırdıktan sonra en az bir kişinin sorunu var - başkalarının harika olduğunu söylediklerini görüp görmediğini bilmiyorum.
Mark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.