IISでは、SSL 3.0 POODLEの脆弱性(CVE-2014-3566)にどのようにパッチを当てるのですか?


53

IISを実行しているWindows Server 2012システムでCVE-2014-3566にパッチを適用するにはどうすればよいですか?

Windows Updateにパッチはありますか、またはSSL 3.0を無効にするためにレジストリを変更する必要がありますか?


1
あるマイクロソフトの修正それ50495あなたがにリンクされているMS KBページでは。
MattBianco 14年

3
Windows 2008でFix it 50495を実行しようとしましたが、「このMicrosoft Fix itはオペレーティングシステムまたはアプリケーションのバージョンに適用されません」というエラーで失敗しました。しかたがない。
ジョシュ14年

回答:


58

「パッチ」はありません。これはプロトコルの脆弱性であり、実装のバグではありません。

Windows Server 2003から2012 R2では、SSL / TLSプロトコルはで設定されたレジストリ内のフラグによって制御されHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocolsます。

POODLEの脆弱性が関係するSSLv3を無効にするには、上記の場所(存在しない場合)にサブキーを作成し、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も無効にする必要がありますが、これも同じ方法で行う必要があります。

すべてのバージョンをテストしたわけではありませんが、この変更を有効にするには再起動が必要であると想定するのがおそらく安全だと思います。


3
少なくともWindows Server 2012では再起動する必要はありません。URLとSSLポートに443を入力することにより、poodlebleed.comの前後で確認できます
サイモン14年

おかげで、PCTもデフォルトで無効になっているが、この方法では無効になっていないため、PCTも無効にする必要があるかどうか知っていますか?
マークブロードハースト14年

@サイモン、変更を有効にするために他に何かしなければならないことがありますか?Server 2012マシンでレジストリを更新しましたが、まだSSL3が有効になっていると報告されています。
安倍ミースラー14

私はそうは思わない。私はあなたがiisと私のApacheを使用していて、そのウェブサイトを使用してチェックしていると仮定しています。そして、あなたは正確な正しいレジストリキーを持っていると確信していますか?
サイモン14

* Apacheではありません(「Apache」がどこから来たのかわかりません!)
Simon

24

インストールを簡単にするために、上記のEvanの回答からこの「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

12

SSL2およびSSL3を無効にするPowershell:

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

残念ながら、上記はレジストリサブキーが既に存在する場合にのみ機能します。存在しない場合は作成できるPSがあり、存在する場合は更新できるPSがあると便利です。
ジャアンス14年

本気ですか?鉱山は私のためにそれらを作成します。PowershellおよびWindowsの下位バージョンでは異なる場合があります(Server 2008 R2でv2を使用しています)
Vasili Syrakis 14年

2
うん ...にアップロードされたスクリーンショットを参照してください:i.imgur.com/rctFH4D.png PS 3.0とWSMan 3.0を使用して。
ヤーン14年


8

以下に、レジストリキーの存在をテストし、必要に応じて作成し、SSL 2.0およびSSL 3.0を無効にするために必要な値を入力する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

これは、SCCMまたはコマンドラインを使用して展開できます。SCCMジョブまたはコマンドラインを必ず管理者として実行してください。レジストリ情報を含む一部のWebサイトでは、レジストリキーを作成または変更した後、再起動が必要であることを示しています。


4

または、IISCryptoのコピーを取得して[ベストプラクティス]ボタンをクリックし、SSL 3.0のチェックを外して適用してから再起動します


3

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サポート(RC4を使用するSSLv3を使用)を引き続き使用でき、許容できる以上の構成セキュリティが得られます。IE6と本当に古いクライアントだけがSSLv3またはRC4暗号を使用します。


3

IIS 7.5および8の構成に役立つ優れたPowerShellスクリプトがあります。

このPowerShellスクリプトは、Microsoft Internet Information Server 7.5および8.0(IIS)をセットアップして、TLS 1.1およびTLS 1.2プロトコルをForward Secretでサポートします。さらに、安全でないSSL2とSSL3、およびブラウザがフォールバックする可能性があるすべての安全でない暗号と弱い暗号を無効にすることにより、SSL接続のセキュリティを向上させます。このスクリプトは、現在のベストプラクティスルールを実装しています。

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


うーん、なぜこれが反対票を投じられたのかわかりません。私は自分でこのユーティリティを使用しましたが、完全に機能します。
デビッドトーマス

これは良さそうに見えますが、少なくとも1人の男がそれを実行した後に問題を抱えています。
マーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.