it-swarm-vi.com

Cách sửa SSL 2.0 và BEAST trên IIS

Như bạn có thể thấy trên bài đăng này TeamMentor.net dễ bị BEAST và SSL 2.0, bây giờ thì sao? ứng dụng tôi đang phát triển đã được gắn cờ cho SSL 2.0 và BEAST bởi SSL Labs.

Tôi đang sử dụng IIS 7.0 với các bản vá mới nhất và dường như không thể tìm thấy câu trả lời cho những câu hỏi sau:

  • Tác động rủi ro của lỗ hổng này trên một trang web như http://teammentor.net là gì?
  • Các kịch bản khai thác là gì?
  • Có sự giảm thiểu nào (hoặc không) bằng cách sử dụng IIS 7.0?
  • Làm cách nào để sửa lỗi này trong IIS 7.0?
  • Có thể làm bất cứ điều gì ở Tầng ứng dụng không?

Để tham khảo ở đây là một vài câu hỏi bảo mật khác.stackexchange.com về chủ đề này:

31
Dinis Cruz

Trong IIS 7 (và 7.5), có hai việc cần làm:

  1. Điều hướng đến: Bắt đầu> 'gpedit.msc'> Cấu hình máy tính> Mẫu quản trị> Mạng> Cài đặt cấu hình SSL> Thứ tự bộ mật mã SSL (trong khung bên phải, nhấp đúp để mở). Ở đó, sao chép và dán các mục sau (các mục được phân tách bằng một dấu phẩy, đảm bảo không có gói dòng nào):

    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. Chạy các lệnh PowerShell sau với tư cách quản trị viên (sao chép-dán vào Notepad, lưu dưới dạng 'fix-beast-in-iis.ps1' và chạy với các đặc quyền nâng cao):

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

Khi bạn đã chạy tập lệnh, bạn có thể chạy 'regedit' và đảm bảo các khóa trong tập lệnh thực sự được tạo chính xác. Sau đó khởi động lại để thay đổi có hiệu lực.

CẢNH BÁO: Lưu ý rằng tôi đã không tắt SSL 3.0 - lý do cho điều này là do thực tế là dù muốn hay không, vẫn có những người sử dụng Windows XP với IE 6/7. Nếu không bật SSL 3.0, sẽ không có giao thức nào cho những người đó quay trở lại. Mặc dù bạn vẫn không thể hoàn hảo khi quét Qualys SSL Labs, nhưng phần lớn các lỗ hổng sẽ là Nếu bạn muốn tuân thủ các bước trước đó, bạn có thể sao chép các dòng từ phần Vô hiệu hóa SSL 2.0 của tập lệnh Powershell, dán chúng vào cuối tập lệnh và thay đổi chúng thành dòng sau:

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

Sau đó, khi bạn chạy tập lệnh, bạn tắt SSL 2.0, SSL 3.0 và bật TLS 1.1 và 1.2.

28
Josh

Tôi vừa đăng một bản cập nhật lên IIS Crypto , đây là một công cụ miễn phí đặt các khóa đăng ký schannel và đặt RC4 lên đầu đơn hàng bộ mật mã SSL chỉ bằng một cú nhấp chuột. Điều này giảm nhẹ cuộc tấn công BEAST trên Windows Server 2008 và 2012.

19
Jeff

Theo như rủi ro thực tế , có vẻ khó nói. Mặc dù các công cụ như SSL Labs báo cáo đây là mức độ ưu tiên cao, tôi không biết về bất kỳ cuộc tấn công thực sự nào khai thác điều này trong tự nhiên và theo hiểu biết (rất hạn chế) của tôi về cách thức hoạt động của cuộc tấn công, việc thực hiện khá phức tạp và có rất nhiều trước - điều kiện để làm cho nó một mối đe dọa thực sự. Bạn đã liên kết với nhiều tài nguyên, vì vậy không có điểm nào lặp lại những gì đã được bảo hiểm.

Đối với việc định cấu hình IIS 7 để sử dụng RC4, có lẽ pdf này có thể giúp gì?

2
Yoav Aner

vô hiệu hóa mọi thứ "RC4" với IIS Crypto được phép vượt qua kiểm tra tuân thủ PCI trên Server 2008/IIS 7.0

1
Konstantin Salavatov

Tệp đăng ký sau đây sẽ vô hiệu hóa SSLv2 & SSLv3 trên hầu hết các cài đặt windows.

Tạo một tệp .reg với các chi tiết sau và chạy.

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

Cách dễ nhất để bạn xác minh là sử dụng lại phòng thí nghiệm SSL hoặc thử nghiệm bằng OpenSSL. Không có gì đáng nói khi một số phiên bản OpenSSL không hỗ trợ SSL Phiên bản 2.

OpenSSL 0.9.8t không hỗ trợ nó và là phiên bản tôi sử dụng để thử nghiệm.

openssl s_client -connect tên miền phụ.domain.tld: 44 -ssl2

Đây là lệnh đi của tôi để kiểm tra mật mã khối chuỗi bằng openssl. Ý tưởng là chúng ta không nên kết nối với bất kỳ thứ nào trong số này.

openssl s_client -connect subomain.domain.tld: 44 -tls1 -codes 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-CBC-SHA: SRP-RSA-3DES-EDE-CBC-SHA: SRP-3DES-EDE-CBC-SHA: PSK-3D 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