Evidenciando e identificando servidores vulneráveis ao SSL/TLS Ciência Hacker 10 de fevereiro de 201620 de fevereiro de 2016 Deixe um comentário Na análise de vulnerabilidade em infraestrutura, uma das verificações a serem feitas é na versão do serviço do SSL/TLS, caso esteja numa versão obsoleta, é possível explorar vulnerabilidades sobre alguns vetores de ataque como gênero (MITM Main The Middle). Com ferramentas como SSLScan, SSLyze e Nmap, podemos recolher informações da versão do serviço rodando e as cifras que utilizam, identificando se tais estão vulneráveis. Para quem não conhece o SSL (Secure Sockets Layer), é o antecessor do TLS (Transport Layer Security), que é um protocolo de segurança que permite a troca de informações entre Cliente x Servidor, garantindo a integridade da informação, ou seja, ele é o https:// que aparece na URL. De uma maneira mais prática, ele evita que um atacante utilize a técnica MITM para interceptar suas informações numa rede, ou até mesmo realizar sniffing numa rede, o qual explora os ataques de roubo de credenciais e interceptações de e-mails. Encontra-se diversos servidores de companhias com versão do SSL desatualizado ou com as cifras fracas (você encontra na maioria dos scanners com o nome Weak Cipher ), muitas vezes pela ignorância ou pelo fato de não poder atualizar o serviço devido a dependência que aplicação tem em relação a ele. Fazendo um comparativo em relação a evolução do SSL com TLS, observamos a seguinte árvore de upgrade. SSL v1 (Mais obsoleto) SSL v2 SSL v3 TLS 1.0 (Essa versão ainda é considerada obsoleta, possuindo ainda grandes vulnerabilidades) TLS 1.1 TLS 1.2 (Mais recente) Até a versão do SSL v3 é considerado a mais crítica, a qual é conhecida como Poodle (possui módulos de verificação no Metasploit e Nmap) que devido a fraqueza da versão do protocolo é possível explorar os ataques mencionados. Segundo o FIPS (Federal Information Processing Standards) que é um conjunto de normas que cita segurança de dados criada no EUA -, diz que para processo de empresas que queiram ser certificadas PCI (Payment Card Industry) requere no mínimo TLS v1.1 e recomenda-se o TLS v1.2. Ou seja, empresas que fazem transações ou armazenamento de dados de cartão de crédito recomenda-se seguir essa norma de segurança referente ao protocolo SSL/TLS. Veremos algumas ferramentas que permitem fazer scan no servidor, verificando a versão do TLS/SSL, analisando as cifras, e fazendo checagem da vulnerabilidade heartbleed. SSLScan A ferramenta vem por padrão no Kali Linux, a qual possibilita a verificação da versão do TLS/SSL, das cifras usadas no servidor e da existência do heartbleed. Para ver os recursos da ferramenta, dê o comando help. #sslscan --help
Com apenas o comando abaixo ele faz a verificação padrão sobre o alvo. #sslscan --help
Note que conseguimos pegar em nosso alvo a versão do SSL: v2 e v3, que são desatualizadas e consideradas vulneráveis. Note também que a cifra utilizada é fraca como exemplo da RC4, a qual o atacante pode interceptar, interpretar e manipular a mensagem sobre a vítima. Caso queira filtrar as cifras ou certificados, temos exemplos abaixo. # sslscan --show-ciphers www.site-alvo.com.br # sslscan --show-certificates www.site-alvo.com.br SSLyze Também vem nativa no Kali Linux, sendo uma boa alternativa ao SSLScan, tendo praticamente a mesma utilidade. # sslyze --help
Damos um exemplo abaixo de uma das funções da ferramenta para verificar os tipos das cifras utilizadas sobre nosso alvo, lembre de setar a porta. # sslyze --regular www.site-alvo.com.br:443
Nmap Através dos scripts do NSE, podemos enumerar o SSL também. #nmap --script ssl-enum-ciphers -p 443 www.site-alvo.com.br
Note que ele avalia e dá uma nota de A à F, classificando a força da cifra, lembrando que você pode configurar as portas que quiser sobre o alvo. Podemos também juntar dois scripts para a verificação do alvo. # nmap --script ssl-cert,ssl-enum-ciphers -p 443,465,993,995 www.site-alvo.com.br
Caso queira verificar a existência de um heartbleed, utilize o script abaixo. ##nmap -p 443 --script ssl-heartbleed www.site-alvo.com.br SSLlabs Outra opção é o site do ssllabs que mostra, através de gráficos, a força dos certificados, versão do SSL, classificando em uma nota para os critérios estabelecidos. Trazendo informações mais completas sobre cada análise feita, e pela fácil interação é mais recomendada para quem não está situado no assunto.
Conclusão Essa análise sobre o protocolo TLS/SSL é vista muito em relatório de PentTest e ASV. Através de ferramentas, conseguimos enumerar versões do serviço, cifras utilizadas, e a possível existência de um heartbleed. Esse artigo é redigido para quem tem um prévio conhecimento sobre serviços utilizados no SSL, evidenciando se sua host pode estar ou não vulnerável.