DevSecOps

29 abr, 2016

Monitorar a segurança do SSL é possível?

Publicidade

O certificado digital SSL é o elemento de segurança mais básico em uma aplicação web que troca informações com usuários. Como exemplo prático, temos as lojas virtuais, que coletam informações dos clientes. Nesse caso, o SSL criptografa dados como nome, e-mail, endereço, número do cartão de crédito e outras informações que sejam sensíveis, criando uma chave que só pode ser aberta pelos servidores da loja, reduzindo as chances desses dados serem acessados por terceiros. Mas para isso, o certificado precisa ser instalado da forma correta, com alguns cuidados de segurança.

Seu SSL está seguro?

Como citado, a principal função do protocolos SSL e TLS é garantir privacidade e a integridade dos dados que são trocados entre duas aplicações. O que nem todos sabem, é que o certificado digital – tanto no protocolo SSL, como no TLS – pode ter vulnerabilidades, como, por exemplo, ser emitido em SHA1, que é um tipo de criptografia que pode ser quebrada.

Basicamente, a segurança do Certificado Digital é feita durante a emissão e o seu armazenamento, ou seja, quando são geradas e armazenadas as chaves públicas e privadas – também conhecido como código CSR e KEY.

Por isso é preciso alguns cuidados no momento da emissão da chave privada:

  • Use, no mínimo, RSA 2048 bits;
  • Defina uma senha de segurança;
  • Utilize um computador confiável;
  • Para o armazenamento, será preciso um local seguro onde ela será salva;
  • Para empresas que possuem grandes quantidades de certificados, é aconselhado buscar por soluções HSM (Hardware Security Module).

As configurações dos protocolos SSL e TLS são feitas diretamente no servidor, ou seja, nas configurações do seu Apache ou Nginx, por exemplo.

Necessidade de análise do certificado digital

Com as recentes divulgações de vulnerabilidades nos protocolos de criptografia (Heartbleed e Poodle, por exemplo), observamos que alguns profissionais não têm dado a devida atenção na instalação e configuração do certificado digital, o que gera exposição das mensagens que trafegam no site. Em muitos casos, só existe movimentação quando a comunidade identifica falhas, como os recentes Poodle, LogJam e Freak Attack.

Dependendo do caso, o alerta ligando para especialistas em segurança pode ser tarde para algumas aplicações, que já estarão vulneráveis.

Isso pode expor aplicações web, que correm o risco de estar expostas e permitir que terceiros obtenham os dados de seus clientes por meio do ataque conhecido como Man-in-the-Middle. Uma das formas para reduzir esse risco é realizando um scan preventivo no protocolo de criptografia, ou o Scan SSL. Isso auxilia administradores e webmasters a identificarem vulnerabilidades e monitorarem o grau de segurança de seu SSL.

Como funciona o Scan de vulnerabilidade SSL?

Comumente utilizada em mercados mais maduros, essa modalidade está sendo introduzida agora no Brasil e tem uma metodologia bem clara, que leva em consideração quatro fatores:

  • Inspeção do certificado – Validade e confiabilidade do certificado;
  • Suporte de protocolos;
  • Key exchange;
  • Cifras utilizadas.

Essa metodologia é utilizada para avaliar tanto o nível de proteção do certificado, como a maneira que foi instalado e configurado. Com base nesses fatores, é realizado um cálculo pelo qual o sistema exibe uma nota que representa o nível de segurança da aplicação e exibe pontos que devem ser melhorados para aumentar a segurança do SSL.

Mas o que é analisado em cada um dos itens?

  • Inspeção do certificado: O certificado de um servidor pode ser o ponto mais fraco de uma configuração de servidor SSL. Se ele não é confiável (ou seja, não é assinado por uma autoridade de certificação conhecida), se torna um SSL ineficiente. Não “estar em dia” com a inspeção pode deixar as lojas virtuais vulneráveis e causar a exposição de dados sensíveis de usuários. Ela é responsável por verificar diversos itens que irão classificar e validar toda a veracidade do negócio, incluindo a incompatibilidade no domínio, certificado que ainda não é válido, certificado vencido, certificado auto assinado, certificado não confiável, utilização de um certificado que foi revogado, assinaturas inseguras (MD5 ou MD2), entre outros.
  • Suporte de protocolos: Um ponto muito importante na segurança do servidor é o suporte de protocolos que são utilizados. Neste caso, são analisados a presença de SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1 e TLS 1.2. Cada protocolo tem suas particularidades e vulnerabilidades, mas podemos considerar que atualmente o recomendado é a utilização do protocolo TLS 1.2, que é o protocolo com criptografia mais forte hoje.
  • Key Exchange: A fase de troca tem duas funções. A primeira delas é para realizar a autenticação, permitindo que pelo menos uma das partes consiga verificar a identidade da outra parte. A segunda é de assegurar a produção e troca de chaves secretas que vão ser utilizadas durante o restante da sessão segura. Quando existe um ponto fraco na fase de troca, esta pode afetar a confidencialidade da sessão. Um exemplo de aplicação seria a troca sem uma autenticação, que faz com que um atacante consiga executar um ataque do tipo Man-In-The-Middle (MITM), interceptando e descriptografando o canal de comunicação como um todo.
  • Cifras utilizadas: Para entender melhor, a cifra é um conjunto de codificações que são especificados por meio de um protocolo de criptografia (DES, RC4, AES), o tamanho da chave de criptografia (40 bits, 56 bits ou 128 bits) e um algoritmo de hash (SHA, MD5) que é usado para verificação da integridade. Para quebrar uma sessão de comunicação, um atacante precisa tentar quebrar a cifra simétrica usada durante a comunicação. Uma cifra forte permite a criptografia mais eficiente e, portanto, aumenta o esforço necessário para quebrá-la. Todos os protocolos, como o SSL 3.0 e o TLS 1.2 podem suportar cifras de diversas intensidades e elas podem ser exibidas como RSA_WITH_AES_256_CBC_SHA256. Nesta fase, elas são verificadas junto ao servidor e no final é informado quais são utilizadas e quais devem ser removidas para aumentar a segurança da comunicação entre cliente e servidor.

Análise final do SSL

Levando em consideração esses quatros pontos que são a inspeção do certificado, suporte de protocolos, key exchange e cifras utilizadas, é possível determinar quais pontos devem ser verificados para garantir que a comunicação – entre servidor e cliente final – está trafegando de forma segura e com as melhores práticas de segurança.

Conseguimos ter uma visão geral de como o monitoramento do SSL ocorre, ou seja, avaliamos se a comunicação é criptografada, se o certificado digital foi emitido com códigos seguros, quais os protocolos utilizados e, por fim, se não está sendo utilizada nenhuma cifra que pode comprometer a segurança da comunicação entre as duas pontas.

Com a nossa experiência, identificamos que muitas empresas não se preocupavam com esse ponto importantíssimo – análise do SSL – e por isso trabalhamos na integração de uma aplicação que fosse gratuita e conseguisse avaliar e informar nossos clientes da importância de se atentar a “saúde” de um certificado.

Agora, de forma pioneira no Brasil, administradores de site têm acesso gratuito a essa ferramenta. Ela fornece dados e suporte para as empresas e profissionais trabalharem no aumento da segurança online. Os clientes Site Blindado já podem agendar o seu Scan SSL por meio do portal do cliente.