Вопрос: В IIS, как я могу исправить уязвимость SSL 3.0 POODLE (CVE-2014-3566)?


Как уладить CVE-2014-3566 на системе Windows Server 2012 с IIS?

Есть ли патч в Центре обновления Windows, или мне нужно сделать изменение реестра для отключения SSL 3.0?


50
2017-10-15 15:08


Источник


Eсть Microsoft Fix it 50495 на странице MS KB, к которой вы привязались. - MattBianco
Я попытался запустить Fix it 50495 в Windows 2008, и он не с ошибкой «Это исправление Microsoft не относится к вашей операционной системе или версии приложения». Ну что ж. - Josh


Ответы:


Нет «патча». Это уязвимость в протоколе, а не ошибка в реализации.

В Windows Server 2003 до 2012 R2 протоколы SSL / TLS контролируются флагами в реестре, установленном в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols,

Чтобы отключить SSLv3, с которым связана уязвимость POODLE, создайте подраздел в указанном выше местоположении (если он еще не указан) SSL 3.0 и, под этим, подраздел, названный Server (если он еще не присутствует). В этом месте (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\SSL 3.0\Server), создайте значение DWORD с именем Enabled и оставьте его на 0,

Отключение SSL 2.0, которое вы также должны делать, выполняется аналогичным образом, за исключением того, что вы будете использовать ключ с именем SSL 2.0 в приведенном выше пути реестра.

Я не тестировал все версии, но я думаю, что, вероятно, можно предположить, что для того, чтобы это изменение вступило в силу, требуется перезагрузка.


56
2017-10-15 18:26



По крайней мере, перезагрузка не требуется на Windows Server 2012. вы можете проверить до и после poodlebleed.com путем ввода вашего URL-адреса и 443 для порта SSL - Simon
Спасибо, знаете ли вы, следует ли отключить PCT, так как его якобы отключили по умолчанию и все же не отключили таким образом? - Mark Broadhurst
@Simon, есть ли что-то еще, что нужно сделать, чтобы изменения вступили в силу? Я только что сделал обновления реестра на машине Server 2012, но по-прежнему сообщается о том, что SSL3 включен. - Abe Miessler
Я так не верю. Я предполагаю, что вы используете iis и мой Apache, и вы проверили этот сайт. И вы уверены, что у вас есть точный правильный раздел реестра? - Simon
* НЕ apache (я не знаю, откуда пришел мой Apache!) - Simon


Просто для простоты установки я получил этот «disable ssl 2 и 3.reg» файл из Ответ Эвана выше:

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

23
2017-10-17 01:23





Powershell для отключения SSL2 и SSL3:

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

11
2017-10-28 21:21



К сожалению, вышеупомянутое работает только в том случае, если разделы реестра уже присутствуют. Было бы неплохо увидеть PS, который может их создать, если не существует, или обновить их, если они это сделают. - Jaans
Ты уверен? Моя создает их для меня. Он может отличаться в более низких версиях Powershell и Windows (я использую v2 на сервере 2008 R2) - Vasili Syrakis
Yup ... посмотреть скриншот, загруженный в: i.imgur.com/rctFH4D.png Использование PS 3.0 и WSMan 3.0. - Jaans


Существует бесплатная утилита от Nartac, которую вы можете использовать для отключения протоколов.

https://www.nartac.com/Products/IISCrypto/Default.aspx


8
2017-10-20 15:44



Этот инструмент потрясающий, спасибо за его размещение - bladefist


Вот PowerShell, который будет проверять наличие ключей реестра, создавать их, если необходимо, а затем ввести необходимые значения для отключения SSL 2.0 и 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

Это можно развернуть с помощью SCCM или командной строки - просто запустите задачу SCCM или командную строку в качестве администратора. Некоторые веб-сайты с информацией о реестре указывают на необходимость перезагрузки после того, как ключи реестра будут созданы и / или изменены.


7
2017-10-21 18:47





Или возьмите копию IISCrypto и нажмите кнопку «Лучшие практики», затем снимите флажок SSL 3.0 и затем примените, затем перезагрузите


3
2017-12-15 23:22





Вам не нужно отключать SSL3. Вы можете включить SSL3 и POODLE смягчен,

# 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

С этими настройками у вас все равно будет поддержка IE6 (с использованием SSLv3 с использованием RC4) и более безопасная конфигурация безопасности. Только IE6 и действительно старый клиент будут использовать шифры SSLv3 или RC4.


2
2018-05-27 09:40





Существует хороший сценарий PowerShell, который помогает с конфигурацией IIS 7.5 и 8:

Этот сценарий PowerShell настраивает вашу Microsoft Internet Information   Сервер 7.5 и 8.0 (IIS) для поддержки протокола TLS 1.1 и TLS 1.2 с   Переслать секретность. Кроме того, он повышает безопасность вашего SSL   подключений, отключив небезопасные SSL2 и SSL3 и все небезопасные   и слабые шифры, которые браузер может отступить, тоже. Этот скрипт   реализует действующие правила лучшей практики.

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


2



Хм, не уверен, почему это было проголосовано. Я сам использовал эту утилиту, и она отлично работает. - David Thomas
Это выглядит хорошо, но хотя бы один парень у него были проблемы после его запуска - не знаю, если он изолирован, другие говорят, что это здорово. - Mark