IIS에서 SSL 3.0 POODLE 취약점 (CVE-2014-3566)을 어떻게 패치합니까?


53

IIS를 실행하는 Windows Server 2012 시스템에서 CVE-2014-3566 을 어떻게 패치 합니까?

Windows Update에 패치가 있습니까? 아니면 SSL 3.0을 비활성화하려면 레지스트리를 변경해야 합니까?


1
마이크로 소프트가 그것에게 50,495을 수정 하면 연결된 MS KB 페이지에.
MattBianco

3
Windows 2008에서 Fix it 50495를 실행하려고했지만 "이 Microsoft Fix는 운영 체제 또는 응용 프로그램 버전에는 적용되지 않습니다."오류와 함께 실패했습니다. 오 잘
Josh

답변:


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에서는 최소한 재부팅 할 필요가 없습니다. SSL 포트에 URL과 443을 입력하여 poodlebleed.com 에서 전후를 확인할 수 있습니다
Simon

감사합니다. PCT도 기본적으로 비활성화되어 있지만이 방법으로는 비활성화되어 있지 않기 때문에 PCT를 비활성화해야하는지 알고 있습니까?
Mark Broadhurst

@Simon, 변경 사항을 적용하기 위해해야 ​​할 일이 있습니까? 방금 Server 2012 컴퓨터에서 레지스트리를 업데이트했지만 SSL3이 활성화되어 있다고보고되고 있습니다.
Abe Miessler

나는 그렇게 믿지 않습니다. 나는 당신이 iis와 나의 Apache를 사용하고 있다고 가정하고 그 웹 사이트를 usjng 확인했다. 정확한 레지스트리 키가 있다고 확신하십니까?
Simon

아파치 아님 ( '아파치'가 어디에서 왔는지 모르겠다!)
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를 확인하는 것이 좋습니다.
Jaans

확실합니까? 내 것이 나를 위해 그들을 만듭니다. 그것은 (내가 서버 2008 R2에 v2를 사용하고 있습니다) 파워 쉘 및 Windows의 낮은 버전과 다를 수 있습니다
바실리 Syrakis

2
예 ... PS 3.0 및 WSMan 3.0 사용 하기 i.imgur.com/rctFH4D.png에 업로드 된 스크린 샷 참조
Jaans


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 작업 또는 명령 줄을 관리자 권한으로 실행하십시오. 레지스트리 정보가있는 일부 웹 사이트는 레지스트리 키를 생성 및 / 또는 수정 한 후 재부팅해야 함을 나타냅니다.


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 프로토콜을 지원합니다. 또한 안전하지 않은 SSL2 및 SSL3 및 브라우저가 폴백 할 수있는 모든 안전하지 않은 취약한 암호를 비활성화하여 SSL 연결의 보안을 강화합니다. 이 스크립트는 현재 모범 사례 규칙을 구현합니다.

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


흠, 이것이 왜 투표에 실패했는지 확실하지 않습니다. 나는 그 유틸리티를 직접 사용했고 완벽하게 작동합니다.
David Thomas

이것은 좋아 보이지만 적어도 한 사람 이 실행 한 후 문제가 발생했습니다. 다른 사람들이 훌륭하다고 말한 것을 보았을 때 알 수 없습니다.
Mark
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.