Di IIS, bagaimana cara menambal kerentanan SSL 3.0 POODLE (CVE-2014-3566)?

53

Bagaimana cara menambal CVE-2014-3566 pada sistem Windows Server 2012 yang menjalankan IIS?

Apakah ada tambalan di Pembaruan Windows, atau apakah saya harus melakukan perubahan registri untuk menonaktifkan SSL 3.0 ?

Eric Lathrop
sumber
1
Ada Microsoft Fix it 50495 pada halaman MS KB yang Anda tautkan .
MattBianco
3
Saya mencoba menjalankan Perbaiki 50495 pada Windows 2008, dan gagal dengan kesalahan "Perbaikan Microsoft ini tidak berlaku untuk sistem operasi atau versi aplikasi Anda." Baiklah.
Josh

Jawaban:

58

Tidak ada "tambalan". Ini adalah kerentanan dalam protokol, bukan bug dalam implementasi.

Pada Windows Server 2003 hingga 2012 R2 protokol SSL / TLS dikendalikan oleh flag di set registri HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols.

Untuk menonaktifkan SSLv3, yang terkait dengan kerentanan POODLE, buat subkunci di lokasi di atas (jika belum ada) bernama SSL 3.0dan, di bawah itu, subkunci bernama Server(jika belum ada). Di lokasi ini ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server) buat nilai DWORD bernama Enableddan biarkan set at 0.

Menonaktifkan SSL 2.0, yang juga harus Anda lakukan, dilakukan dengan cara yang sama, kecuali bahwa Anda akan menggunakan kunci yang disebutkan SSL 2.0dalam jalur registri di atas.

Saya belum menguji semua versi, tetapi saya pikir mungkin aman untuk mengasumsikan bahwa reboot diperlukan agar perubahan ini berlaku.

Evan Anderson
sumber
3
reboot tidak diperlukan pada Windows Server 2012 setidaknya. Anda dapat memverifikasi sebelum dan sesudah di poodlebleed.com dengan memasukkan URL Anda dan 443 untuk port SSL
Simon
Terima kasih, Apakah Anda tahu apakah saya harus menonaktifkan PCT juga karena itu diduga dinonaktifkan secara default dan belum dinonaktifkan dengan cara ini?
Mark Broadhurst
@Simon, apakah ada hal lain yang harus Anda lakukan agar perubahan diterapkan? Saya baru saja membuat pembaruan registri pada mesin Server 2012, tetapi masih dilaporkan bahwa SSL3 diaktifkan.
Abe Miessler
Saya tidak percaya begitu. Saya berasumsi Anda menggunakan iis dan Apache saya dan Anda memeriksa menggunakan situs web itu. Dan Anda yakin Anda memiliki kunci registri yang tepat?
Simon
* BUKAN apache (Saya tidak tahu dari mana 'Apache saya' berasal!)
Simon
24

Hanya untuk kemudahan instalasi saya mendapatkan file "disable ssl 2 and 3.reg" ini dari jawaban Evan di atas :

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
Eric Lathrop
sumber
12

Powershell untuk menonaktifkan SSL2 dan SSL3:

2..3 | %{ New-ItemProperty -Path "HKLM:SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL $_.0\Server" -Name Enabled -PropertyType "DWORD" -Value 0 -Force }
Vasili Syrakis
sumber
Sayangnya hal di atas hanya berfungsi jika subkunci registri sudah ada. Akan menyenangkan untuk melihat PS yang dapat membuat mereka jika tidak ada atau memperbaruinya jika ada.
Jaans
Apakah kamu yakin Milik saya menciptakan mereka untuk saya. Mungkin berbeda pada versi yang lebih rendah dari Powershell dan Windows (Saya menggunakan v2 pada Server 2008 R2)
Vasili Syrakis
2
Yup ... lihat tangkapan layar diunggah ke: i.imgur.com/rctFH4D.png Menggunakan PS 3.0 dan WSMan 3.0.
Jaans
8

Berikut ini adalah PowerShell yang akan menguji keberadaan kunci registri, membuatnya jika diperlukan, dan kemudian memasukkan nilai yang diperlukan untuk menonaktifkan SSL 2.0 dan SSL 3.0

$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

Ini dapat digunakan menggunakan SCCM atau baris perintah - pastikan untuk menjalankan pekerjaan SCCM atau baris perintah sebagai Administrator. Beberapa situs web dengan informasi registri menunjukkan bahwa reboot diperlukan setelah kunci registri dibuat dan / atau dimodifikasi.

Kazi
sumber
4

Atau ambil salinan IISCrypto dan klik tombol praktik terbaik, lalu hapus centang SSL 3.0 dan kemudian terapkan, lalu reboot

Tom
sumber
3

Anda tidak harus menonaktifkan SSL3. Anda dapat mengaktifkan SSL3 dan POODLE dimitigasi .

# 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

Dengan pengaturan ini Anda masih akan memiliki dukungan IE6 (dengan SSLv3 menggunakan RC4) dan memiliki lebih dari sekadar keamanan konfigurasi yang dapat diterima. Hanya IE6 dan klien yang benar-benar lama yang akan menggunakan cipher SSLv3 atau RC4.

Malaikat Abad Cerdeira
sumber
3

Ada skrip PowerShell yang baik yang membantu dengan konfigurasi IIS 7.5 & 8:

Skrip PowerShell ini mengatur Microsoft Internet Information Server 7.5 dan 8.0 (IIS) Anda untuk mendukung protokol TLS 1.1 dan TLS 1.2 dengan meneruskan kerahasiaan. Selain itu, ini meningkatkan keamanan koneksi SSL Anda dengan menonaktifkan SSL2 dan SSL3 yang tidak aman dan dan semua sandi tidak aman dan lemah yang mungkin juga dimiliki browser. Script ini mengimplementasikan aturan praktik terbaik saat ini.

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

David Thomas
sumber
Hmm, tidak yakin mengapa ini turun sebagai. Saya menggunakan utilitas itu sendiri dan berfungsi dengan baik.
David Thomas
Ini terlihat bagus tetapi setidaknya satu orang memiliki masalah setelah menjalankannya - tidak tahu apakah itu terisolasi melihat orang lain mengatakan itu hebat.
Tandai