web-dev-qa-db-ja.com

WindowsでSSL V3を無効にするには再起動が必要ですか? -プードルのエクスプロイト

多くのWindowsサーバーでSSL V3を無効にしようとしています。その一部として、レジストリはスクリプトを介してリモートで更新されています。問題は、レジストリの変更後に何度も再起動する必要があることです。それを回避する方法はありますか?レジストリの変更後にSSL V3を受け入れないようにサーバーでサービスを再起動できますか?

編集:もう少し明確にすると、これは「SSL V3サーバー」の無効化に関するものです。 Windows 2012 R2サーバー。

7
Darktux

はい...たぶん... schannel.dllを呼び出すアプリケーションについて話しているなら。

あなたは「サーバー」について言及し、プロトコルである「SSlv3」について言及しました。このレジストリキーを変更するには、再起動が必要です。

このMicrosoftの記事をお読みください: https://support.Microsoft.com/en-us/kb/2450

それは基本的にこのトピックの聖書です。

「CIPHERSキーまたはHASHESキーへの変更は、システムを再起動せずにすぐに有効になります」という記事に注意してください。

ただし、PROTOCOLSキーを変更します。したがって、再起動します。

編集:ああ、私は最も重要な部分を言及するのを忘れていました-このレジストリキーへの変更は、Schannel DLLを呼び出すアプリケーションにのみ影響します。 (IIS、RDP、SQL Serverなど)。OpenSSLなどのサードパーティライブラリを使用するアプリケーションには影響しません。これらのアプリでは、アプリに依存しているため、再起動が必要かどうかを知ることはできません。

11
Ryan Ries

net stop httpおよびnet start httpを使用して、HTTPサービスを再起動できます。 IISのようなそれを使用するアプリケーションにのみ影響します。

また、HTTPサービスに応じてサービスを再起動し、\Device\Http\*を使用して他のプロセスを閉じる必要があります(それ以外の場合、サービスは停止しません)。

これを行うためのPowerShellスクリプトを次に示します。 ( handle.exehttps://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でのみテストしました。)

2
Tereza Tomcova