Qual é o risco de SSL não disponível?
Portanto, você recebeu uma descoberta de risco crítico para SSL não disponível, o que significa que seu domínio não tem um certificado SSL instalado no servidor. Para resolver essa descoberta, você pode gerar e fornecer um certificado SSL/TLS atualizado em seu site.
SSL, que significa Secure Sockets Layer, e seu sucessor TLS, ou Transport Layer Security, são protocolos da Internet para proteger o tráfego entre sistemas com um algoritmo de criptografia. Um certificado SSL/TLS fornece uma verificação de que seu site é seguro para uso. SSL/TLS é o método de criptografia padrão para uso na Internet, e os certificados SSL/TLS são concedidos por uma autoridade de certificação (CA), como Let's Encrypt.
Por que você precisa de certificados SSL/TLS
Sem um certificado SSL para garantir a comunicação TLS, todas as informações enviadas entre os sistemas serão em texto simples. As comunicações de texto simples podem ser interceptadas por ataques man-in-the-middle (MITM), que visam credenciais de usuário e outras informações confidenciais a serem usadas para atividades maliciosas. A manutenção de um certificado SSL/TLS garante que todas as informações comunicadas ao seu site, como credenciais de usuário ou informações de pagamento, sejam criptografadas pelo protocolo de comunicação Hypertext Transfer Protocol Secure (HTTPS).
Para garantir que seus usuários estejam transmitindo informações apenas por um método seguro, você também pode implementar o protocolo HTTP Strict Transport Security (HSTS), que forçará todas as conexões a serem roteadas por HTTPS para um método de comunicação seguro. No entanto, se o seu certificado SSL/TLS não estiver presente ou tiver expirado, os usuários não poderão acessar seu site, por isso é importante manter seus certificados SSL/TLS instalados e atualizados.
Quando um certificado expira, ele deve ser renovado por uma autoridade de certificação confiável para garantir que seus sistemas estejam protegidos pelo padrão de criptografia. Quando seu certificado SSL/TLS expira, os usuários e visitantes do site não podem confirmar a validade do seu site. Qualquer entrada fornecida pelo usuário está em risco. O período de validade máximo atual para certificados SSL/TLS é de 398 dias, embora alguns provedores de certificados tenham um período de validade mais curto. Recomendamos manter um registro da data de validade do seu certificado e garantir a renovação antes da expiração.
Atualizar sua versão SSL/TLS também é importante para se proteger contra vulnerabilidades conhecidas introduzidas pelas versões 1, 2, 3 e TLS 1.0 do SSL. O CVE-2014-3566 identifica a suscetibilidade do SSL 3.0 a ataques de oráculo de preenchimento ("POODLE"), e qualquer downgrade de protocolo também torna o TLS 1.0 vulnerável.
Os certificados SSL/TLS ajudam a garantir que o tráfego do site seja protegido e são um requisito crítico para muitos regulamentos.
Como o SSL se relaciona com os regulamentos
A certificação SSL/TLS faz parte do processo para caminhos de comunicação protegidos e garante que a transferência de informações seja confidencial e completa. A transferência segura de informações é exigida por regulamentos como PCI DSS, FISMA e FedRAMP. Você também pode encontrar informações sobre como proteger a transferência de informações na publicação NIST SP 800-53.
Se sua empresa inclui transações com cartão de pagamento, você pode avaliar sua conformidade com o PCI DSS. O Requisito 4 do PCI fornece diretrizes para transmissão criptografada em redes públicas, que é onde sua certificação SSL/TLS é importante.
Ao avaliar a adesão aos controles documentados no NIST SP 800-53, você pode avaliar a família de controles de Proteção de Sistema e Comunicações (SC). Os controles relevantes incluem o SC-8 sobre Confidencialidade e Integridade da Transmissão e o SC-13 sobre Proteção Criptográfica. O SC-8(1) é especialmente relevante para a certificação SSL/TLS porque o controle especifica a necessidade de "implementar mecanismos criptográficos. . . durante a transmissão" (SC-8(1)). Sua certificação SSL/TLS e a comunicação HTTPS subsequente se alinham a esse controle. Embora as diretrizes do NIST SP 800-53 se apliquem a empresas que trabalham com o governo federal dos Estados Unidos, as diretrizes de segurança são benéficas para muitas empresas.
Agora que você entende o que o risco de SSL não disponível significa para sua organização, você pode tomar medidas para resolver o risco. Comece gerando e instalando um certificado SSL/TLS em seu servidor.
Como gerar um certificado SSL/TLS
A primeira etapa para resolver esse risco é garantir que você tenha um certificado SSL/TLS atualizado de uma autoridade de certificação confiável que você configurou corretamente para seus sistemas voltados para o público. Cada autoridade de certificação e provedor de hospedagem têm experiências de usuário ligeiramente diferentes, mas as etapas geralmente são as mesmas:
- Escolha uma autoridade de certificação e gere uma solicitação de assinatura de certificado (CSR) usando o software do servidor Web com todas as informações relevantes para o certificado selecionado. Você deve ter um nome de domínio registrado, registros DNS configurados para seu servidor e acesso a qualquer método usado para validação de controle de domínio.
- Conclua todas as etapas do processo de validação do controle de domínio relacionadas à sua escolha de certificado.
- Ative o certificado com a autoridade de certificação, anote a chave privada e instale o certificado em seus servidores. Seu provedor de hospedagem pode fornecer um guia para instalar seus certificados SSL.
- Repita o processo para todos os certificados em sua cadeia de certificados, conforme necessário.
- Anote a data de expiração do seu certificado para que você possa renová-lo antes que ele expire. Existem muitos serviços automatizados disponíveis para gerenciar a expiração do SSL, incluindo o UpGuard BreachSight.
Todos os sistemas voltados para a Internet devem ser nomeados no certificado para evitar erros de incompatibilidade. Recomendamos usar um certificado diferente para o servidor voltado para a Internet do que o certificado do sistema interno para que você não vaze inadvertidamente nomes de host internos para o tráfego do site público. Ao gerar e configurar seu certificado, certifique-se de definir um lembrete para renová-lo antes da expiração. Você também pode usar um serviço de verificação automatizado para identificar se seus certificados SSL estão configurados incorretamente ou indisponíveis.
Ao gerar a solicitação de assinatura de certificado, você criará dois arquivos:
- O arquivo [.rt-script].key[.rt-script] possui uma chave privada que você instalará em seu servidor web.
- O arquivo [.rt-script].csr[.rt-script] contém sua solicitação de certificado, que também é enviada para a autoridade de certificação (CA).
Depois de enviar o arquivo [.rt-script].csr[.rt-script] para sua autoridade de certificação, a autoridade de certificação realizará uma solicitação de validação e todas as tarefas de validação de controle de domínio necessárias para o tipo de certificado solicitado. Depois que a CA confirmar os detalhes relevantes, o administrador (você) receberá arquivos para seu certificado.
Você receberá os seguintes arquivos:
- Um certificado primário em um arquivo [.rt-script].crt[.rt-script]. Você usará esse arquivo [.rt-script].crt[.rt-script] para instalar o certificado em seu servidor, então nomeie-o como [.rt-script]your_domain.com.crt[.rt-script] com a extensão [.rt-script].crt[.rt-script].
- Um certificado intermediário em um arquivo [.rt-script].pem[.rt-script] que você usará para criar uma cadeia de certificados para uma camada adicional de segurança. Recomendamos nomear o certificado intermediário como [.rt-script]intermediate.crt[.rt-script] para maior clareza. Você precisará instalar pelo menos um certificado SSL intermediário para garantir que tenha uma cadeia de certificados que permita que os usuários acessem seu site por meio de uma conexão SSL criptografada.
Você usará esses arquivos na próxima seção ao instalar seus certificados SSL/TLS.
Como instalar certificados SSL/TLS
Depois de gerar um certificado SSL de uma autoridade de certificação confiável, você precisará instalá-lo em seu servidor. Esta seção identifica algumas tarefas comuns a serem concluídas para configurar seus certificados corretamente.
Para instalar o certificado em seu servidor, certifique-se de que os arquivos estejam armazenados em algum lugar seguro em seu servidor que não possa ser acessado publicamente. Todos os três arquivos só devem ser acessíveis por [.rt-script]root[.rt-script]:
- A chave privada, chamada algo como [.rt-script]your_domain.com.key[.rt-script]
- O certificado SSL, nomeado algo como [.rt-script]your_domain.com.crt[.rt-script]
- O certificado intermediário retornado pela CA, nomeado algo como [.rt-script]intermediate.crt[.rt-script]
Com esses arquivos em seu servidor, você atualizará os arquivos de configuração do servidor manualmente para garantir que o servidor web se comunique com seus novos certificados SSL. O Apache e o Nginx são servidores Web comumente usados, portanto, você pode seguir estas orientações para atualizar seus arquivos de configuração:
- Para servidores que executam o Nginx, atualize o bloco do servidor para escutar na porta 443 (a porta usada para HTTPS) e forneça os nomes de arquivo relevantes para a diretiva [.rt-script]server_name[.rt-script]. Você também pode redirecionar solicitações HTTP para HTTPS e especificar protocolos e cifras TLS.
- Para servidores que executam o Apache, atualize seu host virtual alternando da porta 90 para HTTP para a porta 443 para conexões HTTPS. Forneça as informações relevantes para o nome do servidor e os caminhos do certificado. Como o Nginx, você pode redirecionar solicitações HTTP para HTTPS.
Depois de modificar qualquer arquivo de configuração, certifique-se de reiniciar o servidor executando o comando [.rt-script]systemctl restart[.rt-script], que carregará a configuração atualizada com seu certificado SSL/TLS.
Navegue até seu site em um navegador para testar se seu site pode ser acessado por meio de uma conexão HTTPS. Se você não conseguir acessar seu site com HTTPS, revise suas definições de configuração para garantir que tudo esteja correto.
Como atualizar versões de software para compatibilidade SSL
Ao instalar seu certificado SSL, pode ser necessário atualizar as versões do software para que sejam compatíveis com sua biblioteca SSL. Os módulos SSL para diferentes softwares garantem que seu sistema possa usar criptografia SSL/TLS e autenticação de pares.
Para dependências SSL, recomendamos que você crie um usuário do sistema com privilégios [.rt-script]sudo[.rt-script] para instalar pacotes e dependências ou executar atualizações. Um usuário [.rt-script]sudo[.rt-script] garante que alterações irrevogáveis não sejam feitas no nível [.rt-script]root[.rt-script]. Você pode usar o usuário [.rt-script]sudo[.rt-script] para instalar atualizações do diretório inicial do seu servidor, que deve rotear todos os arquivos de configuração necessários nos caminhos apropriados.
Pode ser necessário instalar um tarball atualizado para um determinado software. Com distribuições Linux, você pode usar o gerenciador de pacotes APT para executar [.rt-script]apt install[.rt-script] para atualizações específicas. Você também pode usar o APT com o Windows Subsystem for Linux (WSL). Se você usa o CentOS Linux, pode usar [.rt-script]yum[.rt-script] para gerenciamento de pacotes. Para macOS, recomendamos usar o Homebrew com o comando [.rt-script]brew install[.rt-script].
>A maioria dos sistemas operacionais (incluindo Windows, Ubuntu e a maioria das outras distribuições Linux) usa OpenSSL, que é uma biblioteca de software de código aberto para protocolos SSL/TLS. No entanto, as versões recentes do macOS são compiladas com LibreSSL (uma versão bifurcada do OpenSSL), o que pode levar a problemas de configuração. Por exemplo, alguns pacotes Python suportam apenas OpenSSL.
Você pode executar [.rt-script]openssl version[.rt-script] para determinar se sua máquina é compilada com LibreSSL ou OpenSSL. Se sua máquina for compilada com LibreSSL, você pode querer instalar o OpenSSL e seguir os comandos de link simbólico. Algumas bibliotecas comumente usadas para SSL no Linux incluem [.rt-script]libssl-dev[.rt-script], [.rt-script]libbz2-dev[.rt-script] e [.rt-script]libffi-dev[.rt-script], embora não tenhamos confirmado que a instalação desses pacotes garantirá a compatibilidade entre sistemas operacionais e ambientes.
Você pode usar [.rt-script]pip[.rt-script] ou [.rt-script]pip3[.rt-script] para instalar pacotes Python 3 diretamente na linha de comando do seu ambiente Python (seja Anaconda, Miniconda, PyCharm ou outro ambiente virtual). Sua versão do Python também pode precisar de outros pacotes. Normalmente, um [.rt-script]SSLError[.rt-script] incluirá informações para o pacote ausente com o atributo [.rt-script]package_name[.rt-script]. Muitos pacotes Python também podem ser acessados no pypi.org. Se o seu ambiente Python estiver configurado em uma imagem do Docker, talvez seja necessário instalar [.rt-script]openssl-devel[.rt-script] ou [.rt-script]libressl-dev[.rt-script]. Ambos os pacotes também instalarão [.rt-script]libssl[.rt-script] como uma dependência. Sem uma biblioteca SSL compilada em sua imagem do Docker, você pode ter problemas para configurar seu certificado SSL.
Você também pode atualizar seu servidor para garantir que tenha as versões mais recentes de todos os softwares necessários para compatibilidade com seu módulo SSL.
Como resolver a descoberta de SSL não disponível
Comece gerando e instalando um certificado SSL válido em seu servidor. Quando seu certificado tiver sido configurado, você poderá fornecer proteção adicional tornando o HTTPS obrigatório com o redirecionamento e a imposição necessários para evitar conexões de texto sem formatação. O redirecionamento de HTTP para HTTPS com o mesmo nome ajudará a proteger seu sistema e impedir o acesso não autorizado a seus sistemas.
Como o UpGuard pode ajudar
O UpGuard BreachSight verifica uma variedade de riscos de SSL, incluindo SSL não disponível e riscos relacionados à expiração do certificado SSL. Se você receber uma descoberta SSL não disponível, nosso sistema identificará quais de seus domínios e endereços IP não têm um certificado SSL/TLS. Você pode identificar quais domínios ou endereços IP são afetados e garantir a instalação do certificado necessário.
Os usuários atuais do UpGuard com o recurso BreachSight podem fazer login e acessar seu perfil de risco para pesquisar esse risco entre seus ativos. Você pode entrar em contato com nossa equipe de suporte para investigar e verificar quaisquer descobertas de SSL que tenham sido identificadas para seus ativos.
Se você não é um usuário atual do UpGuard e deseja verificar seus ativos com o BreachSight, inscreva-se para uma avaliação.