Saturday, May 28, 2011

Blog Post: Como desabilitar o SSLv2 e o PCT v1 no IIS6 e IIS7.x

J� faz algum tempo que se sabe que o protocolo SSL v2 � suscet�vel a ataques do tipo ?man-in-the-middle?. Mas a menos tempo as empresas especializadas em testes de intrus�o come�aram a fazer testes e colocar este protocolo na ?lista negra? das vulnerabilidades pelo qual o seu web site pode ser atacado.

Recentemente montei um pequeno laborat�rio para desabilitar estes protocolos no Windows 2003, Windows 2008 e Windows 2008 R2, a pedido de um cliente. A melhor forma de fazer isso nestas vers�es do Windows � atrav�s do Schannel. O Schannel � um Security Support Provider utilizado no Windows por aplica��es de Internet (como o IIS) que necessitam comunica��es seguras via HTTP. O Schannel oferece autentica��o e comunica��es seguras e privadas atrav�s do uso de criptografia.

O procedimento consiste em remover da lista de protocolos permitidos pelo Schannel aqueles que s�o considerados fatores de risco, ou que apresentem vulnerabilidades conhecidas. Dessa forma, o SSL v2.0, o PCT 1.0 e as cifras de 40bits e 56bits devem ser desabilitadas. Os passos est�o descritos a seguir: 

Windows 2003:

No Windows 2003/IIS6, o protocolo SSLv2 est� habilitado, juntamente com o PCT 1.0.
Neste caso, o procedimento recomendado para desabilitar estes procotolos e tamb�m as cifras de 40 e 56bits � o seguinte:

Crie um arquivo .REG com o seguinte conte�do:

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server]
"Enabled"=dword:00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\PCT 1.0\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:ffffffff
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\TLS 1.0\Server]
"Enabled"=dword:ffffffff
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\DES 56/56]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\NULL]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\RC2 128/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\RC2 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\RC2 56/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\RC4 128/128]
"Enabled"=dword:ffffffff
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\RC4 64/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Ciphers\Triple DES 168/168]
"Enabled"=dword:ffffffff

Aplique ent�o este arquivo nos servidores IIS6 e em seguida reinicie os mesmos. Para testar se o protocolo foi desabilitado pode ser utilizado o utilit�rio WFETCH, que � parte do IIS6 Resource Kit.

Windows 2008 e Windows 2008 R2:

No Windows 2008 e Windows 2008 R2 o protocolo SSL v2.0 est� habilitado, mas o protocolo PCT 1.0 j� est� desabilitado por padr�o. Tamb�m n�o h� cifras com 40 ou 56 bits habilitadas. De qualquer forma a mesma configura��o utilizada no Windows 2003 pode ser aplicada no Windows 2008.

Assim, basta criar um arquivo .REG com o seguinte conte�do:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\Multi-Protocol Unified Hello\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\PCT 1.0\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:ffffffff
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\
SCHANNEL\Protocols\TLS 1.0\Server]
"Enabled"=dword:ffffffff

Uma outra forma de desabilitar o uso do protocolo SSL v2 no Windows 2008 e Windows 2008 R2 � explicitamente desabilitar as seguints cifras:

SSL_CK_RC4_128_WITH_MD5,
SSL_CK_DES_192_EDE3_CBC_WITH_MD5

Para isso basta seguir os procedimentos sugeridos no artigo:

http://blogs.msdn.com/b/amol/archive/2010/04/27/how-to-disable-ssl-2-0-in-internet-information-services-7.aspx

substituindo os valores padr�o a seguir:

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_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_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,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
TLS_RSA_WITH_RC4_128_MD5,
SSL_CK_RC4_128_WITH_MD5,SSL_CK_DES_192_EDE3_CBC_WITH_MD5,
TLS_RSA_WITH_NULL_SHA256,TLS_RSA_WITH_NULL_SHA

Por este novo conjunto de cifras:

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_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_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,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
TLS_RSA_WITH_RC4_128_MD5,
TLS_RSA_WITH_NULL_SHA256,TLS_RSA_WITH_NULL_SHA

Adicionalmente, � recomendado que os websites configurados nos servidores IIS7.x sejam configurados para n�o permitir o uso de cifras fracas (40bits e 56bits). Para isso, utilizando o Internet Information Services Manager, selecione o website a ser configurado, e no painel de navega��o selecione "SSL Settings". Em seguida, configure o site para requerer o uso de cifras de 128bits (marque o checkbox "Require 128-bit SSL"). A figura a seguir ilustra a configura��o necess�ria:

clip_image001

Conclus�es

Este procedimento ir� desabilitar o protocolo SSL v2.0 e PCT v1.0 removendo-os da lista dos protocolos permitidos no Schannel. Ao se remover os protocolos SSL v2.0 e PCT v1.0 da lista de protocolos permitidos no Schannel, o servidor Web IIS n�o ser� mais capaz de estabelecer canais de comunica��o utilizando os mesmos, dessa forma evitando que vulnerabilidades conhecidas sejam exploradas. Contudo, clientes antigos ou propriet�rios que n�o implementem os protocolos restantes (com o SSL v3.0 ou o TLS 1.0) n�o conseguir�o mais ter acesso ao servidor. Cabe a voc� avaliar se h� aplica��es que dependam dos protocolos desabilitados, e o consequente impacto para o seu neg�cio ao se tomar esta a��o.

Refer�ncias:

Alicia Witt Radha Mitchell Melissa Rycroft Chloë Sevigny Janet Jackson

No comments:

Post a Comment