Em muitos relatórios de análise de vulnerabilidades é comum encontrar instruções para desabilitar o método “TRACE” dos servidores web para não acarretar na vulnerabilidade Cross-Site Tracing (XST), mas poucas pessoas sabem explicar o funcionamento deste ataque e as implicações caso este ataque seja bem sucedido. Pensando nisso, tentei fazer um screencast, mas a gravação falhou miseravelmente. Ainda assim, vocês podem conferir ele logo abaixo, mas antes de fazê-lo, é necessário que alguns itens sejam esclarecidos:
Pré-requisito:
Resumo:
Quando falamos de Cross-Site Scripting (XSS), um dos possíveis cenários é aquele em que o atacante consegue ler o cookie da vítima pela linguagem Javascript (ex: alert(document.cookie)) e enviar o seu conteúdo para o site do atacante visando um posterior sequestro de sessão. Em busca de soluções para problemas como este, foi criada a flag HttpOnly, que não permite a manipulação do cookie pela linguagem Javascript, permitindo que o cookie apenas trafegue nas requisições HTTP.
Surge então o Cross-Site Tracing que consegue, entre outras explorações, obter o conteúdo de um cookie com a flag HttpOnly graças ao método TRACE habilitado nos servidores web (Veja aqui a RFC com todos os métodos se tiver curiosidade). Visto que o método TRACE repete a requisição HTTP na resposta HTTP, é possível descobrir o que foi enviado na requisição, inclusive os cookies que foram enviados.
Acontece que a descoberta dessa vulnerabilidade vai fazer 10 anos em seu próximo aniversário, e os navegadores estão bastante precavidos com esse tipo de ataque, bloqueando as requisições TRACE feitas por Javascript. O único jeito, caso nenhum navegador permita enviar as requisições TRACE, é verificar se outros elementos da página web gerenciados por outros softwares (Java applet, adobe flash, etc) conseguem realizar tal tarefa.
Os objetivos deste vídeo são:
- Apresentar como identificar se o método TRACE está habilitado no servidor utilizando telnet
- Apresentar o funcionamento da flag HttpOnly
- Apresentar as proteções de Cross-Site Tracing presentes nos navegadores Internet Explorer(10.0.9200.16466), Firefox(14.0.1) e Google Chrome(23.0.1271.97 m)
Links úteis e referências:
- Desabilitar Trace no Apache – http://www.ducea.com/2007/10/
22/apache-tips-disable-the- http-trace-method/ - White Paper (mesmo do vídeo) – http://www.cgisecurity.com/
whitehat-mirror/WH-WhitePaper_ XST_ebook.pdf - http://www.linuxforu.com/2010/
12/securing-apache-part-4-xst- xshm/ - http://deadliestwebattacks.
com/category/cross-site- tracing/ - http://www.stopthehacker.com/
2009/11/12/xst-one-of-the- most-prevalent-security-holes/