บน IIS ฉันจะแก้ไขช่องโหว่ SSL 3.0 POODLE ได้อย่างไร (CVE-2014-3566)


53

ฉันจะแก้ไขCVE-2014-3566บนระบบ Windows Server 2012 ที่ใช้ IIS ได้อย่างไร

มีโปรแกรมแก้ไขใน Windows Update หรือไม่ฉันต้องเปลี่ยนรีจิสทรีเพื่อปิดใช้งาน SSL 3.0หรือไม่


1
มีMicrosoft Fix it 50495ในหน้า MS KB ที่คุณเชื่อมโยง
MattBianco

3
ฉันพยายามเรียกใช้ Fix it 50495 บน Windows 2008 และล้มเหลวโดยมีข้อผิดพลาด "Microsoft Fix it ไม่สามารถใช้กับระบบปฏิบัติการหรือเวอร์ชันแอปพลิเคชันของคุณ" โอ้ดี
Josh

คำตอบ:


58

ไม่มี "แพทช์" มันเป็นช่องโหว่ในโปรโตคอลไม่ใช่ข้อบกพร่องในการใช้งาน

ใน 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 ชื่อและปล่อยให้มันตั้งไว้ที่Enabled0

การปิดใช้งาน SSL 2.0 ซึ่งคุณควรทำก็เป็นเช่นเดียวกันยกเว้นว่าคุณจะใช้รหัสที่มีชื่อSSL 2.0ในเส้นทางรีจิสทรีข้างต้น

ฉันไม่ได้ทดสอบทุกรุ่น แต่ฉันคิดว่ามันอาจปลอดภัยที่จะสมมติว่าการรีบูตเป็นสิ่งจำเป็นสำหรับการเปลี่ยนแปลงนี้ที่จะมีผล


3
เริ่มระบบใหม่ไม่จำเป็นใน Windows Server 2012 เป็นอย่างน้อย คุณสามารถตรวจสอบก่อนและหลังที่poodlebleed.comโดยป้อน URL และ 443 สำหรับพอร์ต SSL
Simon

ขอบคุณคุณรู้หรือไม่ว่าฉันควรปิดการใช้งาน PCT เช่นกันเนื่องจากมีการปิดใช้งานการกล่าวหาโดยค่าเริ่มต้นและยังไม่ได้ปิดใช้งานด้วยวิธีนี้
Mark Broadhurst

@Simon มีอะไรอีกที่คุณต้องทำเพื่อให้การเปลี่ยนแปลงมีผล ฉันเพิ่งทำการปรับปรุงรีจิสทรีในเครื่อง Server 2012 แต่ยังคงได้รับรายงานว่า SSL3 เปิดใช้งานอยู่
Abe Miessler

ฉันไม่เชื่ออย่างนั้น ฉันสมมติว่าคุณกำลังใช้ iis และ Apache ของฉันและคุณตรวจสอบเว็บไซต์ของเรา และคุณแน่ใจหรือว่าคุณมีคีย์รีจิสทรีที่ถูกต้อง?
Simon

* ไม่ apache (ฉันไม่รู้ว่า 'Apache ของฉัน' มาจากที่ใด)
Simon

24

เพียงเพื่อความสะดวกในการติดตั้งฉันได้รับไฟล์ "disable ssl 2 และ 3.reg" จากคำตอบของ Evan ด้านบน :

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

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 }

ขออภัยข้างต้นใช้งานได้เฉพาะถ้าคีย์ย่อยของรีจิสทรีมีอยู่แล้ว จะดีที่ได้เห็น PS ที่สามารถสร้างพวกเขาหากไม่มีอยู่หรืออัปเดตพวกเขาหากพวกเขาทำ
Jaans

คุณแน่ใจไหม? ของฉันสร้างพวกเขาให้ฉัน มันอาจแตกต่างกันในรุ่นที่ต่ำกว่าของ Powershell และ Windows (ฉันใช้ v2 บน Server 2008 R2)
Vasili Syrakis

2
ใช่ ... ดูภาพหน้าจอที่อัปโหลดไปยัง: i.imgur.com/rctFH4D.pngการใช้ PS 3.0 และ WSMan 3.0
Jaans


8

นี่คือ 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 หรือบรรทัดคำสั่งในฐานะผู้ดูแลระบบ บางเว็บไซต์ที่มีข้อมูลรีจิสตรีระบุว่าจำเป็นต้องรีบูตหลังจากสร้างรีจิสตรีคีย์และ / หรือแก้ไขแล้ว


4

หรือคว้าสำเนาของ IISCrypto และคลิกปุ่มปฏิบัติที่ดีที่สุดจากนั้นยกเลิกการเลือก SSL 3.0 จากนั้นนำไปใช้จากนั้นรีบูต


3

คุณไม่ต้องปิดการใช้งาน SSL3 คุณสามารถเปิดใช้ SSL3 และมีพุดเดิ้ลลดลง

# 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 ciphers


3

มีสคริปต์ PowerShell ที่ดีที่ช่วยในการกำหนดค่า IIS 7.5 และ 8:

สคริปต์ PowerShell นี้ตั้งค่า Microsoft Internet Information Server 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


อืมไม่แน่ใจว่าทำไมเรื่องนี้ลงคะแนน ฉันใช้ยูทิลิตีนั้นและทำงานได้อย่างสมบูรณ์
David Thomas

มันดูดี แต่อย่างน้อยก็มีผู้ชายคนหนึ่งที่มีปัญหาหลังจากใช้มัน - ไม่รู้ว่ามันโดดเดี่ยวหรือไม่เห็นคนอื่นบอกว่ามันยอดเยี่ยม
Mark
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.