sexta-feira, 17 de Outubro de 2014

Divagações com SSLv3 ( Segurança ) / Debian e Derivados


Muito recentemente em 14.10.2014, foi divulgada uma vulnerabilidade no protocolo de criptografia SSLv3.


Esta vulnerabilidade é conhecida com a denominação Padding Oracle On Downgraded Legacy Encryption ( POODLE ), a qual permite que um atacante leia as informações cifradas em plain text utilizando um ataque man-in-the-middle.

Mais informações sobre esta vulnerabilidade, ver em CVE-2014-3566.

IMPORTANTE: alguns especialistas em segurança, discordam que este bug é particularmente grave, afectando somente as redes WiFi publicas.

E eu DISCORDO dessas afirmações ...

Aliás, , explica de forma clara como explorar esta vulnerabilidade.

Como alguns sabem, ataques ao SSL sempre foram realizados de forma mais ou menos eficazes desde há muito tempo e assim vai continuar.

O meu ponto de vista ...

Sempre afirmei que, o melhor tempo despendido deve ser canalizado para estudar todas as formas possíveis de ataques e exercer de imediato todas as contra medidas.

IMPORTANTE: esta vulnerabilidade afecta todas as peças de software que possam ser coagidas a se comunicarem com o SSLv3, ou dito de outra forma, isto quer dizer que qualquer software que implemente um mecanismo alternativo que inclua suporte para SSLv3 é VULNERÁVEL e pode ser explorado ... e não adianta andarem a esconder isso.

Não tenho essa vulnerabilidade ...


Algumas das peças que podem ser afectadas são precisamente os browsers, web servers, VPN servers, mail servers, etc.

IMPORTANTE: não vou incluir todos as aplicações que podem ser afectadas por esta vulnerabilidade, apenas as mais relevantes no meu entendimento.

Sumariamente esta vulnerabilidade existe porque, o SSLv3 não verifica de forma adequada os bytes de preenchimento que são enviados com as mensagens cifradas.

Então, se estes não podem ser verificados pela entidade receptora, um atacante pode substitui-los e de imediato os passar para o destino e se for executado de forma perfeita, o destinatário nem se apercebe.

Importa também dar a conhecer que em média 1 em cada 256 pedidos, são aceites no destino, permitindo que um atacante possa decifrar um único byte.

Portanto, qualquer atacante que seja capaz de forçar repetidamente um participante a reenviar os dados usando este protocolo pode quebrar a criptografia num curto período de tempo.

Vejamos quais as formas que existem segundo o meu entendimento, para resolver esta situação nas aplicações mais comuns em Linux.

O POODLE, em si mesmo não representa um problema de implementação, assim só pode ser um problema inerente com a totalidade dos protocolos, portanto facilmente se pode concluir ... que não existe solução e que a única solução confiável é não o UTILIZAR.

1. Nginx Web Server

Para se desactivar o SSLv3 no Nginx, é necessário utilizar a directiva ssl_protocols.

Podemos adicionar este globalmente para /etc/nginx/nginx.conf, executar:

sudo nano /etc/nginx/nginx.conf

Para desactivar o SSLv3, a directiva ssl_protocols, deve ser definida da seguinte forma:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Gravar as alterações e de imediato reboot ao server.

sudo service nginx restart

2. Apache Web Server

Para se desactivar o SSLv3 no Apache Web Server, é necessário ajustar a directiva SSLProtocol no módulo mod_ssl.

Esta directiva pode ser definida no nível do server ou numa configuração de virtual host.

A especificação server-wide para os servers pode ser ajustada através do ficheiro /etc/apache2/mods-available/ssl.conf. Se o mod_ssl está activado, um link simbólico vai ligar este mesmo ficheiro para o sub-directório mods-enabled.

sudo nano /etc/apache2/mods-available/ssl.conf

Aqui vamos encontrar a directiva SSLProtocol. Se não se encontrar disponível, deve ser criada e depois modificar para remover explicitamente o suporte para SSLv3:

SSLProtocol all -SSLv3 -SSLv2

Gravar as alterações e de imediato reboot ao serviço.

sudo service apache2 restart

3. HAProxy Load Balancer

Para se desactivar o SSLv3 no HAProxy Load Balancer, é necessário editar o ficheiro haproxy.cfg.

sudo nano /etc/haproxy/haproxy.cfg

Agora atenção, pois se na configuração de front-end o SSL se encontrar activo,  a directiva bind vai especificar o endereço IP público e a porta. Se estivermos a utilizar o SSL, podemos desejar adicionar a directiva no-sslv3 no final da linha, vejamos:

frontend name
    bind public_ip:443 ssl crt /path/to/certs no-sslv3

Gravar as alterações e de imediato reboot ao serviço.

sudo service haproxy restart

4. OpenVPN VPN Server

Neste particular do OpenVPN, as versões mais recentes não permitem o SSLv3, assim o serviço não é vulnerável para este problema especifico, portanto não é necessário qualquer tipo de ajuste nas configurações.

Mais informações aqui.

5. Postfix SMTP Server

Se a configuração do Postfix está definida para exigir criptografia, ele vai utilizar uma directiva denominada smtpd_tls_mandatory_protocols.

sudo nano /etc/postfix/main.cf

Se o Postfix Server está configurado para utilizar criptografia em todos os momentos, podemos garantir que SSLv3 e SSLv2, não aceitam este parâmetro, no entanto se não se forçar a encriptação, não será necessário fazer nada.

smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3

Gravar as alterações e de imediato reboot ao serviço.

sudo service postfix restart

6. Dovecot IMAP e POP3 Server

De forma a ser possível desactivar o SSLv3 num Dovecot server, é necessário ajustar a directiva ssl_protocols.

sudo nano /etc/dovecot/conf.d/10-ssl.conf

E de imediato inserir no ficheiro a seguinte directiva:

ssl_protocols = !SSLv3 !SSLv2

Gravar as alterações e de imediato reboot ao serviço.

sudo service dovecot restart


Divirta-se!

SQL Server Query Performance Tuning / Livro


SQL Server Query Performance Tuning, 4th Edition


Download.


Divirta-se!

Vmware Horizon Workspace Essentials / Livro


Vmware Horizon Workspace Essentials


Download.


Divirta-se!

Fundamentals of Liquid Crystal Devices / Livro


Fundamentals of Liquid Crystal Devices, 2 edition


Download.


Divirta-se!

Practical Zendesk Administration (2nd edition) / Livro


Practical Zendesk Administration (2nd edition)


Download.


Divirta-se!