Требуется ли перезагрузка для отключения SSL V3 в Windows? - Эксплойт Poodle

Требуется ли перезагрузка для отключения SSL V3 в Windows? - Эксплойт Poodle

Мы пытаемся отключить SSL V3 на многочисленных серверах Windows; в рамках этого процесса реестры обновляются удаленно с помощью скрипта. Проблема в том, что после изменения реестра требуется много перезагрузок. Есть ли способ обойти это, можно ли перезапустить службу на сервере, чтобы она больше не принимала SSL V3 после изменения реестра?

Редактировать: Еще немного пояснений: речь идет об отключении «сервера SSL V3» на серверах Windows 2012 R2.

решение1

Да... возможно... если вы говорите о приложениях, которые обращаются к schannel.dll.

Вы упомянули "Серверы" и упомянули "SSlv3", который является протоколом. Изменения в этом разделе реестра требуют перезагрузки.

Прочитайте эту статью Microsoft:https://support.microsoft.com/en-us/kb/245030

По сути, это библия по данной теме.

Обратите внимание, что в статье говорится: «Изменения ключа CIPHERS или HASHES вступают в силу немедленно, без перезапуска системы».

Однако вы меняете ключ PROTOCOLS. Поэтому перезагрузите.

РЕДАКТИРОВАТЬ:О, я забыл упомянуть самую важную часть — изменения в этом разделе реестра, они влияют только на приложения, которые вызывают Schannel DLL. (Такие как IIS, RDP, SQL Server и т. д.) Они НЕ ОКАЗЫВАЮТ ВЛИЯНИЯ на приложения, которые используют стороннюю библиотеку, такую ​​как OpenSSL. В этих приложениях мы не можем знать, потребуется ли перезагрузка или нет, потому что это зависит от приложения.

решение2

Вы можете перезапустить службу HTTP с помощью net stop httpи net start http. Очевидно, что это повлияет только на приложения, использующие ее (например, IIS).

Вам также потребуется перезапустить все службы, зависящие от службы HTTP, и закрыть все другие процессы, использующие ее \Device\Http\*(иначе служба не остановится).

Вот скрипт PowerShell, который все это делает. (Он используетручка.exeотhttps://live.sysinternals.com/и не учитывает множественные уровни зависимых услуг.)

$depencies = Get-Service HTTP -DependentServices |? Status -eq Running
Stop-Service $depencies
.\handle.exe -nobanner -a \Device\Http\ |? { $_ -match '\s+pid:\s*(?<pid>\d+)\s+' } |% { $matches.pid } | gu |% { Stop-Process -Id $_ -Confirm }
Restart-Service HTTP
Start-Service $depencies

(Я тестировал это только на Windows 7.)

Связанный контент