it-swarm-id.com

Cara memperbaiki SSL 2.0 dan BEAST pada IIS

Seperti yang Anda lihat di posting ini TeamMentor.net rentan terhadap BEAST dan SSL 2.0, sekarang apa? aplikasi yang sedang saya kembangkan ditandai untuk SSL 2.0 dan BEAST oleh SSL Labs.

Saya menggunakan IIS 7.0 dengan tambalan terbaru, dan sepertinya tidak dapat menemukan jawaban untuk pertanyaan-pertanyaan ini:

  • Apa dampak risiko dari kerentanan ini pada situs seperti http://teammentor.net ?
  • Apa skenario eksploitasi?
  • Apakah ada mitigasi (atau tidak) dengan menggunakan IIS 7.0?
  • Bagaimana cara memperbaikinya dalam IIS 7.0?
  • Adakah yang bisa dilakukan di Lapisan Aplikasi?

Untuk referensi di sini adalah beberapa pertanyaan security.stackexchange.com lainnya tentang topik ini:

31
Dinis Cruz

Dalam IIS 7 (dan 7.5), ada dua hal yang harus dilakukan:

  1. Arahkan ke: Mulai> 'gpedit.msc'> Konfigurasi Komputer> Template Admin> Jaringan> Pengaturan Konfigurasi SSL> Urutan Cipher Suite SSL (di panel kanan, klik dua kali untuk membuka). Di sana, salin dan tempel yang berikut (entri dipisahkan oleh satu koma, pastikan tidak ada pembungkus baris):

    TLS_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_RC4_128_MD5, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, 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_SHA256_P521, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH _AES_128_CBC_SHA_P256

  2. Jalankan perintah PowerShell berikut sebagai administrator (salin-tempel ke Notepad, simpan sebagai 'fix-beast-in-iis.ps1' dan jalankan dengan hak istimewa yang ditingkatkan):

    #make TSL 1.2 protocol reg keys
    md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2"
    md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server"
    md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client"
    
    # Enable TLS 1.2 for client and server SCHANNEL communications
    new-itemproperty -path     "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "Enabled" -value 1 -PropertyType "DWord"
    new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "DisabledByDefault" -value 0 -PropertyType "DWord"
    new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "Enabled" -value 1 -PropertyType "DWord"
    new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "DisabledByDefault" -value 0 -PropertyType "DWord"
    
    # Make and Enable TLS 1.1 for client and server SCHANNEL communications
    md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1"
    md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server"
    md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" 
    new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -name "Enabled" -value 1 -PropertyType "DWord"
    new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" -name "DisabledByDefault" -value 0 -PropertyType "DWord"
    new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -name "Enabled" -value 1 -PropertyType "DWord"
    new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client" -name "DisabledByDefault" -value 0 -PropertyType "DWord"
    
    # Disable SSL 2.0 (PCI Compliance)
    md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server"
    new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" -name Enabled -value 0 -PropertyType "DWord"
    

Setelah Anda menjalankan skrip, Anda dapat menjalankan 'regedit' dan memastikan kunci-kunci dalam skrip tersebut benar-benar dibuat dengan benar. Kemudian reboot agar perubahannya berlaku.

PERINGATAN: Perhatikan saya tidak mematikan SSL 3.0- alasan untuk ini adalah karena kenyataan, suka atau tidak, masih ada orang di luar sana menggunakan Windows XP dengan IE 6/7. Tanpa SSL 3.0 diaktifkan, tidak akan ada protokol bagi orang-orang untuk kembali. Meskipun Anda mungkin masih belum mendapatkan yang sempurna pada pemindaian Qualys SSL Labs, mayoritas lubang haruslah ditutup dengan mengikuti langkah-langkah sebelumnya. Jika Anda ingin kepatuhan PCI mutlak, Anda dapat menyalin garis-garis dari bagian Nonaktifkan SSL 2.0 dari skrip Powershell, rekatkan di akhir skrip dan ubah menjadi sebagai berikut:

# Disable SSL 3.0 (PCI Compliance)
md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server"
new-itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server" -name Enabled -value 0 -PropertyType "DWord"

Kemudian, ketika Anda menjalankan skrip, Anda menonaktifkan SSL 2.0, SSL 3.0 dan mengaktifkan TLS 1.1 dan 1.2.

28
Josh

Saya baru saja memposting pembaruan ke IIS Crypto yang merupakan alat gratis yang mengatur kunci registri schannel dan menempatkan RC4 di bagian atas urutan paket cipher SSL dengan satu klik. Ini mengurangi serangan BEAST pada Windows Server 2008 dan 2012.

19
Jeff

Sejauh risiko aktual , sepertinya sulit untuk dikatakan. Sementara alat-alat seperti SSL Labs melaporkan ini sebagai prioritas tinggi, saya tidak mengetahui adanya serangan nyata yang mengeksploitasi ini di alam, dan dari (sangat terbatas) pemahaman saya tentang bagaimana serangan itu bekerja, itu agak rumit untuk dieksekusi dan ada banyak pra -perlu untuk membuatnya menjadi ancaman nyata. Anda sudah terhubung ke banyak sumber daya, jadi tidak ada gunanya mengulangi apa yang sudah dibahas.

Sedangkan untuk mengkonfigurasi IIS 7 untuk menggunakan RC4, mungkin pdf ini dapat membantu?

2
Yoav Aner

menonaktifkan semua "RC4" dengan IIS Crypto diizinkan untuk lulus tes kepatuhan PCI pada Server 2008/IIS 7.0

1

File registri berikut ini akan menonaktifkan SSLv2 & SSLv3 di sebagian besar implementasi windows.

Buat file .reg dengan detail berikut dan jalankan.

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]
"DisabledByDefault"=dword:00000001
[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]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]
"DisabledByDefault"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000

Cara termudah bagi Anda untuk memverifikasi adalah menggunakan laboratorium SSL lagi atau menguji menggunakan OpenSSL. Tidak ada artinya sama sekali bahwa beberapa versi OpenSSL tidak mendukung Versi SSL 2.

OpenSSL 0.9.8t mendukungnya dan merupakan versi yang saya gunakan untuk pengujian.

openssl s_client -connect subdomain.domain.tld: 44 -ssl2

Ini adalah perintah saya pergi untuk memeriksa cipher rantai blok menggunakan openssl. Idenya adalah bahwa kita seharusnya tidak mendapatkan koneksi dengan semua ini.

openssl s_client -connect subdomain.domain.tld: 44 -tls1 -cipher SRP-DSS-AES-256-CBC-SHA: SRP-RSA-AES-256-CBC-SHA: SRP-AES- 256-CBC-SHA: PSK-AES256-CBC-SHA: SRP-DSS-AES-128-CBC-SHA: RP-RSA-AES-128-CBC-SHA: SRP-AES-128-CBC-SHA: IDEA- CBC-SHA: PSK-AES128-CBC-SHA: SRP-DSS-3DES-EDE-EDE-CBC-SHA: SRP-RSA-3DES-EDE-CBC-SHA: SRP-3DES-EDE-CBC-SHA: PSK-3DES- EDE-CBC-SHA: EDH-RSA-DES-CBC-SHA: EDH-DSS-DES-CBC-SHA: DH-RSA-DES-CBC-SHA: DH-DSS-DES-CBC-SHA: DES-CBC- SHA

0
david_k