Participei nessa última madrugada de um Hangout, bem interessante, sobre segurança em aplicações Web.
Em um certo ponto, foi levantada a bola quanto a vulnerabildiade explorada do SSL Handshake pelo pessoal da THC. Tanto é, que eles, o grupo THC, lançou uma excelente ferramenta, THC-SSL-DoS para isso.
O vídeo abaixo explica, e muito bem, sobre o que estou falando:
Acontece que uma dúvida ficou no ar – A vulnerabilidade é no protocolo SSL, dito por muitos como o mais seguro do mundo, ou em sua implementação junto aos web servers ?
Eis que as melhores respostas foram as seguintes, tanto em português quanto em inglês:
Estabelecer uma conexão segura SSL requer um processamento de máquina quase 15x maior no servidor do que no cliente. A ferramenta THC-SSL-DOS explora esta propriedade assimétrica, sobrecarregando o servidor até ele “cair”.
There are two different aspects in the presented attack:
- The computation cost of an handshake is more important on the server side than on the client side. The advisory explains that a server will require 15 times the processing power of a client. This means a single average workstation could challenge a multi-core high-end server.
- The use of SSL renegotiation allows you to trigger hundreds of handshakes in the same TCP connection. Even a client behind a DSL connection can therefore bomb a server with a lot of renegotiation requests.
Em resumo e para mim, o problema está relacionado ao SSL, mas gostaria de ouvir outras opiniões…
Diego Alencar liked this on Facebook.
Rafael Augusto liked this on Facebook.
Marcelo Julio Batista liked this on Facebook.
Bom, independente se o problema está ou não de fato no SSL, sem dúvida o problema está pelo menos na forma como ele é tradado. Uma vez que é através desse tratamento que ele pode ser explorado. Acho que não dá pra colocar a culpa só no web server então, uma vez que ele está somente fazendo o papel de tratar o SSL como ele tem que ser tratado. Por isso, concordo que o problema maior está relacionado ao SSL, do que com a sua implantação junto ao web server.
Adriel Gavazza liked this on Facebook.
Levando em consideração especificamente ao https, seria possível então ter uma parametrização de número de handshakes por segundo. Isso no mod_ssl. Caso ultrapasse o valor, bloqueia por X minutos. Claro, em caso de centenas de milhares de zumbis a coisa seria tenso no ataque inicial, mas em poucas horas isso seria mitigado. Desconheço algo que de para parametrizar atualmente.
Há outros módulos para o apache que já fazem isso. O mod_reqtimeout, por exemplo.
Pode ser um caminho então. 🙂