Introdução
Este documento descreve como desativar o modo de encadeamento de blocos de cifras (CBC - Cipher Block Chaining) no Cisco Email Security Appliance (ESA). Uma auditoria/verificação de segurança pode informar que um ESA tem uma vulnerabilidade de modo CBC de protocolo fraco Secure Sockets Layer (SSL) v3/Transport Layer Security (TLS) v1.
Atenção: se você estiver executando um código mais antigo do AsyncOS para Email Security, é recomendável atualizar para a versão 11.0.3 ou mais recente. Consulte as Notas de versão do Cisco Email Security para obter as versões e informações mais recentes. Se precisar de mais assistência com atualizações ou desabilitação de cifras, abra um caso de suporte.
Pré-requisitos
Requisitos
Não existem requisitos específicos para este documento.
Componentes Utilizados
As informações neste documento são baseadas no AsyncOS para segurança de e-mail (qualquer revisão), um Cisco ESA e um ESA virtual.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.
Informações de Apoio
- A conformidade com o padrão de segurança de dados PCI DSS (Payment Card Industry Data Security Standard) exige que as cifras CBC estejam desativadas.
- Uma auditoria/verificação de segurança identificou uma possível vulnerabilidade com os protocolos SSL v3/TLS v1 que usam Cifras no Modo CBC.
Dica: o SSL versão 3.0 (RFC-6101) é um protocolo obsoleto e inseguro. Há uma vulnerabilidade no SSLv3 CVE-2014-3566 conhecida como ataque de Padding Oracle On Downgraded Legacy Encryption (POODLE), ID do bug da Cisco CSCur27131. A recomendação é desativar o SSL v3 enquanto você altera as cifras e usa apenas TLS, e selecionar a opção 3 (TLS v1). Consulte o bug da Cisco ID CSCur27131 para obter detalhes completos.
Os protocolos SSL v3 e TLS v1 são usados para fornecer integridade, autenticidade e privacidade a outros protocolos, como HTTP e Lightweight Diretory Access Protocol (LDAP). Eles fornecem esses serviços com o uso de criptografia para privacidade, certificados x509 para autenticidade e funcionalidade de criptografia unidirecional para integridade. Para criptografar dados, SSL e TLS podem usar cifras de bloco que são algoritmos de criptografia que podem criptografar apenas um bloco fixo de dados originais para um bloco criptografado do mesmo tamanho. Observe que essas cifras sempre obterão o mesmo bloco resultante para o mesmo bloco original de dados. Para obter uma diferença na saída, a saída da criptografia é XORed com mais um bloco do mesmo tamanho referido como vetor de inicialização (IV). O CBC usa um IV para o bloco inicial e o resultado do bloco anterior para cada bloco subsequente a fim de obter a diferença na saída da criptografia de cifra de bloco.
Na implementação de SSL v3 e TLS v1, o uso do modo CBC escolhido foi insatisfatório porque todo o tráfego compartilha uma sessão CBC com um único conjunto de IVs iniciais. O resto dos IVs são, como mencionado anteriormente, resultados da criptografia dos blocos anteriores. Os IVs subsequentes estão disponíveis para os bisbilhotes. Isso permite que um invasor com a capacidade de injetar tráfego arbitrário no fluxo de texto sem formatação (a ser criptografado pelo cliente) a fim de verificar seu palpite do texto sem formatação que precede o bloco injetado. Se a estimativa dos invasores estiver correta, a saída da criptografia será a mesma para dois blocos.
Para dados de baixa entropia, é possível adivinhar o bloco de texto simples com um número relativamente baixo de tentativas. Por exemplo, para dados que têm 1000 possibilidades, o número de tentativas pode ser 500.
Requisitos
Há vários requisitos que devem ser atendidos para que a exploração funcione:
- A conexão SSL/TLS deve usar uma das cifras de criptografia de bloco que usam os modos CBC, como DES ou AES. Os canais que usam cifras de fluxo, como RC4, não estão sujeitos à falha. Uma grande proporção de conexões SSL/TLS usa RC4.
- A vulnerabilidade só pode ser explorada por alguém que intercepta dados na conexão SSL/TLS e também envia ativamente novos dados nessa conexão. A exploração da falha faz com que a conexão SSL/TLS seja encerrada. O invasor deve continuar a monitorar e usar novas conexões até que dados suficientes sejam reunidos para descriptografar a mensagem.
- Como a conexão é encerrada toda vez, o cliente SSL/TLS deve ser capaz de continuar a restabelecer o canal SSL/TLS por tempo suficiente para que a mensagem seja descriptografada.
- O aplicativo deve reenviar os mesmos dados em cada conexão SSL/TLS criada e o listener deve ser capaz de localizá-la no fluxo de dados. Protocolos como IMAP/SSL que têm um conjunto fixo de mensagens para efetuar login atendem a esse requisito. A navegação geral na Web não.
Ameaça
A vulnerabilidade CBC é uma vulnerabilidade com TLS v1. Essa vulnerabilidade existe desde o início de 2004 e foi resolvida em versões posteriores do TLS v1.1 e TLS v1.2.
Antes do AsyncOS 9.6 para segurança de e-mail, o ESA utiliza TLS v1.0 e cifras de modo CBC. Com o lançamento do AsyncOS 9.6, o ESA introduz o TLS v1.2. Ainda assim, as cifras do modo CBC podem ser desativadas, e apenas cifras RC4 podem ser usadas que não estão sujeitas à falha.
Além disso, se SSLv2 estiver habilitado, isso pode disparar um falso positivo para essa vulnerabilidade. É muito importante que o SSL v2 seja desabilitado.
Solução
Atenção: se você estiver executando um código mais antigo do AsyncOS para Email Security, é recomendável atualizar para a versão 11.0.3 ou mais recente. Consulte as Notas de versão do Cisco Email Security para obter as versões e informações mais recentes. Se precisar de mais assistência com atualizações ou desabilitação de cifras, abra um caso de suporte.
Desabilite as cifras do modo CBC para deixar apenas as cifras RC4 habilitadas. Defina o dispositivo para usar apenas TLS v1 ou TLS v1/TLS v1.2:
- Faça login na CLI.
- Insira o comando sslconfig.
- Insira o comando GUI.
- Escolha a opção número 3 para "TLS v1" ou conforme listado no AsyncOS 9.6 "TLS v1/TLS v1.2".
- Digite esta cifra:
MEDIUM:HIGH:-SSLv2:-aNULL:@STRENGTH:-EDH-RSA-DES-CBC3-SHA:-EDH-DSS-DES-CBC3-SHA:-DES-CBC3-SHA
- Insira o comando: INBOUND.
- Escolha a opção número 3 para "TLS v1" ou conforme listado no AsyncOS 9.6 "TLS v1/TLS v1.2".
- Digite esta cifra:
MEDIUM:HIGH:-SSLv2:-aNULL:@STRENGTH:-EDH-RSA-DES-CBC3-SHA:-EDH-DSS-DES-CBC3-SHA:-DES-CBC3-SHA
- Insira o comando OUTBOUND.
- Escolha a opção número 3 para "TLS v1" ou conforme listado no AsyncOS 9.6 "TLS v1/TLS v1.2".
- Digite esta cifra:
MEDIUM:HIGH:-SSLv2:-aNULL:@STRENGTH:-EDH-RSA-DES-CBC3-SHA:-EDH-DSS-DES-CBC3-SHA:-DES-CBC3-SHA
- Pressione Enter até voltar ao prompt do nome do host.
- Insira o comando commit.
- Finalize a confirmação das alterações.
O ESA agora está configurado para suportar apenas TLS v1, ou TLSv1/TLS v1.2, com cifras RC4 enquanto não permite nenhum filtro CBC.
Esta é a lista de cifras usadas quando você define RC4:-SSLv2. Observe que não há cifras de modo CBC na lista.
ECDHE-RSA-RC4-SHA SSLv3 Kx=ECDH Au=RSA Enc=RC4(128) Mac=SHA1
ECDHE-ECDSA-RC4-SHA SSLv3 Kx=ECDH Au=ECDSA Enc=RC4(128) Mac=SHA1
ADH-RC4-MD5 SSLv3 Kx=DH Au=None Enc=RC4(128) Mac=MD5
RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1
RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5
PSK-RC4-SHA SSLv3 Kx=PSK Au=PSK Enc=RC4(128) Mac=SHA1
EXP-ADH-RC4-MD5 SSLv3 Kx=DH(512) Au=None Enc=RC4(40) Mac=MD5 export
EXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export
Embora essa exploração seja de muito pouca preocupação devido à sua complexidade e aos requisitos para exploração, o desempenho dessas etapas é uma grande salvaguarda para a prevenção de possíveis explorações, bem como para passar varreduras de segurança rigorosas.
Informações Relacionadas